You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@curator.apache.org by ra...@apache.org on 2014/10/24 17:45:11 UTC
git commit: setData() was using the wrong path. It exhibited when
SEQUENTIAL mode was used
Repository: curator
Updated Branches:
refs/heads/CURATOR-155 [created] 1e9b76e12
setData() was using the wrong path. It exhibited when SEQUENTIAL mode was used
Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/1e9b76e1
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/1e9b76e1
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/1e9b76e1
Branch: refs/heads/CURATOR-155
Commit: 1e9b76e12589a0705b1328e42b2ddc026358c051
Parents: b9fb9ff
Author: randgalt <ra...@apache.org>
Authored: Fri Oct 24 10:44:36 2014 -0500
Committer: randgalt <ra...@apache.org>
Committed: Fri Oct 24 10:44:36 2014 -0500
----------------------------------------------------------------------
.../recipes/nodes/PersistentEphemeralNode.java | 2 +-
.../nodes/TestPersistentEphemeralNode.java | 27 +++++++++++++-------
2 files changed, 19 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/curator/blob/1e9b76e1/curator-recipes/src/main/java/org/apache/curator/framework/recipes/nodes/PersistentEphemeralNode.java
----------------------------------------------------------------------
diff --git a/curator-recipes/src/main/java/org/apache/curator/framework/recipes/nodes/PersistentEphemeralNode.java b/curator-recipes/src/main/java/org/apache/curator/framework/recipes/nodes/PersistentEphemeralNode.java
index 1f8be75..d78573c 100644
--- a/curator-recipes/src/main/java/org/apache/curator/framework/recipes/nodes/PersistentEphemeralNode.java
+++ b/curator-recipes/src/main/java/org/apache/curator/framework/recipes/nodes/PersistentEphemeralNode.java
@@ -302,7 +302,7 @@ public class PersistentEphemeralNode implements Closeable
this.data.set(Arrays.copyOf(data, data.length));
if ( isActive() )
{
- client.setData().inBackground().forPath(basePath, this.data.get());
+ client.setData().inBackground().forPath(getActualPath(), this.data.get());
}
}
http://git-wip-us.apache.org/repos/asf/curator/blob/1e9b76e1/curator-recipes/src/test/java/org/apache/curator/framework/recipes/nodes/TestPersistentEphemeralNode.java
----------------------------------------------------------------------
diff --git a/curator-recipes/src/test/java/org/apache/curator/framework/recipes/nodes/TestPersistentEphemeralNode.java b/curator-recipes/src/test/java/org/apache/curator/framework/recipes/nodes/TestPersistentEphemeralNode.java
index c8a72d4..47ae757 100644
--- a/curator-recipes/src/test/java/org/apache/curator/framework/recipes/nodes/TestPersistentEphemeralNode.java
+++ b/curator-recipes/src/test/java/org/apache/curator/framework/recipes/nodes/TestPersistentEphemeralNode.java
@@ -189,19 +189,29 @@ public class TestPersistentEphemeralNode extends BaseClassForTests
}
@Test
+ public void testSettingDataSequential() throws Exception
+ {
+ setDataTest(PersistentEphemeralNode.Mode.EPHEMERAL_SEQUENTIAL);
+ }
+
+ @Test
public void testSettingData() throws Exception
{
+ setDataTest(PersistentEphemeralNode.Mode.EPHEMERAL);
+ }
+
+ protected void setDataTest(PersistentEphemeralNode.Mode mode) throws Exception
+ {
PersistentEphemeralNode node = null;
CuratorFramework client = CuratorFrameworkFactory.newClient(server.getConnectString(), timing.session(), timing.connection(), new RetryOneTime(1));
try
{
client.start();
- node = new PersistentEphemeralNode(client, PersistentEphemeralNode.Mode.EPHEMERAL, PATH, "a".getBytes());
+ node = new PersistentEphemeralNode(client, mode, PATH, "a".getBytes());
node.start();
Assert.assertTrue(node.waitForInitialCreate(timing.forWaiting().seconds(), TimeUnit.SECONDS));
- Assert.assertEquals(node.getActualPath(), PATH);
- Assert.assertEquals(client.getData().forPath(PATH), "a".getBytes());
+ Assert.assertEquals(client.getData().forPath(node.getActualPath()), "a".getBytes());
final Semaphore semaphore = new Semaphore(0);
Watcher watcher = new Watcher()
@@ -212,18 +222,17 @@ public class TestPersistentEphemeralNode extends BaseClassForTests
semaphore.release();
}
};
- client.checkExists().usingWatcher(watcher).forPath(PATH);
+ client.checkExists().usingWatcher(watcher).forPath(node.getActualPath());
node.setData("b".getBytes());
Assert.assertTrue(timing.acquireSemaphore(semaphore));
- Assert.assertEquals(node.getActualPath(), PATH);
- Assert.assertEquals(client.getData().usingWatcher(watcher).forPath(PATH), "b".getBytes());
+ Assert.assertEquals(node.getActualPath(), node.getActualPath());
+ Assert.assertEquals(client.getData().usingWatcher(watcher).forPath(node.getActualPath()), "b".getBytes());
node.setData("c".getBytes());
Assert.assertTrue(timing.acquireSemaphore(semaphore));
- Assert.assertEquals(node.getActualPath(), PATH);
- Assert.assertEquals(client.getData().usingWatcher(watcher).forPath(PATH), "c".getBytes());
+ Assert.assertEquals(node.getActualPath(), node.getActualPath());
+ Assert.assertEquals(client.getData().usingWatcher(watcher).forPath(node.getActualPath()), "c".getBytes());
node.close();
Assert.assertTrue(timing.acquireSemaphore(semaphore));
- Assert.assertTrue(client.checkExists().forPath(PATH) == null);
}
finally
{