RFR: 8263562: Checking if proxy_klass_head is still lambda_proxy_is_available

Yi Yang yyang at openjdk.java.net
Mon Mar 15 02:22:24 UTC 2021


The `Shared Lambda Dictionary` section in the result of SharedLambdaDictionaryPrinter will mix normal klasses with lambda proxy klasses. Using the following commands can reproduce it:

Proc1: `./jshell`
Proc2: `jcmd <proc1> VM.systemdictionary -verbose`

When all archived lambda proxy classes are used, proxy_klass_head(in RunTimeLambdaProxyClassInfo) is still referring to an instance klass that is no longer lambda_proxy_is_available, and its next_link will be set by classloader to link another normal class. Simply checking if proxy_klass_head is lambda_proxy_is_available can solve this problem.

Best regards,
Yang

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

Commit messages:
 - checking if proxy_klass_head is lambda_proxy_is_available

Changes: https://git.openjdk.java.net/jdk/pull/3001/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=3001&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8263562
  Stats: 8 lines in 1 file changed: 2 ins; 0 del; 6 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3001.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3001/head:pull/3001

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


More information about the hotspot-runtime-dev mailing list