RFR: 8285401: Proxy class initializer should use 3-arg `Class.forName` to avoid unnecessary class initialization [v3]

liach duke at openjdk.java.net
Fri May 20 18:22:47 UTC 2022


> Simplify calls `Class.forName(String, boolean, ClassLoader)` instead of `Class.forName(String)`. `make test TEST="jtreg:test/jdk/java/lang/reflect/Proxy"` passes, with the new `LazyInitializationTest` failing the eager initialization check on the baseline and passing with this patch.
> 
> On a side note, this might reduce the number of methods that can be encoded in a proxy due to code attribute size restrictions; we probably would address that in another issue, as we never mandated a count of methods that the proxy must be able to implement.
> 
> Mandy, would you mind review this?

liach has updated the pull request incrementally with one additional commit since the last revision:

  Move the try catch block as it doesn't throw checked exceptions

-------------

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/8800/files
  - new: https://git.openjdk.java.net/jdk/pull/8800/files/64a70479..82f8eeb9

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=8800&range=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=8800&range=01-02

  Stats: 3 lines in 1 file changed: 1 ins; 2 del; 0 mod
  Patch: https://git.openjdk.java.net/jdk/pull/8800.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/8800/head:pull/8800

PR: https://git.openjdk.java.net/jdk/pull/8800


More information about the core-libs-dev mailing list