Applied patch for AsyncSupportAdapter from Pavel T..
Now it is possible to get future for the last async operation without clearing 
it.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/14dcb40e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/14dcb40e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/14dcb40e

Branch: refs/heads/ignite-383
Commit: 14dcb40e91842b163467a0fa7cc6172ee38ec4d8
Parents: 94327f9
Author: vozerov-gridgain <voze...@gridgain.com>
Authored: Wed Mar 11 16:46:39 2015 +0300
Committer: vozerov-gridgain <voze...@gridgain.com>
Committed: Wed Mar 11 16:46:39 2015 +0300

----------------------------------------------------------------------
 .../apache/ignite/internal/AsyncSupportAdapter.java  | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14dcb40e/modules/core/src/main/java/org/apache/ignite/internal/AsyncSupportAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/AsyncSupportAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/AsyncSupportAdapter.java
index 8fed54f..e02cb89 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/AsyncSupportAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/AsyncSupportAdapter.java
@@ -69,6 +69,18 @@ public class AsyncSupportAdapter<T extends 
IgniteAsyncSupport> implements Ignite
     /** {@inheritDoc} */
     @SuppressWarnings("unchecked")
     @Override public <R> IgniteFuture<R> future() {
+        return future(true);
+    }
+
+    /**
+     * Gets and optionally resets future for previous asynchronous operation.
+     *
+     * @param reset Specifies whether to reset future.
+     *
+     * @return Future for previous asynchronous operation.
+     */
+    @SuppressWarnings("unchecked")
+    public <R> IgniteFuture<R> future(boolean reset) {
         if (curFut == null)
             throw new IllegalStateException("Asynchronous mode is disabled.");
 
@@ -77,7 +89,8 @@ public class AsyncSupportAdapter<T extends 
IgniteAsyncSupport> implements Ignite
         if (fut == null)
             throw new IllegalStateException("Asynchronous operation not 
started.");
 
-        curFut.set(null);
+        if (reset)
+            curFut.set(null);
 
         return (IgniteFuture<R>)fut;
     }

Reply via email to