Skip to content

java.lang.* no longer imported by default in SpEL contexts #28112

Closed
@OrangeDog

Description

@OrangeDog

Upgraded from Spring Framework 5.3.15 to 5.3.16 (via Boot) and this expression

T(Character).isUpperCase(c) ? 'uppercase' : 'lowercase'

now throws the exception

org.springframework.expression.spel.SpelEvaluationException: EL1005E: Type cannot be found 'Character'
	at org.springframework.expression.spel.support.StandardTypeLocator.findType(StandardTypeLocator.java:117)
	at org.thymeleaf.spring5.expression.ThymeleafEvaluationContext$ThymeleafEvaluationContextACLTypeLocator.findType(ThymeleafEvaluationContext.java:193)
	at org.springframework.expression.spel.ExpressionState.findType(ExpressionState.java:155)
	at org.springframework.expression.spel.ast.TypeReference.getValueInternal(TypeReference.java:69)
	at org.springframework.expression.spel.ast.CompoundExpression.getValueRef(CompoundExpression.java:55)
	at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:91)
	at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:188)
	at org.springframework.expression.spel.ast.Ternary.getValueInternal(Ternary.java:53)
	at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:112)
	at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:337)
	at org.thymeleaf.spring5.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:265)
	... 164 more

Changing it to java.lang.Character works again.

Possibly it's a Thymeleaf (3.0.14 -> 3.0.15) issue instead?

Metadata

Metadata

Assignees

Labels

for: external-projectNeeds a fix in external projectin: coreIssues in core modules (aop, beans, core, context, expression)

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions