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!!");
       }


Reply via email to