diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/util/ByteBufVisitor.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/util/ByteBufVisitor.java index 32e9c8c55a4..4bb60f40c6e 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/util/ByteBufVisitor.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/util/ByteBufVisitor.java @@ -162,12 +162,6 @@ private void passBufferToCallback(ByteBuf visitBuffer, int visitIndex, int visit handleArray(visitBuffer.array(), visitBuffer.arrayOffset() + visitIndex, visitLength); } else if (visitBuffer.hasMemoryAddress() && callback.acceptsMemoryAddress(callbackContext)) { callback.visitBuffer(callbackContext, visitBuffer, visitIndex, visitLength); - } else if (callback.acceptsMemoryAddress(callbackContext) && visitBuffer.isDirect() - && visitBuffer.alloc().isDirectBufferPooled()) { - // read-only buffers need to be copied before they can be directly accessed - ByteBuf copyBuffer = visitBuffer.copy(visitIndex, visitLength); - callback.visitBuffer(callbackContext, copyBuffer, 0, visitLength); - copyBuffer.release(); } else { // fallback to reading the visited buffer into the copy buffer in a loop byte[] copyBuffer = TL_COPY_BUFFER.get();