Program: 121749
Project: 121749
Buggy source:
private void buildParameterFromElements(String partElement,ParameterInfo parameterRoot,int ioOrRecursion){
  if (ioOrRecursion < 3) {
    parametersName.clear();
    parametersName.add(parameterRoot.getName());
  }
 else   if (ioOrRecursion == 3) {
    parametersName.add(parameterRoot.getName());
  }
  Iterator elementsItr=allXmlSchemaElement.iterator();
  if (partElement != null) {
    while (elementsItr.hasNext()) {
      XmlSchemaElement xmlSchemaElement=(XmlSchemaElement)elementsItr.next();
      if (partElement.equals(xmlSchemaElement.getName())) {
        if (xmlSchemaElement.getSchemaType() != null) {
          if (xmlSchemaElement.getSchemaType() instanceof XmlSchemaComplexType) {
            XmlSchemaComplexType xmlElementComplexType=(XmlSchemaComplexType)xmlSchemaElement.getSchemaType();
            XmlSchemaParticle xmlSchemaParticle=xmlElementComplexType.getParticle();
            if (xmlSchemaParticle instanceof XmlSchemaGroupBase) {
              XmlSchemaGroupBase xmlSchemaGroupBase=(XmlSchemaGroupBase)xmlSchemaParticle;
              XmlSchemaObjectCollection xmlSchemaObjectCollection=xmlSchemaGroupBase.getItems();
              if (xmlSchemaObjectCollection != null) {
                buildParameterFromCollection(xmlSchemaObjectCollection,parameterRoot,ioOrRecursion);
              }
            }
 else             if (xmlSchemaElement.getSchemaTypeName() != null) {
              String paraTypeName=xmlSchemaElement.getSchemaTypeName().getLocalPart();
              if (paraTypeName != null) {
                parameterRoot.setType(paraTypeName);
                buileParameterFromTypes(paraTypeName,parameterRoot,ioOrRecursion);
              }
            }
          }
 else           if (xmlSchemaElement.getSchemaType() instanceof XmlSchemaSimpleType) {
            XmlSchemaSimpleType xmlSchemaSimpleType=(XmlSchemaSimpleType)xmlSchemaElement.getSchemaType();
            String typeName=xmlSchemaSimpleType.getName();
            if (typeName != null && typeName.equals("String_Node_Str")) {
              ParameterInfo parameterSon=new ParameterInfo();
              parameterSon.setName(xmlSchemaElement.getName() + "String_Node_Str");
              parameterSon.setParent(parameterRoot);
              parameterRoot.getParameterInfos().add(parameterSon);
            }
            parameterRoot.setType(typeName);
          }
        }
 else         if (xmlSchemaElement.getSchemaTypeName() != null) {
          String paraTypeName=xmlSchemaElement.getSchemaTypeName().getLocalPart();
          if (paraTypeName != null) {
            parameterRoot.setType(paraTypeName);
            buileParameterFromTypes(paraTypeName,parameterRoot,ioOrRecursion);
          }
        }
      }
    }
  }
}

Fixed version (ground truth):
private void buildParameterFromElements(String partElement,ParameterInfo parameterRoot,int ioOrRecursion){
  if (ioOrRecursion < 3) {
    parametersName.clear();
    parametersName.add(parameterRoot.getName());
  }
 else   if (ioOrRecursion == 3) {
    parametersName.add(parameterRoot.getName());
  }
  Iterator elementsItr=allXmlSchemaElement.iterator();
  if (partElement != null) {
    while (elementsItr.hasNext()) {
      XmlSchemaElement xmlSchemaElement=(XmlSchemaElement)elementsItr.next();
      if (partElement.equals(xmlSchemaElement.getName())) {
        if (xmlSchemaElement.getSchemaType() != null) {
          if (xmlSchemaElement.getSchemaType() instanceof XmlSchemaComplexType) {
            XmlSchemaComplexType xmlElementComplexType=(XmlSchemaComplexType)xmlSchemaElement.getSchemaType();
            XmlSchemaParticle xmlSchemaParticle=xmlElementComplexType.getParticle();
            if (xmlSchemaParticle instanceof XmlSchemaGroupBase) {
              XmlSchemaGroupBase xmlSchemaGroupBase=(XmlSchemaGroupBase)xmlSchemaParticle;
              XmlSchemaObjectCollection xmlSchemaObjectCollection=xmlSchemaGroupBase.getItems();
              if (xmlSchemaObjectCollection != null) {
                buildParameterFromCollection(xmlSchemaObjectCollection,parameterRoot,ioOrRecursion);
              }
            }
 else             if (xmlSchemaElement.getSchemaTypeName() != null) {
              String paraTypeName=xmlSchemaElement.getSchemaTypeName().getLocalPart();
              if (paraTypeName != null) {
                parameterRoot.setType(paraTypeName);
                buileParameterFromTypes(paraTypeName,parameterRoot,ioOrRecursion);
              }
            }
          }
 else           if (xmlSchemaElement.getSchemaType() instanceof XmlSchemaSimpleType) {
            XmlSchemaSimpleType xmlSchemaSimpleType=(XmlSchemaSimpleType)xmlSchemaElement.getSchemaType();
            String typeName=xmlSchemaSimpleType.getName();
            if (typeName != null && typeName.equals("String_Node_Str")) {
              ParameterInfo parameterSon=new ParameterInfo();
              parameterSon.setName("String_Node_Str");
              parameterSon.setParent(parameterRoot);
              parameterRoot.getParameterInfos().add(parameterSon);
            }
            parameterRoot.setType(typeName);
          }
        }
 else         if (xmlSchemaElement.getSchemaTypeName() != null) {
          String paraTypeName=xmlSchemaElement.getSchemaTypeName().getLocalPart();
          if (paraTypeName != null) {
            parameterRoot.setType(paraTypeName);
            buileParameterFromTypes(paraTypeName,parameterRoot,ioOrRecursion);
          }
        }
      }
    }
  }
}