Program: 121757
Project: 121757
Buggy source:
/** 
 * DOC gcui Comment method "buileParameterFromTypes".
 * @param paraType
 * @param parameter
 * @param operationInfo
 * @param i
 */
private void buileParameterFromTypes(String paraType,ParameterInfo parameter,int ioOrRecursion){
  if (ioOrRecursion < 3) {
    parametersName.clear();
    parametersName.add(parameter.getName());
  }
 else   if (ioOrRecursion == 3) {
    parametersName.add(parameter.getName());
  }
  for (int i=0; i < allXmlSchemaType.size(); i++) {
    XmlSchemaType type=allXmlSchemaType.get(i);
    String typeName=type.getName();
    if (paraType.equals(typeName)) {
      if (type instanceof XmlSchemaComplexType) {
        XmlSchemaComplexType xmlSchemaComplexType=(XmlSchemaComplexType)type;
        XmlSchemaParticle xmlSchemaParticle=xmlSchemaComplexType.getParticle();
        XmlSchemaObjectCollection xmlSchemaObjectCollection=null;
        if (xmlSchemaParticle == null && xmlSchemaComplexType.getContentModel() != null) {
          Object obj=xmlSchemaComplexType.getContentModel().getContent();
          if (obj instanceof XmlSchemaComplexContentExtension) {
            XmlSchemaComplexContentExtension xscce=(XmlSchemaComplexContentExtension)obj;
            if (xscce.getBaseTypeName() != null) {
              buileParameterFromTypes(xscce.getBaseTypeName().getLocalPart(),parameter,ioOrRecursion);
            }
            if (xscce != null) {
              xmlSchemaParticle=xscce.getParticle();
            }
            if (xmlSchemaParticle instanceof XmlSchemaGroupBase) {
              XmlSchemaGroupBase xmlSchemaGroupBase=(XmlSchemaGroupBase)xmlSchemaParticle;
              xmlSchemaObjectCollection=xmlSchemaGroupBase.getItems();
            }
          }
 else           if (obj instanceof XmlSchemaComplexContentRestriction) {
            XmlSchemaComplexContentRestriction xsccr=(XmlSchemaComplexContentRestriction)obj;
            xmlSchemaObjectCollection=xsccr.getAttributes();
          }
        }
 else         if (xmlSchemaParticle instanceof XmlSchemaGroupBase) {
          XmlSchemaGroupBase xmlSchemaGroupBase=(XmlSchemaGroupBase)xmlSchemaParticle;
          xmlSchemaObjectCollection=xmlSchemaGroupBase.getItems();
        }
        if (xmlSchemaObjectCollection != null && xmlSchemaObjectCollection.getCount() > 0) {
          buildParameterFromCollection(xmlSchemaObjectCollection,parameter,3);
        }
 else         if (xmlSchemaObjectCollection.getCount() == 0 && xmlSchemaComplexType.isAbstract()) {
          findExtendtion(xmlSchemaComplexType,parameter,3);
        }
      }
 else       if (type instanceof XmlSchemaSimpleType) {
      }
      break;
    }
  }
}

Fixed version (ground truth):
/** 
 * DOC gcui Comment method "buileParameterFromTypes".
 * @param paraType
 * @param parameter
 * @param operationInfo
 * @param i
 */
private void buileParameterFromTypes(String paraType,ParameterInfo parameter,int ioOrRecursion){
  if (ioOrRecursion < 3) {
    parametersName.clear();
    parametersName.add(parameter.getName());
  }
 else   if (ioOrRecursion == 3) {
    parametersName.add(parameter.getName());
  }
  for (int i=0; i < allXmlSchemaType.size(); i++) {
    XmlSchemaType type=allXmlSchemaType.get(i);
    String typeName=type.getName();
    if (paraType.equals(typeName)) {
      if (type instanceof XmlSchemaComplexType) {
        XmlSchemaComplexType xmlSchemaComplexType=(XmlSchemaComplexType)type;
        XmlSchemaParticle xmlSchemaParticle=xmlSchemaComplexType.getParticle();
        XmlSchemaObjectCollection xmlSchemaObjectCollection=null;
        if (xmlSchemaParticle == null && xmlSchemaComplexType.getContentModel() != null) {
          Object obj=xmlSchemaComplexType.getContentModel().getContent();
          if (obj instanceof XmlSchemaComplexContentExtension) {
            XmlSchemaComplexContentExtension xscce=(XmlSchemaComplexContentExtension)obj;
            if (xscce.getBaseTypeName() != null) {
              buileParameterFromTypes(xscce.getBaseTypeName().getLocalPart(),parameter,ioOrRecursion);
            }
            if (xscce != null) {
              xmlSchemaParticle=xscce.getParticle();
            }
            if (xmlSchemaParticle instanceof XmlSchemaGroupBase) {
              XmlSchemaGroupBase xmlSchemaGroupBase=(XmlSchemaGroupBase)xmlSchemaParticle;
              xmlSchemaObjectCollection=xmlSchemaGroupBase.getItems();
            }
          }
 else           if (obj instanceof XmlSchemaComplexContentRestriction) {
            XmlSchemaComplexContentRestriction xsccr=(XmlSchemaComplexContentRestriction)obj;
            xmlSchemaObjectCollection=xsccr.getAttributes();
          }
        }
 else         if (xmlSchemaParticle instanceof XmlSchemaGroupBase) {
          XmlSchemaGroupBase xmlSchemaGroupBase=(XmlSchemaGroupBase)xmlSchemaParticle;
          xmlSchemaObjectCollection=xmlSchemaGroupBase.getItems();
        }
        if (xmlSchemaObjectCollection != null && xmlSchemaObjectCollection.getCount() > 0) {
          buildParameterFromCollection(xmlSchemaObjectCollection,parameter,3);
        }
 else         if (xmlSchemaObjectCollection != null && xmlSchemaObjectCollection.getCount() == 0 && xmlSchemaComplexType.isAbstract()) {
          findExtendtion(xmlSchemaComplexType,parameter,3);
        }
      }
 else       if (type instanceof XmlSchemaSimpleType) {
      }
      break;
    }
  }
}