Program: 66739
Project: 66739
Buggy source:
private Class generateWrapperClassAndDescriptor(TypeInfo type,QName next,ElementDeclaration nextElement,String nextClassName,String attributeTypeName){
  String namespaceUri=null;
  if (next != null) {
    namespaceUri=next.getNamespaceURI();
    if (namespaceUri == null || namespaceUri.equals("String_Node_Str")) {
      namespaceUri="String_Node_Str";
    }
  }
  Class generatedClass=this.generateWrapperClass(WRAPPER_CLASS + wrapperCounter++,attributeTypeName,nextElement.isList(),next);
  this.qNamesToGeneratedClasses.put(next,generatedClass);
  try {
    Class declaredClass=PrivilegedAccessHelper.getClassForName(nextClassName,false,helper.getClassLoader());
    this.qNamesToDeclaredClasses.put(next,declaredClass);
  }
 catch (  Exception e) {
  }
  XMLDescriptor desc=new XMLDescriptor();
  desc.setJavaClass(generatedClass);
  if (nextElement.isList()) {
    XMLCompositeDirectCollectionMapping mapping=new XMLCompositeDirectCollectionMapping();
    mapping.setAttributeName("String_Node_Str");
    mapping.setXPath("String_Node_Str");
    mapping.setUsesSingleNode(true);
    mapping.setReuseContainer(true);
    if (type != null && type.isEnumerationType()) {
      mapping.setValueConverter(buildJAXBEnumTypeConverter(mapping,(EnumTypeInfo)type));
    }
 else {
      try {
        Class fieldElementClass=PrivilegedAccessHelper.getClassForName(nextClassName,false,helper.getClassLoader());
        mapping.setFieldElementClass(fieldElementClass);
      }
 catch (      ClassNotFoundException e) {
      }
    }
    if (nextClassName.equals("String_Node_Str") || nextClassName.equals("String_Node_Str")) {
      ((XMLField)mapping.getField()).setSchemaType(XMLConstants.BASE_64_BINARY_QNAME);
    }
 else     if (nextClassName.equals("String_Node_Str")) {
      ((XMLField)mapping.getField()).setSchemaType(XMLConstants.QNAME_QNAME);
    }
    desc.addMapping(mapping);
  }
 else {
    if (nextElement.getJavaTypeName().equals(OBJECT_CLASS_NAME)) {
      XMLCompositeObjectMapping mapping=new XMLCompositeObjectMapping();
      mapping.setAttributeName("String_Node_Str");
      mapping.setSetMethodName("String_Node_Str");
      mapping.setGetMethodName("String_Node_Str");
      mapping.getNullPolicy().setNullRepresentedByXsiNil(true);
      mapping.setKeepAsElementPolicy(UnmarshalKeepAsElementPolicy.KEEP_UNKNOWN_AS_ELEMENT);
      mapping.setXPath("String_Node_Str");
      ((XMLField)mapping.getField()).setIsTypedTextField(true);
      ((XMLField)mapping.getField()).setSchemaType(XMLConstants.ANY_TYPE_QNAME);
      desc.addMapping(mapping);
    }
 else     if (areEquals(nextElement.getJavaType(),ClassConstants.ABYTE) || areEquals(nextElement.getJavaType(),ClassConstants.APBYTE) || areEquals(nextElement.getJavaType(),"String_Node_Str")) {
      XMLBinaryDataMapping mapping=new XMLBinaryDataMapping();
      mapping.setAttributeName("String_Node_Str");
      mapping.setXPath("String_Node_Str");
      ((XMLField)mapping.getField()).setSchemaType(XMLConstants.BASE_64_BINARY_QNAME);
      mapping.setSetMethodName("String_Node_Str");
      mapping.setGetMethodName("String_Node_Str");
      Class attributeClassification=org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(attributeTypeName,getClass().getClassLoader());
      mapping.setAttributeClassification(attributeClassification);
      mapping.setShouldInlineBinaryData(false);
      if (nextElement.getTypeMappingInfo() != null) {
        mapping.setSwaRef(nextElement.isXmlAttachmentRef());
        mapping.setMimeType(nextElement.getXmlMimeType());
      }
      desc.addMapping(mapping);
    }
 else {
      XMLDirectMapping mapping=new XMLDirectMapping();
      mapping.setAttributeName("String_Node_Str");
      mapping.setXPath("String_Node_Str");
      mapping.setSetMethodName("String_Node_Str");
      mapping.setGetMethodName("String_Node_Str");
      if (nextElement.getDefaultValue() != null) {
        mapping.setNullValue(nextElement.getDefaultValue());
      }
      if (helper.isBuiltInJavaType(nextElement.getJavaType())) {
        Class attributeClassification=org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(attributeTypeName,getClass().getClassLoader());
        mapping.setAttributeClassification(attributeClassification);
      }
      IsSetNullPolicy nullPolicy=new IsSetNullPolicy("String_Node_Str",false,true,XMLNullRepresentationType.ABSENT_NODE);
      mapping.setNullPolicy(nullPolicy);
      if (type != null && type.isEnumerationType()) {
        mapping.setConverter(buildJAXBEnumTypeConverter(mapping,(EnumTypeInfo)type));
      }
      if (nextClassName.equals("String_Node_Str") || nextClassName.equals("String_Node_Str")) {
        ((XMLField)mapping.getField()).setSchemaType(XMLConstants.BASE_64_BINARY_QNAME);
      }
 else       if (nextClassName.equals("String_Node_Str")) {
        ((XMLField)mapping.getField()).setSchemaType(XMLConstants.QNAME_QNAME);
      }
      if (nextElement.getJavaTypeAdapterClass() != null) {
        mapping.setConverter(new XMLJavaTypeConverter(nextElement.getJavaTypeAdapterClass()));
      }
      desc.addMapping(mapping);
    }
  }
  if (next != null) {
    NamespaceInfo info=getNamespaceInfoForURI(namespaceUri);
    if (info != null) {
      NamespaceResolver resolver=info.getNamespaceResolverForDescriptor();
      String prefix=resolver.resolveNamespaceURI(namespaceUri);
      desc.setNamespaceResolver(resolver);
      desc.setDefaultRootElement("String_Node_Str");
      desc.addRootElement(getQualifiedString(prefix,next.getLocalPart()));
    }
 else {
      if (namespaceUri.equals("String_Node_Str")) {
        desc.setDefaultRootElement(next.getLocalPart());
      }
 else {
        NamespaceResolver resolver=new NamespaceResolver();
        String prefix=getPrefixForNamespace(namespaceUri,resolver,null);
        desc.setNamespaceResolver(resolver);
        desc.setDefaultRootElement("String_Node_Str");
        desc.addRootElement(getQualifiedString(prefix,next.getLocalPart()));
      }
    }
  }
  project.addDescriptor(desc);
  return generatedClass;
}

