Program: 108475
Project: 108475
Buggy source:
@Test public void testMultipleDataHandlesForkSync() throws IllegalArgumentException, IOException {
  provider.createDataDefinition();
  final ARXAnonymizer anonymizer=new ARXAnonymizer();
  anonymizer.setSuppressionString("String_Node_Str");
  final DataHandle inHandle=provider.getData().getHandle();
  final ARXConfiguration config=ARXConfiguration.create();
  config.addCriterion(new KAnonymity(2));
  config.setMaxOutliers(0d);
  final ARXResult result=anonymizer.anonymize(provider.getData(),config);
  ARXLattice lattice=result.getLattice();
  ARXNode topNode=lattice.getTop();
  ARXNode bottomNode=lattice.getBottom();
  DataHandle optimal=result.getOutput();
  DataHandle top=result.getOutput(topNode);
  DataHandle bottom=result.getOutput(bottomNode);
  optimal.sort(true,0);
  bottom.sort(false,2);
  final String[][] inArray=iteratorToArray(inHandle.iterator());
  final String[][] optimalArray=iteratorToArray(optimal.iterator());
  final String[][] topArray=iteratorToArray(top.iterator());
  final String[][] bottomArray=iteratorToArray(bottom.iterator());
  final String[][] topExpected={{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"}};
  final String[][] bottomExpected={{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"}};
  final String[][] optimalExpected={{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"}};
  assertTrue(Arrays.deepEquals(optimalArray,optimalExpected));
  assertTrue(Arrays.deepEquals(topArray,topExpected));
  assertTrue(Arrays.deepEquals(bottomArray,bottomExpected));
  assertTrue(Arrays.deepEquals(inArray,bottomExpected));
}

Fixed version (ground truth):
@Test public void testMultipleDataHandlesForkSync() throws IllegalArgumentException, IOException {
  provider.createDataDefinition();
  final ARXAnonymizer anonymizer=new ARXAnonymizer();
  anonymizer.setSuppressionString("String_Node_Str");
  final DataHandle inHandle=provider.getData().getHandle();
  final ARXConfiguration config=ARXConfiguration.create();
  config.addCriterion(new KAnonymity(2));
  config.setMaxOutliers(0d);
  final ARXResult result=anonymizer.anonymize(provider.getData(),config);
  ARXLattice lattice=result.getLattice();
  ARXNode topNode=lattice.getTop();
  ARXNode bottomNode=lattice.getBottom();
  DataHandle optimal=result.getOutput();
  DataHandle top=result.getOutput(topNode);
  DataHandle bottom=result.getOutput(bottomNode);
  optimal.sort(false,0);
  bottom.sort(true,2);
  final String[][] inArray=iteratorToArray(inHandle.iterator());
  final String[][] optimalArray=iteratorToArray(optimal.iterator());
  final String[][] topArray=iteratorToArray(top.iterator());
  final String[][] bottomArray=iteratorToArray(bottom.iterator());
  final String[][] topExpected={{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"}};
  final String[][] bottomExpected={{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"}};
  final String[][] optimalExpected={{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str"}};
  assertTrue(Arrays.deepEquals(optimalArray,optimalExpected));
  assertTrue(Arrays.deepEquals(topArray,topExpected));
  assertTrue(Arrays.deepEquals(bottomArray,bottomExpected));
  assertTrue(Arrays.deepEquals(inArray,bottomExpected));
}