Program: 67264
Project: 67264
Buggy source:
/** 
 * INTERNAL: Complete building TypeInfo objects for a given set of JavaClass instances. This method assumes  that init, preBuildTypeInfo, and postBuildTypeInfo have been called.
 * @param allClasses
 * @return
 */
private Map<String,TypeInfo> buildTypeInfo(JavaClass[] allClasses){
  for (  JavaClass javaClass : allClasses) {
    if (javaClass == null) {
      continue;
    }
    TypeInfo info=typeInfo.get(javaClass.getQualifiedName());
    if (info == null || info.isPostBuilt()) {
      continue;
    }
    info.setPostBuilt(true);
    processFactoryMethods(javaClass,info);
    processPackageLevelAdapters(javaClass,info);
    processClassLevelAdapters(javaClass,info);
    processSchemaTypes(javaClass,info);
    postProcessXmlAccessorType(info);
    NamespaceInfo packageNamespace=getNamespaceInfoForPackage(javaClass);
    postProcessXmlType(javaClass,info,packageNamespace);
    if (info.isEnumerationType()) {
      addEnumTypeInfo(javaClass,((EnumTypeInfo)info));
      continue;
    }
    processTypeQName(javaClass,info,packageNamespace);
    JavaClass superClass=(JavaClass)javaClass.getSuperclass();
    if (shouldGenerateTypeInfo(superClass)) {
      JavaClass[] jClassArray=new JavaClass[]{superClass};
      preBuildTypeInfo(jClassArray);
      postBuildTypeInfo(jClassArray);
    }
    info.setProperties(getPropertiesForClass(javaClass,info));
    processTypeInfoProperties(info);
    postProcessXmlAccessorOrder(info);
    if (info.getFactoryMethodName() == null && info.getObjectFactoryClassName() == null) {
      JavaConstructor zeroArgConstructor=javaClass.getDeclaredConstructor(new JavaClass[]{});
      if (zeroArgConstructor == null) {
        throw org.eclipse.persistence.exceptions.JAXBException.factoryMethodOrConstructorRequired(javaClass.getName());
      }
    }
    validatePropOrderForInfo(info);
  }
  return typeInfo;
}

Fixed version (ground truth):
/** 
 * INTERNAL: Complete building TypeInfo objects for a given set of JavaClass instances. This method assumes  that init, preBuildTypeInfo, and postBuildTypeInfo have been called.
 * @param allClasses
 * @return
 */
private Map<String,TypeInfo> buildTypeInfo(JavaClass[] allClasses){
  for (  JavaClass javaClass : allClasses) {
    if (javaClass == null) {
      continue;
    }
    TypeInfo info=typeInfo.get(javaClass.getQualifiedName());
    if (info == null || info.isPostBuilt()) {
      continue;
    }
    info.setPostBuilt(true);
    processFactoryMethods(javaClass,info);
    processPackageLevelAdapters(javaClass,info);
    processClassLevelAdapters(javaClass,info);
    processSchemaTypes(javaClass,info);
    NamespaceInfo packageNamespace=getNamespaceInfoForPackage(javaClass);
    postProcessXmlAccessorType(info,packageNamespace);
    postProcessXmlType(javaClass,info,packageNamespace);
    if (info.isEnumerationType()) {
      addEnumTypeInfo(javaClass,((EnumTypeInfo)info));
      continue;
    }
    processTypeQName(javaClass,info,packageNamespace);
    JavaClass superClass=(JavaClass)javaClass.getSuperclass();
    if (shouldGenerateTypeInfo(superClass)) {
      JavaClass[] jClassArray=new JavaClass[]{superClass};
      preBuildTypeInfo(jClassArray);
      postBuildTypeInfo(jClassArray);
    }
    info.setProperties(getPropertiesForClass(javaClass,info));
    processTypeInfoProperties(info);
    postProcessXmlAccessorOrder(info,packageNamespace);
    if (info.getFactoryMethodName() == null && info.getObjectFactoryClassName() == null) {
      JavaConstructor zeroArgConstructor=javaClass.getDeclaredConstructor(new JavaClass[]{});
      if (zeroArgConstructor == null) {
        throw org.eclipse.persistence.exceptions.JAXBException.factoryMethodOrConstructorRequired(javaClass.getName());
      }
    }
    validatePropOrderForInfo(info);
  }
  return typeInfo;
}