Program: 64911
Project: 64911
Buggy source:
/** 
 * Initialize maps, lists, etc. Typically called prior to processing a set of classes via preBuildTypeInfo, postBuildTypeInfo, processJavaClasses.
 */
void init(JavaClass[] classes,TypeMappingInfo[] typeMappingInfos){
  typeInfoClasses=new ArrayList<JavaClass>();
  referencedByTransformer=new ArrayList<String>();
  typeInfo=new HashMap<String,TypeInfo>();
  typeQNames=new ArrayList<QName>();
  classesToProcessPropertyTypes=new ArrayList<JavaClass>();
  objectFactoryClassNames=new ArrayList<String>();
  userDefinedSchemaTypes=new HashMap<String,QName>();
  if (packageToPackageInfoMappings == null) {
    packageToPackageInfoMappings=new HashMap<String,PackageInfo>();
  }
  this.factoryMethods=new HashMap<String,JavaMethod>();
  this.xmlRegistries=new HashMap<String,org.eclipse.persistence.jaxb.xmlmodel.XmlRegistry>();
  this.namespaceResolver=new NamespaceResolver();
  this.xmlRootElements=new HashMap<String,ElementDeclaration>();
  arrayClassesToGeneratedClasses=new HashMap<String,Class>();
  collectionClassesToGeneratedClasses=new HashMap<java.lang.reflect.Type,Class>();
  generatedClassesToArrayClasses=new HashMap<Class,JavaClass>();
  generatedClassesToCollectionClasses=new HashMap<Class,java.lang.reflect.Type>();
  typeMappingInfoToGeneratedClasses=new HashMap<TypeMappingInfo,Class>();
  typeMappingInfoToSchemaType=new HashMap<TypeMappingInfo,QName>();
  elementDeclarations=new HashMap<String,HashMap<QName,ElementDeclaration>>();
  HashMap globalElements=new HashMap<QName,ElementDeclaration>();
  elementDeclarations.put(XmlElementDecl.GLOBAL.class.getName(),globalElements);
  localElements=new ArrayList<ElementDeclaration>();
  javaClassToTypeMappingInfos=new HashMap<JavaClass,List<TypeMappingInfo>>();
  if (typeMappingInfos != null) {
    for (int i=0; i < typeMappingInfos.length; i++) {
      List<TypeMappingInfo> infos=javaClassToTypeMappingInfos.get(classes[i]);
      if (infos == null) {
        infos=new ArrayList<TypeMappingInfo>();
        javaClassToTypeMappingInfos.put(classes[i],infos);
      }
      infos.add(typeMappingInfos[i]);
    }
  }
  typeMappingInfoToAdapterClasses=new HashMap<TypeMappingInfo,Class>();
  if (typeMappingInfos != null) {
    for (    TypeMappingInfo next : typeMappingInfos) {
      java.lang.annotation.Annotation[] annotations=getAnnotations(next);
      if (annotations != null) {
        for (        java.lang.annotation.Annotation nextAnnotation : annotations) {
          if (nextAnnotation instanceof XmlJavaTypeAdapter) {
            typeMappingInfoToAdapterClasses.put(next,((XmlJavaTypeAdapter)nextAnnotation).value());
          }
        }
      }
    }
  }
}

Fixed version (ground truth):
/** 
 * Initialize maps, lists, etc. Typically called prior to processing a set of classes via preBuildTypeInfo, postBuildTypeInfo, processJavaClasses.
 */
void init(JavaClass[] classes,TypeMappingInfo[] typeMappingInfos){
  typeInfoClasses=new ArrayList<JavaClass>();
  referencedByTransformer=new ArrayList<String>();
  typeInfo=new HashMap<String,TypeInfo>();
  typeQNames=new ArrayList<QName>();
  classesToProcessPropertyTypes=new ArrayList<JavaClass>();
  objectFactoryClassNames=new ArrayList<String>();
  userDefinedSchemaTypes=new HashMap<String,QName>();
  if (packageToPackageInfoMappings == null) {
    packageToPackageInfoMappings=new HashMap<String,PackageInfo>();
  }
  this.factoryMethods=new HashMap<String,JavaMethod>();
  this.xmlRegistries=new HashMap<String,org.eclipse.persistence.jaxb.xmlmodel.XmlRegistry>();
  this.xmlRootElements=new HashMap<String,ElementDeclaration>();
  arrayClassesToGeneratedClasses=new HashMap<String,Class>();
  collectionClassesToGeneratedClasses=new HashMap<java.lang.reflect.Type,Class>();
  generatedClassesToArrayClasses=new HashMap<Class,JavaClass>();
  generatedClassesToCollectionClasses=new HashMap<Class,java.lang.reflect.Type>();
  typeMappingInfoToGeneratedClasses=new HashMap<TypeMappingInfo,Class>();
  typeMappingInfoToSchemaType=new HashMap<TypeMappingInfo,QName>();
  elementDeclarations=new HashMap<String,HashMap<QName,ElementDeclaration>>();
  HashMap globalElements=new HashMap<QName,ElementDeclaration>();
  elementDeclarations.put(XmlElementDecl.GLOBAL.class.getName(),globalElements);
  localElements=new ArrayList<ElementDeclaration>();
  javaClassToTypeMappingInfos=new HashMap<JavaClass,List<TypeMappingInfo>>();
  if (typeMappingInfos != null) {
    for (int i=0; i < typeMappingInfos.length; i++) {
      List<TypeMappingInfo> infos=javaClassToTypeMappingInfos.get(classes[i]);
      if (infos == null) {
        infos=new ArrayList<TypeMappingInfo>();
        javaClassToTypeMappingInfos.put(classes[i],infos);
      }
      infos.add(typeMappingInfos[i]);
    }
  }
  typeMappingInfoToAdapterClasses=new HashMap<TypeMappingInfo,Class>();
  if (typeMappingInfos != null) {
    for (    TypeMappingInfo next : typeMappingInfos) {
      java.lang.annotation.Annotation[] annotations=getAnnotations(next);
      if (annotations != null) {
        for (        java.lang.annotation.Annotation nextAnnotation : annotations) {
          if (nextAnnotation instanceof XmlJavaTypeAdapter) {
            typeMappingInfoToAdapterClasses.put(next,((XmlJavaTypeAdapter)nextAnnotation).value());
          }
        }
      }
    }
  }
}