Program: 147802
Project: 147802
Buggy source:
public String getText(Object obj){
  if (obj instanceof XSDElementDeclaration) {
    String name=((XSDElementDeclaration)obj).getName();
    if (((XSDElementDeclaration)obj).isAbstract())     name+="String_Node_Str";
    String tail=((XSDElementDeclaration)obj).getTargetNamespace() != null ? "String_Node_Str" + ((XSDElementDeclaration)obj).getTargetNamespace() : "String_Node_Str";
    return name + tail;
  }
  if (obj instanceof XSDParticle) {
    XSDParticle xsdParticle=(XSDParticle)obj;
    XSDParticleContent content=xsdParticle.getContent();
    XSDTerm xsdTerm=xsdParticle.getTerm();
    String name="String_Node_Str";
    if (content instanceof XSDElementDeclaration) {
      XSDElementDeclaration decl=(XSDElementDeclaration)content;
      name+=(decl.getName() == null ? "String_Node_Str" : decl.getName());
      if (decl.getTypeDefinition() == null) {
        name+="String_Node_Str" + ((XSDElementDeclaration)xsdTerm).getName() + "String_Node_Str";
      }
    }
 else     if (content instanceof XSDModelGroup) {
      if (xsdParticle.getContainer() instanceof XSDComplexTypeDefinition) {
        String ctdName=((XSDComplexTypeDefinition)xsdParticle.getContainer()).getName();
        name=(ctdName != null ? ctdName : "String_Node_Str");
      }
    }
 else {
      name="String_Node_Str";
    }
    if (!((xsdParticle.getMinOccurs() == 1) && (xsdParticle.getMaxOccurs() == 1))) {
      name+="String_Node_Str";
      name+=xsdParticle.getMinOccurs();
      name+="String_Node_Str";
      name+=(xsdParticle.getMaxOccurs() == -1) ? "String_Node_Str" : "String_Node_Str" + xsdParticle.getMaxOccurs();
      name+="String_Node_Str";
    }
    return name;
  }
  if (obj instanceof XSDSimpleTypeDefinition) {
    return getSimpleTypeDefinition((XSDSimpleTypeDefinition)obj);
  }
  if (obj instanceof XSDModelGroup) {
    XSDParticle particle=(XSDParticle)(((XSDModelGroup)obj).getContainer());
    String name=((XSDComplexTypeDefinition)particle.getContainer()).getName();
    if (name == null)     name="String_Node_Str";
    if (!((particle.getMinOccurs() == 1) && (particle.getMaxOccurs() == 1))) {
      name+="String_Node_Str";
      name+=particle.getMinOccurs();
      name+="String_Node_Str";
      name+=(particle.getMaxOccurs() == -1) ? "String_Node_Str" : "String_Node_Str" + particle.getMaxOccurs();
      name+="String_Node_Str";
    }
    String tail=particle.getSchema().getTargetNamespace() == null ? "String_Node_Str" : "String_Node_Str" + particle.getSchema().getTargetNamespace();
    return name + tail;
  }
  if (obj instanceof XSDFacet) {
    return ((XSDFacet)obj).getFacetName() + "String_Node_Str" + ((XSDFacet)obj).getLexicalValue();
  }
  if (obj instanceof XSDIdentityConstraintDefinition) {
    return ((XSDIdentityConstraintDefinition)obj).getName();
  }
  if (obj instanceof XSDXPathDefinition) {
    XSDXPathDefinition xpath=(XSDXPathDefinition)obj;
    return xpath.getValue();
  }
  if (obj instanceof XSDAttributeGroupDefinition) {
    XSDAttributeGroupDefinition attributeGroupDefinition=(XSDAttributeGroupDefinition)obj;
    String name=(attributeGroupDefinition.getName() == null ? "String_Node_Str" : attributeGroupDefinition.getName());
    if (attributeGroupDefinition.getContents().size() == 0)     name+="String_Node_Str" + attributeGroupDefinition.getResolvedAttributeGroupDefinition().getName() + "String_Node_Str";
    return name;
  }
  if (obj instanceof XSDAttributeUse) {
    XSDAttributeUse attributeUse=(XSDAttributeUse)obj;
    String name=attributeUse.getAttributeDeclaration().getName();
    if (name == null)     name="String_Node_Str" + attributeUse.getAttributeDeclaration().getResolvedAttributeDeclaration().getName() + "String_Node_Str";
    return name;
  }
  if (obj instanceof XSDAnnotation) {
    return "String_Node_Str";
  }
  if (obj instanceof Element) {
    try {
      Element e=(Element)obj;
      if (e.getLocalName().equals("String_Node_Str")) {
        return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
      }
 else       if (e.getLocalName().equals("String_Node_Str")) {
        String source=e.getAttribute("String_Node_Str");
        if (source != null) {
          if (source.startsWith("String_Node_Str")) {
            return Util.iso2lang.get(source.substring(8).toLowerCase()) + "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.startsWith("String_Node_Str")) {
            return Util.iso2lang.get(source.substring(14).toLowerCase()) + "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.startsWith("String_Node_Str")) {
            return source.substring(2,7) + "String_Node_Str" + source.substring(8)+ "String_Node_Str"+ e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.startsWith("String_Node_Str")) {
            return source + "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            String pattern=(String)e.getFirstChild().getUserData("String_Node_Str");
            if (pattern == null) {
              Element el=Util.parse(e.getChildNodes().item(0).getNodeValue()).getDocumentElement();
              if (el.getAttributes().getNamedItem("String_Node_Str") != null)               pattern=el.getAttributes().getNamedItem("String_Node_Str").getTextContent();
            }
            return "String_Node_Str" + (pattern == null ? "String_Node_Str" : pattern);
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
          if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else {
            return source + "String_Node_Str" + Util.nodeToString((Element)obj);
          }
        }
 else {
          return Util.nodeToString((Element)obj);
        }
      }
 else {
        return Util.nodeToString((Element)obj);
      }
    }
 catch (    Exception e) {
      log.error(e.getMessage(),e);
    }
  }
  if (obj == null)   return "String_Node_Str";
  return "String_Node_Str" + obj.getClass().getName() + "String_Node_Str"+ obj.toString();
}

Fixed version (ground truth):
public String getText(Object obj){
  if (obj instanceof XSDElementDeclaration) {
    String name=((XSDElementDeclaration)obj).getName();
    if (((XSDElementDeclaration)obj).isAbstract())     name+="String_Node_Str";
    String tail=((XSDElementDeclaration)obj).getTargetNamespace() != null ? "String_Node_Str" + ((XSDElementDeclaration)obj).getTargetNamespace() : "String_Node_Str";
    return name + tail;
  }
  if (obj instanceof XSDParticle) {
    XSDParticle xsdParticle=(XSDParticle)obj;
    XSDParticleContent content=xsdParticle.getContent();
    XSDTerm xsdTerm=xsdParticle.getTerm();
    String name="String_Node_Str";
    if (content instanceof XSDElementDeclaration) {
      XSDElementDeclaration decl=(XSDElementDeclaration)content;
      name+=(decl.getName() == null ? "String_Node_Str" : decl.getName());
      if (decl.getTypeDefinition() == null) {
        name+="String_Node_Str" + ((XSDElementDeclaration)xsdTerm).getName() + "String_Node_Str";
      }
    }
 else     if (content instanceof XSDModelGroup) {
      if (xsdParticle.getContainer() instanceof XSDComplexTypeDefinition) {
        String ctdName=((XSDComplexTypeDefinition)xsdParticle.getContainer()).getName();
        name=(ctdName != null ? ctdName : "String_Node_Str");
      }
    }
 else {
      name="String_Node_Str";
    }
    if (!((xsdParticle.getMinOccurs() == 1) && (xsdParticle.getMaxOccurs() == 1))) {
      name+="String_Node_Str";
      name+=xsdParticle.getMinOccurs();
      name+="String_Node_Str";
      name+=(xsdParticle.getMaxOccurs() == -1) ? "String_Node_Str" : "String_Node_Str" + xsdParticle.getMaxOccurs();
      name+="String_Node_Str";
    }
    return name;
  }
  if (obj instanceof XSDSimpleTypeDefinition) {
    return getSimpleTypeDefinition((XSDSimpleTypeDefinition)obj);
  }
  if (obj instanceof XSDModelGroup) {
    XSDParticle particle=(XSDParticle)(((XSDModelGroup)obj).getContainer());
    String name=((XSDComplexTypeDefinition)particle.getContainer()).getName();
    if (name == null)     name="String_Node_Str";
    if (!((particle.getMinOccurs() == 1) && (particle.getMaxOccurs() == 1))) {
      name+="String_Node_Str";
      name+=particle.getMinOccurs();
      name+="String_Node_Str";
      name+=(particle.getMaxOccurs() == -1) ? "String_Node_Str" : "String_Node_Str" + particle.getMaxOccurs();
      name+="String_Node_Str";
    }
    XSDSchema schema=particle.getSchema();
    String tail="String_Node_Str";
    if (schema != null && schema.getTargetNamespace() != null) {
      tail="String_Node_Str" + schema.getTargetNamespace();
    }
    return name + tail;
  }
  if (obj instanceof XSDFacet) {
    return ((XSDFacet)obj).getFacetName() + "String_Node_Str" + ((XSDFacet)obj).getLexicalValue();
  }
  if (obj instanceof XSDIdentityConstraintDefinition) {
    return ((XSDIdentityConstraintDefinition)obj).getName();
  }
  if (obj instanceof XSDXPathDefinition) {
    XSDXPathDefinition xpath=(XSDXPathDefinition)obj;
    return xpath.getValue();
  }
  if (obj instanceof XSDAttributeGroupDefinition) {
    XSDAttributeGroupDefinition attributeGroupDefinition=(XSDAttributeGroupDefinition)obj;
    String name=(attributeGroupDefinition.getName() == null ? "String_Node_Str" : attributeGroupDefinition.getName());
    if (attributeGroupDefinition.getContents().size() == 0)     name+="String_Node_Str" + attributeGroupDefinition.getResolvedAttributeGroupDefinition().getName() + "String_Node_Str";
    return name;
  }
  if (obj instanceof XSDAttributeUse) {
    XSDAttributeUse attributeUse=(XSDAttributeUse)obj;
    String name=attributeUse.getAttributeDeclaration().getName();
    if (name == null)     name="String_Node_Str" + attributeUse.getAttributeDeclaration().getResolvedAttributeDeclaration().getName() + "String_Node_Str";
    return name;
  }
  if (obj instanceof XSDAnnotation) {
    return "String_Node_Str";
  }
  if (obj instanceof Element) {
    try {
      Element e=(Element)obj;
      if (e.getLocalName().equals("String_Node_Str")) {
        return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
      }
 else       if (e.getLocalName().equals("String_Node_Str")) {
        String source=e.getAttribute("String_Node_Str");
        if (source != null) {
          if (source.startsWith("String_Node_Str")) {
            return Util.iso2lang.get(source.substring(8).toLowerCase()) + "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.startsWith("String_Node_Str")) {
            return Util.iso2lang.get(source.substring(14).toLowerCase()) + "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.startsWith("String_Node_Str")) {
            return source.substring(2,7) + "String_Node_Str" + source.substring(8)+ "String_Node_Str"+ e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.startsWith("String_Node_Str")) {
            return source + "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            String pattern=(String)e.getFirstChild().getUserData("String_Node_Str");
            if (pattern == null) {
              Element el=Util.parse(e.getChildNodes().item(0).getNodeValue()).getDocumentElement();
              if (el.getAttributes().getNamedItem("String_Node_Str") != null)               pattern=el.getAttributes().getNamedItem("String_Node_Str").getTextContent();
            }
            return "String_Node_Str" + (pattern == null ? "String_Node_Str" : pattern);
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else           if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
          if (source.equals("String_Node_Str")) {
            return "String_Node_Str" + e.getChildNodes().item(0).getNodeValue();
          }
 else {
            return source + "String_Node_Str" + Util.nodeToString((Element)obj);
          }
        }
 else {
          return Util.nodeToString((Element)obj);
        }
      }
 else {
        return Util.nodeToString((Element)obj);
      }
    }
 catch (    Exception e) {
      log.error(e.getMessage(),e);
    }
  }
  if (obj == null)   return "String_Node_Str";
  return "String_Node_Str" + obj.getClass().getName() + "String_Node_Str"+ obj.toString();
}