RFR: 8242888: Convert dynamic proxy to hidden classes
Alan Bateman
alanb at openjdk.org
Thu May 23 06:15:00 UTC 2024
On Thu, 23 May 2024 03:28:30 GMT, Chen Liang <liach at openjdk.org> wrote:
> Please review this change that convert dynamic proxies implementations to hidden classes, intended to target JDK 24.
>
> Summary:
> 1. Adds new implementation while preserving the old implementation behind `-Djdk.reflect.useLegacyProxyImpl=true` in case there are compatibility issues.
> 2. ClassLoader.defineClass0 takes a ClassLoader instance but discards it in native code; I updated native code to reuse that ClassLoader for Proxy support.
> 3. ProxyGenerator changes mainly involve using Class data to pass Method list (accessed in a single condy) and removal of obsolete setup code generation.
>
> Testing: tier1 and tier2 have no related failures.
>
> Comment: Since #8278, Proxy has been converted to ClassFile API, and infrastructure has changed; now, the migration to hidden classes is much cleaner and has less impact, such as preserving ProtectionDomain and dynamic module without "anchor classes", and avoiding java.lang.invoke package.
There are compatibility concerns and behavioural differences that will require significant effort to consider before doing this. This is the reason that this one has been kicked down the road several times.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/19356#issuecomment-2126310091
More information about the core-libs-dev
mailing list