Program: 59858
Project: 59858
Buggy source:
public ClassNode(Class<?> clazz,boolean isPrefixTarget){
  super(clazz.getSimpleName());
  boolean injectable=true;
  if (clazz.isLocalClass() || clazz.isMemberClass()) {
    if (!Modifier.isStatic(clazz.getModifiers())) {
      injectable=false;
    }
  }
  this.clazz=clazz;
  this.isPrefixTarget=isPrefixTarget;
  boolean injectAllConstructors=(clazz.getAnnotation(Inject.class) != null);
  Constructor<?>[] constructors=clazz.getConstructors();
  List<ConstructorDef> injectableConstructors=new ArrayList<ConstructorDef>();
  if (injectAllConstructors && !injectable) {
    throw new IllegalArgumentException("String_Node_Str" + clazz);
  }
  for (int k=0; k < constructors.length; k++) {
    if (injectAllConstructors || null != constructors[k].getAnnotation(Inject.class)) {
      if (!injectable) {
        throw new IllegalArgumentException("String_Node_Str" + clazz);
      }
      if (constructors[k].isSynthetic()) {
        throw new IllegalArgumentException("String_Node_Str");
      }
      Class<?>[] paramTypes=constructors[k].getParameterTypes();
      Annotation[][] paramAnnotations=constructors[k].getParameterAnnotations();
      if (paramTypes.length != paramAnnotations.length) {
        throw new IllegalStateException();
      }
      ConstructorArg[] args=new ConstructorArg[paramTypes.length];
      for (int i=0; i < paramTypes.length; i++) {
        Parameter named=null;
        for (int j=0; j < paramAnnotations[i].length; j++) {
          Annotation annotation=paramAnnotations[i][j];
          if (annotation instanceof Parameter) {
            named=(Parameter)annotation;
            Node n;
            try {
              n=getNode(named.value());
            }
 catch (            NameResolutionException e) {
              n=buildPathToNode(named.value(),false);
            }
            if (!(n instanceof NamedParameterNode)) {
              throw new IllegalStateException();
            }
            NamedParameterNode np=(NamedParameterNode)n;
            if (!ReflectionUtilities.isCoercable(paramTypes[i],np.argClass)) {
              throw new IllegalArgumentException("String_Node_Str" + paramTypes[i] + "String_Node_Str"+ np.name+ "String_Node_Str"+ np.argClass);
            }
          }
        }
        args[i]=new ConstructorArg(paramTypes[i],named);
      }
      ConstructorDef def=new ConstructorDef(args,constructors[k]);
      if (injectableConstructors.contains(def)) {
        throw new IllegalStateException("String_Node_Str" + clazz + "String_Node_Str"+ def+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
      }
 else {
        injectableConstructors.add(def);
      }
    }
  }
  this.injectableConstructors=injectableConstructors.toArray(new ConstructorDef[0]);
}

Fixed version (ground truth):
public ClassNode(Class<?> clazz,boolean isPrefixTarget){
  super(clazz.getSimpleName());
  boolean injectable=true;
  if (clazz.isLocalClass() || clazz.isMemberClass()) {
    if (!Modifier.isStatic(clazz.getModifiers())) {
      injectable=false;
    }
  }
  this.clazz=clazz;
  this.isPrefixTarget=isPrefixTarget;
  boolean injectAllConstructors=(clazz.getAnnotation(Inject.class) != null);
  Constructor<?>[] constructors=clazz.getDeclaredConstructors();
  List<ConstructorDef> injectableConstructors=new ArrayList<ConstructorDef>();
  if (injectAllConstructors && !injectable) {
    throw new IllegalArgumentException("String_Node_Str" + clazz);
  }
  for (int k=0; k < constructors.length; k++) {
    if (injectAllConstructors || null != constructors[k].getAnnotation(Inject.class)) {
      if (!injectable) {
        throw new IllegalArgumentException("String_Node_Str" + clazz);
      }
      if (constructors[k].isSynthetic()) {
        throw new IllegalArgumentException("String_Node_Str");
      }
      Class<?>[] paramTypes=constructors[k].getParameterTypes();
      Annotation[][] paramAnnotations=constructors[k].getParameterAnnotations();
      if (paramTypes.length != paramAnnotations.length) {
        throw new IllegalStateException();
      }
      ConstructorArg[] args=new ConstructorArg[paramTypes.length];
      for (int i=0; i < paramTypes.length; i++) {
        Parameter named=null;
        for (int j=0; j < paramAnnotations[i].length; j++) {
          Annotation annotation=paramAnnotations[i][j];
          if (annotation instanceof Parameter) {
            named=(Parameter)annotation;
            Node n;
            try {
              n=getNode(named.value());
            }
 catch (            NameResolutionException e) {
              n=buildPathToNode(named.value(),false);
            }
            if (!(n instanceof NamedParameterNode)) {
              throw new IllegalStateException();
            }
            NamedParameterNode np=(NamedParameterNode)n;
            if (!ReflectionUtilities.isCoercable(paramTypes[i],np.argClass)) {
              throw new IllegalArgumentException("String_Node_Str" + paramTypes[i] + "String_Node_Str"+ np.name+ "String_Node_Str"+ np.argClass);
            }
          }
        }
        args[i]=new ConstructorArg(paramTypes[i],named);
      }
      ConstructorDef def=new ConstructorDef(args,constructors[k]);
      if (injectableConstructors.contains(def)) {
        throw new IllegalStateException("String_Node_Str" + clazz + "String_Node_Str"+ def+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
      }
 else {
        injectableConstructors.add(def);
      }
    }
  }
  this.injectableConstructors=injectableConstructors.toArray(new ConstructorDef[0]);
}