Program: 173486
Project: 173486
Buggy source:
public ORPanel(ORWindow parent,ORUIManager orUIManager){
  super();
  orWindow=parent;
  this.orUIManager=orUIManager;
  GameUIManager gameUIManager=parent.gameUIManager;
  statusPanel=new JPanel();
  gb=new GridBagLayout();
  statusPanel.setLayout(gb);
  statusPanel.setBorder(BorderFactory.createEtchedBorder());
  statusPanel.setOpaque(true);
  gridPanel=statusPanel;
  parentFrame=parent;
  round=gameUIManager.getCurrentRound();
  privatesCanBeBought=gameUIManager.getGameParameterAsBoolean(GuiDef.Parm.CAN_ANY_COMPANY_BUY_PRIVATES);
  bonusTokensExist=gameUIManager.getGameParameterAsBoolean(GuiDef.Parm.DO_BONUS_TOKENS_EXIST);
  hasCompanyLoans=gameUIManager.getGameParameterAsBoolean(GuiDef.Parm.HAS_ANY_COMPANY_LOANS);
  hasRights=gameUIManager.getGameParameterAsBoolean(GuiDef.Parm.HAS_ANY_RIGHTS);
  initButtonPanel();
  gbc=new GridBagConstraints();
  players=gameUIManager.getPlayers().toArray(new Player[0]);
  if (round instanceof OperatingRound) {
    companies=((OperatingRound)round).getOperatingCompanies().toArray(new PublicCompany[0]);
    nc=companies.length;
  }
  initFields();
  setLayout(new BorderLayout());
  add(statusPanel,BorderLayout.CENTER);
  add(buttonPanel,BorderLayout.SOUTH);
  menuBar=new JMenuBar();
  infoMenu=new JMenu(LocalText.getText("String_Node_Str"));
  infoMenu.setEnabled(true);
  remainingTilesMenuItem=new JMenuItem(LocalText.getText("String_Node_Str"));
  remainingTilesMenuItem.addActionListener(this);
  remainingTilesMenuItem.setActionCommand(REM_TILES_CMD);
  infoMenu.add(remainingTilesMenuItem);
  menuBar.add(infoMenu);
  addCompanyInfo();
  addTrainsInfo();
  addPhasesInfo();
  addNetworkInfo();
  specialMenu=new JMenu(LocalText.getText("String_Node_Str"));
  specialMenu.setBackground(Color.YELLOW);
  specialMenu.setEnabled(false);
  menuBar.add(specialMenu);
  if (hasCompanyLoans) {
    loansMenu=new JMenu(LocalText.getText("String_Node_Str"));
    loansMenu.setEnabled(true);
    takeLoans=new ActionMenuItem(LocalText.getText("String_Node_Str"));
    takeLoans.addActionListener(this);
    takeLoans.setEnabled(false);
    loansMenu.add(takeLoans);
    menuItemsToReset.add(takeLoans);
    repayLoans=new ActionMenuItem(LocalText.getText("String_Node_Str"));
    repayLoans.addActionListener(this);
    repayLoans.setEnabled(false);
    loansMenu.add(repayLoans);
    menuItemsToReset.add(repayLoans);
    menuBar.add(loansMenu);
  }
  zoomMenu=new JMenu("String_Node_Str");
  zoomMenu.setEnabled(true);
  zoomIn=new JMenuItem("String_Node_Str");
  zoomIn.addActionListener(this);
  zoomIn.setEnabled(true);
  zoomMenu.add(zoomIn);
  zoomOut=new JMenuItem("String_Node_Str");
  zoomOut.addActionListener(this);
  zoomOut.setEnabled(true);
  zoomMenu.add(zoomOut);
  calibrateMap=new JMenuItem("String_Node_Str");
  calibrateMap.addActionListener(this);
  calibrateMap.setEnabled(true);
  zoomMenu.add(calibrateMap);
  menuBar.add(zoomMenu);
  add(menuBar,BorderLayout.NORTH);
  setVisible(true);
  addKeyListener(this);
}

