This is an automated email from the ASF dual-hosted git repository.

henrib pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jexl.git


The following commit(s) were added to refs/heads/master by this push:
     new d5943e3  JEXL: fixing preparation to add 'escaped' identifiers
d5943e3 is described below

commit d5943e3655ad622a0237451f308ca0eebf8edd4a
Author: henrib <henri.bies...@l-hbiestro.koeos.lan>
AuthorDate: Wed May 16 14:40:08 2018 +0200

    JEXL: fixing preparation to add 'escaped' identifiers
---
 .../java/org/apache/commons/jexl3/parser/StringParser.java   | 12 +++---------
 .../java/org/apache/commons/jexl3/parser/ParserTest.java     |  5 +++--
 2 files changed, 6 insertions(+), 11 deletions(-)

diff --git a/src/main/java/org/apache/commons/jexl3/parser/StringParser.java 
b/src/main/java/org/apache/commons/jexl3/parser/StringParser.java
index 375c1dd..3a02b7a 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/StringParser.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/StringParser.java
@@ -213,22 +213,16 @@ public class StringParser {
      */
     public static String unescapeIdentifier(String str) {
         StringBuilder strb = null;
-        boolean esc = false;
         if (str != null) {
             int n = 0;
             int last = str.length();
             while (n < last) {
                 char c = str.charAt(n);
-                if (esc) {
+                if (c == '\\') {
                     if (strb == null) {
                         strb = new StringBuilder(last);
                         strb.append(str.substring(0, n));
-                    } else {
-                        strb.append(c);
-                    }
-                    esc = false;
-                } else if (c == '\\') {
-                    esc = true;
+                    } 
                 } else if (strb != null) {
                     strb.append(c);
                 }
@@ -239,7 +233,7 @@ public class StringParser {
     }
 
     /**
-     * Adds a escape char ('\') where needed in a string form of an ide
+     * Adds a escape char ('\') where needed in a string form of an identifier.
      * @param str the identifier un-escaped string
      * @return the string with added  backslash character before space, quote, 
double-quote and backslash
      */
diff --git a/src/test/java/org/apache/commons/jexl3/parser/ParserTest.java 
b/src/test/java/org/apache/commons/jexl3/parser/ParserTest.java
index 4d0fec0..8a038fa 100644
--- a/src/test/java/org/apache/commons/jexl3/parser/ParserTest.java
+++ b/src/test/java/org/apache/commons/jexl3/parser/ParserTest.java
@@ -81,8 +81,9 @@ public class ParserTest {
     public void testIdentifierEscape() {
         String[] ids = new String[]{"a\\ b", "a\\ b\\ c", "a\\'b\\\"c", "a\\ 
\\ c"};
         for(String id : ids) {
-            String esc0 = StringParser.escapeIdentifier(id);
-            String esc1 = StringParser.unescapeIdentifier(esc0);
+            String esc0 = StringParser.unescapeIdentifier(id);
+            Assert.assertFalse(esc0.contains("\\"));
+            String esc1 = StringParser.escapeIdentifier(esc0);
             Assert.assertEquals(id, esc1);
         }
     }

-- 
To stop receiving notification emails like this one, please contact
hen...@apache.org.

Reply via email to