diff --git a/src/jdk.management.jfr/share/classes/jdk/management/jfr/DiskRepository.java b/src/jdk.management.jfr/share/classes/jdk/management/jfr/DiskRepository.java index 7ce5f9c9360..7a871e63e25 100644 --- a/src/jdk.management.jfr/share/classes/jdk/management/jfr/DiskRepository.java +++ b/src/jdk.management.jfr/share/classes/jdk/management/jfr/DiskRepository.java @@ -137,7 +137,7 @@ public State next() { private int typeId; private int typeIdshift; private int sizeShift; - private int payLoadSize; + private long payLoadSize; private int longValueshift; private int eventFieldSize; private int lastFlush; @@ -222,7 +222,7 @@ private void processNumericValueInEvent() { private void processEvent() { int left = currentByteArray.length - index; if (left >= payLoadSize) { - index += payLoadSize; + index = index + (int)payLoadSize; payLoadSize = 0; state = State.EVENT_SIZE; } else { @@ -258,7 +258,7 @@ private void processEventSize() throws IOException { eventFieldSize++; byte b = nextByte(false); - long v = (b & 0x7FL); + long v = (b & 0x7F); payLoadSize += (v << sizeShift); if (b >= 0) { if (payLoadSize == 0) {