Program: 166968
Project: 166968
Buggy source:
@SuppressWarnings("String_Node_Str") private void fromNotifyJson(LocalDateTime timestamp,ObjectNode log){
  for (  String s : Arrays.asList("String_Node_Str","String_Node_Str")) {
    ArrayNode schemas=(ArrayNode)log.get(s);
    if (schemas != null) {
      for (      JsonNode jsonSchema : schemas) {
        String schemaName=jsonSchema.get("String_Node_Str").asText();
        Optional<Schema> schemaOptional=getSchema(schemaName);
        Schema schema;
        if (!schemaOptional.isPresent()) {
          schema=Schema.instantiateSchema(this,schemaName);
          this.schemas.put(schemaName,schema);
        }
      }
      for (      JsonNode jsonSchema : schemas) {
        String schemaName=jsonSchema.get("String_Node_Str").asText();
        Optional<Schema> schemaOptional=getSchema(schemaName);
        Preconditions.checkState(schemaOptional.isPresent(),"String_Node_Str");
        @SuppressWarnings("String_Node_Str") Schema schema=schemaOptional.get();
        schema.fromNotifyJsonOutEdges(jsonSchema);
      }
      for (      JsonNode jsonSchema : schemas) {
        String schemaName=jsonSchema.get("String_Node_Str").asText();
        Optional<Schema> schemaOptional=getSchema(schemaName);
        Preconditions.checkState(schemaOptional.isPresent(),"String_Node_Str");
        @SuppressWarnings("String_Node_Str") Schema schema=schemaOptional.get();
        schema.fromNotifyJsonInEdges(jsonSchema);
      }
    }
  }
  ArrayNode globalUniqueIndexes=(ArrayNode)log.get("String_Node_Str");
  if (globalUniqueIndexes != null) {
    for (    JsonNode jsonGlobalUniqueIndex : globalUniqueIndexes) {
      String globalUniqueIndexName=jsonGlobalUniqueIndex.get("String_Node_Str").asText();
      Optional<GlobalUniqueIndex> globalUniqueIndexOptional=getGlobalUniqueIndexes(globalUniqueIndexName);
      Preconditions.checkState(!globalUniqueIndexOptional.isPresent(),"String_Node_Str");
      GlobalUniqueIndex globalUniqueIndex=GlobalUniqueIndex.instantiateGlobalUniqueIndex(this,globalUniqueIndexName);
      Set<PropertyColumn> properties=new HashSet<>();
      ArrayNode jsonProperties=(ArrayNode)jsonGlobalUniqueIndex.get("String_Node_Str");
      for (      JsonNode jsonProperty : jsonProperties) {
        ObjectNode propertyObjectNode=(ObjectNode)jsonProperty;
        String propertyName=propertyObjectNode.get("String_Node_Str").asText();
        String schemaName=propertyObjectNode.get("String_Node_Str").asText();
        Optional<Schema> schemaOptional=getSchema(schemaName);
        Preconditions.checkState(schemaOptional.isPresent(),"String_Node_Str");
        Schema schema=schemaOptional.get();
        String abstractLabelName=propertyObjectNode.get("String_Node_Str").asText();
        AbstractLabel abstractLabel;
        Optional<VertexLabel> vertexLabelOptional=schema.getVertexLabel(abstractLabelName);
        if (!vertexLabelOptional.isPresent()) {
          Optional<EdgeLabel> edgeLabelOptional=schema.getEdgeLabel(abstractLabelName);
          Preconditions.checkState(edgeLabelOptional.isPresent(),"String_Node_Str");
          abstractLabel=edgeLabelOptional.get();
        }
 else {
          abstractLabel=vertexLabelOptional.get();
        }
        Optional<PropertyColumn> propertyColumnOptional=abstractLabel.getProperty(propertyName);
        Preconditions.checkState(propertyColumnOptional.isPresent(),"String_Node_Str");
        properties.add(propertyColumnOptional.get());
      }
      globalUniqueIndex.addGlobalUniqueProperties(properties);
      this.globalUniqueIndexes.add(globalUniqueIndex);
    }
  }
  this.notificationTimestamps.add(timestamp);
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") private void fromNotifyJson(LocalDateTime timestamp,ObjectNode log){
  for (  String s : Arrays.asList("String_Node_Str","String_Node_Str")) {
    ArrayNode schemas=(ArrayNode)log.get(s);
    if (schemas != null) {
      for (      JsonNode jsonSchema : schemas) {
        String schemaName=jsonSchema.get("String_Node_Str").asText();
        Optional<Schema> schemaOptional=getSchema(schemaName);
        Schema schema;
        if (!schemaOptional.isPresent()) {
          schema=Schema.instantiateSchema(this,schemaName);
          this.schemas.put(schemaName,schema);
        }
      }
      for (      JsonNode jsonSchema : schemas) {
        String schemaName=jsonSchema.get("String_Node_Str").asText();
        Optional<Schema> schemaOptional=getSchema(schemaName);
        Preconditions.checkState(schemaOptional.isPresent(),"String_Node_Str");
        @SuppressWarnings("String_Node_Str") Schema schema=schemaOptional.get();
        schema.fromNotifyJsonOutEdges(jsonSchema);
      }
      for (      JsonNode jsonSchema : schemas) {
        String schemaName=jsonSchema.get("String_Node_Str").asText();
        Optional<Schema> schemaOptional=getSchema(schemaName);
        Preconditions.checkState(schemaOptional.isPresent(),"String_Node_Str");
        @SuppressWarnings("String_Node_Str") Schema schema=schemaOptional.get();
        schema.fromNotifyJsonInEdges(jsonSchema);
      }
    }
  }
  ArrayNode globalUniqueIndexes=(ArrayNode)log.get("String_Node_Str");
  if (globalUniqueIndexes != null) {
    for (    JsonNode jsonGlobalUniqueIndex : globalUniqueIndexes) {
      String globalUniqueIndexName=jsonGlobalUniqueIndex.get("String_Node_Str").asText();
      Optional<GlobalUniqueIndex> globalUniqueIndexOptional=getGlobalUniqueIndexes(globalUniqueIndexName);
      GlobalUniqueIndex globalUniqueIndex;
      if (!globalUniqueIndexOptional.isPresent()) {
        globalUniqueIndex=GlobalUniqueIndex.instantiateGlobalUniqueIndex(this,globalUniqueIndexName);
      }
 else {
        globalUniqueIndex=globalUniqueIndexOptional.get();
      }
      Set<PropertyColumn> properties=new HashSet<>();
      ArrayNode jsonProperties=(ArrayNode)jsonGlobalUniqueIndex.get("String_Node_Str");
      for (      JsonNode jsonProperty : jsonProperties) {
        ObjectNode propertyObjectNode=(ObjectNode)jsonProperty;
        String propertyName=propertyObjectNode.get("String_Node_Str").asText();
        String schemaName=propertyObjectNode.get("String_Node_Str").asText();
        Optional<Schema> schemaOptional=getSchema(schemaName);
        Preconditions.checkState(schemaOptional.isPresent(),"String_Node_Str");
        Schema schema=schemaOptional.get();
        String abstractLabelName=propertyObjectNode.get("String_Node_Str").asText();
        AbstractLabel abstractLabel;
        Optional<VertexLabel> vertexLabelOptional=schema.getVertexLabel(abstractLabelName);
        if (!vertexLabelOptional.isPresent()) {
          Optional<EdgeLabel> edgeLabelOptional=schema.getEdgeLabel(abstractLabelName);
          Preconditions.checkState(edgeLabelOptional.isPresent(),"String_Node_Str");
          abstractLabel=edgeLabelOptional.get();
        }
 else {
          abstractLabel=vertexLabelOptional.get();
        }
        Optional<PropertyColumn> propertyColumnOptional=abstractLabel.getProperty(propertyName);
        Preconditions.checkState(propertyColumnOptional.isPresent(),"String_Node_Str");
        properties.add(propertyColumnOptional.get());
      }
      globalUniqueIndex.addGlobalUniqueProperties(properties);
      this.globalUniqueIndexes.add(globalUniqueIndex);
    }
  }
  this.notificationTimestamps.add(timestamp);
}