Program: 166872
Project: 166872
Buggy source:
void fromNotifyJsonInEdge(JsonNode vertexLabelJson){
  for (  String s : Arrays.asList("String_Node_Str","String_Node_Str")) {
    ArrayNode uncommittedInEdgeLabels=(ArrayNode)vertexLabelJson.get(s);
    if (uncommittedInEdgeLabels != null) {
      for (      JsonNode uncommittedInEdgeLabel : uncommittedInEdgeLabels) {
        String schemaName=uncommittedInEdgeLabel.get("String_Node_Str").asText();
        String edgeLabelName=uncommittedInEdgeLabel.get("String_Node_Str").asText();
        Optional<Schema> schemaOptional=getSchema().getTopology().getSchema(schemaName);
        Preconditions.checkState(schemaOptional.isPresent(),"String_Node_Str",schemaName);
        @SuppressWarnings("String_Node_Str") Optional<EdgeLabel> edgeLabelOptional=schemaOptional.get().getEdgeLabel(edgeLabelName);
        Preconditions.checkState(edgeLabelOptional.isPresent(),"String_Node_Str",edgeLabelName);
        @SuppressWarnings("String_Node_Str") EdgeLabel edgeLabel=edgeLabelOptional.get();
        edgeLabel.addToInVertexLabel(this);
        this.inEdgeLabels.put(schemaName + "String_Node_Str" + edgeLabel.getLabel(),edgeLabel);
        edgeLabel.fromPropertyNotifyJson(uncommittedInEdgeLabel,false);
        this.getSchema().getTopology().addInForeignKeysToVertexLabel(this,edgeLabel);
        this.getSchema().getTopology().addToEdgeForeignKeyCache(edgeLabel.getSchema().getName() + "String_Node_Str" + EDGE_PREFIX+ edgeLabel.getLabel(),this.getSchema().getName() + "String_Node_Str" + this.getLabel()+ Topology.IN_VERTEX_COLUMN_END);
      }
    }
  }
  ArrayNode uncommittedRemoveInEdgeLabels=(ArrayNode)vertexLabelJson.get("String_Node_Str");
  if (uncommittedRemoveInEdgeLabels != null) {
    for (    JsonNode n : uncommittedRemoveInEdgeLabels) {
      EdgeLabel lbl=this.inEdgeLabels.remove(n.get("String_Node_Str").asText());
      if (lbl != null) {
        EdgeRemoveType ert=EdgeRemoveType.valueOf(n.get("String_Node_Str").asText());
        if (lbl.isValid()) {
          this.getSchema().getTopology().removeFromEdgeForeignKeyCache(lbl.getSchema().getName() + "String_Node_Str" + EDGE_PREFIX+ lbl.getLabel(),this.getSchema().getName() + "String_Node_Str" + this.getLabel()+ Topology.IN_VERTEX_COLUMN_END);
          this.getSchema().getTopology().removeInForeignKeysFromVertexLabel(this,lbl);
        }
        lbl.inVertexLabels.remove(this);
switch (ert) {
case LABEL:
          this.getSchema().getTopology().fire(lbl,"String_Node_Str",TopologyChangeAction.DELETE);
        break;
case ROLE:
      this.getSchema().getTopology().fire(new EdgeRole(this,lbl,Direction.IN,true),"String_Node_Str",TopologyChangeAction.DELETE);
    break;
}
}
}
}
}

Fixed version (ground truth):
void fromNotifyJsonInEdge(JsonNode vertexLabelJson){
  for (  String s : Arrays.asList("String_Node_Str","String_Node_Str")) {
    ArrayNode uncommittedInEdgeLabels=(ArrayNode)vertexLabelJson.get(s);
    if (uncommittedInEdgeLabels != null) {
      for (      JsonNode uncommittedInEdgeLabel : uncommittedInEdgeLabels) {
        String schemaName=uncommittedInEdgeLabel.get("String_Node_Str").asText();
        String edgeLabelName=uncommittedInEdgeLabel.get("String_Node_Str").asText();
        Optional<Schema> schemaOptional=getSchema().getTopology().getSchema(schemaName);
        Preconditions.checkState(schemaOptional.isPresent(),"String_Node_Str",schemaName);
        @SuppressWarnings("String_Node_Str") Optional<EdgeLabel> edgeLabelOptional=schemaOptional.get().getEdgeLabel(edgeLabelName);
        if (edgeLabelOptional.isPresent()) {
          @SuppressWarnings("String_Node_Str") EdgeLabel edgeLabel=edgeLabelOptional.get();
          edgeLabel.addToInVertexLabel(this);
          this.inEdgeLabels.put(schemaName + "String_Node_Str" + edgeLabel.getLabel(),edgeLabel);
          edgeLabel.fromPropertyNotifyJson(uncommittedInEdgeLabel,false);
          this.getSchema().getTopology().addInForeignKeysToVertexLabel(this,edgeLabel);
          this.getSchema().getTopology().addToEdgeForeignKeyCache(edgeLabel.getSchema().getName() + "String_Node_Str" + EDGE_PREFIX+ edgeLabel.getLabel(),this.getSchema().getName() + "String_Node_Str" + this.getLabel()+ Topology.IN_VERTEX_COLUMN_END);
        }
      }
    }
  }
  ArrayNode uncommittedRemoveInEdgeLabels=(ArrayNode)vertexLabelJson.get("String_Node_Str");
  if (uncommittedRemoveInEdgeLabels != null) {
    for (    JsonNode n : uncommittedRemoveInEdgeLabels) {
      EdgeLabel lbl=this.inEdgeLabels.remove(n.get("String_Node_Str").asText());
      if (lbl != null) {
        EdgeRemoveType ert=EdgeRemoveType.valueOf(n.get("String_Node_Str").asText());
        if (lbl.isValid()) {
          this.getSchema().getTopology().removeFromEdgeForeignKeyCache(lbl.getSchema().getName() + "String_Node_Str" + EDGE_PREFIX+ lbl.getLabel(),this.getSchema().getName() + "String_Node_Str" + this.getLabel()+ Topology.IN_VERTEX_COLUMN_END);
          this.getSchema().getTopology().removeInForeignKeysFromVertexLabel(this,lbl);
        }
        lbl.inVertexLabels.remove(this);
switch (ert) {
case LABEL:
          this.getSchema().getTopology().fire(lbl,"String_Node_Str",TopologyChangeAction.DELETE);
        break;
case ROLE:
      this.getSchema().getTopology().fire(new EdgeRole(this,lbl,Direction.IN,true),"String_Node_Str",TopologyChangeAction.DELETE);
    break;
}
}
}
}
}