Skip to content

SPEL: Accessing inner classes via T(Outer$Inner) throws ParseException [SPR-5905] #10574

@spring-projects-issues

Description

@spring-projects-issues

Oliver Becker opened SPR-5905 and commented

It is not possible to address an inner class from SPEL via T(Outer$Inner) because the SPEL parser throws a ParseException:

org.springframework.expression.ParseException: Parsing problem: EL1050E:(pos 8): Error occurred during expression parse: mismatched input '$' expecting RPAREN
at org.springframework.expression.spel.antlr.SpelAntlrExpressionParser.doParseExpression(SpelAntlrExpressionParser.java:74)
at org.springframework.expression.common.TemplateAwareExpressionParser.parseExpressions(TemplateAwareExpressionParser.java:128)
at org.springframework.expression.common.TemplateAwareExpressionParser.parseTemplate(TemplateAwareExpressionParser.java:74)
at org.springframework.expression.common.TemplateAwareExpressionParser.parseExpression(TemplateAwareExpressionParser.java:64)
...
Caused by: org.springframework.expression.spel.SpelException: EL1050E:(pos 8): Error occurred during expression parse: mismatched input '$' expecting RPAREN
at org.springframework.expression.spel.antlr.SpringExpressionsParserExtender.displayRecognitionError(SpringExpressionsParserExtender.java:60)
at org.antlr.runtime.BaseRecognizer.reportError(BaseRecognizer.java:144)
at org.springframework.expression.spel.generated.SpringExpressionsParser.type(SpringExpressionsParser.java:2937)
at org.springframework.expression.spel.generated.SpringExpressionsParser.startNode(SpringExpressionsParser.java:1451)
at org.springframework.expression.spel.generated.SpringExpressionsParser.primaryExpression(SpringExpressionsParser.java:1188)
at org.springframework.expression.spel.generated.SpringExpressionsParser.unaryExpression(SpringExpressionsParser.java:1136)
at org.springframework.expression.spel.generated.SpringExpressionsParser.powerExpr(SpringExpressionsParser.java:954)
at org.springframework.expression.spel.generated.SpringExpressionsParser.productExpression(SpringExpressionsParser.java:806)
at org.springframework.expression.spel.generated.SpringExpressionsParser.sumExpression(SpringExpressionsParser.java:675)
at org.springframework.expression.spel.generated.SpringExpressionsParser.relationalExpression(SpringExpressionsParser.java:593)
at org.springframework.expression.spel.generated.SpringExpressionsParser.logicalAndExpression(SpringExpressionsParser.java:505)
at org.springframework.expression.spel.generated.SpringExpressionsParser.logicalOrExpression(SpringExpressionsParser.java:417)
at org.springframework.expression.spel.generated.SpringExpressionsParser.expression(SpringExpressionsParser.java:207)
at org.springframework.expression.spel.generated.SpringExpressionsParser.expr(SpringExpressionsParser.java:140)
at org.springframework.expression.spel.antlr.SpelAntlrExpressionParser.doParseExpression(SpelAntlrExpressionParser.java:67)
... 150 more
Caused by: MismatchedTokenException(71!=24)
at org.antlr.runtime.BaseRecognizer.mismatch(BaseRecognizer.java:117)
at org.antlr.runtime.BaseRecognizer.match(BaseRecognizer.java:99)
at org.springframework.expression.spel.generated.SpringExpressionsParser.type(SpringExpressionsParser.java:2895)
... 162 more


Affects: 3.0 M3

Referenced from: commits a2bce8c

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions