Program: 57839
Project: 57839
Buggy source:
/** 
 * Creates the set from a previously prepared dimension definition.
 */
public static DataTable createData(ATableBasedDataDomain dataDomain,boolean createDefaultPerspectives){
  LoadDataParameters loadDataParameters=dataDomain.getLoadDataParameters();
  ArrayList<Integer> dimensionIDs=loadDataParameters.getColumnIds();
  CmdDataCreateTable cmdCreateSet=(CmdDataCreateTable)GeneralManager.get().getCommandManager().createCommandByType(CommandType.CREATE_DATA_TABLE);
  cmdCreateSet.setAttributes(dimensionIDs,dataDomain);
  cmdCreateSet.doCommand();
  CmdLoadFileLookupTable cmdLoadLookupTableFile=(CmdLoadFileLookupTable)GeneralManager.get().getCommandManager().createCommandByType(CommandType.LOAD_LOOKUP_TABLE_FILE);
  String lookupTableInfo=loadDataParameters.getFileIDTypeName() + "String_Node_Str" + dataDomain.getRecordIDType().getTypeName()+ "String_Node_Str";
  cmdLoadLookupTableFile.setAttributes(loadDataParameters.getFileName(),loadDataParameters.getStartParseFileAtLine(),-1,lookupTableInfo,loadDataParameters.getDelimiter(),"String_Node_Str",dataDomain.getRecordIDCategory());
  cmdLoadLookupTableFile.doCommand();
  CmdLoadFileNDimensions cmdLoadCSV=(CmdLoadFileNDimensions)GeneralManager.get().getCommandManager().createCommandByType(CommandType.LOAD_DATA_FILE);
  cmdLoadCSV.setAttributes(dimensionIDs,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):
/** 
 * Creates the set from a previously prepared dimension definition.
 */
public static DataTable createData(ATableBasedDataDomain dataDomain,boolean createDefaultPerspectives){
  LoadDataParameters loadDataParameters=dataDomain.getLoadDataParameters();
  ArrayList<Integer> dimensionIDs=loadDataParameters.getColumnIds();
  CmdDataCreateTable cmdCreateSet=(CmdDataCreateTable)GeneralManager.get().getCommandManager().createCommandByType(CommandType.CREATE_DATA_TABLE);
  cmdCreateSet.setAttributes(dimensionIDs,dataDomain);
  cmdCreateSet.doCommand();
  CmdLoadFileLookupTable cmdLoadLookupTableFile=(CmdLoadFileLookupTable)GeneralManager.get().getCommandManager().createCommandByType(CommandType.LOAD_LOOKUP_TABLE_FILE);
  IDType rowIDType;
  if (dataDomain.isColumnDimension())   rowIDType=dataDomain.getRecordIDType();
 else   rowIDType=dataDomain.getDimensionIDType();
  String lookupTableInfo=loadDataParameters.getFileIDTypeName() + "String_Node_Str" + rowIDType+ "String_Node_Str";
  cmdLoadLookupTableFile.setAttributes(loadDataParameters.getFileName(),loadDataParameters.getStartParseFileAtLine(),-1,lookupTableInfo,loadDataParameters.getDelimiter(),"String_Node_Str",rowIDType.getIDCategory());
  cmdLoadLookupTableFile.doCommand();
  CmdLoadFileNDimensions cmdLoadCSV=(CmdLoadFileNDimensions)GeneralManager.get().getCommandManager().createCommandByType(CommandType.LOAD_DATA_FILE);
  cmdLoadCSV.setAttributes(dimensionIDs,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;
}