Program: 59551
Project: 59551
Buggy source:
public static ModelManifest createManifest(final Class<? extends Model> cls){
  final ModelManifest manifest=new ModelManifest(cls);
  final Set<Class<?>> allTypes=new LinkedHashSet<>();
  collectAllTypes(allTypes,cls);
  for (  final Class<?> type : allTypes) {
    if (type == Model.class) {
      continue;
    }
    final IsModel isModel=cls.getAnnotation(IsModel.class);
    String idField=isModel == null ? "String_Node_Str" : isModel.key().value();
    for (    final Method method : type.getMethods()) {
      if (method.getDeclaringClass() != Model.class) {
        if (method.isDefault() || X_Modifier.isStatic(method.getModifiers())) {
          continue;
        }
        if (!manifest.hasSeenMethod(method.getName())) {
          try {
            final MethodData property=manifest.addProperty(method.getName(),idField,method.getAnnotation(GetterFor.class),method.getAnnotation(SetterFor.class),method.getAnnotation(DeleterFor.class));
            property.setIdField(idField);
            final Class<?> dataType;
            final Type genericType;
            if (property.isGetter(method.getName())) {
              dataType=method.getReturnType();
              genericType=method.getGenericReturnType();
            }
 else {
              if (method.getParameterTypes().length > 0) {
                dataType=method.getParameterTypes()[0];
                genericType=method.getGenericParameterTypes()[0];
              }
 else {
                dataType=null;
                genericType=null;
              }
            }
            if (dataType != null) {
              final Class<?> oldType=property.getType();
              if (oldType != null && oldType != dataType) {
                throw new NotConfiguredCorrectly("String_Node_Str" + property.getName() + "String_Node_Str"+ cls+ "String_Node_Str"+ "String_Node_Str"+ oldType+ "String_Node_Str"+ dataType+ "String_Node_Str"+ "String_Node_Str");
              }
              property.setType(dataType);
              Class[] erasedTypes=getErasedTypeParameters(genericType);
              property.setTypeParams(erasedTypes);
            }
            property.addAnnotations(method.getAnnotations());
          }
 catch (          Throwable e) {
            throw new RuntimeException("String_Node_Str" + cls,e);
          }
        }
      }
    }
  }
  return manifest;
}

Fixed version (ground truth):
public static ModelManifest createManifest(final Class<? extends Model> cls){
  final ModelManifest manifest=new ModelManifest(cls);
  final Set<Class<?>> allTypes=new LinkedHashSet<>();
  collectAllTypes(allTypes,cls);
  for (  final Class<?> type : allTypes) {
    if (type == Model.class) {
      continue;
    }
    final IsModel isModel=cls.getAnnotation(IsModel.class);
    String idField=isModel == null ? "String_Node_Str" : isModel.key().value();
    for (    final Method method : getMethodsInOrder(type)) {
      if (method.getDeclaringClass() != Model.class) {
        if (method.isDefault() || X_Modifier.isStatic(method.getModifiers())) {
          continue;
        }
        if (!manifest.hasSeenMethod(method.getName())) {
          try {
            final MethodData property=manifest.addProperty(method.getName(),idField,method.getAnnotation(GetterFor.class),method.getAnnotation(SetterFor.class),method.getAnnotation(DeleterFor.class));
            property.setIdField(idField);
            final Class<?> dataType;
            final Type genericType;
            if (property.isGetter(method.getName())) {
              dataType=method.getReturnType();
              genericType=method.getGenericReturnType();
            }
 else {
              if (method.getParameterTypes().length > 0) {
                dataType=method.getParameterTypes()[0];
                genericType=method.getGenericParameterTypes()[0];
              }
 else {
                dataType=null;
                genericType=null;
              }
            }
            if (dataType != null) {
              final Class<?> oldType=property.getType();
              if (oldType != null && oldType != dataType) {
                throw new NotConfiguredCorrectly("String_Node_Str" + property.getName() + "String_Node_Str"+ cls+ "String_Node_Str"+ "String_Node_Str"+ oldType+ "String_Node_Str"+ dataType+ "String_Node_Str"+ "String_Node_Str");
              }
              property.setType(dataType);
              Class[] erasedTypes=getErasedTypeParameters(genericType);
              property.setTypeParams(erasedTypes);
            }
            property.addAnnotations(method.getAnnotations());
          }
 catch (          Throwable e) {
            throw new RuntimeException("String_Node_Str" + cls,e);
          }
        }
      }
    }
  }
  return manifest;
}