-
Bug
-
Resolution: Fixed
-
P4
-
9
-
None
-
b44
-
Verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8084076 | emb-9 | Pavel Rappo | P4 | Resolved | Fixed | team |
A small typo makes skipping behave incorrectly and in the worst case scenario
leads to an infinite recursion:
public long skip(long n) throws IOException {
if (n <= 0) {
return 0;
}
int skipped = 0;
if (peekb >= 0) {
peekb = -1;
skipped++;
n--;
}
return skipped + skip(n);
}
The last line should have been like this:
return skipped + in.skip(n);
The method doesn't seem to be used by its enclosing classes. I also haven't
found any evidence an instance of PeekInputStream can escape. Nevertheless I
believe this typo should be fixed.
leads to an infinite recursion:
public long skip(long n) throws IOException {
if (n <= 0) {
return 0;
}
int skipped = 0;
if (peekb >= 0) {
peekb = -1;
skipped++;
n--;
}
return skipped + skip(n);
}
The last line should have been like this:
return skipped + in.skip(n);
The method doesn't seem to be used by its enclosing classes. I also haven't
found any evidence an instance of PeekInputStream can escape. Nevertheless I
believe this typo should be fixed.
- backported by
-
JDK-8084076 Fix java.io.ObjectInputStream.PeekInputStream#skip
-
- Resolved
-