You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2013/12/16 10:52:36 UTC

svn commit: r1551143 - /manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/lockmanager/ZooKeeperConnection.java

Author: kwright
Date: Mon Dec 16 09:52:36 2013
New Revision: 1551143

URL: http://svn.apache.org/r1551143
Log:
Encode the other characters that zookeeper doesn't handle.  Part of CONNECTORS-838

Modified:
    manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/lockmanager/ZooKeeperConnection.java

Modified: manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/lockmanager/ZooKeeperConnection.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/lockmanager/ZooKeeperConnection.java?rev=1551143&r1=1551142&r2=1551143&view=diff
==============================================================================
--- manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/lockmanager/ZooKeeperConnection.java (original)
+++ manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/lockmanager/ZooKeeperConnection.java Mon Dec 16 09:52:36 2013
@@ -520,8 +520,14 @@ public class ZooKeeperConnection
       char x = input.charAt(i);
       if (x == '/')
         sb.append('\\').append('0');
+      else if (x == '\u007f')
+        sb.append('\\').append('1');
       else if (x == '\\')
         sb.append('\\').append('\\');
+      else if (x >= '\u0000' && x < '\u0020')
+        sb.append('\\').append(x + '\u0040');
+      else if (x >= '\u0080' && x < '\u00a0')
+        sb.append('\\').append(x + '\u0060' - '\u0080');
       else
         sb.append(x);
     }
@@ -544,8 +550,14 @@ public class ZooKeeperConnection
         x = input.charAt(i);
         if (x == '0')
           sb.append('/');
+        else if (x == '1')
+          sb.append('\u007f');
         else if (x == '\\')
           sb.append('\\');
+        else if (x >= '\u0040' && x < '\u0060')
+          sb.append(x - '\u0040');
+        else if (x >= '\u0060' && x < '\u0080')
+          sb.append(x - '\u0060' + '\u0080');
         else
           throw new RuntimeException("Supposedly safe zookeeper name is not properly encoded!!");
       }