RFR (JAXP): 8169112: java.lang.VerifyError: (class: GregorSamsa, method: template-bash signature: (LGregorSamsa8; )V) Register 10 contains wrong type

Langer, Christoph christoph.langer at sap.com
Wed Dec 14 16:28:34 UTC 2016


Hi Joe,

ok, the test is added: http://cr.openjdk.java.net/~clanger/webrevs/8169112.1/

I'm ready to push, once you are ok with it.

One question: Is the copyright year of WithParam.java really 2016 or should it be corrected?

I guess I should also request a downport to jdk8 immediately, as it is a regression, right?

Best regards
Christoph

From: Joe Wang [mailto:huizhe.wang at oracle.com]
Sent: Dienstag, 13. Dezember 2016 23:18
To: Langer, Christoph <christoph.langer at sap.com>
Cc: core-libs-dev at openjdk.java.net; Aleks Efimov <aleksej.efimov at oracle.com>; jeff Dinkins <Jeff.Dinkins at oracle.com>
Subject: Re: RFR (JAXP): 8169112: java.lang.VerifyError: (class: GregorSamsa, method: template-bash signature: (LGregorSamsa8;)V) Register 10 contains wrong type

Hi Christoph,

For the test, yes, please add an unit test based on the test submitted, sanitize / remove any private information in the original test where necessary.

Best regards,
Joe

On 12/13/16, 12:31 PM, Langer, Christoph wrote:
Hi,

this is the fix for the regression introduced with 8150704. Please review.

Bug: https://bugs.openjdk.java.net/browse/JDK-8169112
Webrev: http://cr.openjdk.java.net/~clanger/webrevs/8169112.0/<http://cr.openjdk.java.net/%7Eclanger/webrevs/8169112.0/>

The problem occurs during "outlining" of a translet method. Outlining happens when the size of bytecode for a translet method exceeds the bytecode limit per method imposed by Java and means splitting the code into smaller methods. 8150704 added the new local variable "_domAdapter" to the implementation of "WithParam" without setting the end of its scope. This somehow leads to issues in outlining and the local variable in the new method might be loaded without being initialized. The problem is not observed for smaller translets where probably outlining is not performed.

Shall I create a new jtreg test from the example attached to the bug? I would just run the sample transformation and the test is passed when no exception occurs.

Best regards
Christoph



More information about the core-libs-dev mailing list