if (verboseJNI) VM.sysWrite("JNI called: NewObjectV  \n");
if (traceJNI) VM.sysWrite("JNI called: NewObjectV  \n");
  private static int NewObjectV(int envJREF, int classJREF, int methodID, VM_Address argAddress)    throws Exception {      if (verboseJNI) VM.sysWrite("JNI called: NewObjectV  \n");      VM_JNIEnvironment env;      try {        env = VM_Thread.getCurrentThread().getJNIEnv();            Class cls = (Class) env.getJNIRef(classJREF);         VM_Class vmcls = java.lang.JikesRVMSupport.getTypeForClass(cls).asClass();        if (vmcls.isAbstract() || vmcls.isInterface()) {          env.recordException(new InstantiationException());          return 0;        }        Object newobj = VM_JNIEnvironment.invokeInitializer(cls, methodID, argAddress, false, false);        return env.pushJNIRef(newobj);          } catch (Throwable unexpected) {        env = VM_Thread.getCurrentThread().getJNIEnv();        env.recordException(unexpected);        return 0;      }    }