Algirdas Rascius created CURATOR-329:
----------------------------------------

             Summary: SharedValue.start() method does not update to current 
value if version of value currently stored in zookeeper is 0 (zero)
                 Key: CURATOR-329
                 URL: https://issues.apache.org/jira/browse/CURATOR-329
             Project: Apache Curator
          Issue Type: Bug
          Components: Recipes
    Affects Versions: 2.10.0
            Reporter: Algirdas Rascius
            Priority: Blocker


When zookeeper node stores value with version 0 and SharedCount instance is 
created and started for this node, getCount() method returns seedValue passed 
to SharedCount constructor instead of actual value stored in zookeeper node. 
This only happens when zookeeper node version is 0 (zero).

For example:
{code}
// Node /count does not exists before the test
SharedCount count1 = new SharedCount(client, "/count", 10);
SharedCount count2 = new SharedCount(client, "/count", 20);
count1.start();
count2.start();
Assert.assertEquals(count1.getCount(), 10);
Assert.assertEquals(count2.getCount(), 10); // Should return 10, but returns 20 
instead
{code}

Issue arrises because when constructed class SharedValue initializes instance 
variable currentValue with version 0 and does not update value in 
updateValue(..) method if version returned by zookeeper is 0.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to