JDK-8207194 : [lworld] Update InnerClassLambdaMetafactory to add ValueTypes attribute in generated class
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.lang.invoke
  • Affected Version: repo-valhalla
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2018-07-12
  • Updated: 2018-07-19
  • Resolved: 2018-07-16
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
repo-valhallaFixed
Related Reports
Duplicate :  
Relates :  
Relates :  
Description
java.lang.IncompatibleClassChangeError
        at VarHandleTestAccessBoolean$$Lambda$108/0x000000080011cc40.run(<Unknown>:1000008)
        at VarHandleBaseTest.checkWithThrowable(VarHandleBaseTest.java:126)
        at VarHandleBaseTest.checkUOE(VarHandleBaseTest.java:50)
        at VarHandleTestAccessBoolean.testValueTypeFieldUnsupported(VarHandleTestAccessBoolean.java:317)
        at VarHandleTestAccessBoolean.lambda$accessTestCaseProvider$12(VarHandleTestAccessBoolean.java:221)
        at VarHandleTestAccessBoolean$$Lambda$49/0x0000000800103c40.action(<Unknown>:1000004)
        at VarHandleBaseTest$AccessTestCase.testAccess(VarHandleBaseTest.java:408)
        at VarHandleTestAccessBoolean.testAccess(VarHandleTestAccessBoolean.java:234)


UOE is thrown as expected when lambda is not involved.

java.lang.UnsupportedOperationException
	at java.base/java.lang.invoke.VarForm.getMemberName(VarForm.java:92)
	at java.base/java.lang.invoke.VarHandleGuards.guard_LI_V(VarHandleGuards.java:114)
	at VarHandleTestAccessBoolean.testValueTypeFieldUnsupported(VarHandleTestAccessBoolean.java:311)
	at VarHandleTestAccessBoolean.lambda$accessTestCaseProvider$12(VarHandleTestAccessBoolean.java:221)
	at VarHandleTestAccessBoolean$$Lambda$49/0x0000000800103c40.action(<Unknown>:1000004)
	at VarHandleBaseTest$AccessTestCase.testAccess(VarHandleBaseTest.java:408)
	at VarHandleTestAccessBoolean.testAccess(VarHandleTestAccessBoolean.java:234)

Comments
http://hg.openjdk.java.net/valhalla/valhalla/rev/b0224b61fd22
16-07-2018

I suspect this is due to the lambda generated class missing ValueTypes attribute. For these tests, they fail with the negative test cases when attempting to set the field of a value object. However, I think this is lambda generated class related issue (see JDK-8207170).
12-07-2018

Do we have issues with success cases or only with the incorrect exception throwing? Trying to figure if this is a showstopper or not for LW1
12-07-2018