Author: markt Date: Sun Jan 19 19:04:55 2014 New Revision: 1559553 URL: http://svn.apache.org/r1559553 Log: Revert changes in r1559401 for this file. The first attempt at a fix introduced a different regression
Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java Propchange: tomcat/tc7.0.x/trunk/ ------------------------------------------------------------------------------ Merged /tomcat/trunk:r1559549 Modified: tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java?rev=1559553&r1=1559552&r2=1559553&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java Sun Jan 19 19:04:55 2014 @@ -103,7 +103,7 @@ public class ELParser { StringBuilder buf = new StringBuilder(); ELexpr = new ELNode.Nodes(); - while (hasNextChar()) { + while (hasNext()) { curToken = nextToken(); if (curToken instanceof Char) { if (curToken.toChar() == '}') { @@ -140,16 +140,16 @@ public class ELParser { } String s1 = null; // Function prefix String s2 = curToken.toString(); // Function name - if (hasNextChar()) { + if (hasNext()) { int mark = getIndex(); curToken = nextToken(); if (curToken.toChar() == ':') { - if (hasNextChar()) { + if (hasNext()) { Token t2 = nextToken(); if (t2 instanceof Id) { s1 = s2; s2 = t2.toString(); - if (hasNextChar()) { + if (hasNext()) { curToken = nextToken(); } } @@ -169,12 +169,11 @@ public class ELParser { * Test if an id is a reserved word in EL */ private boolean isELReserved(String id) { - String trimmed = id.trim(); int i = 0; int j = reservedWords.length; while (i < j) { int k = (i + j) / 2; - int result = reservedWords[k].compareTo(trimmed); + int result = reservedWords[k].compareTo(id); if (result == 0) { return true; } @@ -233,10 +232,20 @@ public class ELParser { } /* + * @return true if there is something left in EL expression buffer other + * than white spaces. + */ + private boolean hasNext() { + skipSpaces(); + return hasNextChar(); + } + + /* * @return The next token in the EL expression buffer. */ private Token nextToken() { prevToken = curToken; + skipSpaces(); if (hasNextChar()) { char ch = nextChar(); if (Character.isJavaIdentifierStart(ch)) { @@ -290,6 +299,14 @@ public class ELParser { * expression buffer. */ + private void skipSpaces() { + while (hasNextChar()) { + if (expression.charAt(index) > ' ') + break; + index++; + } + } + private boolean hasNextChar() { return index < expression.length(); } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org