Program: 59855
Project: 59855
Buggy source:
public Object getInstance(Class<?> clazz) throws NameResolutionException, ReflectiveOperationException {
  Node n=namespace.getNode(clazz);
  if (n instanceof ClassNode && !(n instanceof NamedParameterNode)) {
    Class<?> c=(Class<?>)boundValues.get(n);
    if (c != null) {
      return getInstance(c);
    }
  }
 else {
    throw new IllegalStateException("String_Node_Str" + n.toString() + "String_Node_Str"+ n.getClass()+ "String_Node_Str");
  }
  List<ConstructorDef> defs=new ArrayList<ConstructorDef>();
  for (  ConstructorDef def : ((ClassNode)n).injectableConstructors) {
    boolean canInject=true;
    for (    ConstructorArg arg : def.args) {
      String name=arg.getFullyQualifiedName(clazz);
      try {
        if (!canInject(name)) {
          canInject=false;
        }
      }
 catch (      NameResolutionException e) {
        canInject=false;
      }
    }
    if (canInject) {
      defs.add(def);
    }
  }
  for (int i=0; i < defs.size(); i++) {
    for (int j=0; j < defs.size(); j++) {
      if (defs.get(i).isMoreSpecificThan(defs.get(j))) {
        defs.remove(j);
        if (i >= j) {
          i--;
        }
        j--;
      }
    }
  }
  if (defs.size() == 0) {
    throw new IllegalArgumentException("String_Node_Str" + clazz);
  }
  if (defs.size() > 1) {
    throw new IllegalArgumentException("String_Node_Str" + clazz + "String_Node_Str"+ Arrays.toString(defs.toArray()));
  }
  List<Object> args=new ArrayList<Object>();
  for (  ConstructorArg arg : defs.get(0).args) {
    Node argNode=namespace.getNode(arg.getFullyQualifiedName(clazz));
    if (argNode instanceof NamedParameterNode) {
      args.add(boundValues.get(argNode));
    }
 else     if (argNode instanceof ClassNode) {
      args.add(getInstance(((ClassNode)argNode).clazz));
    }
 else {
      throw new IllegalStateException("String_Node_Str" + argNode);
    }
  }
  try {
    return defs.get(0).constructor.newInstance(args.toArray());
  }
 catch (  IllegalArgumentException e) {
    throw new IllegalStateException("String_Node_Str" + defs.get(0).constructor + "String_Node_Str"+ Arrays.toString(args.toArray())+ "String_Node_Str"+ e.getMessage(),e);
  }
}

Fixed version (ground truth):
public Object getInstance(Class<?> clazz) throws NameResolutionException, ReflectiveOperationException {
  Node n=namespace.getNode(clazz);
  if (n instanceof ClassNode && !(n instanceof NamedParameterNode)) {
    Class<?> c=(Class<?>)boundValues.get(n);
    if (c != null) {
      return getInstance(c);
    }
  }
 else {
    throw new IllegalStateException("String_Node_Str" + n.toString() + "String_Node_Str"+ n.getClass()+ "String_Node_Str");
  }
  List<ConstructorDef> defs=new ArrayList<ConstructorDef>();
  for (  ConstructorDef def : ((ClassNode)n).injectableConstructors) {
    boolean canInject=true;
    for (    ConstructorArg arg : def.args) {
      String name=arg.getFullyQualifiedName(clazz);
      if (!canInject(name)) {
        canInject=false;
      }
    }
    if (canInject) {
      defs.add(def);
    }
  }
  for (int i=0; i < defs.size(); i++) {
    for (int j=0; j < defs.size(); j++) {
      if (defs.get(i).isMoreSpecificThan(defs.get(j))) {
        defs.remove(j);
        if (i >= j) {
          i--;
        }
        j--;
      }
    }
  }
  if (defs.size() == 0) {
    throw new IllegalArgumentException("String_Node_Str" + clazz);
  }
  if (defs.size() > 1) {
    throw new IllegalArgumentException("String_Node_Str" + clazz + "String_Node_Str"+ Arrays.toString(defs.toArray()));
  }
  List<Object> args=new ArrayList<Object>();
  for (  ConstructorArg arg : defs.get(0).args) {
    Node argNode=namespace.getNode(arg.getFullyQualifiedName(clazz));
    if (argNode instanceof NamedParameterNode) {
      args.add(boundValues.get(argNode));
    }
 else     if (argNode instanceof ClassNode) {
      args.add(getInstance(((ClassNode)argNode).clazz));
    }
 else {
      throw new IllegalStateException("String_Node_Str" + argNode);
    }
  }
  try {
    return defs.get(0).constructor.newInstance(args.toArray());
  }
 catch (  IllegalArgumentException e) {
    throw new IllegalStateException("String_Node_Str" + defs.get(0).constructor + "String_Node_Str"+ Arrays.toString(args.toArray())+ "String_Node_Str"+ e.getMessage(),e);
  }
}