agrestio / agrest

Server-side Java REST Framework for easy access to data graphs from various backends
https://agrest.io
Apache License 2.0
80 stars 34 forks source link

TokenMgrException is not handled by Agrest #642

Closed andrus closed 1 year ago

andrus commented 1 year ago

Passed some invalid expressions to Agrest. This resulted in a 500 response and a Jetty stack. We need to handle it ourselves.

[bootique-http-28] WARN org.eclipse.jetty.server.HttpChannel - /
jakarta.servlet.ServletException: io.agrest.exp.parser.TokenMgrException: Lexical error at line 1, column 3.  Encountered: '58' (58),
    at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:410)
    at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:358)
...
    at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: io.agrest.exp.parser.TokenMgrException: Lexical error at line 1, column 3.  Encountered: '58' (58),
    at io.agrest.exp.parser.AgExpressionParserTokenManager.getNextToken(AgExpressionParserTokenManager.java:2484)
    at io.agrest.exp.parser.AgExpressionParser.jj_consume_token(AgExpressionParser.java:2477)
    at io.agrest.exp.parser.AgExpressionParser.pathExpression(AgExpressionParser.java:2376)
    at io.agrest.exp.parser.AgExpressionParser.numericPrimary(AgExpressionParser.java:1749)