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

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


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

commit 226af6e29bc00fe4a33269351f20ddf5b6658fd2
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
---
 .../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 d1c9e52..06de7fd 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
@@ -205,15 +205,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