Program: 180346
Project: 180346
Buggy source:
@Override public VerificationResult compute() throws ComputationFailedException {
  SpawnedDataBlock spawned=spawner.spawn(initialSpace,initialSampling);
  VerificationResult result=null;
  int iteration=0;
  while (spawned.size() != 0) {
    iteration++;
    LOGGER.info("String_Node_Str" + iteration + "String_Node_Str"+ spawned.size()+ "String_Node_Str");
    SimulatedDataBlock simulated=simulator.simulate(simulationConfiguration,spawned);
    for (int i=0; i < spawned.size(); i++) {
      LinkedTrajectory.createAndUpdateReference(spawned.getTrajectory(i)).append(simulated.getTrajectory(i));
    }
    if (spawned.getSecondaryTrajectories().size() > 0) {
      SimulatedDataBlock simulatedSecondary=simulator.simulate(simulationConfiguration,spawned.getSecondaryTrajectories());
      for (int i=0; i < spawned.getSecondaryTrajectories().size(); i++) {
        LinkedTrajectory.createAndUpdateReference(spawned.getSecondaryTrajectories().getTrajectory(i)).append(simulatedSecondary.getTrajectory(i));
      }
    }
    VerifiedDataBlock<Trajectory> verified=verifier.verify(simulated,property);
    if (result == null) {
      result=new VerifiedDataBlockResultAdapter(verified);
    }
 else {
      result=result.merge(new VerifiedDataBlockResultAdapter(verified));
    }
    if (iterationLimit != 0 && iteration >= iterationLimit) {
      LOGGER.warn("String_Node_Str" + iterationLimit + "String_Node_Str");
      break;
    }
    DistanceCheckedDataBlock distanceChecked=distanceChecker.check(spawned.getConfiguration(),verified);
    spawned=spawner.spawn(spawned.getConfiguration(),distanceChecked);
  }
  if (LOGGER.isDebugEnabled()) {
    for (int i=0; i < result.size(); i++) {
      LOGGER.debug("String_Node_Str" + result.getPoint(i) + "String_Node_Str"+ result.getRobustness(i).getValue());
    }
  }
  return result;
}

Fixed version (ground truth):
@Override public VerificationResult compute() throws ComputationFailedException {
  SpawnedDataBlock spawned=spawner.spawn(initialSpace,initialSampling);
  int batchSize=(int)Math.ceil(spawned.size() / (float)(threadId.maxId() + 1));
  int batchStart=batchSize * threadId.currentId();
  int batchEnd=Math.min(batchSize * (threadId.currentId() + 1),spawned.size());
  List<Trajectory> localSpawned=new ArrayList<>(batchSize);
  List<Trajectory> localSecondarySpawned=new ArrayList<>();
  for (int i=batchStart; i < batchEnd; i++) {
    localSpawned.add(spawned.getTrajectory(i));
    for (    Trajectory secondary : spawned.getConfiguration().getNeighborhood().getNeighbors(spawned.getTrajectory(i))) {
      localSecondarySpawned.add(secondary);
    }
  }
  spawned=new SpawnedDataBlockWrapper(new ListDataBlock<>(localSpawned),spawned.getConfiguration(),new ListDataBlock<>(localSecondarySpawned));
  VerificationResult result=null;
  int iteration=0;
  while (spawned.size() != 0) {
    iteration++;
    LOGGER.info("String_Node_Str" + threadId.currentId() + "String_Node_Str"+ iteration+ "String_Node_Str"+ spawned.size()+ "String_Node_Str");
    SimulatedDataBlock simulated=simulator.simulate(simulationConfiguration,spawned);
    for (int i=0; i < spawned.size(); i++) {
      LinkedTrajectory.createAndUpdateReference(spawned.getTrajectory(i)).append(simulated.getTrajectory(i));
    }
    if (spawned.getSecondaryTrajectories().size() > 0) {
      SimulatedDataBlock simulatedSecondary=simulator.simulate(simulationConfiguration,spawned.getSecondaryTrajectories());
      for (int i=0; i < spawned.getSecondaryTrajectories().size(); i++) {
        LinkedTrajectory.createAndUpdateReference(spawned.getSecondaryTrajectories().getTrajectory(i)).append(simulatedSecondary.getTrajectory(i));
      }
    }
    VerifiedDataBlock<Trajectory> verified=verifier.verify(simulated,property);
    if (result == null) {
      result=new VerifiedDataBlockResultAdapter(verified);
    }
 else {
      result=result.merge(new VerifiedDataBlockResultAdapter(verified));
    }
    if (iterationLimit != 0 && iteration == iterationLimit) {
      LOGGER.warn("String_Node_Str" + threadId.currentId() + "String_Node_Str"+ iterationLimit+ "String_Node_Str");
      break;
    }
    DistanceCheckedDataBlock distanceChecked=distanceChecker.check(spawned.getConfiguration(),verified);
    spawned=spawner.spawn(spawned.getConfiguration(),distanceChecked);
  }
  return result;
}