From f37d9f4da0c064aec9f3c4ebcc6060b6a63c7901 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Wed, 26 Aug 2020 14:28:31 +0200 Subject: [PATCH] Supports null result in function wrapping --- .../messaging/TraceFunctionAutoConfiguration.java | 6 ++++++ .../messaging/TraceSpringIntegrationAutoConfiguration.java | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceFunctionAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceFunctionAutoConfiguration.java index a136088b1..474ac9a66 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceFunctionAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceFunctionAutoConfiguration.java @@ -107,6 +107,12 @@ class TraceFunctionAroundWrapper extends FunctionAroundWrapper traceMessageHandler.afterMessageHandled(wrappedInputMessage.childSpan, throwable); } + if (result == null) { + if (log.isDebugEnabled()) { + log.debug("Returned message is null - we have a consumer"); + } + return null; + } Message msgResult = toMessage(result); MessageAndSpan wrappedOutputMessage = traceMessageHandler.wrapOutputMessage( msgResult, diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceSpringIntegrationAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceSpringIntegrationAutoConfiguration.java index d3c7a9e75..f7168e924 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceSpringIntegrationAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceSpringIntegrationAutoConfiguration.java @@ -119,8 +119,10 @@ class OnEnableBindingCondition implements ConfigurationCondition { @Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { - return !ObjectUtils.isEmpty(context.getBeanFactory().getBeanNamesForAnnotation(EnableBinding.class)); + return !ObjectUtils.isEmpty( + context.getBeanFactory().getBeanNamesForAnnotation(EnableBinding.class)); } + } class OnEnableBindingMissingCondition extends OnEnableBindingCondition { @@ -129,4 +131,5 @@ class OnEnableBindingMissingCondition extends OnEnableBindingCondition { public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { return !super.matches(context, metadata); } + }