[
https://issues.apache.org/jira/browse/CURATOR-140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14195071#comment-14195071
]
ASF GitHub Bot commented on CURATOR-140:
----------------------------------------
Github user ohshazbot commented on a diff in the pull request:
https://github.com/apache/curator/pull/48#discussion_r19763228
--- Diff:
curator-recipes/src/test/java/org/apache/curator/framework/recipes/locks/TestInterProcessReadWriteLock.java
---
@@ -261,6 +261,39 @@ public Void call() throws Exception
Assert.assertTrue(maxConcurrentCount.get() > 1);
}
+ @Test
+ public void testSetNodeData() throws Exception
+ {
+ CuratorFramework client =
CuratorFrameworkFactory.newClient(server.getConnectString(), new
RetryOneTime(1));
+
+ try
+ {
+ client.start();
+
+ final byte[] nodeData = new byte[] { 1, 2, 3, 4 };
+
+ InterProcessReadWriteLock lock = new
InterProcessReadWriteLock(client, "/lock", nodeData);
+
+ // mutate passed-in node data, lock has made copy
+ nodeData[0] = 5;
--- End diff --
Looks like it's to ensure that the passed in data is being copied, so any
alterations to the byte array after the fact don't cause some sort of partial
view of data.
> Support the initial data for the node in InterProcessReadWriteLock
> ------------------------------------------------------------------
>
> Key: CURATOR-140
> URL: https://issues.apache.org/jira/browse/CURATOR-140
> Project: Apache Curator
> Issue Type: Improvement
> Components: Recipes
> Reporter: Azrael
> Priority: Minor
>
> Currently, locks(writeLock, readLock) in InterProcessReadWriteLock use the
> InetAddress for a initial data for the node, It is a little difficult to
> debug the lock owner as it shows only IP. If the initial data for lock node
> can be set, participantNodes contains the given information(hostname, id).
> So, it is easy to debug participantNodes.
> {code}
> writeLock = InterProcessReadWriteLock.writeLock();
> Collection<String> nodes = writeLock.getParticipantNodes();
> for (String node: nodes) {
> String nodeData = new String(client.getData().forPath(node));
> }
> {code}
> {{nodeData}} should be the information which is given in argument.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)