diff -r faf3a3b0bab6 -r de154169948b src/jdk.jfr/share/classes/jdk/jfr/consumer/ChunkParser.java --- a/src/jdk.jfr/share/classes/jdk/jfr/consumer/ChunkParser.java Thu Jul 11 02:18:31 2019 +0200 +++ b/src/jdk.jfr/share/classes/jdk/jfr/consumer/ChunkParser.java Thu Jul 11 02:21:18 2019 +0200 @@ -256,17 +256,16 @@ } for (int j = 0; j < count; j++) { long key = input.readLong(); -// Object resolved = lookup.getCurrent(key); -// Disable cache Object resolved = lookup.getResolved(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); -// } else { -// parser.skip(input); -// logConstant(key, resolved, true); -// Disable cache lookup.getLatestPool().putResolved(key, resolved); -// } + } else { + parser.skip(input); + logConstant(key, resolved, true); + lookup.getLatestPool().putResolved(key, resolved); + } } } catch (Exception e) { throw new IOException("Error parsing constant pool type " + getName(id) + " at position " + input.position() + " at check point between [" + lastCP + ", " + lastCP + size + "]",