[ https://issues.apache.org/jira/browse/ZOOKEEPER-1843?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bill Havanki updated ZOOKEEPER-1843: ------------------------------------ Attachment: ZOOKEEPER-1843.v2.patch Here's the second version of the patch with the missing license header and lines wrapped to 80 columns. Thanks! > Oddity in ByteBufferInputStream skip > ------------------------------------ > > Key: ZOOKEEPER-1843 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1843 > Project: ZooKeeper > Issue Type: Bug > Reporter: Justin SB > Assignee: Bill Havanki > Priority: Minor > Fix For: 3.5.0 > > Attachments: ZOOKEEPER-1843.patch, ZOOKEEPER-1843.v2.patch > > > I was reading ByteBufferInputStream.java; here is the skip method: > public long skip(long n) throws IOException { > long newPos = bb.position() + n; > if (newPos > bb.remaining()) { > n = bb.remaining(); > } > bb.position(bb.position() + (int) n); > return n; > } > The first two lines look wrong; we compare a "point" (position) to a > "distance" (remaining). I think the test should be if (newPos >= bb.limit()). > Or more simply: > public long skip(long n) throws IOException { > int remaining = buffer.remaining(); > if (n > remaining) { > n = remaining; > } > buffer.position(buffer.position() + (int) n); > return n; > } -- This message was sent by Atlassian JIRA (v6.2#6252)