Program: 80452
Project: 80452
Buggy source:
public Invoking(Class<?> type,String methodName,Object... args){
  try {
    if (null == args || args.length == 0) {
      invoker=new NullArgInvoker(type.getMethod(methodName));
    }
 else {
      Method[] all=type.getMethods();
      List<Method> candidates=new ArrayList<Method>(all.length);
      for (      Method m : all)       if (m.getName().equals(methodName)) {
        candidates.add(m);
      }
      Class<?>[] argTypes=Mirror.evalToTypes(args);
      Object dynaArg=Mirror.evalArgToRealArray(args);
      for (Iterator<Method> it=candidates.iterator(); it.hasNext(); ) {
        Method m=it.next();
        Class<?>[] pts=m.getParameterTypes();
        MatchType mr=Mirror.matchParamTypes(pts,argTypes);
        if (MatchType.YES == mr) {
          invoker=new DefaultInvoker(m,args);
          break;
        }
 else         if (MatchType.LACK == mr) {
          invoker=new DefaultInvoker(m,Lang.arrayLast(args,Mirror.blankArrayArg(pts)));
          break;
        }
 else         if (null != dynaArg && pts.length == 1) {
          if (pts[0] == dynaArg.getClass()) {
            invoker=new DynamicArgsInvoker(m,Lang.array2array(args,pts[0].getComponentType()));
            break;
          }
          if (pts[0].isArray()) {
            if (Mirror.me(pts[0].getComponentType()).getWrapper().equals(Mirror.me(dynaArg.getClass().getComponentType()).getWrapper()))             invoker=new DynamicArgsInvoker(m,Lang.array2array(args,pts[0].getComponentType()));
            break;
          }
        }
      }
      if (null == invoker)       try {
        for (Iterator<Method> it=candidates.iterator(); it.hasNext(); ) {
          Method m=it.next();
          Class<?>[] pts=m.getParameterTypes();
          if (pts.length == args.length) {
            invoker=new DefaultInvoker(m,Lang.array2ObjectArray(args,pts));
          }
 else           if (pts.length == args.length + 1 && pts[args.length].isArray()) {
            invoker=new DefaultInvoker(m,Lang.array2ObjectArray(args,pts));
          }
        }
      }
 catch (      Exception e) {
      }
    }
  }
 catch (  NoSuchMethodException e) {
    throw Lang.wrapThrow(e);
  }
  if (null == invoker)   throw new InvokingException("String_Node_Str",type.getName(),methodName,Lang.concat('\n',args));
  msg=format("String_Node_Str",type.getName(),methodName,Lang.concat('\n',args)) + "String_Node_Str";
}

Fixed version (ground truth):
public Invoking(Class<?> type,String methodName,Object... args){
  try {
    if (null == args || args.length == 0) {
      invoker=new NullArgInvoker(type.getMethod(methodName));
    }
 else {
      Method[] all=type.getMethods();
      List<Method> candidates=new ArrayList<Method>(all.length);
      for (      Method m : all)       if (m.getName().equals(methodName)) {
        candidates.add(m);
      }
      Class<?>[] argTypes=Mirror.evalToTypes(args);
      Object dynaArg=Mirror.evalArgToRealArray(args);
      for (Iterator<Method> it=candidates.iterator(); it.hasNext(); ) {
        Method m=it.next();
        Class<?>[] pts=m.getParameterTypes();
        MatchType mr=Mirror.matchParamTypes(pts,argTypes);
        if (MatchType.YES == mr) {
          invoker=new DefaultInvoker(m,args);
          break;
        }
 else         if (MatchType.LACK == mr) {
          invoker=new DefaultInvoker(m,Lang.arrayLast(args,Mirror.blankArrayArg(pts)));
          break;
        }
 else         if (null != dynaArg && pts.length == 1) {
          if (pts[0] == dynaArg.getClass()) {
            invoker=new DynamicArgsInvoker(m,Lang.array2array(args,pts[0].getComponentType()));
            break;
          }
          if (pts[0].isArray()) {
            if (Mirror.me(pts[0].getComponentType()).getWrapper().equals(Mirror.me(dynaArg.getClass().getComponentType()).getWrapper())) {
              invoker=new DynamicArgsInvoker(m,Lang.array2array(args,pts[0].getComponentType()));
              break;
            }
          }
        }
      }
      if (null == invoker)       try {
        for (Iterator<Method> it=candidates.iterator(); it.hasNext(); ) {
          Method m=it.next();
          Class<?>[] pts=m.getParameterTypes();
          if (pts.length == args.length) {
            invoker=new DefaultInvoker(m,Lang.array2ObjectArray(args,pts));
          }
 else           if (pts.length == args.length + 1 && pts[args.length].isArray()) {
            invoker=new DefaultInvoker(m,Lang.array2ObjectArray(args,pts));
          }
        }
      }
 catch (      Exception e) {
      }
    }
  }
 catch (  NoSuchMethodException e) {
    throw Lang.wrapThrow(e);
  }
  if (null == invoker)   throw new InvokingException("String_Node_Str",type.getName(),methodName,Lang.concat('\n',args));
  msg=format("String_Node_Str",type.getName(),methodName,Lang.concat('\n',args)) + "String_Node_Str";
}