diff --git a/spring-integration-core/src/main/java/org/springframework/integration/aggregator/MessageGroupExpiredEvent.java b/spring-integration-core/src/main/java/org/springframework/integration/aggregator/MessageGroupExpiredEvent.java index 8d6d6353aa..45a0a9b195 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/aggregator/MessageGroupExpiredEvent.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/aggregator/MessageGroupExpiredEvent.java @@ -65,7 +65,7 @@ public class MessageGroupExpiredEvent extends IntegrationEvent { } public Date getExpired() { - return this.expired; + return (Date) this.expired.clone(); } public boolean isDiscarded() { diff --git a/spring-integration-core/src/main/java/org/springframework/integration/channel/interceptor/GlobalChannelInterceptorWrapper.java b/spring-integration-core/src/main/java/org/springframework/integration/channel/interceptor/GlobalChannelInterceptorWrapper.java index 7f8f5cb1f8..e5699617e5 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/channel/interceptor/GlobalChannelInterceptorWrapper.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/channel/interceptor/GlobalChannelInterceptorWrapper.java @@ -66,7 +66,7 @@ public class GlobalChannelInterceptorWrapper implements Ordered { } public String[] getPatterns() { - return this.patterns; + return this.patterns; // NOSONAR - expose internals } @Override diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/FilterFactoryBean.java b/spring-integration-core/src/main/java/org/springframework/integration/config/FilterFactoryBean.java index 10af4a8df6..c517610e9b 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/config/FilterFactoryBean.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/config/FilterFactoryBean.java @@ -132,9 +132,13 @@ public class FilterFactoryBean extends AbstractStandardMessageHandlerFactoryBean @Override protected boolean canBeUsedDirect(AbstractMessageProducingHandler handler) { return handler instanceof MessageFilter - || (!(handler instanceof MessageSelector) - && this.discardChannel == null && this.throwExceptionOnRejection == null - && this.discardWithinAdvice == null); + || (!(handler instanceof MessageSelector) && noFilterAttributesProvided()); + } + + private boolean noFilterAttributesProvided() { + return this.discardChannel == null + && this.throwExceptionOnRejection == null + && this.discardWithinAdvice == null; } @Override diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/RouterFactoryBean.java b/spring-integration-core/src/main/java/org/springframework/integration/config/RouterFactoryBean.java index 011a09c75e..3ae23dede5 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/config/RouterFactoryBean.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/config/RouterFactoryBean.java @@ -152,7 +152,7 @@ public class RouterFactoryBean extends AbstractStandardMessageHandlerFactoryBean } protected boolean noRouterAttributesProvided() { - return this.channelMappings == null && this.defaultOutputChannel == null + return this.channelMappings == null && this.defaultOutputChannel == null // NOSONAR boolean complexity && getSendTimeout() == null && this.resolutionRequired == null && this.applySequence == null && this.ignoreSendFailures == null; } diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/annotation/AbstractMethodAnnotationPostProcessor.java b/spring-integration-core/src/main/java/org/springframework/integration/config/annotation/AbstractMethodAnnotationPostProcessor.java index b3697fe7b5..a5b0de986f 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/config/annotation/AbstractMethodAnnotationPostProcessor.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/config/annotation/AbstractMethodAnnotationPostProcessor.java @@ -395,9 +395,12 @@ public abstract class AbstractMethodAnnotationPostProcessor or is required.", element); + "Exactly one of the 'ref', 'expression', inner bean,