Program: 160460
Project: 160460
Buggy source:
private void parseJsonQuery(Query query,ObjectNode objectNode) throws QueryException {
  QueryPart queryPart=new QueryPart(packageMetaData);
  if (objectNode.has("String_Node_Str")) {
    JsonNode typeNode=objectNode.get("String_Node_Str");
    if (typeNode.isTextual()) {
      String type=typeNode.asText();
      addType(objectNode,queryPart,type);
    }
 else {
      throw new QueryException("String_Node_Str");
    }
  }
  if (objectNode.has("String_Node_Str")) {
    JsonNode typesNode=objectNode.get("String_Node_Str");
    if (typesNode instanceof ArrayNode) {
      ArrayNode types=(ArrayNode)typesNode;
      for (int i=0; i < types.size(); i++) {
        JsonNode typeNode=types.get(i);
        if (typeNode.isTextual()) {
          String type=typeNode.asText();
          addType(objectNode,queryPart,type);
        }
 else {
          throw new QueryException("String_Node_Str" + i + "String_Node_Str");
        }
      }
    }
 else {
      throw new QueryException("String_Node_Str");
    }
  }
  if (objectNode.has("String_Node_Str") && objectNode.get("String_Node_Str").asBoolean()) {
    queryPart.setIncludeAllFields(true);
  }
  if (objectNode.has("String_Node_Str")) {
    JsonNode oidNode=objectNode.get("String_Node_Str");
    if (oidNode.isNumber()) {
      queryPart.addOid(oidNode.asInt());
    }
 else {
      throw new QueryException("String_Node_Str");
    }
  }
  if (objectNode.has("String_Node_Str")) {
    JsonNode oidsNode=objectNode.get("String_Node_Str");
    if (oidsNode instanceof ArrayNode) {
      ArrayNode oids=(ArrayNode)oidsNode;
      for (int i=0; i < oids.size(); i++) {
        JsonNode oidNode=oids.get(i);
        if (oidNode.isNumber()) {
          queryPart.addOid(oidNode.asInt());
        }
 else {
          throw new QueryException("String_Node_Str" + i + "String_Node_Str");
        }
      }
    }
 else {
      throw new QueryException("String_Node_Str");
    }
  }
  if (objectNode.has("String_Node_Str")) {
    JsonNode guidNode=objectNode.get("String_Node_Str");
    if (guidNode.isTextual()) {
      queryPart.addGuid(guidNode.asText());
    }
 else {
      throw new QueryException("String_Node_Str");
    }
  }
  if (objectNode.has("String_Node_Str")) {
    JsonNode guidsNode=objectNode.get("String_Node_Str");
    if (guidsNode instanceof ArrayNode) {
      ArrayNode guids=(ArrayNode)guidsNode;
      for (int i=0; i < guids.size(); i++) {
        JsonNode guidNode=guids.get(i);
        if (guidNode.isTextual()) {
          queryPart.addGuid(guidNode.asText());
        }
 else {
          throw new QueryException("String_Node_Str" + i + "String_Node_Str");
        }
      }
    }
 else {
      throw new QueryException("String_Node_Str");
    }
  }
  if (objectNode.has("String_Node_Str")) {
    JsonNode propertiesNode=objectNode.get("String_Node_Str");
    if (propertiesNode instanceof ObjectNode) {
      ObjectNode properties=(ObjectNode)objectNode.get("String_Node_Str");
      Iterator<Entry<String,JsonNode>> fields=properties.fields();
      while (fields.hasNext()) {
        Entry<String,JsonNode> entry=fields.next();
        JsonNode value=entry.getValue();
        if (value.isValueNode()) {
          queryPart.addProperty(entry.getKey(),value.asBoolean());
        }
 else {
          throw new QueryException("String_Node_Str" + entry.getKey() + "String_Node_Str");
        }
      }
    }
 else {
      throw new QueryException("String_Node_Str");
    }
  }
  if (objectNode.has("String_Node_Str")) {
    JsonNode boundingBoxNode=objectNode.get("String_Node_Str");
    if (boundingBoxNode instanceof ObjectNode) {
      ObjectNode boundingBox=(ObjectNode)boundingBoxNode;
      double x=checkFloat(boundingBox,"String_Node_Str");
      double y=checkFloat(boundingBox,"String_Node_Str");
      double z=checkFloat(boundingBox,"String_Node_Str");
      double width=checkFloat(boundingBox,"String_Node_Str");
      double height=checkFloat(boundingBox,"String_Node_Str");
      double depth=checkFloat(boundingBox,"String_Node_Str");
      queryPart.setInBoundingBox(new InBoundingBox(x,y,z,width,height,depth));
    }
 else {
      throw new QueryException("String_Node_Str");
    }
  }
  if (objectNode.has("String_Node_Str")) {
    JsonNode includeNode=objectNode.get("String_Node_Str");
    processSubInclude(query,queryPart,includeNode);
  }
  if (objectNode.has("String_Node_Str")) {
    JsonNode includesNode=objectNode.get("String_Node_Str");
    if (includesNode instanceof ArrayNode) {
      ArrayNode includes=(ArrayNode)includesNode;
      for (int i=0; i < includes.size(); i++) {
        JsonNode include=includes.get(i);
        processSubInclude(query,queryPart,include);
      }
    }
 else {
      throw new QueryException("String_Node_Str");
    }
  }
  if (objectNode.has("String_Node_Str")) {
    JsonNode fieldsNode=objectNode.get("String_Node_Str");
  }
  Iterator<String> fieldNames=objectNode.fieldNames();
  while (fieldNames.hasNext()) {
    String fieldName=fieldNames.next();
    if (fieldName.equals("String_Node_Str") || fieldName.equals("String_Node_Str") || fieldName.equals("String_Node_Str")|| fieldName.equals("String_Node_Str")|| fieldName.equals("String_Node_Str")|| fieldName.equals("String_Node_Str")|| fieldName.equals("String_Node_Str")|| fieldName.equals("String_Node_Str")|| fieldName.equals("String_Node_Str")|| fieldName.equals("String_Node_Str")|| fieldName.equals("String_Node_Str")) {
    }
 else {
      throw new QueryException("String_Node_Str" + fieldName + "String_Node_Str");
    }
  }
  query.addQueryPart(queryPart);
}

