@@ -120,7 +120,14 @@ public boolean supportsView(Heap heap, String viewID) {
120
120
public boolean supportsNode (HeapViewerNode parent , Heap heap , String viewID ) {
121
121
if (parent instanceof InstanceNode && !InstanceNode .Mode .INCOMING_REFERENCE .equals (((InstanceNode )parent ).getMode ())) {
122
122
Instance instance = ((InstanceNode )parent ).getInstance ();
123
- return instance != null && !instance .getJavaClass ().isArray ();
123
+ if (instance == null ) return false ;
124
+ JavaClass jcls = instance .getJavaClass ();
125
+ if (jcls .isArray ()) return false ;
126
+ if (Class .class .getName ().equals (jcls .getName ())) {
127
+ JavaClass jclass = heap .getJavaClassByID (instance .getInstanceId ());
128
+ return jclass == null ;
129
+ }
130
+ return true ;
124
131
} else {
125
132
return false ;
126
133
}
@@ -148,7 +155,7 @@ static List<FieldValue> getFields(HeapViewerNode parent, Heap heap, boolean inst
148
155
149
156
}
150
157
151
- // @ServiceProvider(service=HeapViewerNode.Provider.class, position = 250)
158
+ @ ServiceProvider (service =HeapViewerNode .Provider .class , position = 250 )
152
159
@ NbBundle .Messages ({
153
160
"ClassFieldsProvider_Name=static fields"
154
161
})
@@ -159,21 +166,27 @@ public String getName() {
159
166
}
160
167
161
168
public boolean supportsView (Heap heap , String viewID ) {
162
- return viewID .startsWith ("java_objects " ); // NOI18N
169
+ return viewID .startsWith ("java_ " ); // NOI18N
163
170
}
164
171
165
172
public boolean supportsNode (HeapViewerNode parent , Heap heap , String viewID ) {
166
- if (parent instanceof ClassNode ) {
167
- JavaClass javaClass = ((ClassNode )parent ).getJavaClass ();
168
- return javaClass != null && !javaClass .isArray ();
169
- } else {
170
- return false ;
173
+ if (parent instanceof InstanceNode && !InstanceNode .Mode .INCOMING_REFERENCE .equals (((InstanceNode )parent ).getMode ())) {
174
+ Instance instance = ((InstanceNode )parent ).getInstance ();
175
+ if (instance == null ) return false ;
176
+ JavaClass jcls = instance .getJavaClass ();
177
+ if (jcls .isArray ()) return false ;
178
+ if (Class .class .getName ().equals (jcls .getName ())) {
179
+ JavaClass jclass = heap .getJavaClassByID (instance .getInstanceId ());
180
+ return jclass != null ;
181
+ }
171
182
}
183
+ return false ;
172
184
}
173
-
174
185
175
186
protected List <FieldValue > getFields (HeapViewerNode parent , Heap heap ) {
176
- JavaClass jclass = HeapViewerNode .getValue (parent , DataType .CLASS , heap );
187
+ Instance instance = HeapViewerNode .getValue (parent , DataType .INSTANCE , heap );
188
+ if (instance == null ) return null ;
189
+ JavaClass jclass = heap .getJavaClassByID (instance .getInstanceId ());
177
190
return jclass == null ? null : jclass .getStaticFieldValues ();
178
191
}
179
192
0 commit comments