diff --git a/spring-integration-core/src/main/java/org/springframework/integration/handler/support/CollectionArgumentResolver.java b/spring-integration-core/src/main/java/org/springframework/integration/handler/support/CollectionArgumentResolver.java index cf8ab5d8f0..53b2c9f5a6 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/handler/support/CollectionArgumentResolver.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/handler/support/CollectionArgumentResolver.java @@ -1,5 +1,5 @@ /* - * Copyright 2017 the original author or authors. + * Copyright 2017-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. @@ -65,7 +65,7 @@ public class CollectionArgumentResolver extends AbstractExpressionEvaluator @Override @SuppressWarnings("unchecked") - public Object resolveArgument(MethodParameter parameter, Message message) throws Exception { + public Object resolveArgument(MethodParameter parameter, Message message) { Object value = message.getPayload(); if (this.canProcessMessageList) { @@ -75,8 +75,7 @@ public class CollectionArgumentResolver extends AbstractExpressionEvaluator Collection> messages = (Collection>) value; - parameter.increaseNestingLevel(); - if (Message.class.isAssignableFrom(parameter.getNestedParameterType())) { + if (Message.class.isAssignableFrom(parameter.nested().getNestedParameterType())) { value = messages; } else { @@ -84,7 +83,6 @@ public class CollectionArgumentResolver extends AbstractExpressionEvaluator .map(Message::getPayload) .collect(Collectors.toList()); } - parameter.decreaseNestingLevel(); } if (Iterator.class.isAssignableFrom(parameter.getParameterType())) { diff --git a/spring-integration-core/src/main/java/org/springframework/integration/handler/support/MessagingMethodInvokerHelper.java b/spring-integration-core/src/main/java/org/springframework/integration/handler/support/MessagingMethodInvokerHelper.java index c634a6c349..68dc3288da 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/handler/support/MessagingMethodInvokerHelper.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/handler/support/MessagingMethodInvokerHelper.java @@ -1242,9 +1242,7 @@ public class MessagingMethodInvokerHelper extends AbstractExpressionEvaluator } this.targetParameterTypeDescriptor = targetParameterType; if (Message.class.isAssignableFrom(targetParameterType.getObjectType())) { - methodParameter.increaseNestingLevel(); - this.targetParameterType = methodParameter.getNestedParameterType(); - methodParameter.decreaseNestingLevel(); + this.targetParameterType = methodParameter.nested().getNestedParameterType(); } else { this.targetParameterType = targetParameterType.getObjectType();