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);
}