RFR JDK-8207194: [lworld] Update InnerClassLambdaMetafactory to add ValueTypes attribute in generated class (original) (raw)

Harold David Seigel harold.seigel at oracle.com
Mon Jul 16 18:04:12 UTC 2018


I think we should do this as a follow up issue to enforce this in the VM together with the libraries changes to shake out any issue.  Are you okay with that?

Yes, I'm okay with that.  I'm working on a change to ignore the ValueTypes attribute unless the class file version > 55.  I'll include the CLASSFILE_VERSION changes with that, but wait until after you've pushed the fix for 8207194.

Thanks, Harold

On 7/16/2018 1:49 PM, mandy chung wrote:

On 7/16/18 5:42 AM, Harold David Seigel wrote:

Hi Mandy,

The JVM changes look good.  I like the improvement to the ICCE error messages. Can you change the CLASSFILEVERSION in ClassLambdaMetafactory.java from 52 to either 55 or JVMCLASSFILEMAJORVERSION ? The ValueTypes attribute should be ignored in class file versions < 55. I think we should do this as a follow up issue to enforce this in the VM together with the libraries changes to shake out any issue.  Are you okay with that? Mandy Similar changes may also be needed here:  src/java.base/share/classes/jdk/experimental/value/MethodHandleBuilder.java share/classes/java/lang/invoke/StringConcatFactory.java share/classes/java/lang/reflect/ProxyGenerator.java Thanks, Harold On 7/13/2018 9:14 PM, mandy chung wrote: VarHandleTest* and ValueConstructorRef tests fail with ICCE with ValueTypes consistency checking because lambda generated class is missing ValueTypes attribute whereas the target class has the value types locally declared in the attribute.

This patch updates InnerClassLambdaMetafactory to generate lambda classes with ValueTypes attribute.  We will examine other class file generators in JDK separately (JDK-8207315).  I also changed ICCE to include the relevant info which is helpful for troubleshooting. It may be useful to add a new method to return the list of declared value types but leave it for another day. Webrev: http://cr.openjdk.java.net/~mchung/valhalla/webrevs/8207194/webrev.00 I ran jdkcore, jdkvalhalla, and hotspotvalhalla test groups. Mandy



More information about the valhalla-dev mailing list