diff --git a/spring-integration-core/src/main/java/org/springframework/integration/handler/LambdaMessageProcessor.java b/spring-integration-core/src/main/java/org/springframework/integration/handler/LambdaMessageProcessor.java index 81f0e6e9cb..0deef01ef0 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/handler/LambdaMessageProcessor.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/handler/LambdaMessageProcessor.java @@ -100,7 +100,7 @@ public class LambdaMessageProcessor implements MessageProcessor, BeanFac args[i] = message; } else if (Map.class.isAssignableFrom(parameterType)) { - if (message.getPayload() instanceof Map) { + if (message.getPayload() instanceof Map && this.parameterTypes.length == 1) { args[i] = message.getPayload(); } else { diff --git a/spring-integration-webflux/src/test/java/org/springframework/integration/webflux/dsl/WebFluxDslTests.java b/spring-integration-webflux/src/test/java/org/springframework/integration/webflux/dsl/WebFluxDslTests.java index 741407fe7a..9e8b61d7a8 100644 --- a/spring-integration-webflux/src/test/java/org/springframework/integration/webflux/dsl/WebFluxDslTests.java +++ b/spring-integration-webflux/src/test/java/org/springframework/integration/webflux/dsl/WebFluxDslTests.java @@ -299,8 +299,10 @@ public class WebFluxDslTests { public IntegrationFlow sseFlow() { return IntegrationFlows .from(WebFlux.inboundGateway("/sse") - .requestMapping(m -> m.produces(MediaType.TEXT_EVENT_STREAM_VALUE))) - .handle((p, h) -> Flux.just("foo", "bar", "baz")) + .requestMapping(m -> m.produces(MediaType.TEXT_EVENT_STREAM_VALUE)) + .mappedResponseHeaders("*")) + .enrichHeaders(Collections.singletonMap("aHeader", new String[] { "foo", "bar", "baz" })) + .handle((p, h) -> Flux.fromArray((String[]) h.get("aHeader"))) .get(); }