Skip to content

array varargs conversion error in SpEL expression [SPR-11494] #16119

Closed
@spring-projects-issues

Description

@spring-projects-issues

Jacek Obarymski opened SPR-11494 and commented

The following test case (see ):

ExpressionParser parser = new SpelExpressionParser();
Expression exp = parser.parseExpression("T(java.util.Arrays).asList('a','b')");
List<String> list = (List<String>) exp.getValue();
assertThat(list.size(), is(2));

throws an exception:

java.lang.IllegalArgumentException: Final expected argument should be array type (the varargs parameter)
	at org.springframework.util.Assert.isTrue(Assert.java:65)
	at org.springframework.expression.spel.support.ReflectionHelper.compareArgumentsVarargs(ReflectionHelper.java:144)
	at org.springframework.expression.spel.support.ReflectiveMethodResolver.resolve(ReflectiveMethodResolver.java:154)
	at org.springframework.expression.spel.ast.MethodReference.findAccessorForMethod(MethodReference.java:189)
	at org.springframework.expression.spel.ast.MethodReference.getValueInternal(MethodReference.java:118)
	at org.springframework.expression.spel.ast.MethodReference.access$100(MethodReference.java:44)
	at org.springframework.expression.spel.ast.MethodReference$MethodValueRef.getValue(MethodReference.java:258)
	at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:84)
	at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:103)
	at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:68)

Affects: 4.0.2

Metadata

Metadata

Assignees

Labels

in: coreIssues in core modules (aop, beans, core, context, expression)type: bugA general bug

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions