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

ByteBuf将在Netty4中更改其容量时被清除,netty,bytebuffer,Netty,Bytebuffer,调整此缓冲区的容量。如果{@code newCapacity}为 小于当前容量时,此缓冲区的内容为 截断的。如果{@code newCapacity}大于当前 容量时,缓冲区会附加长度为的未指定数据 {@code(newCapacity-currentCapacity)} 根据上述对ByteBuf.capacity(int newCapacity)的评论, 我们认为,在本方法之前的ByteBuf的内容物在扩展后会保留。但是这个测试用例失败了 ByteBuf bb = PooledByte

调整此缓冲区的容量。如果{@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>
junit.framework.AssertionFailedError:应为:但为:
任何人都可以解释它,告诉我如何在不改变内容的情况下放大ByteBuf

谢谢,
Min

我认为它与这个bug报告有关。。。我们目前正在调查: