Program: 87309
Project: 87309
Buggy source:
private void createProtocolTable(){
  TableModel tm=new AbstractTableModel(){
    public int getRowCount(){
      return 1 + _patterns.size();
    }
    public int getColumnCount(){
      return 2 + _responses.size();
    }
    private int getErrors(    int trial){
      int errors=0;
      for (int i=0, n=_patterns.size(); i < n; ++i) {
        if (_responses.get(trial).get(i).equals(_patterns.get(i).getSecond())) {
        }
 else {
          errors+=1;
        }
      }
      return errors;
    }
    public Object getValueAt(    int row,    int column){
      if (column == 0) {
        if (row == _patterns.size()) {
          return "String_Node_Str";
        }
 else {
          return _patterns.get(row).getFirst();
        }
      }
 else       if (column == 1) {
        if (row == _patterns.size()) {
          return "String_Node_Str";
        }
 else {
          return _patterns.get(row).getSecond();
        }
      }
 else {
        if (row == _patterns.size()) {
          return "String_Node_Str" + getErrors(column - 2);
        }
 else {
          return _responses.get(column - 2).get(row).toString();
        }
      }
    }
    public String getColumnName(    int column){
      if (column == 0) {
        return "String_Node_Str";
      }
 else       if (column == 1) {
        return "String_Node_Str";
      }
 else {
        return "String_Node_Str" + (column - 1);
      }
    }
    public void fireTableStructureChanged(){
      super.fireTableStructureChanged();
      _protocolHorizontalBar.setValue(_protocolHorizontalBar.getMaximum());
    }
  }
;
  _protocol=new JTable(tm);
  _protocol.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
}

Fixed version (ground truth):
private void createProtocolTable(){
  TableModel tm=new AbstractTableModel(){
    public int getRowCount(){
      return 1 + _patterns.size();
    }
    public int getColumnCount(){
      return 2 + _responses.size();
    }
    private int getErrors(    int trial){
      int errors=0;
      for (int i=0, n=_patterns.size(); i < n; ++i) {
        ListPattern target=_responses.get(trial).get(i).clone();
        ListPattern response=_patterns.get(i).getSecond().clone();
        target.setNotFinished();
        response.setNotFinished();
        if (response.equals(target)) {
        }
 else {
          errors+=1;
        }
      }
      return errors;
    }
    public Object getValueAt(    int row,    int column){
      if (column == 0) {
        if (row == _patterns.size()) {
          return "String_Node_Str";
        }
 else {
          return _patterns.get(row).getFirst();
        }
      }
 else       if (column == 1) {
        if (row == _patterns.size()) {
          return "String_Node_Str";
        }
 else {
          return _patterns.get(row).getSecond();
        }
      }
 else {
        if (row == _patterns.size()) {
          return "String_Node_Str" + getErrors(column - 2);
        }
 else {
          return _responses.get(column - 2).get(row).toString();
        }
      }
    }
    public String getColumnName(    int column){
      if (column == 0) {
        return "String_Node_Str";
      }
 else       if (column == 1) {
        return "String_Node_Str";
      }
 else {
        return "String_Node_Str" + (column - 1);
      }
    }
    public void fireTableStructureChanged(){
      super.fireTableStructureChanged();
      _protocolHorizontalBar.setValue(_protocolHorizontalBar.getMaximum());
    }
  }
;
  _protocol=new JTable(tm);
  _protocol.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
}