JDK-8207315 : [lworld] Examine class file generators in JDK that may need upgrade to support LWorld
  • Type: Task
  • Component: core-libs
  • Sub-Component: java.lang:reflect
  • Affected Version: repo-valhalla
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2018-07-14
  • Updated: 2022-03-29
  • Resolved: 2022-03-29
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
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
List of class file generators in JDK (TBD):
   - java.lang.invoke.InnerClassLambdaMetafactory generates lambda proxy classes
   - jdk.internal.reflect.MethodAccessorGenerator generates MethodAccessor class as reflective method invocation and constructors
   - java.lang.reflect.ProxyGenerator generates dynamic proxy classes
 :
 :
Comments
This issue can be closed. Core reflection was reimplemented with method handles (JEP 416 [1]) and dynamic proxy generator was updated to use ASM. [1] https://openjdk.java.net/jeps/416
29-03-2022

LW2 no longer uses ValueTypes attribute but moves to Q-descriptor and L-descriptor. At some point VM will want to enable the check to only allow class files with the version supporting value types to use Q-descriptor.
13-12-2018

Thanks Daniel for the list. For lworld value type model, if the generated class references a value type, the class file will need to include ValueTypes attributes. As a prototype, we modified the existing implementation to track and generate ValueTypes attributes. Ideally a bytecode library would provide the value types support (tracking and output the proper ValueTypes attribute). We need to examine what class files are spinned out and which one needs to be made value-aware. Also the class file version is not yet updated until some are pretty old <= 49 which requires non-small amount of work to update it. Looks like all except ProxyGenerator, Translets, PRef class in java.management.rmi use ASM that supports generating classfile with version >= 50. ProxyGenerator will need to be upgraded to (JDK-8207814). I think no change is needed for jdk.jmx.remote.internal.rmi.PRef.
31-08-2018