RFR 4505697: nsk/jdi/ExceptionEvent/_itself_/exevent006 and exevent008 tests fail with InvocationTargetException

Jaroslav Bachorik jaroslav.bachorik at oracle.com
Fri Feb 14 03:07:09 PST 2014


This is a round-0 review request.

The reflection code intercepting the exceptions thrown in the invoked 
methods does not play nicely with JVMTI (which, in this case, propagates 
to JDI).

The reflection code lacks the traditional error handler - therefore, 
upon throwing the NumberFormatException, the stack is searched for 
appropriate handlers and none are found. This leaves the 
"exception_detected" flag set to true while normally it would be reset 
to false once the exception is handled. The reflection code then goes on 
and wraps the NumberFormatException into InvocationTargetException and 
throws it. But, alas, the "exception_detected" flag is still set to true 
and no JVMTI exception event will be sent out.

The proposed solution is to call 
thread->jvmti_thread_state()->clear_exception_detected() at the 
appropriate places in the reflection code to reset the 
"exception_detected" flag and enable the InvocationTargetException be 
properly reported over JVMTI.

Issue : https://bugs.openjdk.java.net/browse/JDK-4505697
Webrev: http://cr.openjdk.java.net/~jbachorik/4505697/webrev.00

Thanks!

-JB-


More information about the serviceability-dev mailing list