IV68110: JAVA 7 MULTI-TYPE EXCEPTION CATCH FAILS TO EXECUTE THE FINALLY B LOCK
Closed as program error.
Error Message: In a JIT-compiled Java method, a finally block is not executed when: 1. A multi-type catch block is used to catch more than one type of exceptions. 2. An exception is thrown from the try block that matches anything but the first type in the multi-type catch. 3. An exception is thrown from the catch block. It can be a new exception, or the caught (re-thrown) exception. Stack Trace: N/A .
The issue can be avoided by rewriting the multi-type catch block into traditional single-type catch blocks. If it is not feasible to rewrite the code, the JIT compiler can be disabled with the -Xint option.
The JIT compiler incorrectly processes multi-catch blocks that are themselves inside a try region (or have finally clauses, which are the same internally). An internal data structure neglects to record the proper control flow information for the second and subsequent catch types listed.
The JIT compiler has been fixed to generate correct control flow for multi-type catch blocks. . This APAR will be fixed in the following Java Releases: 7 R1 SR2 FP11 (220.127.116.11) 7 SR9 (18.104.22.168) 8 SR1 (22.214.171.124) . Contact your IBM Product's Service Team for these Service Refreshes and Fix Packs. For those running stand-alone, information about the Service Refreshes and Fix Packs can be found at: https://www.ibm.com/developerworks/java/jdk/
Reported component name
Reported component ID
Last modified date
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fixed component name
Fixed component ID
Applicable component levels