From 7898551a556722f53cefb541e007c7bcad646015 Mon Sep 17 00:00:00 2001 From: David Capino Date: Thu, 19 Apr 2018 11:25:33 -0700 Subject: [PATCH 1/2] made the common ApplicationConfig constructor private, and do a null check in XioServerState where the trace handler is retreived --- .../com/xjeffrose/xio/application/ApplicationConfig.java | 2 +- .../main/java/com/xjeffrose/xio/server/XioServerState.java | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/xio-core/src/main/java/com/xjeffrose/xio/application/ApplicationConfig.java b/xio-core/src/main/java/com/xjeffrose/xio/application/ApplicationConfig.java index b49f3bf1..4a86d1a0 100644 --- a/xio-core/src/main/java/com/xjeffrose/xio/application/ApplicationConfig.java +++ b/xio-core/src/main/java/com/xjeffrose/xio/application/ApplicationConfig.java @@ -38,7 +38,7 @@ public class ApplicationConfig { private final Map> clientRateLimitOverride = PlatformDependent.newConcurrentHashMap(); - public ApplicationConfig(Config config, XioTracing tracing) { + private ApplicationConfig(Config config, XioTracing tracing) { this.config = config; name = config.getString("name"); bossThreads = config.getInt("settings.bossThreads"); diff --git a/xio-core/src/main/java/com/xjeffrose/xio/server/XioServerState.java b/xio-core/src/main/java/com/xjeffrose/xio/server/XioServerState.java index 0595fac7..df844a4e 100644 --- a/xio-core/src/main/java/com/xjeffrose/xio/server/XioServerState.java +++ b/xio-core/src/main/java/com/xjeffrose/xio/server/XioServerState.java @@ -29,6 +29,10 @@ public XioServerState(XioServerConfig config) { } public ChannelHandler tracingHandler(ApplicationState appState) { - return appState.tracing().newServerHandler(config.isTlsEnabled()); + if (appState.tracing() != null) { + return appState.tracing().newServerHandler(config.isTlsEnabled()); + } else { + return null; + } } } From bf16048a5a86e8e07cce9bd53dc3ee7f1200b06f Mon Sep 17 00:00:00 2001 From: David Capino Date: Thu, 19 Apr 2018 11:41:33 -0700 Subject: [PATCH 2/2] added visibleForTesting for test convenience constructor --- .../java/com/xjeffrose/xio/application/ApplicationConfig.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/xio-core/src/main/java/com/xjeffrose/xio/application/ApplicationConfig.java b/xio-core/src/main/java/com/xjeffrose/xio/application/ApplicationConfig.java index 4a86d1a0..0f13d160 100644 --- a/xio-core/src/main/java/com/xjeffrose/xio/application/ApplicationConfig.java +++ b/xio-core/src/main/java/com/xjeffrose/xio/application/ApplicationConfig.java @@ -1,5 +1,6 @@ package com.xjeffrose.xio.application; +import com.google.common.annotations.VisibleForTesting; import com.typesafe.config.Config; import com.typesafe.config.ConfigException; import com.typesafe.config.ConfigFactory; @@ -56,6 +57,7 @@ private ApplicationConfig(Config config, XioTracing tracing) { this.tracing = tracing; } + @VisibleForTesting public ApplicationConfig(Config config, Function tracingSupplier) { this(config, tracingSupplier.apply(config)); }