Program: 5791
Project: 5791
Buggy source:
public ControlUI(MSP430 cpu,ELF elf){
  super(new GridLayout(0,1));
  this.cpu=cpu;
  this.stackUI=new StackUI(cpu);
  stackWindow=new JFrame("String_Node_Str");
  stackWindow.add(this.stackUI);
  WindowUtils.restoreWindowBounds("String_Node_Str",stackWindow);
  WindowUtils.addSaveOnShutdown("String_Node_Str",stackWindow);
  stackWindow.setVisible(true);
  window=new JFrame(TITLE);
  window.setLayout(new BorderLayout());
  window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  window.add(this,BorderLayout.WEST);
  window.add(dui=new DebugUI(cpu),BorderLayout.CENTER);
  createButton("String_Node_Str");
  createButton("String_Node_Str");
  stepAction=new AbstractAction("String_Node_Str"){
    public void actionPerformed(    ActionEvent e){
      ControlUI.this.cpu.step();
      dui.repaint();
      if (elfData != null && sourceViewer != null && sourceViewer.isVisible()) {
        int pc=ControlUI.this.cpu.readRegister(MSP430Constants.PC);
        DebugInfo dbg=elfData.getDebugInfo(pc);
        if (dbg != null) {
          if (ControlUI.this.cpu.getDebug()) {
            System.out.println("String_Node_Str" + Integer.toString(pc,16) + "String_Node_Str"+ dbg.getFile()+ ':'+ dbg.getLine());
          }
          sourceViewer.viewFile(dbg.getPath(),dbg.getFile());
          sourceViewer.viewLine(dbg.getLine());
        }
      }
    }
  }
;
  stepAction.putValue(Action.MNEMONIC_KEY,new Integer(KeyEvent.VK_S));
  stepAction.setEnabled(false);
  JButton stepButton=new JButton(stepAction);
  add(stepButton);
  if (elf != null) {
    createButton("String_Node_Str");
  }
  createButton("String_Node_Str");
  stepButton.getInputMap(WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK),"String_Node_Str");
  stepButton.getActionMap().put("String_Node_Str",stepAction);
  WindowUtils.restoreWindowBounds("String_Node_Str",window);
  WindowUtils.addSaveOnShutdown("String_Node_Str",window);
  window.setVisible(true);
  elfData=elf;
}

Fixed version (ground truth):
public ControlUI(MSP430 cpu,ELF elf){
  super(new GridLayout(0,1));
  this.cpu=cpu;
  this.stackUI=new StackUI(cpu);
  stackWindow=new JFrame("String_Node_Str");
  stackWindow.add(this.stackUI);
  WindowUtils.restoreWindowBounds("String_Node_Str",stackWindow);
  WindowUtils.addSaveOnShutdown("String_Node_Str",stackWindow);
  stackWindow.setVisible(true);
  window=new JFrame(TITLE);
  window.setLayout(new BorderLayout());
  window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  window.add(this,BorderLayout.WEST);
  window.add(dui=new DebugUI(cpu),BorderLayout.CENTER);
  createButton("String_Node_Str");
  createButton("String_Node_Str");
  stepAction=new AbstractAction("String_Node_Str"){
    public void actionPerformed(    ActionEvent e){
      ControlUI.this.cpu.step();
      dui.updateRegs();
      dui.repaint();
      if (elfData != null && sourceViewer != null && sourceViewer.isVisible()) {
        int pc=ControlUI.this.cpu.readRegister(MSP430Constants.PC);
        DebugInfo dbg=elfData.getDebugInfo(pc);
        if (dbg != null) {
          if (ControlUI.this.cpu.getDebug()) {
            System.out.println("String_Node_Str" + Integer.toString(pc,16) + "String_Node_Str"+ dbg.getFile()+ ':'+ dbg.getLine());
          }
          sourceViewer.viewFile(dbg.getPath(),dbg.getFile());
          sourceViewer.viewLine(dbg.getLine());
        }
      }
    }
  }
;
  stepAction.putValue(Action.MNEMONIC_KEY,new Integer(KeyEvent.VK_S));
  stepAction.setEnabled(false);
  JButton stepButton=new JButton(stepAction);
  add(stepButton);
  if (elf != null) {
    createButton("String_Node_Str");
  }
  createButton("String_Node_Str");
  stepButton.getInputMap(WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK),"String_Node_Str");
  stepButton.getActionMap().put("String_Node_Str",stepAction);
  WindowUtils.restoreWindowBounds("String_Node_Str",window);
  WindowUtils.addSaveOnShutdown("String_Node_Str",window);
  window.setVisible(true);
  elfData=elf;
}