Program: 31224
Project: 31224
Buggy source:
public LogPlayer() throws IOException {
  setLayout(new GridBagLayout());
  GridBagConstraints gbc=new GridBagConstraints();
  Insets insets=new Insets(0,0,0,0);
  int row=0;
  logName.setText("String_Node_Str");
  logName.setFont(new Font("String_Node_Str",Font.PLAIN,10));
  timeLabel.setFont(new Font("String_Node_Str",Font.PLAIN,10));
  posLabel.setFont(new Font("String_Node_Str",Font.PLAIN,10));
  Font buttonFont=new Font("String_Node_Str",Font.PLAIN,10);
  fasterButton.setFont(buttonFont);
  slowerButton.setFont(buttonFont);
  playButton.setFont(buttonFont);
  stepButton.setFont(buttonFont);
  JPanel p=new JPanel();
  p.setLayout(new FlowLayout());
  p.add(slowerButton);
  p.add(speedLabel);
  p.add(fasterButton);
  add(logName,new GridBagConstraints(0,row,3,1,0.0,0.0,WEST,NONE,insets,0,0));
  add(playButton,new GridBagConstraints(1,row,1,1,0.0,0.0,CENTER,NONE,insets,0,0));
  add(stepButton,new GridBagConstraints(2,row,1,1,0.0,0.0,CENTER,NONE,insets,0,0));
  add(p,new GridBagConstraints(3,row,REMAINDER,1,0.0,0.0,EAST,HORIZONTAL,insets,0,0));
  row++;
  add(js,new GridBagConstraints(0,row,REMAINDER,1,1.0,0.0,CENTER,HORIZONTAL,new Insets(0,5,0,5),0,0));
  row++;
  add(timeLabel,new GridBagConstraints(0,row,1,1,0.0,0.0,WEST,NONE,new Insets(0,10,0,0),0,0));
  add(posLabel,new GridBagConstraints(3,row,1,1,0.0,0.0,EAST,NONE,new Insets(0,0,0,10),0,0));
  row++;
  add(new JScrollPane(filterTable),new GridBagConstraints(0,row,REMAINDER,1,1.0,1.0,CENTER,BOTH,new Insets(0,0,0,0),0,0));
  row++;
  add(Box.createHorizontalStrut(90),new GridBagConstraints(0,row,1,1,0.0,0.0,CENTER,NONE,insets,0,0));
  add(Box.createHorizontalStrut(100),new GridBagConstraints(1,0,1,1,0.0,0.0,CENTER,NONE,insets,0,0));
  row++;
  JPanel stepPanel=new JPanel(new BorderLayout());
  stepPanel.add(new JLabel("String_Node_Str"),BorderLayout.WEST);
  stepPanel.add(stepChannelField,BorderLayout.CENTER);
  JButton toggleAllButton=new JButton("String_Node_Str");
  toggleAllButton.addActionListener(new ActionListener(){
    public void actionPerformed(    ActionEvent e){
      int[] rowIndices=filterTable.getSelectedRows();
      for (int i=0; i < rowIndices.length; ++i) {
        Filter f=filters.get(rowIndices[i]);
        f.enabled=!f.enabled;
      }
      filterTableModel.fireTableDataChanged();
      for (int i=0; i < rowIndices.length; ++i) {
        filterTable.addRowSelectionInterval(rowIndices[i],rowIndices[i]);
      }
    }
  }
);
  add(toggleAllButton,new GridBagConstraints(0,row,2,1,0.0,0.0,CENTER,NONE,insets,0,0));
  add(stepPanel,new GridBagConstraints(2,row,REMAINDER,1,1.0,0.0,CENTER,HORIZONTAL,new Insets(0,5,0,5),0,0));
  setPlaying(false);
  fasterButton.addActionListener(new ActionListener(){
    public void actionPerformed(    ActionEvent e){
      setSpeed(fasterSpeed(speed));
    }
  }
);
  slowerButton.addActionListener(new ActionListener(){
    public void actionPerformed(    ActionEvent e){
      setSpeed(slowerSpeed(speed));
    }
  }
);
  playButton.addActionListener(new ActionListener(){
    public void actionPerformed(    ActionEvent e){
      events.offer(new PlayPauseEvent());
    }
  }
);
  stepButton.addActionListener(new ActionListener(){
    public void actionPerformed(    ActionEvent e){
      events.offer(new StepEvent());
    }
  }
);
  lc=LC.getSingleton();
  lc.stopReader();
  logName.addMouseListener(new MouseAdapter(){
    public void mouseClicked(    MouseEvent e){
      if (e.getClickCount() == 2)       openDialog();
    }
  }
);
  timeLabel.addMouseListener(new MouseAdapter(){
    public void mouseClicked(    MouseEvent e){
      show_absolute_time=!show_absolute_time;
    }
  }
);
  js.set(0);
  js.addScrubberListener(new MyScrubberListener());
  filterTable.getColumnModel().getColumn(2).setMaxWidth(50);
  playButton.setEnabled(false);
  new UDPThread().start();
  new QueueThread().start();
}

