Skip to content

SpelEvaluationException: EL1012E: Cannot index into a null value in @Payload for @MessagingGateway #3998

@tompson

Description

@tompson

In what version(s) of Spring Integration are you seeing this issue?

6.0.2

Describe the bug

I defined a Gateway

@MessagingGateway(defaultRequestChannel = "removeTokenPubSubChannel")
public interface RemoveTokenGateway {

	@Payload("#args[0]")
	void removeToken(@Header("token") String token);
}

which worked in 5.5.16 before upgrading to Spring Boot 3

No I get

org.springframework.expression.spel.SpelEvaluationException: EL1012E: Cannot index into a null value
	at org.springframework.expression.spel.ast.Indexer.getValueRef(Indexer.java:145) ~[spring-expression-6.0.4.jar:6.0.4]
	at org.springframework.expression.spel.ast.CompoundExpression.getValueRef(CompoundExpression.java:70) ~[spring-expression-6.0.4.jar:6.0.4]
	at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:91) ~[spring-expression-6.0.4.jar:6.0.4]
	at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:112) ~[spring-expression-6.0.4.jar:6.0.4]
	at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:338) ~[spring-expression-6.0.4.jar:6.0.4]
	at org.springframework.integration.gateway.GatewayMethodInboundMessageMapper$DefaultMethodArgsMessageMapper.toMessage(GatewayMethodInboundMessageMapper.java:288) ~[spring-integration-core-6.0.2.jar:6.0.2]
	at org.springframework.integration.gateway.GatewayMethodInboundMessageMapper$DefaultMethodArgsMessageMapper.toMessage(GatewayMethodInboundMessageMapper.java:275) ~[spring-integration-core-6.0.2.jar:6.0.2]
	at org.springframework.integration.gateway.GatewayMethodInboundMessageMapper.mapArgumentsToMessage(GatewayMethodInboundMessageMapper.java:193) ~[spring-integration-core-6.0.2.jar:6.0.2]
	at org.springframework.integration.gateway.GatewayMethodInboundMessageMapper.toMessage(GatewayMethodInboundMessageMapper.java:187) ~[spring-integration-core-6.0.2.jar:6.0.2]
	at org.springframework.integration.gateway.GatewayMethodInboundMessageMapper.toMessage(GatewayMethodInboundMessageMapper.java:86) ~[spring-integration-core-6.0.2.jar:6.0.2]
	at org.springframework.integration.support.converter.SimpleMessageConverter.toMessage(SimpleMessageConverter.java:111) ~[spring-integration-core-6.0.2.jar:6.0.2]
	at org.springframework.messaging.core.AbstractMessageSendingTemplate.doConvert(AbstractMessageSendingTemplate.java:182) ~[spring-messaging-6.0.4.jar:6.0.4]
	at org.springframework.integration.gateway.MessagingGatewaySupport$ConvertingMessagingTemplate.doConvert(MessagingGatewaySupport.java:1007) ~[spring-integration-core-6.0.2.jar:6.0.2]
	at org.springframework.messaging.core.AbstractMessageSendingTemplate.convertAndSend(AbstractMessageSendingTemplate.java:150) ~[spring-messaging-6.0.4.jar:6.0.4]
	at org.springframework.messaging.core.AbstractMessageSendingTemplate.convertAndSend(AbstractMessageSendingTemplate.java:143) ~[spring-messaging-6.0.4.jar:6.0.4]
	at org.springframework.integration.gateway.MessagingGatewaySupport.send(MessagingGatewaySupport.java:467) ~[spring-integration-core-6.0.2.jar:6.0.2]
	at org.springframework.integration.gateway.GatewayProxyFactoryBean.sendOrSendAndReceive(GatewayProxyFactoryBean.java:669) ~[spring-integration-core-6.0.2.jar:6.0.2]
	at org.springframework.integration.gateway.GatewayProxyFactoryBean.invokeGatewayMethod(GatewayProxyFactoryBean.java:584) ~[spring-integration-core-6.0.2.jar:6.0.2]
	at org.springframework.integration.gateway.GatewayProxyFactoryBean.doInvoke(GatewayProxyFactoryBean.java:550) ~[spring-integration-core-6.0.2.jar:6.0.2]
	at org.springframework.integration.gateway.GatewayProxyFactoryBean.invoke(GatewayProxyFactoryBean.java:540) ~[spring-integration-core-6.0.2.jar:6.0.2]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.0.4.jar:6.0.4]
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:218) ~[spring-aop-6.0.4.jar:6.0.4]
	at jdk.proxy2/jdk.proxy2.$Proxy72.removeToken(Unknown Source) ~[na:na]

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions