From 6380f6bdf7d58b3dbf69c7db074a62fac7ce3d26 Mon Sep 17 00:00:00 2001 From: Mukesh Gurpude Date: Thu, 7 Nov 2024 11:07:54 +0530 Subject: [PATCH 1/5] fix: NPE if command name is not provided --- .../java/io/appform/core/hystrix/CommandFactory.java | 2 +- .../java/io/appform/core/hystrix/TracingHandler.java | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/appform/core/hystrix/CommandFactory.java b/src/main/java/io/appform/core/hystrix/CommandFactory.java index 90ace9c..5f7d1c4 100644 --- a/src/main/java/io/appform/core/hystrix/CommandFactory.java +++ b/src/main/java/io/appform/core/hystrix/CommandFactory.java @@ -30,7 +30,7 @@ public static GenericHystrixCommand create( public static GenericHystrixCommand create( String group, String command) { - return create(group,command, UUID.randomUUID().toString().replaceAll("-", "")); + return create(group,command, UUID.randomUUID().toString().replace("-", "")); } private CommandFactory() {} diff --git a/src/main/java/io/appform/core/hystrix/TracingHandler.java b/src/main/java/io/appform/core/hystrix/TracingHandler.java index bf68a79..5ba088c 100644 --- a/src/main/java/io/appform/core/hystrix/TracingHandler.java +++ b/src/main/java/io/appform/core/hystrix/TracingHandler.java @@ -4,12 +4,17 @@ import io.opentracing.Span; import io.opentracing.Tracer; import io.opentracing.util.GlobalTracer; +import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; + +import java.util.Objects; /** * Utility class that handles all tracing related operations */ @Slf4j +@UtilityClass public class TracingHandler { public static Tracer getTracer() { @@ -37,9 +42,10 @@ public static Span startChildSpan(final Tracer tracer, if (tracer == null || parentSpan == null) { return null; } - return tracer.buildSpan("hystrix:"+command) + + return tracer.buildSpan("hystrix:" + (Objects.isNull(command) ? "undefined_command_name" : command)) .asChildOf(parentSpan) - .withTag("hystrix.command", command) + .withTag("hystrix.command", StringUtils.trimToEmpty(command)) .start(); } catch (Exception e) { log.error("Error while starting child span", e); From 988e5dd7a6477c2d1e29089715904101a24359fb Mon Sep 17 00:00:00 2001 From: Mukesh Gurpude Date: Wed, 13 Nov 2024 10:23:22 +0530 Subject: [PATCH 2/5] refactor: use commandKey instead of commandName in tag --- .../java/io/appform/core/hystrix/GenericHystrixCommand.java | 2 +- src/main/java/io/appform/core/hystrix/TracingHandler.java | 6 +++--- .../java/io/appform/core/hystrix/CommandFactoryTest.java | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/io/appform/core/hystrix/GenericHystrixCommand.java b/src/main/java/io/appform/core/hystrix/GenericHystrixCommand.java index 72644c1..14e19fa 100644 --- a/src/main/java/io/appform/core/hystrix/GenericHystrixCommand.java +++ b/src/main/java/io/appform/core/hystrix/GenericHystrixCommand.java @@ -59,7 +59,7 @@ protected R run() throws Exception { if (parentMDCContext != null) { MDC.setContextMap(parentMDCContext); } - final Span span = TracingHandler.startChildSpan(tracer, parentActiveSpan, command); + final Span span = TracingHandler.startChildSpan(tracer, parentActiveSpan, commandKey(group, command)); final Scope scope = TracingHandler.activateSpan(tracer, span); MDC.put(TRACE_ID, traceId); diff --git a/src/main/java/io/appform/core/hystrix/TracingHandler.java b/src/main/java/io/appform/core/hystrix/TracingHandler.java index 5ba088c..62b44f8 100644 --- a/src/main/java/io/appform/core/hystrix/TracingHandler.java +++ b/src/main/java/io/appform/core/hystrix/TracingHandler.java @@ -37,15 +37,15 @@ public static Span getParentActiveSpan(final Tracer tracer) { public static Span startChildSpan(final Tracer tracer, final Span parentSpan, - final String command) { + final String commandKey) { try { if (tracer == null || parentSpan == null) { return null; } - return tracer.buildSpan("hystrix:" + (Objects.isNull(command) ? "undefined_command_name" : command)) + return tracer.buildSpan("hystrix:" + (Objects.isNull(commandKey) ? "undefined_command_name" : commandKey)) .asChildOf(parentSpan) - .withTag("hystrix.command", StringUtils.trimToEmpty(command)) + .withTag("hystrix.command", StringUtils.trimToEmpty(commandKey)) .start(); } catch (Exception e) { log.error("Error while starting child span", e); diff --git a/src/test/java/io/appform/core/hystrix/CommandFactoryTest.java b/src/test/java/io/appform/core/hystrix/CommandFactoryTest.java index 8998161..987f608 100644 --- a/src/test/java/io/appform/core/hystrix/CommandFactoryTest.java +++ b/src/test/java/io/appform/core/hystrix/CommandFactoryTest.java @@ -51,4 +51,4 @@ public void testCreateCollectionCommand() { .execute(); Assert.assertEquals(result, list); } -} \ No newline at end of file +} From 848d5783bec14038a5872b7a4813efc32318dac0 Mon Sep 17 00:00:00 2001 From: Mukesh Gurpude Date: Wed, 13 Nov 2024 10:26:23 +0530 Subject: [PATCH 3/5] refactor: remove unnecessary condition --- src/main/java/io/appform/core/hystrix/TracingHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/appform/core/hystrix/TracingHandler.java b/src/main/java/io/appform/core/hystrix/TracingHandler.java index 62b44f8..a67320a 100644 --- a/src/main/java/io/appform/core/hystrix/TracingHandler.java +++ b/src/main/java/io/appform/core/hystrix/TracingHandler.java @@ -43,7 +43,7 @@ public static Span startChildSpan(final Tracer tracer, return null; } - return tracer.buildSpan("hystrix:" + (Objects.isNull(commandKey) ? "undefined_command_name" : commandKey)) + return tracer.buildSpan("hystrix:" + commandKey) .asChildOf(parentSpan) .withTag("hystrix.command", StringUtils.trimToEmpty(commandKey)) .start(); From c8e58e70be1ed53645041e11eed823919d881e7b Mon Sep 17 00:00:00 2001 From: Mukesh Gurpude Date: Wed, 13 Nov 2024 10:32:28 +0530 Subject: [PATCH 4/5] refactor: remove unnecessary imports --- src/main/java/io/appform/core/hystrix/TracingHandler.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/io/appform/core/hystrix/TracingHandler.java b/src/main/java/io/appform/core/hystrix/TracingHandler.java index a67320a..89399b2 100644 --- a/src/main/java/io/appform/core/hystrix/TracingHandler.java +++ b/src/main/java/io/appform/core/hystrix/TracingHandler.java @@ -6,9 +6,6 @@ import io.opentracing.util.GlobalTracer; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang.StringUtils; - -import java.util.Objects; /** * Utility class that handles all tracing related operations @@ -45,7 +42,7 @@ public static Span startChildSpan(final Tracer tracer, return tracer.buildSpan("hystrix:" + commandKey) .asChildOf(parentSpan) - .withTag("hystrix.command", StringUtils.trimToEmpty(commandKey)) + .withTag("hystrix.command", commandKey) .start(); } catch (Exception e) { log.error("Error while starting child span", e); From c36c1a92a7079f96f7580f1eb9d2fbd7280213c4 Mon Sep 17 00:00:00 2001 From: Mukesh Gurpude Date: Wed, 13 Nov 2024 10:35:33 +0530 Subject: [PATCH 5/5] refactor: remove use of experimental UtilityClass --- src/main/java/io/appform/core/hystrix/TracingHandler.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/appform/core/hystrix/TracingHandler.java b/src/main/java/io/appform/core/hystrix/TracingHandler.java index 89399b2..7e0a67b 100644 --- a/src/main/java/io/appform/core/hystrix/TracingHandler.java +++ b/src/main/java/io/appform/core/hystrix/TracingHandler.java @@ -4,14 +4,12 @@ import io.opentracing.Span; import io.opentracing.Tracer; import io.opentracing.util.GlobalTracer; -import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; /** * Utility class that handles all tracing related operations */ @Slf4j -@UtilityClass public class TracingHandler { public static Tracer getTracer() { @@ -76,4 +74,6 @@ public static void closeScopeAndSpan(final Span span, log.error("Error while closing span and scope", e); } } + + private TracingHandler() {} }