diff --git a/spring-amqp/src/main/java/org/springframework/amqp/core/ExchangeBuilder.java b/spring-amqp/src/main/java/org/springframework/amqp/core/ExchangeBuilder.java index d5e5ffc6..9ce95755 100644 --- a/spring-amqp/src/main/java/org/springframework/amqp/core/ExchangeBuilder.java +++ b/spring-amqp/src/main/java/org/springframework/amqp/core/ExchangeBuilder.java @@ -16,8 +16,10 @@ package org.springframework.amqp.core; +import java.util.Arrays; import java.util.Map; +import org.springframework.util.Assert; import org.springframework.util.ObjectUtils; /** @@ -47,7 +49,7 @@ public final class ExchangeBuilder extends AbstractBuilder { private boolean declare = true; - private Object[] admins; + private Object[] declaringAdmins; /** * Construct an instance of the appropriate type. @@ -176,13 +178,15 @@ public final class ExchangeBuilder extends AbstractBuilder { } /** - * Admins, or admin bean names that should declare this exchange. + * Admin instances, or admin bean names that should declare this exchange. * @param admins the admins. * @return the builder. * @since 2.1 */ public ExchangeBuilder admins(Object... admins) { - this.admins = admins; + Assert.notNull(admins, "'admins' cannot be null"); + Assert.noNullElements(admins, "'admins' can't have null elements"); + this.declaringAdmins = Arrays.copyOf(admins, admins.length); return this; } @@ -207,8 +211,8 @@ public final class ExchangeBuilder extends AbstractBuilder { exchange.setDelayed(this.delayed); exchange.setIgnoreDeclarationExceptions(this.ignoreDeclarationExceptions); exchange.setShouldDeclare(this.declare); - if (!ObjectUtils.isEmpty(this.admins)) { - exchange.setAdminsThatShouldDeclare(this.admins); + if (!ObjectUtils.isEmpty(this.declaringAdmins)) { + exchange.setAdminsThatShouldDeclare(this.declaringAdmins); } return exchange; } diff --git a/spring-rabbit-junit/src/main/java/org/springframework/amqp/rabbit/junit/BrokerRunning.java b/spring-rabbit-junit/src/main/java/org/springframework/amqp/rabbit/junit/BrokerRunning.java index 42416209..05dacdc5 100644 --- a/spring-rabbit-junit/src/main/java/org/springframework/amqp/rabbit/junit/BrokerRunning.java +++ b/spring-rabbit-junit/src/main/java/org/springframework/amqp/rabbit/junit/BrokerRunning.java @@ -218,7 +218,12 @@ public final class BrokerRunning extends TestWatcher { private BrokerRunning(boolean assumeOnline, boolean purge, boolean management, String... queues) { this.assumeOnline = assumeOnline; - this.queues = queues; + if (queues != null) { + this.queues = Arrays.copyOf(queues, queues.length); + } + else { + this.queues = null; + } this.purge = purge; this.management = management; setPort(this.defaultPort); 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 bf26fe79..70f2c367 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 @@ -46,6 +46,7 @@ import org.springframework.lang.Nullable; import org.springframework.retry.RecoveryCallback; import org.springframework.retry.support.RetryTemplate; import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.util.Assert; import org.springframework.util.ErrorHandler; import org.springframework.util.backoff.BackOff; import org.springframework.util.backoff.FixedBackOff; @@ -295,23 +296,27 @@ public abstract class AbstractRabbitListenerContainerFactory { this.ignoreDeclarationExceptions = ignoreDeclarationExceptions; } - public void setAdminsThatShouldDeclare(AmqpAdmin... adminsThatShouldDeclare) { - this.adminsThatShouldDeclare = adminsThatShouldDeclare; + public void setAdminsThatShouldDeclare(AmqpAdmin... admins) { + this.adminsThatShouldDeclare = admins; } @Override diff --git a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/ListenerContainerFactoryBean.java b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/ListenerContainerFactoryBean.java index 9cc07066..c1a65752 100644 --- a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/ListenerContainerFactoryBean.java +++ b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/ListenerContainerFactoryBean.java @@ -198,11 +198,11 @@ public class ListenerContainerFactoryBean extends AbstractFactoryBean * In contrast to {@link #setAfterReceivePostProcessors(MessagePostProcessor...)}, this * method does not override the previously added afterReceivePostProcessors. - * @param afterReceivePostProcessors the post processor. + * @param postprocessors the post processor. * @since 2.1.4 */ - public void addAfterReceivePostProcessors(MessagePostProcessor... afterReceivePostProcessors) { - Assert.notNull(afterReceivePostProcessors, "'afterReceivePostProcessors' cannot be null"); + public void addAfterReceivePostProcessors(MessagePostProcessor... postprocessors) { + Assert.notNull(postprocessors, "'afterReceivePostProcessors' cannot be null"); if (this.afterReceivePostProcessors == null) { this.afterReceivePostProcessors = new ArrayList<>(); } - this.afterReceivePostProcessors.addAll(Arrays.asList(afterReceivePostProcessors)); + this.afterReceivePostProcessors.addAll(Arrays.asList(postprocessors)); this.afterReceivePostProcessors = MessagePostProcessorUtils.sort(this.afterReceivePostProcessors); }