Loading... (original) (raw)
After
, ByteBuffer.getFloat() throw BufferOverflowException while BufferUnderflowException is expected.
Test to reproduce this issue:
import java.nio.BufferOverflowException;
import java.nio.BufferUnderflowException;
import java.nio.ByteBuffer;
public class Test {
public static void main(String[] args) {
int length = 4;
float value = Float.MIN_VALUE;
ByteBuffer buffer = ByteBuffer.allocate(length);
buffer.putFloat(value);
buffer.position(0);
if (value != buffer.getFloat()) {
System.out.println("Test Fail: Returned value not equal to what was entered.");
} else {
try {
value = buffer.getFloat();
} catch (BufferUnderflowException e) {
System.out.println("Test Pass: Expected Exception " + e.toString() + " thrown.");
} catch (BufferOverflowException e) {
System.out.println("Test Fail: Unexpected Exception " + e.toString() + " thrown.");
e.printStackTrace();
}
}
}
}
Expected result:
Test Pass: Expected Exception java.nio.BufferUnderflowException thrown.
Real result (with build after
)
Test Fail: Unexpected Exception java.nio.BufferOverflowException thrown.
java.nio.BufferOverflowException
at java.nio.Buffer.nextPutIndex(Buffer.java:527)
at java.nio.HeapByteBuffer.getFloat(HeapByteBuffer.java:480)
at Test.main(Test.java:18)