Program: 23059
Project: 23059
Buggy source:
protected void parseStructureDefinitionProperties(JsonObject json,StructureDefinition res) throws IOException, FHIRFormatError {
  parseDomainResourceProperties(json,res);
  if (json.has("String_Node_Str"))   res.setUrlElement(parseUri(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getUrlElement());
  if (json.has("String_Node_Str")) {
    JsonArray array=json.getAsJsonArray("String_Node_Str");
    for (int i=0; i < array.size(); i++) {
      res.getIdentifier().add(parseIdentifier(array.get(i).getAsJsonObject()));
    }
  }
  ;
  if (json.has("String_Node_Str"))   res.setVersionElement(parseString(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getVersionElement());
  if (json.has("String_Node_Str"))   res.setNameElement(parseString(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getNameElement());
  if (json.has("String_Node_Str"))   res.setTitleElement(parseString(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getTitleElement());
  if (json.has("String_Node_Str"))   res.setStatusElement(parseEnumeration(json.get("String_Node_Str").getAsString(),Enumerations.PublicationStatus.NULL,new Enumerations.PublicationStatusEnumFactory()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getStatusElement());
  if (json.has("String_Node_Str"))   res.setExperimentalElement(parseBoolean(json.get("String_Node_Str").getAsBoolean()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getExperimentalElement());
  if (json.has("String_Node_Str"))   res.setDateElement(parseDateTime(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getDateElement());
  if (json.has("String_Node_Str"))   res.setPublisherElement(parseString(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getPublisherElement());
  if (json.has("String_Node_Str")) {
    JsonArray array=json.getAsJsonArray("String_Node_Str");
    for (int i=0; i < array.size(); i++) {
      res.getContact().add(parseContactDetail(array.get(i).getAsJsonObject()));
    }
  }
  ;
  if (json.has("String_Node_Str"))   res.setDescriptionElement(parseMarkdown(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getDescriptionElement());
  if (json.has("String_Node_Str")) {
    JsonArray array=json.getAsJsonArray("String_Node_Str");
    for (int i=0; i < array.size(); i++) {
      res.getUseContext().add(parseUsageContext(array.get(i).getAsJsonObject()));
    }
  }
  ;
  if (json.has("String_Node_Str")) {
    JsonArray array=json.getAsJsonArray("String_Node_Str");
    for (int i=0; i < array.size(); i++) {
      res.getJurisdiction().add(parseCodeableConcept(array.get(i).getAsJsonObject()));
    }
  }
  ;
  if (json.has("String_Node_Str"))   res.setPurposeElement(parseMarkdown(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getPurposeElement());
  if (json.has("String_Node_Str"))   res.setCopyrightElement(parseMarkdown(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getCopyrightElement());
  if (json.has("String_Node_Str")) {
    JsonArray array=json.getAsJsonArray("String_Node_Str");
    for (int i=0; i < array.size(); i++) {
      res.getKeyword().add(parseCoding(array.get(i).getAsJsonObject()));
    }
  }
  ;
  if (json.has("String_Node_Str"))   res.setFhirVersionElement(parseId(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getFhirVersionElement());
  if (json.has("String_Node_Str")) {
    JsonArray array=json.getAsJsonArray("String_Node_Str");
    for (int i=0; i < array.size(); i++) {
      res.getMapping().add(parseStructureDefinitionStructureDefinitionMappingComponent(array.get(i).getAsJsonObject(),res));
    }
  }
  ;
  if (json.has("String_Node_Str"))   res.setKindElement(parseEnumeration(json.get("String_Node_Str").getAsString(),StructureDefinition.StructureDefinitionKind.NULL,new StructureDefinition.StructureDefinitionKindEnumFactory()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getKindElement());
  if (json.has("String_Node_Str"))   res.setAbstractElement(parseBoolean(json.get("String_Node_Str").getAsBoolean()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getAbstractElement());
  if (json.has("String_Node_Str")) {
    JsonArray array=json.getAsJsonArray("String_Node_Str");
    for (int i=0; i < array.size(); i++) {
      res.getContext().add(parseStructureDefinitionStructureDefinitionContextComponent(array.get(i).getAsJsonObject(),res));
    }
  }
  ;
  if (json.has("String_Node_Str")) {
    JsonArray array=json.getAsJsonArray("String_Node_Str");
    for (int i=0; i < array.size(); i++) {
      res.getContextInvariant().add(parseString(array.get(i).getAsString()));
    }
  }
  ;
  if (json.has("String_Node_Str")) {
    JsonArray array=json.getAsJsonArray("String_Node_Str");
    for (int i=0; i < array.size(); i++) {
      if (i == res.getContextInvariant().size())       res.getContextInvariant().add(parseString(null));
      if (array.get(i) instanceof JsonObject)       parseElementProperties(array.get(i).getAsJsonObject(),res.getContextInvariant().get(i));
    }
  }
  ;
  if (json.has("String_Node_Str"))   res.setTypeElement(parseCode(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getTypeElement());
  if (json.has("String_Node_Str"))   res.setBaseDefinitionElement(parseCanonical(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getBaseDefinitionElement());
  if (json.has("String_Node_Str"))   res.setDerivationElement(parseEnumeration(json.get("String_Node_Str").getAsString(),StructureDefinition.TypeDerivationRule.NULL,new StructureDefinition.TypeDerivationRuleEnumFactory()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getDerivationElement());
  if (json.has("String_Node_Str"))   res.setSnapshot(parseStructureDefinitionStructureDefinitionSnapshotComponent(json.getAsJsonObject("String_Node_Str"),res));
  if (json.has("String_Node_Str"))   res.setDifferential(parseStructureDefinitionStructureDefinitionDifferentialComponent(json.getAsJsonObject("String_Node_Str"),res));
}

Fixed version (ground truth):
protected void parseStructureDefinitionProperties(JsonObject json,StructureDefinition res) throws IOException, FHIRFormatError {
  parseDomainResourceProperties(json,res);
  if (json.has("String_Node_Str"))   res.setUrlElement(parseUri(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getUrlElement());
  if (json.has("String_Node_Str")) {
    JsonArray array=json.getAsJsonArray("String_Node_Str");
    for (int i=0; i < array.size(); i++) {
      res.getIdentifier().add(parseIdentifier(array.get(i).getAsJsonObject()));
    }
  }
  ;
  if (json.has("String_Node_Str"))   res.setVersionElement(parseString(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getVersionElement());
  if (json.has("String_Node_Str"))   res.setNameElement(parseString(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getNameElement());
  if (json.has("String_Node_Str"))   res.setTitleElement(parseString(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getTitleElement());
  if (json.has("String_Node_Str"))   res.setStatusElement(parseEnumeration(json.get("String_Node_Str").getAsString(),Enumerations.PublicationStatus.NULL,new Enumerations.PublicationStatusEnumFactory()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getStatusElement());
  if (json.has("String_Node_Str"))   res.setExperimentalElement(parseBoolean(json.get("String_Node_Str").getAsBoolean()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getExperimentalElement());
  if (json.has("String_Node_Str"))   res.setDateElement(parseDateTime(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getDateElement());
  if (json.has("String_Node_Str"))   res.setPublisherElement(parseString(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getPublisherElement());
  if (json.has("String_Node_Str")) {
    JsonArray array=json.getAsJsonArray("String_Node_Str");
    for (int i=0; i < array.size(); i++) {
      res.getContact().add(parseContactDetail(array.get(i).getAsJsonObject()));
    }
  }
  ;
  if (json.has("String_Node_Str"))   res.setDescriptionElement(parseMarkdown(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getDescriptionElement());
  if (json.has("String_Node_Str")) {
    JsonArray array=json.getAsJsonArray("String_Node_Str");
    for (int i=0; i < array.size(); i++) {
      res.getUseContext().add(parseUsageContext(array.get(i).getAsJsonObject()));
    }
  }
  ;
  if (json.has("String_Node_Str")) {
    JsonArray array=json.getAsJsonArray("String_Node_Str");
    for (int i=0; i < array.size(); i++) {
      res.getJurisdiction().add(parseCodeableConcept(array.get(i).getAsJsonObject()));
    }
  }
  ;
  if (json.has("String_Node_Str"))   res.setPurposeElement(parseMarkdown(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getPurposeElement());
  if (json.has("String_Node_Str"))   res.setCopyrightElement(parseMarkdown(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getCopyrightElement());
  if (json.has("String_Node_Str")) {
    JsonArray array=json.getAsJsonArray("String_Node_Str");
    for (int i=0; i < array.size(); i++) {
      res.getKeyword().add(parseCoding(array.get(i).getAsJsonObject()));
    }
  }
  ;
  if (json.has("String_Node_Str"))   res.setFhirVersionElement(parseId(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getFhirVersionElement());
  if (json.has("String_Node_Str")) {
    JsonArray array=json.getAsJsonArray("String_Node_Str");
    for (int i=0; i < array.size(); i++) {
      res.getMapping().add(parseStructureDefinitionStructureDefinitionMappingComponent(array.get(i).getAsJsonObject(),res));
    }
  }
  ;
  if (json.has("String_Node_Str"))   res.setKindElement(parseEnumeration(json.get("String_Node_Str").getAsString(),StructureDefinition.StructureDefinitionKind.NULL,new StructureDefinition.StructureDefinitionKindEnumFactory()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getKindElement());
  if (json.has("String_Node_Str"))   res.setAbstractElement(parseBoolean(json.get("String_Node_Str").getAsBoolean()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getAbstractElement());
  if (json.has("String_Node_Str")) {
    JsonArray array=json.getAsJsonArray("String_Node_Str");
    for (int i=0; i < array.size(); i++) {
      res.getContext().add(parseStructureDefinitionStructureDefinitionContextComponent(array.get(i).getAsJsonObject(),res));
    }
  }
  ;
  if (json.has("String_Node_Str")) {
    JsonArray array=json.getAsJsonArray("String_Node_Str");
    for (int i=0; i < array.size(); i++) {
      res.getContextInvariant().add(parseString(array.get(i).getAsString()));
    }
  }
  ;
  if (json.has("String_Node_Str")) {
    JsonArray array=json.getAsJsonArray("String_Node_Str");
    for (int i=0; i < array.size(); i++) {
      if (i == res.getContextInvariant().size())       res.getContextInvariant().add(parseString(null));
      if (array.get(i) instanceof JsonObject)       parseElementProperties(array.get(i).getAsJsonObject(),res.getContextInvariant().get(i));
    }
  }
  ;
  if (json.has("String_Node_Str"))   res.setTypeElement(parseUri(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getTypeElement());
  if (json.has("String_Node_Str"))   res.setBaseDefinitionElement(parseCanonical(json.get("String_Node_Str").getAsString()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getBaseDefinitionElement());
  if (json.has("String_Node_Str"))   res.setDerivationElement(parseEnumeration(json.get("String_Node_Str").getAsString(),StructureDefinition.TypeDerivationRule.NULL,new StructureDefinition.TypeDerivationRuleEnumFactory()));
  if (json.has("String_Node_Str"))   parseElementProperties(json.getAsJsonObject("String_Node_Str"),res.getDerivationElement());
  if (json.has("String_Node_Str"))   res.setSnapshot(parseStructureDefinitionStructureDefinitionSnapshotComponent(json.getAsJsonObject("String_Node_Str"),res));
  if (json.has("String_Node_Str"))   res.setDifferential(parseStructureDefinitionStructureDefinitionDifferentialComponent(json.getAsJsonObject("String_Node_Str"),res));
}