Program: 50159
Project: 50159
Buggy source:
/** 
 * This creates all the MRCACHILDOF rels among all graph nodes. It uses an all by all pairwise comparison, which has quadratic order of growth. We do this because it makes tree loading trivial: after mapping a tree node x just to graph node(s) g(x), just look at all the graph nodes connected to g(x) by MRCACHILDOF rels to find all the graph nodes that may possibly be mapped to x's parent/child tree nodes.
 */
private void generateMRCAChildOfs(){
  System.out.print("String_Node_Str" + nodeForBipart.size() + "String_Node_Str");
  long z=new Date().getTime();
  System.out.print("String_Node_Str" + nestedChildren.size() + "String_Node_Str");
  Transaction tx=gdb.beginTx();
  for (int parentId=0; parentId < bipart.size(); parentId++) {
    for (    Integer childId : nestedChildren.get(parentId)) {
      Node parent=nodeForBipart.get(bipart.get(parentId));
      Node child=nodeForBipart.get(bipart.get(childId));
      updateMRCAChildOf(child,parent);
    }
  }
  tx.success();
  tx.finish();
  if (USING_TAXONOMY) {
    System.out.print("String_Node_Str");
    tx=gdb.beginTx();
    for (    Node taxnd : taxonomyGraphNodesMap.keySet()) {
      TLongBipartition taxbp=taxonomyGraphNodesMap.get(taxnd);
      for (      TLongBipartition ndbp : nodeForBipart.keySet()) {
        if (taxbp.ingroup().containsAll(ndbp.ingroup())) {
          if (taxbp.ingroup().containsAny(ndbp.outgroup()))           updateMRCAChildOf(nodeForBipart.get(ndbp),taxnd);
        }
 else         if (ndbp.ingroup().containsAny(taxbp.ingroup()) && taxbp.ingroup().containsAny(ndbp.outgroup()) == false && taxbp.ingroup().containsAll(ndbp.ingroup()) == false) {
          updateMRCAChildOf(taxnd,nodeForBipart.get(ndbp));
        }
      }
    }
    tx.success();
    tx.finish();
  }
  System.out.println("String_Node_Str" + (new Date().getTime() - z) / (float)1000 + "String_Node_Str");
}

Fixed version (ground truth):
/** 
 * This creates all the MRCACHILDOF rels among all graph nodes. It uses an all by all pairwise comparison, which has quadratic order of growth. We do this because it makes tree loading trivial: after mapping a tree node x just to graph node(s) g(x), just look at all the graph nodes connected to g(x) by MRCACHILDOF rels to find all the graph nodes that may possibly be mapped to x's parent/child tree nodes.
 */
private void generateMRCAChildOfs(){
  System.out.print("String_Node_Str");
  long z=new Date().getTime();
  System.out.print("String_Node_Str" + nestedChildren.size() + "String_Node_Str");
  Transaction tx=gdb.beginTx();
  for (int parentId=0; parentId < bipart.size(); parentId++) {
    for (    Integer childId : nestedChildren.get(parentId)) {
      Node parent=nodeForBipart.get(bipart.get(parentId));
      Node child=nodeForBipart.get(bipart.get(childId));
      updateMRCAChildOf(child,parent);
    }
  }
  tx.success();
  tx.finish();
  if (USING_TAXONOMY) {
    System.out.print("String_Node_Str");
    tx=gdb.beginTx();
    for (    Node taxnd : taxonomyGraphNodesMap.keySet()) {
      TLongBipartition taxbp=taxonomyGraphNodesMap.get(taxnd);
      for (      TLongBipartition ndbp : nodeForBipart.keySet()) {
        if (taxbp.ingroup().containsAll(ndbp.ingroup())) {
          if (taxbp.ingroup().containsAny(ndbp.outgroup()))           updateMRCAChildOf(nodeForBipart.get(ndbp),taxnd);
        }
 else         if (ndbp.ingroup().containsAny(taxbp.ingroup()) && taxbp.ingroup().containsAny(ndbp.outgroup()) == false && taxbp.ingroup().containsAll(ndbp.ingroup()) == false) {
          updateMRCAChildOf(taxnd,nodeForBipart.get(ndbp));
        }
      }
    }
    tx.success();
    tx.finish();
  }
  System.out.println("String_Node_Str" + (new Date().getTime() - z) / (float)1000 + "String_Node_Str");
}