Program: 108916
Project: 108916
Buggy source:
/** 
 * Initializer
 * @param manager
 * @param checker
 * @param time
 * @param suppressionString
 * @param defintion
 * @param lattice
 * @param removeOutliers
 * @param config
 */
private void init(final DataManager manager,final INodeChecker checker,final long time,final String suppressionString,final DataDefinition defintion,final ARXLattice lattice,final boolean removeOutliers,final ARXConfiguration config){
  this.config=config;
  this.removeOutliers=removeOutliers;
  this.lattice=lattice;
  this.optimalNode=this.lattice.getOptimum();
  this.duration=time;
  this.currentNode=optimalNode;
  this.lastNode=null;
  this.suppressionString=suppressionString;
  this.checker=checker;
  this.definition=defintion;
  dataQI=checker.getBuffer();
  dataSE=manager.getDataSE();
  dataIS=manager.getDataIS();
  super.header=manager.getHeader();
  final GeneralizationHierarchy[] hierarchies=manager.getHierarchies();
  quasiIdentifiers=new String[hierarchies.length];
  map=new int[hierarchies.length][][];
  for (int i=0; i < hierarchies.length; i++) {
    quasiIdentifiers[i]=hierarchies[i].getName();
    map[i]=hierarchies[i].getArray();
  }
  inverseMap=new int[header.length];
  for (int i=0; i < inverseMap.length; i++) {
    inverseMap[i]=(AttributeType.ATTR_TYPE_ID << AttributeType.SHIFT);
  }
  for (int i=0; i < dataQI.getMap().length; i++) {
    inverseMap[dataQI.getMap()[i]]=i | (AttributeType.ATTR_TYPE_QI << AttributeType.SHIFT);
  }
  for (int i=0; i < dataSE.getMap().length; i++) {
    inverseMap[dataSE.getMap()[i]]=i | (AttributeType.ATTR_TYPE_SE << AttributeType.SHIFT);
  }
  for (int i=0; i < dataIS.getMap().length; i++) {
    inverseMap[dataIS.getMap()[i]]=i | (AttributeType.ATTR_TYPE_IS << AttributeType.SHIFT);
  }
  inverseData=new int[3][][];
  inverseData[AttributeType.ATTR_TYPE_IS]=dataIS.getArray();
  inverseData[AttributeType.ATTR_TYPE_SE]=dataSE.getArray();
  inverseData[AttributeType.ATTR_TYPE_QI]=dataQI.getArray();
  inverseDictionaries=new Dictionary[3];
  inverseDictionaries[AttributeType.ATTR_TYPE_IS]=dataIS.getDictionary();
  inverseDictionaries[AttributeType.ATTR_TYPE_SE]=dataSE.getDictionary();
  inverseDictionaries[AttributeType.ATTR_TYPE_QI]=dataQI.getDictionary();
  this.getRegistry().createOutputSubset(config);
}

Fixed version (ground truth):
/** 
 * Initializer
 * @param manager
 * @param checker
 * @param time
 * @param suppressionString
 * @param defintion
 * @param lattice
 * @param removeOutliers
 * @param config
 */
private void init(final DataManager manager,final INodeChecker checker,final long time,final String suppressionString,final DataDefinition defintion,final ARXLattice lattice,final boolean removeOutliers,final ARXConfiguration config){
  this.removeOutliers=removeOutliers;
  this.lattice=lattice;
  this.optimalNode=this.lattice.getOptimum();
  this.duration=time;
  this.currentNode=optimalNode;
  this.lastNode=null;
  this.suppressionString=suppressionString;
  this.checker=checker;
  this.definition=defintion;
  dataQI=checker.getBuffer();
  dataSE=manager.getDataSE();
  dataIS=manager.getDataIS();
  super.header=manager.getHeader();
  final GeneralizationHierarchy[] hierarchies=manager.getHierarchies();
  quasiIdentifiers=new String[hierarchies.length];
  map=new int[hierarchies.length][][];
  for (int i=0; i < hierarchies.length; i++) {
    quasiIdentifiers[i]=hierarchies[i].getName();
    map[i]=hierarchies[i].getArray();
  }
  inverseMap=new int[header.length];
  for (int i=0; i < inverseMap.length; i++) {
    inverseMap[i]=(AttributeType.ATTR_TYPE_ID << AttributeType.SHIFT);
  }
  for (int i=0; i < dataQI.getMap().length; i++) {
    inverseMap[dataQI.getMap()[i]]=i | (AttributeType.ATTR_TYPE_QI << AttributeType.SHIFT);
  }
  for (int i=0; i < dataSE.getMap().length; i++) {
    inverseMap[dataSE.getMap()[i]]=i | (AttributeType.ATTR_TYPE_SE << AttributeType.SHIFT);
  }
  for (int i=0; i < dataIS.getMap().length; i++) {
    inverseMap[dataIS.getMap()[i]]=i | (AttributeType.ATTR_TYPE_IS << AttributeType.SHIFT);
  }
  inverseData=new int[3][][];
  inverseData[AttributeType.ATTR_TYPE_IS]=dataIS.getArray();
  inverseData[AttributeType.ATTR_TYPE_SE]=dataSE.getArray();
  inverseData[AttributeType.ATTR_TYPE_QI]=dataQI.getArray();
  inverseDictionaries=new Dictionary[3];
  inverseDictionaries[AttributeType.ATTR_TYPE_IS]=dataIS.getDictionary();
  inverseDictionaries[AttributeType.ATTR_TYPE_SE]=dataSE.getDictionary();
  inverseDictionaries[AttributeType.ATTR_TYPE_QI]=dataQI.getDictionary();
  this.getRegistry().createOutputSubset(config);
}