[ https://issues.apache.org/jira/browse/CURATOR-151?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14158873#comment-14158873 ]
ASF GitHub Bot commented on CURATOR-151: ---------------------------------------- Github user dragonsinth commented on a diff in the pull request: https://github.com/apache/curator/pull/47#discussion_r18426992 --- Diff: curator-recipes/src/main/java/org/apache/curator/framework/recipes/shared/SharedValue.java --- @@ -117,10 +117,8 @@ public void setValue(byte[] newValue) throws Exception { Preconditions.checkState(state.get() == State.STARTED, "not started"); - VersionedValue<byte[]> localCopy = currentValue.get(); - client.setData().forPath(path, newValue); - - currentValue.set(new VersionedValue<byte[]>(localCopy.getVersion() + 1, Arrays.copyOf(newValue, newValue.length))); + Stat result = client.setData().forPath(path, newValue); + updateValue(result.getVersion(), Arrays.copyOf(newValue, newValue.length)); --- End diff -- the oldVersion+1 thing seemed a little squirrelly to me > SharedValue has limited utility but can be improved > --------------------------------------------------- > > Key: CURATOR-151 > URL: https://issues.apache.org/jira/browse/CURATOR-151 > Project: Apache Curator > Issue Type: Improvement > Components: Recipes > Affects Versions: 2.6.0 > Reporter: Jordan Zimmerman > Assignee: Jordan Zimmerman > Fix For: 2.7.0 > > > Currently, SharedValue has limited utility as the internally managed version > is always used for trySetValue. A good improvement would be a) add an API to > get the current value AND current version and b) add an alternate trySetValue > that takes a new value AND an expected version. -- This message was sent by Atlassian JIRA (v6.3.4#6332)