From eceeb9c16819d1f1ad900778a56cd1428d6fc6dc Mon Sep 17 00:00:00 2001 From: Gary Russell Date: Fri, 24 Aug 2018 14:04:55 -0400 Subject: [PATCH] GH-1454: Fix NonNullApi Violation Fixes https://github.com/spring-cloud/spring-cloud-stream/issues/1454 Resolves #1455 --- .../stream/binder/DefaultPollableMessageSource.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binder/DefaultPollableMessageSource.java b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binder/DefaultPollableMessageSource.java index eb4543277..727522dd1 100644 --- a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binder/DefaultPollableMessageSource.java +++ b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binder/DefaultPollableMessageSource.java @@ -31,6 +31,7 @@ import org.springframework.core.ParameterizedTypeReference; import org.springframework.integration.StaticMessageHeaderAccessor; import org.springframework.integration.acks.AckUtils; import org.springframework.integration.acks.AcknowledgmentCallback; +import org.springframework.integration.channel.DirectChannel; import org.springframework.integration.core.MessageSource; import org.springframework.integration.core.MessagingTemplate; import org.springframework.integration.support.DefaultErrorMessageStrategy; @@ -62,6 +63,12 @@ import org.springframework.util.Assert; */ public class DefaultPollableMessageSource implements PollableMessageSource, Lifecycle, RetryListener { + private static final DirectChannel dummyChannel = new DirectChannel(); + + static { + dummyChannel.setBeanName("dummy.required.by.nonnull.api"); + } + protected static final ThreadLocal attributesHolder = new ThreadLocal(); private final List interceptors = new ArrayList<>(); @@ -103,7 +110,7 @@ public class DefaultPollableMessageSource implements PollableMessageSource, Life if (result instanceof Message) { Message received = (Message) result; for (ChannelInterceptor interceptor : this.interceptors) { - received = interceptor.preSend(received, null); + received = interceptor.preSend(received, dummyChannel); if (received == null) { return null; }