Author: markt Date: Mon Apr 28 23:22:49 2014 New Revision: 1590838 URL: http://svn.apache.org/r1590838 Log: (empty)
Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstLiteralExpression.java tomcat/tc7.0.x/trunk/test/org/apache/el/TestELEvaluation.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Propchange: tomcat/tc7.0.x/trunk/ ------------------------------------------------------------------------------ Merged /tomcat/trunk:r1590835 Modified: tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstLiteralExpression.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstLiteralExpression.java?rev=1590838&r1=1590837&r2=1590838&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstLiteralExpression.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstLiteralExpression.java Mon Apr 28 23:22:49 2014 @@ -51,10 +51,9 @@ public final class AstLiteralExpression StringBuilder buf = new StringBuilder(size); for (int i = 0; i < size; i++) { char c = image.charAt(i); - if (c == '\\' && i + 2 < size) { + if (c == '\\' && i + 1 < size) { char c1 = image.charAt(i + 1); - char c2 = image.charAt(i + 2); - if ((c1 == '#' || c1 == '$') && c2 == '{') { + if ((c1 == '#' || c1 == '$')) { c = c1; i++; } Modified: tomcat/tc7.0.x/trunk/test/org/apache/el/TestELEvaluation.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/el/TestELEvaluation.java?rev=1590838&r1=1590837&r2=1590838&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/test/org/apache/el/TestELEvaluation.java (original) +++ tomcat/tc7.0.x/trunk/test/org/apache/el/TestELEvaluation.java Mon Apr 28 23:22:49 2014 @@ -110,14 +110,21 @@ public class TestELEvaluation { assertEquals("\\", evaluateExpression("\\")); assertEquals("$", evaluateExpression("$")); assertEquals("#", evaluateExpression("#")); - assertEquals("\\$", evaluateExpression("\\$")); - assertEquals("\\#", evaluateExpression("\\#")); - assertEquals("\\\\$", evaluateExpression("\\\\$")); - assertEquals("\\\\#", evaluateExpression("\\\\#")); + assertEquals("$", evaluateExpression("\\$")); + assertEquals("#", evaluateExpression("\\#")); + assertEquals("\\$", evaluateExpression("\\\\$")); + assertEquals("\\#", evaluateExpression("\\\\#")); assertEquals("${", evaluateExpression("\\${")); assertEquals("#{", evaluateExpression("\\#{")); assertEquals("\\${", evaluateExpression("\\\\${")); assertEquals("\\#{", evaluateExpression("\\\\#{")); + + // '\' is only an escape for '$' and '#'. + assertEquals("$", evaluateExpression("\\$")); + assertEquals("${", evaluateExpression("\\${")); + assertEquals("$a", evaluateExpression("\\$a")); + assertEquals("\\a", evaluateExpression("\\a")); + assertEquals("\\\\", evaluateExpression("\\\\")); } @Test @@ -195,7 +202,6 @@ public class TestELEvaluation { assertNotNull(e); } - // ************************************************************************ private String evaluateExpression(String expression) { Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1590838&r1=1590837&r2=1590838&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Mon Apr 28 23:22:49 2014 @@ -158,6 +158,12 @@ preferred followed by an assignable match followed by a coercible match. (markt) </fix> + <fix> + Correct the handling of back-slash escaping in the EL parser and no + longer require that <code>\$</code> or <code>\#</code> must be followed + by <code>{</code> in order for the back-slash escaping to take effect. + (markt) + </fix> </changelog> </subsection> <subsection name="Cluster"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org