On Mon, 27 May 2024 00:03:41 GMT, ExE Boss <d...@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. > > src/java.base/share/classes/jdk/internal/reflect/ReflectionFactory.java line > 557: > >> 555: public static boolean useLegacyProxyImpl() { >> 556: var config = config(); >> 557: return config.useLegacyProxyImpl && >> !config.useOldSerializableConstructor; > > Suggestion: > > return config.useLegacyProxyImpl || > config.useOldSerializableConstructor;
This site can actually simply be `config.useLegacyProxyImpl` as it's initialized in `loadConfig`. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/19356#discussion_r1615382817