Description
Given a test case [1], HY throws IOException after skipping the marked position while RI doesn't.
If SKIP_VALUE<=5, HY and RI pass the test;
else HY throws java.lang.IOException [2] but RI also passes this.
[1] Test Case:
public void test_skipJ_scenario1() throws IOException {
byte[] input = "12345678900".getBytes();
BufferedInputStream buffis = new BufferedInputStream(
new ByteArrayInputStream(input));
buffis.read();
buffis.mark(5);
buffis.skip(SKIP_VALUE);
buffis.reset();
}
public void test_skipJ_scenario2() throws IOException {
byte[] input = "12345678900".getBytes();
BufferedInputStream buffis = new BufferedInputStream(
new ByteArrayInputStream(input));
buffis.mark(5);
buffis.skip(SKIP_VALUE + 1);
buffis.reset();
}
[2] Stack Trace:
java.io.IOException: Mark has been invalidated.
at java.io.BufferedInputStream.reset(BufferedInputStream.java:351)