Review request for 6795561 (original) (raw)
Xueming Shen Xueming.Shen at Sun.COM
Tue Mar 31 21:16:09 UTC 2009
- Previous message: Review request for 6795561
- Next message: Review request for 6772303
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
looks good; approved.
Alan Bateman wrote:
6795561: (bf) CharBuffer.subSequence() uses wrong capacity value for new buffer
Iris, you might want to review this one. CharBuffer#subSequence(start,end) is specified to return a char buffer that has a position of position() + start, a limit of position() + end, and a capacity of capacity(). For buffers created via CharBuffer#allocate or char buffer views we've always generated code that return a CharBuffer with a position of 0 and a limit and capacity that is the length of the subsequence. To my knowledge this hasn't been noticed, probably because it required casting the result to a char buffer. In jdk7 this method has been updated to take advantage of covariant returns so it's more likely to be noticed now. Furthermore, your old adversary StringCharBuffer (used when wrapping a char sequence) has been returning a buffer with the incorrect capacity since 6546113 [1], leading to the IOOBE in the bug report. We should have caught this but didn't. To that end, I've added coverage to the unit test. The webrev is here: http://cr.openjdk.java.net/~alanb/6795561/webrev.00/ Thanks, Alan. [1] http://hg.openjdk.java.net/jdk7/tl/jdk/rev/c73cb47fe250
- Previous message: Review request for 6795561
- Next message: Review request for 6772303
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]