diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/AbstractMethodMessageHandler.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/AbstractMethodMessageHandler.java index 76923a748f7..658f4ba0f34 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/AbstractMethodMessageHandler.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/AbstractMethodMessageHandler.java @@ -84,7 +84,7 @@ public abstract class AbstractMethodMessageHandler protected final Log logger = LogFactory.getLog(getClass()); - private Collection destinationPrefixes = new ArrayList<>(); + private final List destinationPrefixes = new ArrayList<>(); private final List customArgumentResolvers = new ArrayList<>(4); @@ -420,6 +420,7 @@ public abstract class AbstractMethodMessageHandler *

If there are no matching prefixes, return {@code null}. *

If there are no destination prefixes, return the destination as is. */ + @SuppressWarnings("ForLoopReplaceableByForEach") @Nullable protected String getLookupDestination(@Nullable String destination) { if (destination == null) { @@ -428,7 +429,8 @@ public abstract class AbstractMethodMessageHandler if (CollectionUtils.isEmpty(this.destinationPrefixes)) { return destination; } - for (String prefix : this.destinationPrefixes) { + for (int i = 0; i < this.destinationPrefixes.size(); i++) { + String prefix = this.destinationPrefixes.get(i); if (destination.startsWith(prefix)) { return destination.substring(prefix.length()); } diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/HandlerMethodArgumentResolverComposite.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/HandlerMethodArgumentResolverComposite.java index f4f7622a06d..5caea7474db 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/HandlerMethodArgumentResolverComposite.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/HandlerMethodArgumentResolverComposite.java @@ -71,9 +71,7 @@ public class HandlerMethodArgumentResolverComposite implements HandlerMethodArgu @Nullable List argumentResolvers) { if (argumentResolvers != null) { - for (HandlerMethodArgumentResolver resolver : argumentResolvers) { - this.argumentResolvers.add(resolver); - } + this.argumentResolvers.addAll(argumentResolvers); } return this; } diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/HandlerMethodReturnValueHandlerComposite.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/HandlerMethodReturnValueHandlerComposite.java index 21f779b9726..ebc9d204a85 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/HandlerMethodReturnValueHandlerComposite.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/HandlerMethodReturnValueHandlerComposite.java @@ -1,5 +1,6 @@ /* - * Copyright 2002-2017 the original author or authors. +/* + * Copyright 2002-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -71,9 +72,7 @@ public class HandlerMethodReturnValueHandlerComposite implements AsyncHandlerMet @Nullable List handlers) { if (handlers != null) { - for (HandlerMethodReturnValueHandler handler : handlers) { - this.returnValueHandlers.add(handler); - } + this.returnValueHandlers.addAll(handlers); } return this; } @@ -83,9 +82,11 @@ public class HandlerMethodReturnValueHandlerComposite implements AsyncHandlerMet return getReturnValueHandler(returnType) != null; } + @SuppressWarnings("ForLoopReplaceableByForEach") @Nullable private HandlerMethodReturnValueHandler getReturnValueHandler(MethodParameter returnType) { - for (HandlerMethodReturnValueHandler handler : this.returnValueHandlers) { + for (int i = 0; i < this.returnValueHandlers.size(); i++) { + HandlerMethodReturnValueHandler handler = this.returnValueHandlers.get(i); if (handler.supportsReturnType(returnType)) { return handler; }