Program: 149854
Project: 149854
Buggy source:
Object invoke(Object receiver,Object[] args) throws IllegalAccessException, IllegalArgumentException, ExceptionInInitializerError, InvocationTargetException {
  VM_Method method=this.method;
  VM_Class declaringClass=method.getDeclaringClass();
  if (!method.isStatic()) {
    if (receiver == null)     throw new NullPointerException();
    receiver=JikesRVMSupport.makeArgumentCompatible(declaringClass,receiver);
  }
  VM_TypeReference[] parameterTypes=method.getParameterTypes();
  if (args == null) {
    if (parameterTypes.length != 0) {
      throw new IllegalArgumentException("String_Node_Str");
    }
  }
 else   if (args.length != parameterTypes.length) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  for (int i=0, n=parameterTypes.length; i < n; ++i) {
    args[i]=JikesRVMSupport.makeArgumentCompatible(parameterTypes[i].resolve(),args[i]);
  }
  if (!method.isPublic() && !m.isAccessible()) {
    VM_Class accessingClass=VM_Class.getClassFromStackFrame(1);
    JikesRVMSupport.checkAccess(method,accessingClass);
  }
  if (!method.isStatic()) {
    VM_Class C=VM_Magic.getObjectType(receiver).asClass();
    method=C.findVirtualMethod(method.getName(),method.getDescriptor());
  }
  if (method.isStatic() && !declaringClass.isInitialized()) {
    try {
      VM_Runtime.initializeClassForDynamicLink(declaringClass);
    }
 catch (    Throwable e) {
      ExceptionInInitializerError ex=new ExceptionInInitializerError();
      ex.initCause(e);
      throw ex;
    }
  }
  try {
    return VM_Reflection.invoke(method,receiver,args);
  }
 catch (  Throwable t) {
    throw new InvocationTargetException(t,"String_Node_Str" + method + "String_Node_Str"+ "String_Node_Str"+ receiver+ "String_Node_Str"+ "String_Node_Str"+ t+ "String_Node_Str");
  }
}

Fixed version (ground truth):
Object invoke(Object receiver,Object[] args) throws IllegalAccessException, IllegalArgumentException, ExceptionInInitializerError, InvocationTargetException {
  VM_Method method=this.method;
  VM_Class declaringClass=method.getDeclaringClass();
  if (!method.isStatic()) {
    if (receiver == null)     throw new NullPointerException();
    receiver=JikesRVMSupport.makeArgumentCompatible(declaringClass,receiver);
  }
  VM_TypeReference[] parameterTypes=method.getParameterTypes();
  if (args == null) {
    if (parameterTypes.length != 0) {
      throw new IllegalArgumentException("String_Node_Str");
    }
  }
 else   if (args.length != parameterTypes.length) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  for (int i=0, n=parameterTypes.length; i < n; ++i) {
    args[i]=JikesRVMSupport.makeArgumentCompatible(parameterTypes[i].resolve(),args[i]);
  }
  if (!method.isPublic() && !m.isAccessible()) {
    VM_Class accessingClass=VM_Class.getClassFromStackFrame(2);
    JikesRVMSupport.checkAccess(method,accessingClass);
  }
  if (!method.isStatic()) {
    VM_Class C=VM_Magic.getObjectType(receiver).asClass();
    method=C.findVirtualMethod(method.getName(),method.getDescriptor());
  }
  if (method.isStatic() && !declaringClass.isInitialized()) {
    try {
      VM_Runtime.initializeClassForDynamicLink(declaringClass);
    }
 catch (    Throwable e) {
      ExceptionInInitializerError ex=new ExceptionInInitializerError();
      ex.initCause(e);
      throw ex;
    }
  }
  try {
    return VM_Reflection.invoke(method,receiver,args);
  }
 catch (  Throwable t) {
    throw new InvocationTargetException(t,"String_Node_Str" + method + "String_Node_Str"+ "String_Node_Str"+ receiver+ "String_Node_Str"+ "String_Node_Str"+ t+ "String_Node_Str");
  }
}