Fix NettyDataBuffer#lastIndexOf()
This commit is contained in:
@@ -91,7 +91,7 @@ public class NettyDataBuffer implements PooledDataBuffer {
|
||||
return -1;
|
||||
}
|
||||
fromIndex = Math.min(fromIndex, this.byteBuf.writerIndex() - 1);
|
||||
return this.byteBuf.forEachByteDesc(0, fromIndex, predicate.negate()::test);
|
||||
return this.byteBuf.forEachByteDesc(0, fromIndex + 1, predicate.negate()::test);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -210,15 +210,24 @@ public class DataBufferTests extends AbstractDataBufferAllocatingTestCase {
|
||||
DataBuffer buffer = createDataBuffer(3);
|
||||
buffer.write(new byte[]{'a', 'b', 'c'});
|
||||
|
||||
int result = buffer.lastIndexOf(b -> b == 'b', 3);
|
||||
int result = buffer.lastIndexOf(b -> b == 'b', 2);
|
||||
assertEquals(1, result);
|
||||
|
||||
result = buffer.lastIndexOf(b -> b == 'c', 2);
|
||||
assertEquals(2, result);
|
||||
|
||||
result = buffer.lastIndexOf(b -> b == 'b', Integer.MAX_VALUE);
|
||||
assertEquals(1, result);
|
||||
|
||||
result = buffer.lastIndexOf(b -> b == 'c', Integer.MAX_VALUE);
|
||||
assertEquals(2, result);
|
||||
|
||||
result = buffer.lastIndexOf(b -> b == 'b', Integer.MIN_VALUE);
|
||||
assertEquals(-1, result);
|
||||
|
||||
result = buffer.lastIndexOf(b -> b == 'c', Integer.MIN_VALUE);
|
||||
assertEquals(-1, result);
|
||||
|
||||
result = buffer.lastIndexOf(b -> b == 'z', 0);
|
||||
assertEquals(-1, result);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user