Program: 32341
Project: 32341
Buggy source:
/** 
 * Create a reachability index on a graph.
 * @throws InterruptedException 
 */
public void createIndex(){
  if (indexExists()) {
    throw new IllegalStateException("String_Node_Str");
  }
  long startTime=System.currentTimeMillis();
  Set<Entry<Long,Integer>> hopCoverages=getHopCoverages();
  long endTime=System.currentTimeMillis();
  logger.fine(format("String_Node_Str",TimeUnit.MILLISECONDS.toSeconds(endTime - startTime)));
  MemoryReachabilityIndex inMemoryIndex=new MemoryReachabilityIndex();
  TraversalDescription incomingTraversal=Traversal.description().breadthFirst().uniqueness(Uniqueness.NODE_GLOBAL).expand(new DirectionalPathExpander(Direction.INCOMING)).evaluator(new ReachabilityEvaluator(inMemoryIndex,Direction.INCOMING,forbiddenNodes));
  TraversalDescription outgoingTraversal=Traversal.description().breadthFirst().uniqueness(Uniqueness.NODE_GLOBAL).expand(new DirectionalPathExpander(Direction.OUTGOING)).evaluator(new ReachabilityEvaluator(inMemoryIndex,Direction.OUTGOING,forbiddenNodes));
  long bfsTime=0, rbfsTime=0;
  for (  Entry<Long,Integer> coverage : hopCoverages) {
    Node workingNode=graphDb.getNodeById(coverage.getKey());
    startTime=System.currentTimeMillis();
    InOutListTraverser incomingListTaverser=new InOutListTraverser(incomingTraversal,workingNode);
    incomingListTaverser.start();
    InOutListTraverser outgoingListTaverser=new InOutListTraverser(outgoingTraversal,workingNode);
    outgoingListTaverser.start();
    try {
      incomingListTaverser.join();
      outgoingListTaverser.join();
    }
 catch (    InterruptedException e) {
      throw new RuntimeException("String_Node_Str");
    }
    endTime=System.currentTimeMillis();
    rbfsTime+=endTime - startTime;
    for (    Path p : outgoingTraversal.traverse(workingNode)) {
      logger.finest(p.toString());
    }
    bfsTime+=System.currentTimeMillis() - endTime;
  }
  logger.fine("String_Node_Str" + (bfsTime / 1000) + "String_Node_Str"+ (rbfsTime / 1000)+ "String_Node_Str");
  commitIndexToGraph(inMemoryIndex);
  logger.info("String_Node_Str");
}

Fixed version (ground truth):
/** 
 * Create a reachability index on a graph.
 * @throws InterruptedException 
 */
public void createIndex(){
  if (indexExists()) {
    throw new IllegalStateException("String_Node_Str");
  }
  long startTime=System.currentTimeMillis();
  Set<Entry<Long,Integer>> hopCoverages=getHopCoverages();
  long endTime=System.currentTimeMillis();
  logger.fine(format("String_Node_Str",TimeUnit.MILLISECONDS.toSeconds(endTime - startTime)));
  MemoryReachabilityIndex inMemoryIndex=new MemoryReachabilityIndex();
  TraversalDescription incomingTraversal=Traversal.description().breadthFirst().uniqueness(Uniqueness.NODE_GLOBAL).expand(new DirectionalPathExpander(Direction.INCOMING)).evaluator(new ReachabilityEvaluator(inMemoryIndex,Direction.INCOMING,forbiddenNodes));
  TraversalDescription outgoingTraversal=Traversal.description().breadthFirst().uniqueness(Uniqueness.NODE_GLOBAL).expand(new DirectionalPathExpander(Direction.OUTGOING)).evaluator(new ReachabilityEvaluator(inMemoryIndex,Direction.OUTGOING,forbiddenNodes));
  for (  Entry<Long,Integer> coverage : hopCoverages) {
    Node workingNode=graphDb.getNodeById(coverage.getKey());
    startTime=System.currentTimeMillis();
    InOutListTraverser incomingListTaverser=new InOutListTraverser(incomingTraversal,workingNode);
    incomingListTaverser.start();
    InOutListTraverser outgoingListTaverser=new InOutListTraverser(outgoingTraversal,workingNode);
    outgoingListTaverser.start();
    try {
      incomingListTaverser.join();
      outgoingListTaverser.join();
    }
 catch (    InterruptedException e) {
      throw new RuntimeException("String_Node_Str");
    }
    endTime=System.currentTimeMillis();
  }
  logger.fine("String_Node_Str" + ((endTime - startTime) / 1000) + "String_Node_Str");
  commitIndexToGraph(inMemoryIndex);
  logger.info("String_Node_Str");
}