在Netty4中更改容量时,将清除ByteBuf

时间:2013-09-10 02:13:26

标签: netty bytebuffer

  

调整此缓冲区的容量。如果{@code newCapacity}是   小于当前容量,这个缓冲区的内容是   截断。如果{@code newCapacity}大于当前值   容量,缓冲区附加长度为的未指定数据   {@code(newCapacity - currentCapacity)}。

从上面显示的ByteBuf.capacity(int newCapacity)的评论中, 我们除了扩展它之前将保留此方法之前的ByteBuf的内容。但是这个测试用例失败了。

ByteBuf bb =
    PooledByteBufAllocator.DEFAULT.directBuffer().order(
        ByteOrder.nativeOrder());

bb.setInt(4, 333);
TestCase.assertEquals(333, bb.getInt(4)); // passed
bb.capacity(4096);
TestCase.assertEquals(333, bb.getInt(4)); // failed

我们断言失败。

junit.framework.AssertionFailedError: expected:<333> but was:<0>

任何人都可以解释它并告诉我如何在不更改内容的情况下放大ByteBuf?

谢谢, 分钟

1 个答案:

答案 0 :(得分:0)

我认为它与此错误报告有关...我们目前正在调查它: https://github.com/netty/netty/issues/1800