Program: 57870
Project: 57870
Buggy source:
public static DataTable createData(ATableBasedDataDomain dataDomain,boolean createDefaultPerspectives,AStringConverter stringConverter){
  LoadDataParameters loadDataParameters=dataDomain.getLoadDataParameters();
  ArrayList<Integer> columnIDs=loadDataParameters.getColumnIds();
  CmdDataCreateTable cmdCreateTable=(CmdDataCreateTable)GeneralManager.get().getCommandManager().createCommandByType(CommandType.CREATE_DATA_TABLE);
  cmdCreateTable.setAttributes(columnIDs,dataDomain);
  cmdCreateTable.doCommand();
  CmdParseIDMapping cmdParseIDMapping=(CmdParseIDMapping)GeneralManager.get().getCommandManager().createCommandByType(CommandType.PARSE_ID_MAPPING);
  IDType rowIDType;
  if (dataDomain.isColumnDimension())   rowIDType=dataDomain.getRecordIDType();
 else   rowIDType=dataDomain.getDimensionIDType();
  String lookupTableInfo=loadDataParameters.getFileIDTypeName() + "String_Node_Str" + rowIDType+ "String_Node_Str";
  cmdParseIDMapping.setAttributes(loadDataParameters.getFileName(),loadDataParameters.getStartParseFileAtLine(),-1,lookupTableInfo,loadDataParameters.getDelimiter(),"String_Node_Str",rowIDType.getIDCategory());
  cmdParseIDMapping.setStringConverter(stringConverter);
  cmdParseIDMapping.doCommand();
  CmdLoadFileNDimensions cmdLoadCSV=(CmdLoadFileNDimensions)GeneralManager.get().getCommandManager().createCommandByType(CommandType.LOAD_DATA_FILE);
  cmdLoadCSV.setAttributes(columnIDs,loadDataParameters);
  cmdLoadCSV.doCommand();
  if (!cmdLoadCSV.isParsingOK()) {
    return null;
  }
  DataTable table=dataDomain.getTable();
  if (createDefaultPerspectives) {
    table.createDefaultRecordPerspective();
    table.createDefaultDimensionPerspective();
  }
  if (loadDataParameters.isMinDefined()) {
    table.getMetaData().setMin(loadDataParameters.getMin());
  }
  if (loadDataParameters.isMaxDefined()) {
    table.getMetaData().setMax(loadDataParameters.getMax());
  }
  boolean isSetHomogeneous=loadDataParameters.isDataHomogeneous();
  if (loadDataParameters.getMathFilterMode().equals("String_Node_Str")) {
    table.setExternalDataRepresentation(ExternalDataRepresentation.NORMAL,isSetHomogeneous);
  }
 else   if (loadDataParameters.getMathFilterMode().equals("String_Node_Str")) {
    table.setExternalDataRepresentation(ExternalDataRepresentation.LOG10,isSetHomogeneous);
  }
 else   if (loadDataParameters.getMathFilterMode().equals("String_Node_Str")) {
    table.setExternalDataRepresentation(ExternalDataRepresentation.LOG2,isSetHomogeneous);
  }
 else   throw new IllegalStateException("String_Node_Str");
  return table;
}

Fixed version (ground truth):
public static DataTable createData(ATableBasedDataDomain dataDomain,boolean createDefaultPerspectives,AStringConverter stringConverter){
  LoadDataParameters loadDataParameters=dataDomain.getLoadDataParameters();
  ArrayList<Integer> columnIDs=loadDataParameters.getColumnIDs();
  CmdDataCreateTable cmdCreateTable=(CmdDataCreateTable)GeneralManager.get().getCommandManager().createCommandByType(CommandType.CREATE_DATA_TABLE);
  cmdCreateTable.setAttributes(columnIDs,dataDomain);
  cmdCreateTable.doCommand();
  CmdParseIDMapping cmdParseIDMapping=(CmdParseIDMapping)GeneralManager.get().getCommandManager().createCommandByType(CommandType.PARSE_ID_MAPPING);
  IDType rowIDType;
  if (dataDomain.isColumnDimension())   rowIDType=dataDomain.getRecordIDType();
 else   rowIDType=dataDomain.getDimensionIDType();
  String lookupTableInfo=loadDataParameters.getFileIDTypeName() + "String_Node_Str" + rowIDType+ "String_Node_Str";
  cmdParseIDMapping.setAttributes(loadDataParameters.getFileName(),loadDataParameters.getStartParseFileAtLine(),-1,lookupTableInfo,loadDataParameters.getDelimiter(),"String_Node_Str",rowIDType.getIDCategory());
  cmdParseIDMapping.setStringConverter(stringConverter);
  cmdParseIDMapping.doCommand();
  CmdLoadFileNDimensions cmdLoadCSV=(CmdLoadFileNDimensions)GeneralManager.get().getCommandManager().createCommandByType(CommandType.LOAD_DATA_FILE);
  cmdLoadCSV.setAttributes(columnIDs,loadDataParameters);
  cmdLoadCSV.doCommand();
  if (!cmdLoadCSV.isParsingOK()) {
    return null;
  }
  DataTable table=dataDomain.getTable();
  if (createDefaultPerspectives) {
    table.createDefaultRecordPerspective();
    table.createDefaultDimensionPerspective();
  }
  if (loadDataParameters.isMinDefined()) {
    table.getMetaData().setMin(loadDataParameters.getMin());
  }
  if (loadDataParameters.isMaxDefined()) {
    table.getMetaData().setMax(loadDataParameters.getMax());
  }
  boolean isSetHomogeneous=loadDataParameters.isDataHomogeneous();
  if (loadDataParameters.getMathFilterMode().equals("String_Node_Str")) {
    table.setExternalDataRepresentation(ExternalDataRepresentation.NORMAL,isSetHomogeneous);
  }
 else   if (loadDataParameters.getMathFilterMode().equals("String_Node_Str")) {
    table.setExternalDataRepresentation(ExternalDataRepresentation.LOG10,isSetHomogeneous);
  }
 else   if (loadDataParameters.getMathFilterMode().equals("String_Node_Str")) {
    table.setExternalDataRepresentation(ExternalDataRepresentation.LOG2,isSetHomogeneous);
  }
 else   throw new IllegalStateException("String_Node_Str");
  return table;
}