Fixed version (ground truth):
private void parseJsonQuery(Query query,ObjectNode objectNode) throws QueryException {
  QueryPart queryPart=new QueryPart(packageMetaData);
  if (objectNode.has("String_Node_Str")) {
    JsonNode typeNode=objectNode.get("String_Node_Str");
    if (typeNode.isTextual()) {
      String type=typeNode.asText();
      addType(objectNode,queryPart,type);
    }
 else {
      throw new QueryException("String_Node_Str");
    }
  }
  if (objectNode.has("String_Node_Str")) {
    JsonNode typesNode=objectNode.get("String_Node_Str");
    if (typesNode instanceof ArrayNode) {
      ArrayNode types=(ArrayNode)typesNode;
      for (int i=0; i < types.size(); i++) {
        JsonNode typeNode=types.get(i);
        if (typeNode.isTextual()) {
          String type=typeNode.asText();
          addType(objectNode,queryPart,type);
        }
 else {
          throw new QueryException("String_Node_Str" + i + "String_Node_Str");
        }
      }
    }
 else {
      throw new QueryException("String_Node_Str");
    }
  }
  if (objectNode.has("String_Node_Str") && objectNode.get("String_Node_Str").asBoolean()) {
    queryPart.setIncludeAllFields(true);
  }
  if (objectNode.has("String_Node_Str")) {
    JsonNode oidNode=objectNode.get("String_Node_Str");
    if (oidNode.isNumber()) {
      queryPart.addOid(oidNode.asLong());
    }
 else {
      throw new QueryException("String_Node_Str");
    }
  }
  if (objectNode.has("String_Node_Str")) {
    JsonNode oidsNode=objectNode.get("String_Node_Str");
    if (oidsNode instanceof ArrayNode) {
      ArrayNode oids=(ArrayNode)oidsNode;
      for (int i=0; i < oids.size(); i++) {
        JsonNode oidNode=oids.get(i);
        if (oidNode.isNumber()) {
          queryPart.addOid(oidNode.asLong());
        }
 else {
          throw new QueryException("String_Node_Str" + i + "String_Node_Str");
        }
      }
    }
 else {
      throw new QueryException("String_Node_Str");
    }
  }
  if (objectNode.has("String_Node_Str")) {
    JsonNode guidNode=objectNode.get("String_Node_Str");
    if (guidNode.isTextual()) {
      queryPart.addGuid(guidNode.asText());
    }
 else {
      throw new QueryException("String_Node_Str");
    }
  }
  if (objectNode.has("String_Node_Str")) {
    JsonNode guidsNode=objectNode.get("String_Node_Str");
    if (guidsNode instanceof ArrayNode) {
      ArrayNode guids=(ArrayNode)guidsNode;
      for (int i=0; i < guids.size(); i++) {
        JsonNode guidNode=guids.get(i);
        if (guidNode.isTextual()) {
          queryPart.addGuid(guidNode.asText());
        }
 else {
          throw new QueryException("String_Node_Str" + i + "String_Node_Str");
        }
      }
    }
 else {
      throw new QueryException("String_Node_Str");
    }
  }
  if (objectNode.has("String_Node_Str")) {
    JsonNode propertiesNode=objectNode.get("String_Node_Str");
    if (propertiesNode instanceof ObjectNode) {
      ObjectNode properties=(ObjectNode)objectNode.get("String_Node_Str");
      Iterator<Entry<String,JsonNode>> fields=properties.fields();
      while (fields.hasNext()) {
        Entry<String,JsonNode> entry=fields.next();
        JsonNode value=entry.getValue();
        if (value.isValueNode()) {
          queryPart.addProperty(entry.getKey(),value.asBoolean());
        }
 else {
          throw new QueryException("String_Node_Str" + entry.getKey() + "String_Node_Str");
        }
      }
    }
 else {
      throw new QueryException("String_Node_Str");
    }
  }
  if (objectNode.has("String_Node_Str")) {
    JsonNode boundingBoxNode=objectNode.get("String_Node_Str");
    if (boundingBoxNode instanceof ObjectNode) {
      ObjectNode boundingBox=(ObjectNode)boundingBoxNode;
      double x=checkFloat(boundingBox,"String_Node_Str");
      double y=checkFloat(boundingBox,"String_Node_Str");
      double z=checkFloat(boundingBox,"String_Node_Str");
      double width=checkFloat(boundingBox,"String_Node_Str");
      double height=checkFloat(boundingBox,"String_Node_Str");
      double depth=checkFloat(boundingBox,"String_Node_Str");
      queryPart.setInBoundingBox(new InBoundingBox(x,y,z,width,height,depth));
    }
 else {
      throw new QueryException("String_Node_Str");
    }
  }
  if (objectNode.has("String_Node_Str")) {
    JsonNode includeNode=objectNode.get("String_Node_Str");
    processSubInclude(query,queryPart,includeNode);
  }
  if (objectNode.has("String_Node_Str")) {
    JsonNode includesNode=objectNode.get("String_Node_Str");
    if (includesNode instanceof ArrayNode) {
      ArrayNode includes=(ArrayNode)includesNode;
      for (int i=0; i < includes.size(); i++) {
        JsonNode include=includes.get(i);
        processSubInclude(query,queryPart,include);
      }
    }
 else {
      throw new QueryException("String_Node_Str");
    }
  }
  if (objectNode.has("String_Node_Str")) {
    JsonNode fieldsNode=objectNode.get("String_Node_Str");
  }
  Iterator<String> fieldNames=objectNode.fieldNames();
  while (fieldNames.hasNext()) {
    String fieldName=fieldNames.next();
    if (fieldName.equals("String_Node_Str") || fieldName.equals("String_Node_Str") || fieldName.equals("String_Node_Str")|| fieldName.equals("String_Node_Str")|| fieldName.equals("String_Node_Str")|| fieldName.equals("String_Node_Str")|| fieldName.equals("String_Node_Str")|| fieldName.equals("String_Node_Str")|| fieldName.equals("String_Node_Str")|| fieldName.equals("String_Node_Str")|| fieldName.equals("String_Node_Str")) {
    }
 else {
      throw new QueryException("String_Node_Str" + fieldName + "String_Node_Str");
    }
  }
  query.addQueryPart(queryPart);
}