< prev index next >
core/org.openjdk.jmc.flightrecorder/src/main/java/org/openjdk/jmc/flightrecorder/internal/parser/v1/TypeManager.java
Print this page
*** 117,139 ****
// NOTE: Using constant pool id as identifier.
private static final Map<Long, StructContentType<Object[]>> STRUCT_TYPES = new HashMap<>();
private class TypeEntry {
private static final String STRUCT_TYPE_STACK_TRACE = "com.oracle.jfr.types.StackTrace"; //$NON-NLS-1$
private static final String STRUCT_TYPE_STACK_FRAME = "com.oracle.jfr.types.StackFrame"; //$NON-NLS-1$
private static final String STRUCT_TYPE_METHOD = "com.oracle.jfr.types.Method"; //$NON-NLS-1$
! private static final String STRUCT_TYPE_CLASS = "java.lang.Class"; //$NON-NLS-1$
private static final String STRUCT_TYPE_CLASS_LOADER = "com.oracle.jfr.types.ClassLoader"; //$NON-NLS-1$
private static final String STRUCT_TYPE_MODULE = "com.oracle.jfr.types.Module"; //$NON-NLS-1$
private static final String STRUCT_TYPE_PACKAGE = "com.oracle.jfr.types.Package"; //$NON-NLS-1$
private static final String STRUCT_TYPE_OLD_OBJECT = "com.oracle.jfr.types.OldObject"; //$NON-NLS-1$
private static final String STRUCT_TYPE_OLD_OBJECT_ARRAY = "com.oracle.jfr.types.OldObjectArray"; //$NON-NLS-1$
private static final String STRUCT_TYPE_OLD_OBJECT_FIELD = "com.oracle.jfr.types.OldObjectField"; //$NON-NLS-1$
private static final String STRUCT_TYPE_OLD_OBJECT_GC_ROOT = "com.oracle.jfr.types.OldObjectGcRoot"; //$NON-NLS-1$
private static final String STRUCT_TYPE_THREAD_GROUP = "com.oracle.jfr.types.ThreadGroup"; //$NON-NLS-1$
! private static final String STRUCT_TYPE_THREAD = "java.lang.Thread"; //$NON-NLS-1$
final ClassElement element;
final FastAccessNumberMap<Object> constants;
private IValueReader reader;
--- 117,150 ----
// NOTE: Using constant pool id as identifier.
private static final Map<Long, StructContentType<Object[]>> STRUCT_TYPES = new HashMap<>();
private class TypeEntry {
+ private static final String STRUCT_TYPE_CLASS = "java.lang.Class"; //$NON-NLS-1$
+ private static final String STRUCT_TYPE_THREAD = "java.lang.Thread"; //$NON-NLS-1$
private static final String STRUCT_TYPE_STACK_TRACE = "com.oracle.jfr.types.StackTrace"; //$NON-NLS-1$
+ private static final String STRUCT_TYPE_STACK_TRACE_2 = "jdk.types.StackTrace"; //$NON-NLS-1$
private static final String STRUCT_TYPE_STACK_FRAME = "com.oracle.jfr.types.StackFrame"; //$NON-NLS-1$
+ private static final String STRUCT_TYPE_STACK_FRAME_2 = "jdk.types.StackFrame"; //$NON-NLS-1$
private static final String STRUCT_TYPE_METHOD = "com.oracle.jfr.types.Method"; //$NON-NLS-1$
! private static final String STRUCT_TYPE_METHOD_2 = "jdk.types.Method"; //$NON-NLS-1$
private static final String STRUCT_TYPE_CLASS_LOADER = "com.oracle.jfr.types.ClassLoader"; //$NON-NLS-1$
+ private static final String STRUCT_TYPE_CLASS_LOADER_2 = "jdk.types.ClassLoader"; //$NON-NLS-1$
private static final String STRUCT_TYPE_MODULE = "com.oracle.jfr.types.Module"; //$NON-NLS-1$
+ private static final String STRUCT_TYPE_MODULE_2 = "jdk.types.Module"; //$NON-NLS-1$
private static final String STRUCT_TYPE_PACKAGE = "com.oracle.jfr.types.Package"; //$NON-NLS-1$
+ private static final String STRUCT_TYPE_PACKAGE_2 = "jdk.types.Package"; //$NON-NLS-1$
private static final String STRUCT_TYPE_OLD_OBJECT = "com.oracle.jfr.types.OldObject"; //$NON-NLS-1$
+ private static final String STRUCT_TYPE_OLD_OBJECT_2 = "jdk.types.OldObject"; //$NON-NLS-1$
private static final String STRUCT_TYPE_OLD_OBJECT_ARRAY = "com.oracle.jfr.types.OldObjectArray"; //$NON-NLS-1$
+ private static final String STRUCT_TYPE_OLD_OBJECT_ARRAY_2 = "jdk.types.OldObjectArray"; //$NON-NLS-1$
private static final String STRUCT_TYPE_OLD_OBJECT_FIELD = "com.oracle.jfr.types.OldObjectField"; //$NON-NLS-1$
+ private static final String STRUCT_TYPE_OLD_OBJECT_FIELD_2 = "jdk.types.OldObjectField"; //$NON-NLS-1$
private static final String STRUCT_TYPE_OLD_OBJECT_GC_ROOT = "com.oracle.jfr.types.OldObjectGcRoot"; //$NON-NLS-1$
+ private static final String STRUCT_TYPE_OLD_OBJECT_GC_ROOT_2 = "jdk.types.OldObjectGcRoot"; //$NON-NLS-1$
private static final String STRUCT_TYPE_THREAD_GROUP = "com.oracle.jfr.types.ThreadGroup"; //$NON-NLS-1$
! private static final String STRUCT_TYPE_THREAD_GROUP_2 = "jdk.types.ThreadGroup"; //$NON-NLS-1$
final ClassElement element;
final FastAccessNumberMap<Object> constants;
private IValueReader reader;
*** 165,176 ****
reader = new StringReader(constants);
} else {
reader = new PrimitiveReader(element.typeIdentifier);
}
} else {
! AbstractStructReader typeReader = createStructReader(element.typeIdentifier, element.label,
! element.description, fieldCount);
// assign before resolving field since it may be recursive
reader = typeReader;
for (int i = 0; i < fieldCount; i++) {
FieldElement fe = element.fields.get(i);
IValueReader reader = createFieldReader(fe, null);
--- 176,190 ----
reader = new StringReader(constants);
} else {
reader = new PrimitiveReader(element.typeIdentifier);
}
} else {
! AbstractStructReader typeReader = element.typeIdentifier.startsWith("jdk.") //$NON-NLS-1$
! ? createStructReaderV2(element.typeIdentifier, element.label, element.description,
! fieldCount)
! : createStructReaderV1(element.typeIdentifier, element.label, element.description,
! fieldCount);
// assign before resolving field since it may be recursive
reader = typeReader;
for (int i = 0; i < fieldCount; i++) {
FieldElement fe = element.fields.get(i);
IValueReader reader = createFieldReader(fe, null);
*** 180,190 ****
}
}
return reader;
}
! private AbstractStructReader createStructReader(
String identifier, String name, String description, int fieldCount) {
switch (identifier) {
case STRUCT_TYPE_THREAD:
return new ReflectiveReader(JfrThread.class, fieldCount, UnitLookup.THREAD);
case STRUCT_TYPE_THREAD_GROUP:
--- 194,242 ----
}
}
return reader;
}
! private AbstractStructReader createStructReaderV2(
! String identifier, String name, String description, int fieldCount) {
! switch (identifier) {
! case STRUCT_TYPE_THREAD_GROUP_2:
! return new ReflectiveReader(JfrThreadGroup.class, fieldCount, UnitLookup.THREAD_GROUP);
! case STRUCT_TYPE_CLASS_LOADER_2:
! return new ReflectiveReader(JfrJavaClassLoader.class, fieldCount, UnitLookup.CLASS_LOADER);
! case STRUCT_TYPE_OLD_OBJECT_GC_ROOT_2:
! return new ReflectiveReader(JfrOldObjectGcRoot.class, fieldCount, UnitLookup.OLD_OBJECT_GC_ROOT);
! case STRUCT_TYPE_OLD_OBJECT_2:
! return new ReflectiveReader(JfrOldObject.class, fieldCount, UnitLookup.OLD_OBJECT);
! case STRUCT_TYPE_OLD_OBJECT_ARRAY_2:
! return new ReflectiveReader(JfrOldObjectArray.class, fieldCount, UnitLookup.OLD_OBJECT_ARRAY);
! case STRUCT_TYPE_OLD_OBJECT_FIELD_2:
! return new ReflectiveReader(JfrOldObjectField.class, fieldCount, UnitLookup.OLD_OBJECT_FIELD);
! case STRUCT_TYPE_METHOD_2:
! return new ReflectiveReader(JfrMethod.class, fieldCount, UnitLookup.METHOD);
! case STRUCT_TYPE_STACK_FRAME_2:
! return new ReflectiveReader(JfrFrame.class, fieldCount, UnitLookup.STACKTRACE_FRAME);
! case STRUCT_TYPE_STACK_TRACE_2:
! return new ReflectiveReader(JfrStackTrace.class, fieldCount, UnitLookup.STACKTRACE);
! case STRUCT_TYPE_MODULE_2:
! return new ReflectiveReader(JfrJavaModule.class, fieldCount, UnitLookup.MODULE);
! case STRUCT_TYPE_PACKAGE_2:
! return new ReflectiveReader(JfrJavaPackage.class, fieldCount, UnitLookup.PACKAGE);
! default:
! synchronized (STRUCT_TYPES) {
! StructContentType<Object[]> structType = STRUCT_TYPES.get(element.classId);
! if (structType == null) {
! structType = new StructContentType<>(element.typeIdentifier, element.label,
! element.description);
! STRUCT_TYPES.put(element.classId, structType);
! }
! return new StructReader(structType, fieldCount);
! }
! }
! }
!
! private AbstractStructReader createStructReaderV1(
String identifier, String name, String description, int fieldCount) {
switch (identifier) {
case STRUCT_TYPE_THREAD:
return new ReflectiveReader(JfrThread.class, fieldCount, UnitLookup.THREAD);
case STRUCT_TYPE_THREAD_GROUP:
< prev index next >