--- old/core/org.openjdk.jmc.flightrecorder/src/main/java/org/openjdk/jmc/flightrecorder/internal/parser/v1/ChunkLoaderV1.java 2018-12-18 16:00:34.000000000 +0100 +++ new/core/org.openjdk.jmc.flightrecorder/src/main/java/org/openjdk/jmc/flightrecorder/internal/parser/v1/ChunkLoaderV1.java 2018-12-18 16:00:34.000000000 +0100 @@ -80,17 +80,16 @@ // Read events long index = header.getBodyStartOffset(); - while (true) { + while (index < header.getChunkSize()) { input.seek(index); int size = input.readInt(); long type = input.readLong(); - if (type == ChunkMetadata.METADATA_EVENT_TYPE) { - return data; - } else if (type != CONSTANT_POOL_EVENT_TYPE) { + if (type != CONSTANT_POOL_EVENT_TYPE && type != ChunkMetadata.METADATA_EVENT_TYPE) { manager.readEvent(type, input); } index += size; } + return data; } private static long readConstantPoolEvent(IDataInput input, TypeManager manager)