This is an automated email from the ASF dual-hosted git repository.

eolivelli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/curator.git


The following commit(s) were added to refs/heads/master by this push:
     new ed3cc84  CURATOR-606: ModeledFrameworkImpl.update(T model, int 
version): Use version in all cases. (#393)
ed3cc84 is described below

commit ed3cc848f51b309db69f4e453d0509a48e9212d6
Author: Matthew E. Dawson <[email protected]>
AuthorDate: Mon Oct 4 16:32:07 2021 -0400

    CURATOR-606: ModeledFrameworkImpl.update(T model, int version): Use version 
in all cases. (#393)
---
 .../x/async/modeled/details/ModeledFrameworkImpl.java       |  4 +++-
 .../curator/x/async/modeled/TestModeledFramework.java       | 13 ++++++++++---
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git 
a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/ModeledFrameworkImpl.java
 
b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/ModeledFrameworkImpl.java
index dbbf3cb..99568ac 100644
--- 
a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/ModeledFrameworkImpl.java
+++ 
b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/ModeledFrameworkImpl.java
@@ -33,6 +33,7 @@ import org.apache.curator.x.async.WatchMode;
 import org.apache.curator.x.async.api.AsyncCuratorFrameworkDsl;
 import org.apache.curator.x.async.api.AsyncPathAndBytesable;
 import org.apache.curator.x.async.api.AsyncPathable;
+import org.apache.curator.x.async.api.AsyncSetDataBuilder;
 import org.apache.curator.x.async.api.AsyncTransactionSetDataBuilder;
 import org.apache.curator.x.async.api.CreateOption;
 import org.apache.curator.x.async.api.WatchableAsyncCuratorFramework;
@@ -205,7 +206,8 @@ public class ModeledFrameworkImpl<T> implements 
ModeledFramework<T>
         try
         {
             byte[] bytes = modelSpec.serializer().serialize(item);
-            AsyncPathAndBytesable<AsyncStage<Stat>> next = isCompressed() ? 
dslClient.setData().compressedWithVersion(version) : dslClient.setData();
+            AsyncSetDataBuilder dataBuilder = dslClient.setData();
+            AsyncPathAndBytesable<AsyncStage<Stat>> next = isCompressed() ? 
dataBuilder.compressedWithVersion(version) : dataBuilder.withVersion(version);
             return next.forPath(resolveForSet(item), bytes);
         }
         catch ( Exception e )
diff --git 
a/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/TestModeledFramework.java
 
b/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/TestModeledFramework.java
index 0b64b1c..6daca59 100644
--- 
a/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/TestModeledFramework.java
+++ 
b/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/TestModeledFramework.java
@@ -151,11 +151,18 @@ public class TestModeledFramework extends 
TestModeledFrameworkBase
         complete(versioned.read().whenComplete((v, e) -> {
             assertNull(e);
             assertTrue(v.version() > 0);
-        }).thenCompose(versioned::set), (s, e) -> assertNull(e)); // version 
is correct should succeed
-        
+        }).thenCompose(versioned::set), (s, e) -> assertNull(e)); // read 
version is correct; set moves version to 2
+
         Versioned<TestModel> badVersion = Versioned.from(model, 100000);
         complete(versioned.set(badVersion), (v, e) -> assertTrue(e instanceof 
KeeperException.BadVersionException));
-        
+        complete(versioned.update(badVersion), (v, e) -> assertTrue(e 
instanceof KeeperException.BadVersionException));
+
+        final Versioned<TestModel> goodVersion = Versioned.from(model, 2);
+        complete(versioned.update(goodVersion).whenComplete((v, e) -> {
+            assertNull(e);
+            assertEquals(3, v.getVersion());
+        }));
+
         final Stat stat = new Stat();
         complete(client.read(stat));
         // wrong version, needs to fail

Reply via email to