Is ByteBuf.arrayOffset useless?

Viewed 196

I'm learning Netty in Action.

At the chapter 5.2.2 ByteBuf usage patterns, there is a piece of code that confused me. It is shown below.

ByteBuf heapBuf = ...
if (heapBuf.hasArray()) {
    byte[] array = heapBuf.array();
    int offset = heapBuf.arrayOffset() + heapBuf.readerIndex();
    int lenght = heapBuf.readableBytes();
    handleArray(array, offset, length)
}

I wondered what is the use case of the ByteBuf.arrayOffset() method. The documentation for that method reads:

Returns the offset of the first byte within the backing byte array of this buffer.

Then, I looked up the arrayOffset() method in UnpooledHeapByteBuf.java which implements ByteBuf. The implementation for the method always just returns 0, as seen below.

@Override
public int arrayOffset() {
    return 0;
}

So, is ByteBuf#arrayOffset useless?

2 Answers
Related