Program: 189782
Project: 189782
Buggy source:
private void addNodeTo(int node,Community to){
  to.add(new Integer(node));
  nodeCommunities[node]=to;
  for (  ModEdge e : topology[node]) {
    int neighbor=e.target;
    Float neighEdgesTo=nodeConnections[neighbor].get(to);
    if (neighEdgesTo == null) {
      nodeConnections[neighbor].put(to,e.weight);
    }
 else {
      nodeConnections[neighbor].put(to,neighEdgesTo + e.weight);
    }
    Modularity.Community adjCom=nodeCommunities[neighbor];
    Float oEdgesto=adjCom.connections.get(to);
    if (oEdgesto == null) {
      adjCom.connections.put(to,e.weight);
    }
 else {
      adjCom.connections.put(to,oEdgesto + e.weight);
    }
    Float nodeEdgesTo=nodeConnections[node].get(adjCom);
    if (nodeEdgesTo == null) {
      nodeConnections[node].put(adjCom,e.weight);
    }
 else {
      nodeConnections[node].put(adjCom,nodeEdgesTo + e.weight);
    }
    if (to != adjCom) {
      Float comEdgesto=to.connections.get(adjCom);
      if (comEdgesto == null) {
        to.connections.put(adjCom,e.weight);
      }
 else {
        to.connections.put(adjCom,comEdgesto + e.weight);
      }
    }
  }
}

Fixed version (ground truth):
private void addNodeTo(int node,Community to){
  to.add(new Integer(node));
  nodeCommunities[node]=to;
  for (  ModEdge e : topology[node]) {
    int neighbor=e.target;
    Float neighEdgesTo=nodeConnectionsWeight[neighbor].get(to);
    if (neighEdgesTo == null) {
      nodeConnectionsWeight[neighbor].put(to,e.weight);
    }
 else {
      nodeConnectionsWeight[neighbor].put(to,neighEdgesTo + e.weight);
    }
    Integer neighCountEdgesTo=nodeConnectionsCount[neighbor].get(to);
    if (neighCountEdgesTo == null) {
      nodeConnectionsCount[neighbor].put(to,1);
    }
 else {
      nodeConnectionsCount[neighbor].put(to,neighCountEdgesTo + 1);
    }
    Modularity.Community adjCom=nodeCommunities[neighbor];
    Float wEdgesto=adjCom.connectionsWeight.get(to);
    if (wEdgesto == null) {
      adjCom.connectionsWeight.put(to,e.weight);
    }
 else {
      adjCom.connectionsWeight.put(to,wEdgesto + e.weight);
    }
    Integer cEdgesto=adjCom.connectionsCount.get(to);
    if (cEdgesto == null) {
      adjCom.connectionsCount.put(to,1);
    }
 else {
      adjCom.connectionsCount.put(to,cEdgesto + 1);
    }
    Float nodeEdgesTo=nodeConnectionsWeight[node].get(adjCom);
    if (nodeEdgesTo == null) {
      nodeConnectionsWeight[node].put(adjCom,e.weight);
    }
 else {
      nodeConnectionsWeight[node].put(adjCom,nodeEdgesTo + e.weight);
    }
    Integer nodeCountEdgesTo=nodeConnectionsCount[node].get(adjCom);
    if (nodeCountEdgesTo == null) {
      nodeConnectionsCount[node].put(adjCom,1);
    }
 else {
      nodeConnectionsCount[node].put(adjCom,nodeCountEdgesTo + 1);
    }
    if (to != adjCom) {
      Float comEdgesto=to.connectionsWeight.get(adjCom);
      if (comEdgesto == null) {
        to.connectionsWeight.put(adjCom,e.weight);
      }
 else {
        to.connectionsWeight.put(adjCom,comEdgesto + e.weight);
      }
      Integer comCountEdgesto=to.connectionsCount.get(adjCom);
      if (comCountEdgesto == null) {
        to.connectionsCount.put(adjCom,1);
      }
 else {
        to.connectionsCount.put(adjCom,comCountEdgesto + 1);
      }
    }
  }
}