Program: 23198
Project: 23198
Buggy source:
@SuppressWarnings("String_Node_Str") private void generateCoreElem(StringBuilder b,List<ElementDefinition> elements,ElementDefinition elem,int indent,String pathName,boolean asValue,TypeRefComponent type,boolean last,boolean complex) throws Exception {
  if (elem.getPath().endsWith("String_Node_Str"))   return;
  if (!complex && elem.getPath().endsWith("String_Node_Str"))   return;
  if (elem.getMax().equals("String_Node_Str"))   return;
  String indentS="String_Node_Str";
  for (int i=0; i < indent; i++) {
    indentS+="String_Node_Str";
  }
  b.append(indentS);
  List<ElementDefinition> children=getChildren(elements,elem);
  String name=tail(elem.getPath());
  String en=asValue ? "String_Node_Str" : name;
  if (en.contains("String_Node_Str"))   en=en.replace("String_Node_Str",upFirst(type.getCode()));
  boolean unbounded=elem.hasMax() && elem.getMax().equals("String_Node_Str");
  String defPage=igp.getLinkForProfile(sd,sd.getUrl());
  b.append("String_Node_Str" + (defPage + "String_Node_Str" + pathName+ "String_Node_Str"+ en) + "String_Node_Str"+ Utilities.escapeXml(getEnhancedDefinition(elem))+ "String_Node_Str"+ en+ "String_Node_Str");
  boolean delayedCloseArray=false;
  if (unbounded)   b.append("String_Node_Str");
  if (type == null) {
    assert(children.size() > 0);
    b.append("String_Node_Str");
    delayedCloseArray=true;
  }
 else   if (isPrimitive(type.getCode())) {
    if (!(type.getCode().equals("String_Node_Str") || type.getCode().equals("String_Node_Str") || type.getCode().equals("String_Node_Str")))     b.append("String_Node_Str");
    if (elem.hasFixed())     b.append(Utilities.escapeJson(((PrimitiveType)elem.getFixed()).asStringValue()));
 else     b.append("String_Node_Str" + prefix + (getSrcFile(type.getCode()) + "String_Node_Str" + type.getCode())+ "String_Node_Str"+ type.getCode()+ "String_Node_Str");
    if (!(type.getCode().equals("String_Node_Str") || type.getCode().equals("String_Node_Str") || type.getCode().equals("String_Node_Str")))     b.append("String_Node_Str");
  }
 else {
    b.append("String_Node_Str");
    b.append("String_Node_Str" + prefix + (getSrcFile(type.getCode()) + "String_Node_Str" + type.getCode())+ "String_Node_Str"+ type.getCode()+ "String_Node_Str");
    if (type.hasProfile()) {
      if (type.getProfile().startsWith("String_Node_Str")) {
        String t=type.getProfile().substring(40);
        if (hasType(t))         b.append("String_Node_Str" + prefix + (getSrcFile(t) + "String_Node_Str" + t)+ "String_Node_Str"+ t+ "String_Node_Str");
 else         if (hasResource(t))         b.append("String_Node_Str" + prefix + t.toLowerCase()+ "String_Node_Str"+ t+ "String_Node_Str");
 else         b.append("String_Node_Str" + t + "String_Node_Str");
      }
 else       b.append("String_Node_Str" + type.getProfile() + "String_Node_Str");
    }
    if (type.hasTargetProfile()) {
      if (type.getTargetProfile().startsWith("String_Node_Str")) {
        String t=type.getTargetProfile().substring(40);
        if (hasType(t))         b.append("String_Node_Str" + prefix + (getSrcFile(t) + "String_Node_Str" + t)+ "String_Node_Str"+ t+ "String_Node_Str");
 else         if (hasResource(t))         b.append("String_Node_Str" + prefix + t.toLowerCase()+ "String_Node_Str"+ t+ "String_Node_Str");
 else         b.append("String_Node_Str" + t + "String_Node_Str");
      }
 else       b.append("String_Node_Str" + type.getTargetProfile() + "String_Node_Str");
    }
    b.append("String_Node_Str");
  }
  if (!delayedCloseArray) {
    if (unbounded)     b.append("String_Node_Str");
    if (!last)     b.append("String_Node_Str");
  }
  b.append("String_Node_Str");
  writeCardinality(b,elem);
  if (!elem.hasFixed()) {
    if (elem.hasBinding() && elem.getBinding().hasValueSet()) {
      ValueSet vs=resolveValueSet(elem.getBinding().getValueSet());
      if (vs != null)       b.append("String_Node_Str" + prefix + vs.getUserData("String_Node_Str")+ "String_Node_Str"+ Utilities.escapeXml(elem.getShort())+ "String_Node_Str");
 else       if (elem.getBinding().getValueSet() instanceof UriType)       b.append("String_Node_Str" + ((UriType)elem.getBinding().getValueSet()).getValue() + "String_Node_Str"+ Utilities.escapeXml(elem.getShort())+ "String_Node_Str");
 else       b.append("String_Node_Str" + ((Reference)elem.getBinding().getValueSet()).getReference() + "String_Node_Str"+ Utilities.escapeXml(elem.getShort())+ "String_Node_Str");
    }
 else     b.append("String_Node_Str" + Utilities.escapeXml(elem.getShort()) + "String_Node_Str");
  }
  b.append("String_Node_Str");
  if (delayedCloseArray) {
    int c=0;
    for (    ElementDefinition child : children) {
      if (child.getType().size() == 1)       generateCoreElem(b,elements,child,indent + 1,pathName + "String_Node_Str" + name,false,child.getType().get(0),++c == children.size(),false);
 else {
        b.append("String_Node_Str" + Utilities.escapeXml(child.getShort()) + "String_Node_Str"+ Integer.toString(child.getType().size())+ "String_Node_Str");
        for (        TypeRefComponent t : child.getType())         generateCoreElem(b,elements,child,indent + 1,pathName + "String_Node_Str" + name,false,t,++c == children.size(),false);
      }
    }
    b.append("String_Node_Str");
    if (!last)     b.append("String_Node_Str");
  }
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") private void generateCoreElem(StringBuilder b,List<ElementDefinition> elements,ElementDefinition elem,int indent,String pathName,boolean asValue,TypeRefComponent type,boolean last,boolean complex) throws Exception {
  if (elem.getPath().endsWith("String_Node_Str"))   return;
  if (!complex && elem.getPath().endsWith("String_Node_Str"))   return;
  if (elem.getMax().equals("String_Node_Str"))   return;
  String indentS="String_Node_Str";
  for (int i=0; i < indent; i++) {
    indentS+="String_Node_Str";
  }
  b.append(indentS);
  List<ElementDefinition> children=getChildren(elements,elem);
  String name=tail(elem.getPath());
  String en=asValue ? "String_Node_Str" : name;
  if (en.contains("String_Node_Str"))   en=en.replace("String_Node_Str",upFirst(type.getCode()));
  boolean unbounded=elem.hasBase() && elem.getBase().hasMax() ? elem.getBase().getMax().equals("String_Node_Str") : "String_Node_Str".equals(elem.getMax());
  String defPage=igp.getLinkForProfile(sd,sd.getUrl());
  b.append("String_Node_Str" + (defPage + "String_Node_Str" + pathName+ "String_Node_Str"+ en) + "String_Node_Str"+ Utilities.escapeXml(getEnhancedDefinition(elem))+ "String_Node_Str"+ en+ "String_Node_Str");
  boolean delayedClose=false;
  if (unbounded)   b.append("String_Node_Str");
  if (type == null || children.size() > 0) {
    assert(children.size() > 0);
    b.append("String_Node_Str");
    delayedClose=true;
  }
 else   if (isPrimitive(type.getCode())) {
    if (!(type.getCode().equals("String_Node_Str") || type.getCode().equals("String_Node_Str") || type.getCode().equals("String_Node_Str")))     b.append("String_Node_Str");
    if (elem.hasFixed())     b.append(Utilities.escapeJson(((PrimitiveType)elem.getFixed()).asStringValue()));
 else     b.append("String_Node_Str" + prefix + (getSrcFile(type.getCode()) + "String_Node_Str" + type.getCode())+ "String_Node_Str"+ type.getCode()+ "String_Node_Str");
    if (!(type.getCode().equals("String_Node_Str") || type.getCode().equals("String_Node_Str") || type.getCode().equals("String_Node_Str")))     b.append("String_Node_Str");
  }
 else {
    b.append("String_Node_Str");
    b.append("String_Node_Str" + prefix + (getSrcFile(type.getCode()) + "String_Node_Str" + type.getCode())+ "String_Node_Str"+ type.getCode()+ "String_Node_Str");
    if (type.hasProfile()) {
      if (type.getProfile().startsWith("String_Node_Str")) {
        String t=type.getProfile().substring(40);
        if (hasType(t))         b.append("String_Node_Str" + prefix + (getSrcFile(t) + "String_Node_Str" + t)+ "String_Node_Str"+ t+ "String_Node_Str");
 else         if (hasResource(t))         b.append("String_Node_Str" + prefix + t.toLowerCase()+ "String_Node_Str"+ t+ "String_Node_Str");
 else         b.append("String_Node_Str" + t + "String_Node_Str");
      }
 else       b.append("String_Node_Str" + type.getProfile() + "String_Node_Str");
    }
    if (type.hasTargetProfile()) {
      if (type.getTargetProfile().startsWith("String_Node_Str")) {
        String t=type.getTargetProfile().substring(40);
        if (hasType(t))         b.append("String_Node_Str" + prefix + (getSrcFile(t) + "String_Node_Str" + t)+ "String_Node_Str"+ t+ "String_Node_Str");
 else         if (hasResource(t))         b.append("String_Node_Str" + prefix + t.toLowerCase()+ "String_Node_Str"+ t+ "String_Node_Str");
 else         b.append("String_Node_Str" + t + "String_Node_Str");
      }
 else       b.append("String_Node_Str" + type.getTargetProfile() + "String_Node_Str");
    }
    b.append("String_Node_Str");
  }
  if (!delayedClose) {
    if (unbounded) {
      b.append("String_Node_Str");
    }
    if (!last)     b.append("String_Node_Str");
  }
  b.append("String_Node_Str");
  writeCardinality(unbounded,b,elem);
  if (!elem.hasFixed()) {
    if (elem.hasBinding() && elem.getBinding().hasValueSet()) {
      ValueSet vs=resolveValueSet(elem.getBinding().getValueSet());
      if (vs != null)       b.append("String_Node_Str" + prefix + vs.getUserData("String_Node_Str")+ "String_Node_Str"+ Utilities.escapeXml(elem.getShort())+ "String_Node_Str");
 else       if (elem.getBinding().getValueSet() instanceof UriType)       b.append("String_Node_Str" + ((UriType)elem.getBinding().getValueSet()).getValue() + "String_Node_Str"+ Utilities.escapeXml(elem.getShort())+ "String_Node_Str");
 else       b.append("String_Node_Str" + ((Reference)elem.getBinding().getValueSet()).getReference() + "String_Node_Str"+ Utilities.escapeXml(elem.getShort())+ "String_Node_Str");
    }
 else     b.append("String_Node_Str" + Utilities.escapeXml(elem.getShort()) + "String_Node_Str");
  }
  b.append("String_Node_Str");
  if (delayedClose) {
    int c=0;
    for (    ElementDefinition child : children) {
      if (child.getType().size() == 1)       generateCoreElem(b,elements,child,indent + 1,pathName + "String_Node_Str" + name,false,child.getType().get(0),++c == children.size(),false);
 else {
        b.append("String_Node_Str" + Utilities.escapeXml(child.getShort()) + "String_Node_Str"+ Integer.toString(child.getType().size())+ "String_Node_Str");
        for (        TypeRefComponent t : child.getType())         generateCoreElem(b,elements,child,indent + 1,pathName + "String_Node_Str" + name,false,t,++c == children.size(),false);
      }
    }
    b.append(indentS);
    b.append("String_Node_Str");
    if (unbounded)     b.append("String_Node_Str");
    if (!last)     b.append("String_Node_Str");
    b.append("String_Node_Str");
  }
}