From 65d9bd17e1522e9e4db05ba25956a73b0963612e Mon Sep 17 00:00:00 2001 From: Gary Russell Date: Fri, 30 Nov 2018 09:10:49 -0500 Subject: [PATCH] AMQP-846: Fix NPE (adviceChain) JIRA: https://jira.spring.io/browse/AMQP-846 --- .../rabbit/config/AbstractRabbitListenerContainerFactory.java | 4 +++- .../rabbit/listener/AbstractMessageListenerContainer.java | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/AbstractRabbitListenerContainerFactory.java b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/AbstractRabbitListenerContainerFactory.java index 36daa0c5be..6511443dc4 100644 --- a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/AbstractRabbitListenerContainerFactory.java +++ b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/AbstractRabbitListenerContainerFactory.java @@ -41,6 +41,7 @@ import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisherAware; +import org.springframework.lang.Nullable; import org.springframework.retry.RecoveryCallback; import org.springframework.retry.support.RetryTemplate; import org.springframework.transaction.PlatformTransactionManager; @@ -194,8 +195,9 @@ public void setDefaultRequeueRejected(Boolean requeueRejected) { * @return the advice chain that was set. Defaults to {@code null}. * @since 1.7.4 */ + @Nullable public Advice[] getAdviceChain() { - return Arrays.copyOf(this.adviceChain, this.adviceChain.length); + return this.adviceChain == null ? null : Arrays.copyOf(this.adviceChain, this.adviceChain.length); } /** diff --git a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/AbstractMessageListenerContainer.java b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/AbstractMessageListenerContainer.java index 78eae81825..8ca907c332 100644 --- a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/AbstractMessageListenerContainer.java +++ b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/AbstractMessageListenerContainer.java @@ -512,8 +512,9 @@ public void setAdviceChain(Advice... adviceChain) { this.adviceChain = Arrays.copyOf(adviceChain, adviceChain.length); } + @Nullable protected Advice[] getAdviceChain() { - return this.adviceChain; + return this.adviceChain == null ? null : Arrays.copyOf(this.adviceChain, this.adviceChain.length); } /**