From e7141596a4940a12dec7498c0f08258a800afb89 Mon Sep 17 00:00:00 2001 From: markt Date: Wed, 29 Jun 2011 13:56:28 +0000 Subject: [PATCH] Better error handling that may help track down the cause of https://issues.apache.org/bugzilla/show_bug.cgi?id=51088 git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1141104 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/el/Messages.properties | 3 +++ java/org/apache/el/lang/ExpressionBuilder.java | 6 +++--- webapps/docs/changelog.xml | 6 ++++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/java/org/apache/el/Messages.properties b/java/org/apache/el/Messages.properties index 7fdc6f20d..4a598fce9 100644 --- a/java/org/apache/el/Messages.properties +++ b/java/org/apache/el/Messages.properties @@ -32,6 +32,9 @@ error.method=Not a valid MethodExpression : {0} error.method.nullParms=Parameter types cannot be null error.value.expectedType=Expected type cannot be null +# ExpressionBuilder +error.parseFail=Failed to parse the expression [{0}] + # ExpressionMediator error.eval=Error Evaluating {0} : {1} diff --git a/java/org/apache/el/lang/ExpressionBuilder.java b/java/org/apache/el/lang/ExpressionBuilder.java index 049b71594..53161ddee 100644 --- a/java/org/apache/el/lang/ExpressionBuilder.java +++ b/java/org/apache/el/lang/ExpressionBuilder.java @@ -41,7 +41,6 @@ import org.apache.el.parser.AstValue; import org.apache.el.parser.ELParser; import org.apache.el.parser.Node; import org.apache.el.parser.NodeVisitor; -import org.apache.el.parser.ParseException; import org.apache.el.util.ConcurrentCache; import org.apache.el.util.MessageFactory; @@ -143,8 +142,9 @@ public final class ExpressionBuilder implements NodeVisitor { n = n.jjtGetChild(0); } cache.put(expr, n); - } catch (ParseException pe) { - throw new ELException("Error Parsing: " + expr, pe); + } catch (Exception e) { + throw new ELException( + MessageFactory.get("error.parseFail", expr), e); } } return n; diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 02cb8f72b..477a44484 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -219,6 +219,12 @@ use any valid XML name) have a name which is not a Java identifier. (markt) + + Broaden the exception handling in the EL Parser so that more failures to + parse an expression include the failed expression in the exception + message. Hopefully, this will help track down the cause of + 51088. (markt) + -- 2.11.0