See http://mail.openjdk.java.net/pipermail/serviceability-dev/2009-October/001591.html diff --git a/src/share/classes/com/sun/tools/hat/internal/model/JavaStatic.java b/src/share/classes/com/sun/tools/hat/internal/model/JavaStatic.java --- a/src/share/classes/com/sun/tools/hat/internal/model/JavaStatic.java +++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaStatic.java @@ -57,7 +57,10 @@ public class JavaStatic { id = ((JavaObjectRef)value).getId(); } value = value.dereference(snapshot, field); - if (value.isHeapAllocated()) { + if (value.isHeapAllocated() && + clazz.getLoader() == snapshot.getNullThing()) { + // static fields are only roots if they are in classes + // loaded by the root classloader. JavaHeapObject ho = (JavaHeapObject) value; String s = "Static reference from " + clazz.getName() + "." + field.getName();
|