src/jdk.jfr/share/classes/jdk/jfr/consumer/ChunkParser.java
branchJEP-349-branch
changeset 57870 00860d9caf4d
parent 57861 86022e34ba63
child 57883 90e867ac8c37
--- a/src/jdk.jfr/share/classes/jdk/jfr/consumer/ChunkParser.java	Fri Aug 23 18:47:55 2019 +0200
+++ b/src/jdk.jfr/share/classes/jdk/jfr/consumer/ChunkParser.java	Sat Aug 24 14:30:27 2019 +0200
@@ -49,6 +49,7 @@
  */
 final class ChunkParser {
     private static final long CONSTANT_POOL_TYPE_ID = 1;
+    private static final String CHUNKHEADER = "jdk.types.ChunkHeader";
     private final RecordingInput input;
     private final ChunkHeader chunkHeader;
     private final MetadataDescriptor metadata;
@@ -256,13 +257,16 @@
                 ConstantLookup lookup = constantLookups.get(id);
                 Type type = typeMap.get(id);
                 if (lookup == null) {
-                    Logger.log(LogTag.JFR_SYSTEM_PARSER, LogLevel.INFO, "Found constant pool(" + id + ") that is never used");
                     if (type == null) {
                         throw new IOException(
                                 "Error parsing constant pool type " + getName(id) + " at position " + input.position() + " at check point between [" + lastCP + ", " + lastCP + size + "]");
                     }
+                    if (type.getName() != CHUNKHEADER) {
+                        Logger.log(LogTag.JFR_SYSTEM_PARSER, LogLevel.INFO, "Found constant pool(" + id + ") that is never used");
+                    }
                     ConstantMap pool = new ConstantMap(ObjectFactory.create(type, timeConverter), type.getName());
-                    constantLookups.put(type.getId(), new ConstantLookup(pool, type));
+                    lookup = new ConstantLookup(pool, type);
+                    constantLookups.put(type.getId(), lookup);
                 }
                 Parser parser = parsers.get(id);
                 if (parser == null) {
@@ -278,8 +282,8 @@
                     }
                     for (int j = 0; j < count; j++) {
                         long key = input.readLong();
-                      Object resolved = lookup.getPreviousResolved(key);
-                      if (resolved == null) {
+                        Object resolved = lookup.getPreviousResolved(key);
+                        if (resolved == null) {
                             Object v = parser.parse(input);
                             logConstant(key, v, false);
                             lookup.getLatestPool().put(key, v);