Program: 81513
Project: 81513
Buggy source:
/** 
 * ColumnRearranger to create output table
 */
private ColumnRearranger createColumnRearranger(DataTableSpec inSpec,final Integer idCol,final Integer idRow){
  ColumnRearranger rearranged_table=new ColumnRearranger(inSpec);
  DataColumnSpec newColSpec=new DataColumnSpecCreator("String_Node_Str",StringCell.TYPE).createSpec();
  String[] ColumnNames=inSpec.getColumnNames();
  CellFactory factory=new SingleCellFactory(newColSpec){
    public DataCell getCell(    DataRow row){
      DataCell dcell0=row.getCell(idCol);
      DataCell dcell1=row.getCell(idRow);
      String ConvData0=null;
      String ConvData1=null;
      String RowId=row.getKey().getString();
      if (dcell0.isMissing() || dcell1.isMissing()) {
        return DataType.getMissingCell();
      }
      if (dcell0.getType() == DoubleCell.TYPE || dcell0.getType() == IntCell.TYPE) {
        Integer ConvDataInt0=((IntValue)dcell0).getIntValue();
        if (ConvDataInt0 > TdsUtils.MAX_PLATE_COLUMN) {
          SendWarning(1,dcell0.toString(),RowId,ColumnNames[idCol]);
          return DataType.getMissingCell();
        }
        ConvData0=ConvDataInt0.toString();
      }
 else {
        SendWarning(1,dcell0.toString(),RowId,ColumnNames[idCol]);
        return DataType.getMissingCell();
      }
      if (dcell1.getType() == StringCell.TYPE) {
        ConvData1=((StringValue)dcell1).getStringValue();
        if (ConvData1.matches("String_Node_Str")) {
          ConvData1=ConvData1.toUpperCase();
        }
 else {
          SendWarning(1,dcell0.toString(),RowId,ColumnNames[idRow]);
          return DataType.getMissingCell();
        }
      }
      if (dcell1.getType() == DoubleCell.TYPE || dcell1.getType() == IntCell.TYPE) {
        Double ConvDataDouble=((DoubleValue)dcell1).getDoubleValue();
        if (ConvDataDouble > TdsUtils.MAX_PLATE_ROW) {
          SendWarning(1,dcell0.toString(),RowId,ColumnNames[idRow]);
          return DataType.getMissingCell();
        }
        try {
          Integer ConvDataInt=(int)ConvDataDouble.doubleValue();
          ConvData1=TdsUtils.mapPlateRowNumberToString(ConvDataInt);
          if (ConvData1 == null) {
            SendWarning(1,dcell0.toString(),RowId,ColumnNames[idRow]);
            return DataType.getMissingCell();
          }
        }
 catch (        NumberFormatException e) {
          setWarningMessage("String_Node_Str" + dcell0.toString());
          return DataType.getMissingCell();
        }
catch (        NullPointerException e) {
          setWarningMessage("String_Node_Str" + dcell0.toString() + "String_Node_Str");
          return DataType.getMissingCell();
        }
catch (        IndexOutOfBoundsException e) {
          setWarningMessage("String_Node_Str" + dcell1.toString() + "String_Node_Str");
          return DataType.getMissingCell();
        }
      }
      if (((SettingsModelBoolean)getModelSetting(CFG_formateColumn)).getBooleanValue() == true) {
        if (ConvData1.length() == 1) {
          ConvData1="String_Node_Str" + ConvData1;
        }
        if (ConvData0.length() == 1) {
          return new StringCell(ConvData1.concat("String_Node_Str").concat(ConvData0));
        }
      }
      return new StringCell(ConvData1.concat(ConvData0));
    }
  }
;
  rearranged_table.append(factory);
  return rearranged_table;
}

Fixed version (ground truth):
/** 
 * ColumnRearranger to create output table
 */
private ColumnRearranger createColumnRearranger(DataTableSpec inSpec,final Integer idCol,final Integer idRow){
  ColumnRearranger rearranged_table=new ColumnRearranger(inSpec);
  DataColumnSpec newColSpec=new DataColumnSpecCreator("String_Node_Str",StringCell.TYPE).createSpec();
  String[] ColumnNames=inSpec.getColumnNames();
  CellFactory factory=new SingleCellFactory(newColSpec){
    public DataCell getCell(    DataRow row){
      DataCell dcell0=row.getCell(idCol);
      DataCell dcell1=row.getCell(idRow);
      String ConvData0=null;
      String ConvData1=null;
      String RowId=row.getKey().getString();
      if (dcell0.isMissing() || dcell1.isMissing()) {
        return DataType.getMissingCell();
      }
      if (dcell0.getType() == DoubleCell.TYPE || dcell0.getType() == IntCell.TYPE) {
        Integer ConvDataInt0=null;
        if (dcell0.getType() == DoubleCell.TYPE) {
          Double ConvDataDouble=((DoubleValue)dcell0).getDoubleValue();
          ConvDataInt0=(int)ConvDataDouble.doubleValue();
        }
 else {
          ConvDataInt0=((IntValue)dcell0).getIntValue();
        }
        if (ConvDataInt0 > TdsUtils.MAX_PLATE_COLUMN) {
          SendWarning(1,dcell0.toString(),RowId,ColumnNames[idCol]);
          return DataType.getMissingCell();
        }
        ConvData0=ConvDataInt0.toString();
      }
 else {
        SendWarning(1,dcell0.toString(),RowId,ColumnNames[idCol]);
        return DataType.getMissingCell();
      }
      if (dcell1.getType() == StringCell.TYPE) {
        ConvData1=((StringValue)dcell1).getStringValue();
        if (ConvData1.matches("String_Node_Str")) {
          ConvData1=ConvData1.toUpperCase();
        }
 else {
          SendWarning(1,dcell0.toString(),RowId,ColumnNames[idRow]);
          return DataType.getMissingCell();
        }
      }
      if (dcell1.getType() == DoubleCell.TYPE || dcell1.getType() == IntCell.TYPE) {
        Double ConvDataDouble=((DoubleValue)dcell1).getDoubleValue();
        if (ConvDataDouble > TdsUtils.MAX_PLATE_ROW) {
          SendWarning(1,dcell0.toString(),RowId,ColumnNames[idRow]);
          return DataType.getMissingCell();
        }
        try {
          Integer ConvDataInt=(int)ConvDataDouble.doubleValue();
          ConvData1=TdsUtils.mapPlateRowNumberToString(ConvDataInt);
          if (ConvData1 == null) {
            SendWarning(1,dcell0.toString(),RowId,ColumnNames[idRow]);
            return DataType.getMissingCell();
          }
        }
 catch (        NumberFormatException e) {
          SendWarning(1,dcell0.toString(),RowId,ColumnNames[idCol]);
          return DataType.getMissingCell();
        }
catch (        NullPointerException e) {
          setWarningMessage("String_Node_Str");
          return DataType.getMissingCell();
        }
catch (        IndexOutOfBoundsException e) {
          SendWarning(1,dcell0.toString(),RowId,ColumnNames[idCol]);
          return DataType.getMissingCell();
        }
      }
      if (((SettingsModelBoolean)getModelSetting(CFG_formateColumn)).getBooleanValue() == true) {
        if (ConvData1.length() == 1) {
          ConvData1="String_Node_Str" + ConvData1;
        }
        if (ConvData0.length() == 1) {
          return new StringCell(ConvData1.concat("String_Node_Str").concat(ConvData0));
        }
      }
      return new StringCell(ConvData1.concat(ConvData0));
    }
  }
;
  rearranged_table.append(factory);
  return rearranged_table;
}