oracle / visualvm

VisualVM is an All-in-One Java Troubleshooting Tool
https://visualvm.github.io/
Other
2.79k stars 297 forks source link

[HeapViewer] NPE from processGCRootReference() #543

Closed thurka closed 6 months ago

thurka commented 6 months ago

Steps to reproduce:

  1. open heap dump in VisualVM 2.1.7
  2. select instance
  3. display path to GC
  4. NPE, see below
java.lang.NullPointerException
    at org.graalvm.visualvm.heapviewer.java.impl.HeapPatterns.processGCRootReference(HeapPatterns.java:48)
    at org.graalvm.visualvm.heapviewer.java.impl.PathToGCRootPlugin.computeInstanceRoots(PathToGCRootPlugin.java:384)
    at org.graalvm.visualvm.heapviewer.java.impl.PathToGCRootPlugin.access$500(PathToGCRootPlugin.java:111)
    at org.graalvm.visualvm.heapviewer.java.impl.PathToGCRootPlugin$1.computeData(PathToGCRootPlugin.java:191)
    at org.graalvm.visualvm.heapviewer.ui.TreeTableView$1.lazilyComputeChildren(TreeTableView.java:148)
    at org.graalvm.visualvm.heapviewer.model.HeapViewerNode$1.doInBackground(HeapViewerNode.java:180)
    at org.graalvm.visualvm.heapviewer.model.HeapViewerNode$1.doInBackground(HeapViewerNode.java:166)
    at java.desktop/javax.swing.SwingWorker$1.call(SwingWorker.java:304)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:343)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
thurka commented 6 months ago

Fixed in master.