[ https://issues.apache.org/jira/browse/JEXL-340?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Garret Wilson updated JEXL-340: ------------------------------- Priority: Trivial (was: Minor) > JexlException message access is incomplete and reversed > ------------------------------------------------------- > > Key: JEXL-340 > URL: https://issues.apache.org/jira/browse/JEXL-340 > Project: Commons JEXL > Issue Type: Improvement > Affects Versions: 3.1 > Reporter: Garret Wilson > Priority: Trivial > > I need to wrap {{JexlException}} and provide a nice error message to the > user. If I have an expression using a variable {{foobar}} not present in the > context, here is what {{JexlException.getMessage()}} returns: > {quote}io.guise.mesh.JexlMexlEvaluator.evaluate@1:1 undefined variable > foobar{quote} > This is not a pretty error message. It has lots of things a user doesn't care > about. I just want the real error message: > {quote}undefined variable foobar{quote} > But there is no way to get just that simple error message from > {{JexlException}}. If you look at the source code for > {{JexlException.getMessage()}}, you'll see that the "simple" message comes > from {{JexlException.detailedMessage()}}. > Unfortunately {{JexlException.detailedMessage()}} is {{protected}}—there is > no way to access it from outside. Moreover the semantics of "message" and > "detailed message" are reversed! The "message" should provide fewer details > than the "detailed message". > Here is what should be done: > * {{JexlException.getMessage()}} should provide what {{detailedMessage()}} > provides now. (You'll note that {{detailedMessage()}} already calls > {{super.getMessage()}}; this criss-cross overriding is not the best practice. > My suggestion would therefore improve and even reduce the code.) > * A new {{JexlException.getDetailedMessage()}} should provide what > {{getMessage()}} provides now. > That would be simpler and more correct. And it would give me the simpler > error message I need. > It's not apparent to me why the current roundabout implementation was used to > begin with, or what benefit it brings. -- This message was sent by Atlassian Jira (v8.3.4#803005)