You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2014/04/29 01:22:50 UTC
svn commit: r1590838 - in /tomcat/tc7.0.x/trunk: ./
java/org/apache/el/parser/AstLiteralExpression.java
test/org/apache/el/TestELEvaluation.java webapps/docs/changelog.xml
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org