# ignite-sprint-4 changed async put future to return null (IGNITE-461)
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/0ee27990 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/0ee27990 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/0ee27990 Branch: refs/heads/ignite-646 Commit: 0ee27990da844ed6655e0381fe6da4ebf3543567 Parents: 86cc1ad Author: sboikov <sboi...@gridgain.com> Authored: Thu Apr 23 09:48:18 2015 +0300 Committer: sboikov <sboi...@gridgain.com> Committed: Thu Apr 23 09:48:18 2015 +0300 ---------------------------------------------------------------------- .../internal/processors/cache/IgniteCacheProxy.java | 15 +++++++++++++-- .../cache/GridCacheAbstractFullApiSelfTest.java | 4 ++-- 2 files changed, 15 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ee27990/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java index 5b9cfbf..c833705 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java @@ -814,8 +814,19 @@ public class IgniteCacheProxy<K, V> extends AsyncSupportAdapter<IgniteCache<K, V CacheOperationContext prev = onEnter(opCtx); try { - if (isAsync()) - setFuture(delegate.putAsync(key, val)); + if (isAsync()) { + IgniteInternalFuture<Boolean> fut = delegate.putAsync(key, val); + + IgniteInternalFuture<Void> fut0 = fut.chain(new CX1<IgniteInternalFuture<Boolean>, Void>() { + @Override public Void applyx(IgniteInternalFuture<Boolean> fut) throws IgniteCheckedException { + fut.get(); + + return null; + } + }); + + setFuture(fut0); + } else delegate.put(key, val); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ee27990/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java index 8813e82..561c6a4 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java @@ -1368,8 +1368,8 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract f = tx.future(); } - fut1.get(); - fut2.get(); + assertNull(fut1.get()); + assertNull(fut2.get()); assert f == null || f.get().state() == COMMITTED; }