Program: 57495
Project: 57495
Buggy source:
@Override public void init(){
  if (dataSetDescription.isTransposeMatrix()) {
    recordIDCategory=IDCategory.getIDCategory(dataSetDescription.getColumnIDSpecification().getIdCategory());
    dimensionIDCategory=IDCategory.getIDCategory(dataSetDescription.getRowIDSpecification().getIdCategory());
  }
 else {
    recordIDCategory=IDCategory.getIDCategory(dataSetDescription.getRowIDSpecification().getIdCategory());
    dimensionIDCategory=IDCategory.getIDCategory(dataSetDescription.getColumnIDSpecification().getIdCategory());
  }
  recordIDType=IDType.registerType("String_Node_Str" + dataDomainID + "String_Node_Str"+ hashCode(),recordIDCategory,EDataType.INT);
  recordIDType.setInternalType(true);
  dimensionIDType=IDType.registerType("String_Node_Str" + dataDomainID + "String_Node_Str"+ hashCode(),dimensionIDCategory,EDataType.INT);
  dimensionIDType.setInternalType(true);
  recordGroupIDCategory=IDCategory.registerCategory(recordIDCategory.getCategoryName() + "String_Node_Str");
  recordGroupIDCategory.setInternalCategory(true);
  recordGroupIDType=IDType.registerType("String_Node_Str" + dataDomainID + "String_Node_Str"+ hashCode(),recordGroupIDCategory,EDataType.INT);
  recordGroupIDType.setInternalType(true);
  dimensionGroupIDCategory=IDCategory.registerCategory(dimensionIDCategory.getCategoryName() + "String_Node_Str");
  dimensionGroupIDCategory.setInternalCategory(true);
  dimensionGroupIDType=IDType.registerType("String_Node_Str" + dataDomainID + "String_Node_Str"+ hashCode(),dimensionGroupIDCategory,EDataType.INT);
  recordIDMappingManager=IDMappingManagerRegistry.get().getIDMappingManager(recordIDCategory);
  dimensionIDMappingManager=IDMappingManagerRegistry.get().getIDMappingManager(dimensionIDCategory);
  recordSelectionManager=new RecordSelectionManager(recordIDType);
  dimensionSelectionManager=new DimensionSelectionManager(dimensionIDType);
  recordGroupSelectionManager=new SelectionManager(recordGroupIDType);
  addIDCategory(dimensionIDCategory);
  addIDCategory(recordIDCategory);
  super.init();
}

Fixed version (ground truth):
@Override public void init(){
  if (dataSetDescription.isTransposeMatrix()) {
    recordIDCategory=IDCategory.getIDCategory(dataSetDescription.getColumnIDSpecification().getIdCategory());
    dimensionIDCategory=IDCategory.getIDCategory(dataSetDescription.getRowIDSpecification().getIdCategory());
  }
 else {
    recordIDCategory=IDCategory.getIDCategory(dataSetDescription.getRowIDSpecification().getIdCategory());
    dimensionIDCategory=IDCategory.getIDCategory(dataSetDescription.getColumnIDSpecification().getIdCategory());
  }
  recordIDType=IDType.registerType("String_Node_Str" + dataDomainID + "String_Node_Str"+ hashCode(),recordIDCategory,EDataType.INT);
  recordIDType.setInternalType(true);
  dimensionIDType=IDType.registerType("String_Node_Str" + dataDomainID + "String_Node_Str"+ hashCode(),dimensionIDCategory,EDataType.INT);
  dimensionIDType.setInternalType(true);
  recordGroupIDCategory=IDCategory.registerCategory(recordIDCategory.getCategoryName() + "String_Node_Str");
  recordGroupIDCategory.setInternalCategory(true);
  recordGroupIDType=IDType.registerType("String_Node_Str" + dataDomainID + "String_Node_Str"+ hashCode(),recordGroupIDCategory,EDataType.INT);
  recordGroupIDType.setInternalType(true);
  dimensionGroupIDCategory=IDCategory.registerCategory(dimensionIDCategory.getCategoryName() + "String_Node_Str");
  dimensionGroupIDCategory.setInternalCategory(true);
  dimensionGroupIDType=IDType.registerType("String_Node_Str" + dataDomainID + "String_Node_Str"+ hashCode(),dimensionGroupIDCategory,EDataType.INT);
  dimensionGroupIDType.setInternalType(true);
  recordIDMappingManager=IDMappingManagerRegistry.get().getIDMappingManager(recordIDCategory);
  dimensionIDMappingManager=IDMappingManagerRegistry.get().getIDMappingManager(dimensionIDCategory);
  recordSelectionManager=new RecordSelectionManager(recordIDType);
  dimensionSelectionManager=new DimensionSelectionManager(dimensionIDType);
  recordGroupSelectionManager=new SelectionManager(recordGroupIDType);
  addIDCategory(dimensionIDCategory);
  addIDCategory(recordIDCategory);
  super.init();
}