Fixed version (ground truth):
public LogPlayer() throws IOException {
  setLayout(new GridBagLayout());
  GridBagConstraints gbc=new GridBagConstraints();
  Insets insets=new Insets(0,0,0,0);
  int row=0;
  logName.setText("String_Node_Str");
  logName.setFont(new Font("String_Node_Str",Font.PLAIN,10));
  timeLabel.setFont(new Font("String_Node_Str",Font.PLAIN,10));
  posLabel.setFont(new Font("String_Node_Str",Font.PLAIN,10));
  Font buttonFont=new Font("String_Node_Str",Font.PLAIN,10);
  fasterButton.setFont(buttonFont);
  slowerButton.setFont(buttonFont);
  playButton.setFont(buttonFont);
  stepButton.setFont(buttonFont);
  JPanel p=new JPanel();
  p.setLayout(new FlowLayout());
  p.add(slowerButton);
  p.add(speedLabel);
  p.add(fasterButton);
  add(logName,new GridBagConstraints(0,row,1,1,0.0,0.0,WEST,NONE,insets,0,0));
  add(playButton,new GridBagConstraints(1,row,1,1,0.0,0.0,CENTER,NONE,insets,0,0));
  add(stepButton,new GridBagConstraints(2,row,1,1,0.0,0.0,CENTER,NONE,insets,0,0));
  add(p,new GridBagConstraints(3,row,REMAINDER,1,0.0,0.0,EAST,HORIZONTAL,insets,0,0));
  row++;
  add(js,new GridBagConstraints(0,row,REMAINDER,1,1.0,0.0,CENTER,HORIZONTAL,new Insets(0,5,0,5),0,0));
  row++;
  add(timeLabel,new GridBagConstraints(0,row,1,1,0.0,0.0,WEST,NONE,new Insets(0,10,0,0),0,0));
  add(posLabel,new GridBagConstraints(3,row,1,1,0.0,0.0,EAST,NONE,new Insets(0,0,0,10),0,0));
  row++;
  add(new JScrollPane(filterTable),new GridBagConstraints(0,row,REMAINDER,1,1.0,1.0,CENTER,BOTH,new Insets(0,0,0,0),0,0));
  row++;
  add(Box.createHorizontalStrut(90),new GridBagConstraints(0,row,1,1,0.0,0.0,WEST,NONE,insets,0,0));
  add(Box.createHorizontalStrut(100),new GridBagConstraints(1,0,1,1,0.0,0.0,WEST,NONE,insets,0,0));
  row++;
  JPanel stepPanel=new JPanel(new BorderLayout());
  stepPanel.add(new JLabel("String_Node_Str"),BorderLayout.WEST);
  stepPanel.add(stepChannelField,BorderLayout.CENTER);
  JButton toggleAllButton=new JButton("String_Node_Str");
  toggleAllButton.addActionListener(new ActionListener(){
    public void actionPerformed(    ActionEvent e){
      int[] rowIndices=filterTable.getSelectedRows();
      for (int i=0; i < rowIndices.length; ++i) {
        Filter f=filters.get(rowIndices[i]);
        f.enabled=!f.enabled;
      }
      filterTableModel.fireTableDataChanged();
      for (int i=0; i < rowIndices.length; ++i) {
        filterTable.addRowSelectionInterval(rowIndices[i],rowIndices[i]);
      }
    }
  }
);
  add(toggleAllButton,new GridBagConstraints(0,row,2,1,0.0,0.0,CENTER,NONE,insets,0,0));
  add(stepPanel,new GridBagConstraints(2,row,REMAINDER,1,1.0,0.0,CENTER,HORIZONTAL,new Insets(0,5,0,5),0,0));
  setPlaying(false);
  fasterButton.addActionListener(new ActionListener(){
    public void actionPerformed(    ActionEvent e){
      setSpeed(fasterSpeed(speed));
    }
  }
);
  slowerButton.addActionListener(new ActionListener(){
    public void actionPerformed(    ActionEvent e){
      setSpeed(slowerSpeed(speed));
    }
  }
);
  playButton.addActionListener(new ActionListener(){
    public void actionPerformed(    ActionEvent e){
      events.offer(new PlayPauseEvent());
    }
  }
);
  stepButton.addActionListener(new ActionListener(){
    public void actionPerformed(    ActionEvent e){
      events.offer(new StepEvent());
    }
  }
);
  lc=LC.getSingleton();
  lc.stopReader();
  logName.addMouseListener(new MouseAdapter(){
    public void mouseClicked(    MouseEvent e){
      if (e.getClickCount() == 2)       openDialog();
    }
  }
);
  timeLabel.addMouseListener(new MouseAdapter(){
    public void mouseClicked(    MouseEvent e){
      show_absolute_time=!show_absolute_time;
    }
  }
);
  js.set(0);
  js.addScrubberListener(new MyScrubberListener());
  filterTable.getColumnModel().getColumn(2).setMaxWidth(50);
  playButton.setEnabled(false);
  new UDPThread().start();
  new QueueThread().start();
}