This is an automated email from the ASF dual-hosted git repository.

chenhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new 13ccc4caf8 Only acquire buffer when need write. (#3786)
13ccc4caf8 is described below

commit 13ccc4caf8ad80e84279e88edae0e71b8a555e09
Author: lifepuzzlefun <[email protected]>
AuthorDate: Tue Feb 21 09:10:06 2023 +0800

    Only acquire buffer when need write. (#3786)
    
    ### Motivation
    small fix: when ByteBuf size is zero. the acquired buffer is not released.
---
 .../bookkeeper/bookie/storage/directentrylogger/DirectWriter.java      | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectWriter.java
 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectWriter.java
index e9ef166c5b..17466d1e40 100644
--- 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectWriter.java
+++ 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectWriter.java
@@ -113,12 +113,13 @@ class DirectWriter implements LogWriter {
         checkArgument(Buffer.isAligned(buf.readableBytes()),
                       "Buffer must write multiple of alignment bytes (%d), %d 
is not",
                       Buffer.ALIGNMENT, buf.readableBytes());
-        Buffer tmpBuffer = bufferPool.acquire();
+
         int bytesToWrite = buf.readableBytes();
         if (bytesToWrite <= 0) {
             return;
         }
 
+        Buffer tmpBuffer = bufferPool.acquire();
         tmpBuffer.reset();
         tmpBuffer.writeByteBuf(buf);
         Future<?> f = writeExecutor.submit(() -> {

Reply via email to