Fix NettyDataBuffer#lastIndexOf()

master
Sebastien Deleuze 8 years ago
parent 8acceba641
commit 106bda7294
  1. 2
      spring-core/src/main/java/org/springframework/core/io/buffer/NettyDataBuffer.java
  2. 11
      spring-core/src/test/java/org/springframework/core/io/buffer/DataBufferTests.java

@ -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);

Loading…
Cancel
Save