RFR(XS) 8075118: JVM stuck in infinite loop during verification

Dean Long dean.long at oracle.com
Tue Mar 17 19:06:25 UTC 2015

Hi Harold.  How does this change guarantee that the catch handler is 
always scanned? If it was an island of code surrounded by gotos, so that 
it is only reachable through the handler, then it looks like it will now 
be skipped entirely.


On 3/17/2015 11:37 AM, harold seigel wrote:
> Hi,
> Please review this fix for bug JDK-8075118.  The code being verified 
> contained a TRY block whose catch handler was inside the TRY block. 
> Function ClassVerifier::ends_in_throw() scans the bytecodes in a TRY 
> block and then scans the bytecodes in the TRY block's handler and then 
> scans the bytecodes of its handler's handler, etc.  Since, the 
> bytecodes in the handler and the bytecode's handler's handler were the 
> same, it just kept scanning the same bytecodes over and over.
> The fix prevents re-scanning a handler's bytecodes if they are 
> contained in the TRY block.
> Open webrev: http://cr.openjdk.java.net/~hseigel/jdk9_16Mar_8075118/
> JBS Bug:  https://bugs.openjdk.java.net/browse/JDK-8075118
> The fix was tested with the test program provided by the bug,  the JCK 
> Lang, VM, and API tests, the testbase quick and split verifier tests, 
> and with the JTREG hotspot tests.
> Thanks! Harold

More information about the hotspot-runtime-dev mailing list