The class `ThreadSnapshot$ThreadLock` is internal ThreadSnapshot class.
The `ThreadSnapshot` and `ThreadSnapshot$ThreadLock` are  created and filled by 
VM. The objects for `ThreadLock` are 

The crash originally appeared when jcmd ThreadDump was called for timed-out 
test `compiler/c2/Test6603011.java`. The test is executed with `-Xcomp 
-XX:-Inline` which is required to reproduce the issue. 
In other cases the klass initialized by interpreter or compiler.  

This is why this crash was not find by jcmd test that test how jcmd works for 
monitors.
created but the class is not initialized. 

BTW, the `ThreadSnapshot` is initialized 

  if (snapshot_klass->should_be_initialized()) {
    snapshot_klass->initialize(CHECK_NULL);
  }


Note: `-XX:CompileCommand=compileonly,*ThreadSnapshot*::*` in test is to reduce 
execution time only, test fails without it.

---------
- [x] I confirm that I make this contribution in accordance with the [OpenJDK 
Interim AI Policy](https://openjdk.org/legal/ai).

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

Commit messages:
 - 8378071: Class ThreadSnapshot$ThreadLock is not initialized by VM

Changes: https://git.openjdk.org/jdk/pull/32363/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=32363&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8378071
  Stats: 47 lines in 2 files changed: 47 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/32363.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/32363/head:pull/32363

PR: https://git.openjdk.org/jdk/pull/32363

Reply via email to