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

andor pushed a commit to branch branch-3.5
in repository https://gitbox.apache.org/repos/asf/zookeeper.git


The following commit(s) were added to refs/heads/branch-3.5 by this push:
     new 5e57e30  ZOOKEEPER-3277: Add trace listener in NettyServerCnxnFactory 
only if trace logging is enabled
5e57e30 is described below

commit 5e57e30a51fde22e727d7910d53216a014de0a4e
Author: Ilya Maykov <[email protected]>
AuthorDate: Fri Feb 15 15:36:55 2019 +0100

    ZOOKEEPER-3277: Add trace listener in NettyServerCnxnFactory only if trace 
logging is enabled
    
    Based on the code review discussion in #819
    
    Author: Ilya Maykov <[email protected]>
    
    Reviewers: [email protected]
    
    Closes #820 from ivmaykov/ZOOKEEPER-3277
    
    (cherry picked from commit 226af6e29bc00fe4a33269351f20ddf5b6658fd2)
    Signed-off-by: Andor Molnar <[email protected]>
---
 .../org/apache/zookeeper/server/NettyServerCnxnFactory.java  | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git 
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/NettyServerCnxnFactory.java
 
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/NettyServerCnxnFactory.java
index 382a8bf..48f2157 100644
--- 
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/NettyServerCnxnFactory.java
+++ 
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/NettyServerCnxnFactory.java
@@ -193,15 +193,17 @@ public class NettyServerCnxnFactory extends 
ServerCnxnFactory {
         }
 
         // Use a single listener instance to reduce GC
-        private final GenericFutureListener<Future<Void>> 
onWriteCompletedListener = (f) -> {
-            if (LOG.isTraceEnabled()) {
-                LOG.trace("write {}", f.isSuccess() ? "complete" : "failed");
-            }
+        // Note: this listener is only added when LOG.isTraceEnabled() is true,
+        // so it should not do any work other than trace logging.
+        private final GenericFutureListener<Future<Void>> 
onWriteCompletedTracer = (f) -> {
+            LOG.trace("write {}", f.isSuccess() ? "complete" : "failed");
         };
 
         @Override
         public void write(ChannelHandlerContext ctx, Object msg, 
ChannelPromise promise) throws Exception {
-            promise.addListener(onWriteCompletedListener);
+            if (LOG.isTraceEnabled()) {
+                promise.addListener(onWriteCompletedTracer);
+            }
             super.write(ctx, msg, promise);
         }
 

Reply via email to