David, Sorry, copied wrong function!
I mean this call weakRef = JNI_FUNC_PTR(env,NewWeakGlobalRef)(env, ref); that can post OutOfMemoryError commonRef_refToID() -> createNode(JNIEnv *env, jobject ref) -> weakRef = JNI_FUNC_PTR(env,NewWeakGlobalRef)(env, ref); -Dmitry On 2014-10-15 16:21, David Holmes wrote: > On 15/10/2014 8:39 PM, Dmitry Samersoff wrote: >> On 2014-10-15 14:27, David Holmes wrote: >>> On 15/10/2014 8:08 PM, Dmitry Samersoff wrote: >>>> Please review the fix: >>>> >>>> http://cr.openjdk.java.net/~dsamersoff/JDK-8030708/webrev.01/ >>>> >>>> Added missed exception checks. >>> >>> src/jdk.jdwp.agent/share/native/libjdwp/outStream.c >>> >>> What is potentially posting the exception? >> >> JvmtiEnv::GetTag(jobject object, jlong* tag_ptr) called from >> commonRef_refToID() > > You mean this call: > > error = JVMTI_FUNC_PTR(gdata->jvmti,GetTag)(gdata->jvmti, ref, &tag); x > > in findNodeByRef which is called by commonRef_refToID? JVM TI doesn't > post exceptions. > > "JVM TI functions never throw exceptions; error conditions are > communicated via the function return value. Any existing exception state > is preserved across a call to a JVM TI function." > > http://docs.oracle.com/javase/8/docs/platform/jvmti/jvmti.html > > David > >> -Dmitry >> >> -- Dmitry Samersoff Oracle Java development team, Saint Petersburg, Russia * I would love to change the world, but they won't give me the sources.
