RFR: 8265796: vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects002/referringObjects002.java fails when running with the fix for JDK-6824466 [v2]

Leonid Mesnik lmesnik at openjdk.java.net
Thu Nov 18 02:46:37 UTC 2021


On Tue, 16 Nov 2021 02:45:13 GMT, Leonid Mesnik <lmesnik at openjdk.org> wrote:

>> The nsk.share.jdi.TestClass1 is used via reflection. The reflective call creates MethodHandle and one more reference to TestClass1.  So the number of expected references should be incremented.  Thanks to @plummercj and @mlchung for the investigation.
>> This fix also prints references to inspected class.
>
> Leonid Mesnik has updated the pull request incrementally with one additional commit since the last revision:
> 
>   updated

The debugger doesn't show MemberName::clazz, but I could see it in heapdump. It seems because it doesn't have GC root and should be here by JDI spec.
And the MethodType is referred from 'static final ConcurrentWeakInternSet<MethodType> internTable = new ConcurrentWeakInternSet<>();’' from java/lang/invoke/MethodType.java.
See ref tree:
instance of java.lang.invoke.MethodType(id=883)
 instance of java.lang.invoke.MethodType$ConcurrentWeakInternSet$WeakEntry(id=887)
  instance of java.util.concurrent.ConcurrentHashMap$Node(id=888)
   instance of java.util.concurrent.ConcurrentHashMap$Node[1024] (id=890)
    instance of java.util.concurrent.ConcurrentHashMap(id=892)
     instance of java.lang.invoke.MethodType$ConcurrentWeakInternSet(id=894)
      instance of java.lang.Class(reflected class=java.lang.invoke.MethodType, id=72)

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

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


More information about the serviceability-dev mailing list