Fixed version (ground truth):
private Class generateWrapperClassAndDescriptor(TypeInfo type,QName next,ElementDeclaration nextElement,String nextClassName,String attributeTypeName){
  String namespaceUri=null;
  if (next != null) {
    namespaceUri=next.getNamespaceURI();
    if (namespaceUri == null || namespaceUri.equals("String_Node_Str")) {
      namespaceUri="String_Node_Str";
    }
  }
  Class generatedClass=this.generateWrapperClass(WRAPPER_CLASS + wrapperCounter++,attributeTypeName,nextElement.isList(),next);
  this.qNamesToGeneratedClasses.put(next,generatedClass);
  try {
    Class declaredClass=PrivilegedAccessHelper.getClassForName(nextClassName,false,helper.getClassLoader());
    this.qNamesToDeclaredClasses.put(next,declaredClass);
  }
 catch (  Exception e) {
  }
  XMLDescriptor desc=new XMLDescriptor();
  desc.setJavaClass(generatedClass);
  if (nextElement.isList()) {
    XMLCompositeDirectCollectionMapping mapping=new XMLCompositeDirectCollectionMapping();
    mapping.setAttributeName("String_Node_Str");
    mapping.setXPath("String_Node_Str");
    mapping.setUsesSingleNode(true);
    mapping.setReuseContainer(true);
    if (type != null && type.isEnumerationType()) {
      mapping.setValueConverter(buildJAXBEnumTypeConverter(mapping,(EnumTypeInfo)type));
    }
 else {
      try {
        Class fieldElementClass=PrivilegedAccessHelper.getClassForName(nextClassName,false,helper.getClassLoader());
        mapping.setFieldElementClass(fieldElementClass);
      }
 catch (      ClassNotFoundException e) {
      }
    }
    if (nextClassName.equals("String_Node_Str") || nextClassName.equals("String_Node_Str")) {
      ((XMLField)mapping.getField()).setSchemaType(XMLConstants.BASE_64_BINARY_QNAME);
    }
 else     if (nextClassName.equals("String_Node_Str")) {
      ((XMLField)mapping.getField()).setSchemaType(XMLConstants.QNAME_QNAME);
    }
    desc.addMapping(mapping);
  }
 else {
    if (nextElement.getJavaTypeName().equals(OBJECT_CLASS_NAME)) {
      XMLCompositeObjectMapping mapping=new XMLCompositeObjectMapping();
      mapping.setAttributeName("String_Node_Str");
      mapping.setSetMethodName("String_Node_Str");
      mapping.setGetMethodName("String_Node_Str");
      mapping.getNullPolicy().setNullRepresentedByXsiNil(true);
      mapping.setKeepAsElementPolicy(UnmarshalKeepAsElementPolicy.KEEP_UNKNOWN_AS_ELEMENT);
      mapping.setXPath("String_Node_Str");
      ((XMLField)mapping.getField()).setIsTypedTextField(true);
      ((XMLField)mapping.getField()).setSchemaType(XMLConstants.ANY_TYPE_QNAME);
      desc.addMapping(mapping);
    }
 else     if (areEquals(nextElement.getJavaType(),ClassConstants.ABYTE) || areEquals(nextElement.getJavaType(),ClassConstants.APBYTE) || areEquals(nextElement.getJavaType(),"String_Node_Str")) {
      XMLBinaryDataMapping mapping=new XMLBinaryDataMapping();
      mapping.setAttributeName("String_Node_Str");
      mapping.setXPath("String_Node_Str");
      ((XMLField)mapping.getField()).setSchemaType(XMLConstants.BASE_64_BINARY_QNAME);
      mapping.setSetMethodName("String_Node_Str");
      mapping.setGetMethodName("String_Node_Str");
      Class attributeClassification=org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(attributeTypeName,getClass().getClassLoader());
      mapping.setAttributeClassification(attributeClassification);
      mapping.setShouldInlineBinaryData(false);
      if (nextElement.getTypeMappingInfo() != null) {
        mapping.setSwaRef(nextElement.isXmlAttachmentRef());
        mapping.setMimeType(nextElement.getXmlMimeType());
      }
      desc.addMapping(mapping);
    }
 else {
      XMLDirectMapping mapping=new XMLDirectMapping();
      mapping.setAttributeName("String_Node_Str");
      mapping.setXPath("String_Node_Str");
      mapping.setSetMethodName("String_Node_Str");
      mapping.setGetMethodName("String_Node_Str");
      if (nextElement.getDefaultValue() != null) {
        mapping.setNullValue(nextElement.getDefaultValue());
      }
      if (helper.isBuiltInJavaType(nextElement.getJavaType())) {
        Class attributeClassification=null;
        if (nextElement.getJavaType().isPrimitive()) {
          attributeClassification=XMLConversionManager.getDefaultManager().convertClassNameToClass(attributeTypeName);
        }
 else {
          attributeClassification=org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(attributeTypeName,getClass().getClassLoader());
        }
        mapping.setAttributeClassification(attributeClassification);
      }
      IsSetNullPolicy nullPolicy=new IsSetNullPolicy("String_Node_Str",false,true,XMLNullRepresentationType.ABSENT_NODE);
      mapping.setNullPolicy(nullPolicy);
      if (type != null && type.isEnumerationType()) {
        mapping.setConverter(buildJAXBEnumTypeConverter(mapping,(EnumTypeInfo)type));
      }
      if (nextClassName.equals("String_Node_Str") || nextClassName.equals("String_Node_Str")) {
        ((XMLField)mapping.getField()).setSchemaType(XMLConstants.BASE_64_BINARY_QNAME);
      }
 else       if (nextClassName.equals("String_Node_Str")) {
        ((XMLField)mapping.getField()).setSchemaType(XMLConstants.QNAME_QNAME);
      }
      if (nextElement.getJavaTypeAdapterClass() != null) {
        mapping.setConverter(new XMLJavaTypeConverter(nextElement.getJavaTypeAdapterClass()));
      }
      desc.addMapping(mapping);
    }
  }
  if (next != null) {
    NamespaceInfo info=getNamespaceInfoForURI(namespaceUri);
    if (info != null) {
      NamespaceResolver resolver=info.getNamespaceResolverForDescriptor();
      String prefix=resolver.resolveNamespaceURI(namespaceUri);
      desc.setNamespaceResolver(resolver);
      desc.setDefaultRootElement("String_Node_Str");
      desc.addRootElement(getQualifiedString(prefix,next.getLocalPart()));
    }
 else {
      if (namespaceUri.equals("String_Node_Str")) {
        desc.setDefaultRootElement(next.getLocalPart());
      }
 else {
        NamespaceResolver resolver=new NamespaceResolver();
        String prefix=getPrefixForNamespace(namespaceUri,resolver,null);
        desc.setNamespaceResolver(resolver);
        desc.setDefaultRootElement("String_Node_Str");
        desc.addRootElement(getQualifiedString(prefix,next.getLocalPart()));
      }
    }
  }
  project.addDescriptor(desc);
  return generatedClass;
}