Repository: curator Updated Branches: refs/heads/CURATOR-3.0 e6ed99965 -> adcaf340f
[CURATOR-361] Prevent removal of leading slash from path when empty namespace used Project: http://git-wip-us.apache.org/repos/asf/curator/repo Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/82a8906d Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/82a8906d Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/82a8906d Branch: refs/heads/CURATOR-3.0 Commit: 82a8906ddb185e4d405056aeed8abc807f440440 Parents: 0a0a1e7 Author: Charles Ruhland <char...@mesosphere.io> Authored: Tue Dec 6 17:53:12 2016 -0800 Committer: Charles Ruhland <char...@mesosphere.io> Committed: Tue Dec 6 17:53:12 2016 -0800 ---------------------------------------------------------------------- .../org/apache/curator/framework/imps/NamespaceImpl.java | 2 +- .../curator/framework/imps/TestNamespaceFacade.java | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/curator/blob/82a8906d/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceImpl.java ---------------------------------------------------------------------- diff --git a/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceImpl.java b/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceImpl.java index 29adbc6..c8dfce7 100644 --- a/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceImpl.java +++ b/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceImpl.java @@ -64,7 +64,7 @@ class NamespaceImpl if ( (namespace != null) && (path != null) ) { String namespacePath = ZKPaths.makePath(namespace, null); - if ( path.startsWith(namespacePath) ) + if ( !namespacePath.equals("/") && path.startsWith(namespacePath) ) { path = (path.length() > namespacePath.length()) ? path.substring(namespacePath.length()) : "/"; } http://git-wip-us.apache.org/repos/asf/curator/blob/82a8906d/curator-framework/src/test/java/org/apache/curator/framework/imps/TestNamespaceFacade.java ---------------------------------------------------------------------- diff --git a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestNamespaceFacade.java b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestNamespaceFacade.java index d09dd18..9357d00 100644 --- a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestNamespaceFacade.java +++ b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestNamespaceFacade.java @@ -229,4 +229,14 @@ public class TestNamespaceFacade extends BaseClassForTests //Expected } } + + @Test + public void testUnfixForEmptyNamespace() { + CuratorFramework client = CuratorFrameworkFactory.builder().namespace("").retryPolicy(new RetryOneTime(1)).connectString("").build(); + CuratorFrameworkImpl clientImpl = (CuratorFrameworkImpl) client; + + Assert.assertEquals(clientImpl.unfixForNamespace("/foo/bar"), "/foo/bar"); + + CloseableUtils.closeQuietly(client); + } }