Fixed version (ground truth):
public ORPanel(ORWindow parent,ORUIManager orUIManager){
  super();
  orWindow=parent;
  this.orUIManager=orUIManager;
  GameUIManager gameUIManager=parent.gameUIManager;
  statusPanel=new JPanel();
  gb=new GridBagLayout();
  statusPanel.setLayout(gb);
  statusPanel.setBorder(BorderFactory.createEtchedBorder());
  statusPanel.setOpaque(true);
  gridPanel=statusPanel;
  parentFrame=parent;
  round=gameUIManager.getCurrentRound();
  privatesCanBeBought=gameUIManager.getGameParameterAsBoolean(GuiDef.Parm.CAN_ANY_COMPANY_BUY_PRIVATES);
  bonusTokensExist=gameUIManager.getGameParameterAsBoolean(GuiDef.Parm.DO_BONUS_TOKENS_EXIST);
  hasCompanyLoans=gameUIManager.getGameParameterAsBoolean(GuiDef.Parm.HAS_ANY_COMPANY_LOANS);
  hasRights=gameUIManager.getGameParameterAsBoolean(GuiDef.Parm.HAS_ANY_RIGHTS);
  initButtonPanel();
  gbc=new GridBagConstraints();
  players=gameUIManager.getPlayers().toArray(new Player[0]);
  if (round instanceof OperatingRound) {
    companies=((OperatingRound)round).getOperatingCompanies().toArray(new PublicCompany[0]);
    nc=companies.length;
  }
  initFields();
  setLayout(new BorderLayout());
  add(statusPanel,BorderLayout.CENTER);
  add(buttonPanel,BorderLayout.SOUTH);
  menuBar=new JMenuBar();
  infoMenu=new JMenu(LocalText.getText("String_Node_Str"));
  infoMenu.setEnabled(true);
  remainingTilesMenuItem=new JMenuItem(LocalText.getText("String_Node_Str"));
  remainingTilesMenuItem.addActionListener(this);
  remainingTilesMenuItem.setActionCommand(REM_TILES_CMD);
  infoMenu.add(remainingTilesMenuItem);
  menuBar.add(infoMenu);
  addCompanyInfo();
  addTrainsInfo();
  addPhasesInfo();
  addNetworkInfo();
  specialMenu=new JMenu(LocalText.getText("String_Node_Str"));
  specialMenu.setBackground(Color.YELLOW);
  specialMenu.setEnabled(false);
  menuBar.add(specialMenu);
  if (hasCompanyLoans) {
    loansMenu=new JMenu(LocalText.getText("String_Node_Str"));
    loansMenu.setEnabled(true);
    takeLoans=new ActionMenuItem(LocalText.getText("String_Node_Str"));
    takeLoans.addActionListener(this);
    takeLoans.setEnabled(false);
    loansMenu.add(takeLoans);
    menuItemsToReset.add(takeLoans);
    repayLoans=new ActionMenuItem(LocalText.getText("String_Node_Str"));
    repayLoans.addActionListener(this);
    repayLoans.setEnabled(false);
    loansMenu.add(repayLoans);
    menuItemsToReset.add(repayLoans);
    menuBar.add(loansMenu);
  }
  zoomMenu=new JMenu("String_Node_Str");
  zoomMenu.setEnabled(true);
  zoomIn=new JMenuItem("String_Node_Str");
  zoomIn.addActionListener(this);
  zoomIn.setEnabled(true);
  zoomMenu.add(zoomIn);
  zoomOut=new JMenuItem("String_Node_Str");
  zoomOut.addActionListener(this);
  zoomOut.setEnabled(true);
  zoomMenu.add(zoomOut);
  calibrateMap=new JMenuItem("String_Node_Str");
  calibrateMap.addActionListener(this);
  calibrateMap.setEnabled(RailsRoot.getDevelop());
  zoomMenu.add(calibrateMap);
  menuBar.add(zoomMenu);
  add(menuBar,BorderLayout.NORTH);
  setVisible(true);
  addKeyListener(this);
}