Return-Path: Delivered-To: apmail-jakarta-tomcat-dev-archive@www.apache.org Received: (qmail 71131 invoked from network); 25 Nov 2003 01:38:28 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 25 Nov 2003 01:38:28 -0000 Received: (qmail 61878 invoked by uid 500); 25 Nov 2003 01:38:07 -0000 Delivered-To: apmail-jakarta-tomcat-dev-archive@jakarta.apache.org Received: (qmail 61642 invoked by uid 500); 25 Nov 2003 01:38:06 -0000 Mailing-List: contact tomcat-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Tomcat Developers List" Reply-To: "Tomcat Developers List" Delivered-To: mailing list tomcat-dev@jakarta.apache.org Received: (qmail 61629 invoked by uid 500); 25 Nov 2003 01:38:06 -0000 Received: (qmail 61626 invoked from network); 25 Nov 2003 01:38:06 -0000 Received: from unknown (HELO minotaur.apache.org) (209.237.227.194) by daedalus.apache.org with SMTP; 25 Nov 2003 01:38:06 -0000 Received: (qmail 71118 invoked by uid 1384); 25 Nov 2003 01:38:21 -0000 Date: 25 Nov 2003 01:38:21 -0000 Message-ID: <20031125013821.71117.qmail@minotaur.apache.org> From: kinman@apache.org To: jakarta-tomcat-jasper-cvs@apache.org Subject: cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler ELParser.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N kinman 2003/11/24 17:38:21 Modified: jasper2/src/share/org/apache/jasper/compiler ELParser.java Log: - Fix 24957: Operators are mis-treated as functions Revision Changes Path 1.3 +27 -1 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/ELParser.java Index: ELParser.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/ELParser.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ELParser.java 30 Oct 2003 02:39:48 -0000 1.2 +++ ELParser.java 25 Nov 2003 01:38:21 -0000 1.3 @@ -77,6 +77,11 @@ private String expression; // The EL expression private boolean escapeBS; // is '\' an escape char in text outside EL? + private static final String reservedWords[] = { + "and", "div", "empty", "eq", "false", + "ge", "gt", "instanceof", "le", "lt", "mod", + "ne", "not", "null", "or", "true"}; + public ELParser(String expression) { index = 0; this.expression = expression; @@ -145,7 +150,7 @@ * Note: currently we don't parse arguments */ private boolean parseFunction() { - if (! (curToken instanceof Id)) { + if (! (curToken instanceof Id) || isELReserved(curToken.toString())) { return false; } String s1 = null; // Function prefix @@ -172,6 +177,27 @@ } setIndex(mark); return false; + } + + /** + * Test if an id is a reserved word in EL + */ + private boolean isELReserved(String id) { + int i = 0; + int j = reservedWords.length; + while (i < j) { + int k = (i+j)/2; + int result = reservedWords[k].compareTo(id); + if (result == 0) { + return true; + } + if (result < 0) { + i = k+1; + } else { + j = k; + } + } + return false; } /** --------------------------------------------------------------------- To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org