# sprint-1 Fixed future API.

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

Branch: refs/heads/ignite-160
Commit: 857c5259afd8583cef31ee03a07f8d1d637b9661
Parents: 822deaa
Author: Dmitiry Setrakyan <dsetrak...@gridgain.com>
Authored: Wed Feb 4 18:03:13 2015 -0800
Committer: Dmitiry Setrakyan <dsetrak...@gridgain.com>
Committed: Wed Feb 4 18:03:13 2015 -0800

----------------------------------------------------------------------
 .../internal/util/future/IgniteFutureImpl.java      |  9 ++++-----
 .../java/org/apache/ignite/lang/IgniteFuture.java   | 12 +++++-------
 .../internal/util/future/IgniteFutureImplTest.java  |  3 ++-
 .../processors/schedule/ScheduleFutureImpl.java     | 16 ++++++++--------
 4 files changed, 19 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/857c5259/modules/core/src/main/java/org/apache/ignite/internal/util/future/IgniteFutureImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/future/IgniteFutureImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/future/IgniteFutureImpl.java
index ddf9e2d..5dde21a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/future/IgniteFutureImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/future/IgniteFutureImpl.java
@@ -97,11 +97,10 @@ public class IgniteFutureImpl<V> implements IgniteFuture<V> 
{
     }
 
     /** {@inheritDoc} */
-    @Override public void stopListenAsync(IgniteInClosure<? super 
IgniteFuture<V>>... lsnrs) {
-        for (IgniteInClosure<? super IgniteFuture<V>> lsnr : lsnrs) {
-            if (lsnr != null)
-                fut.stopListenAsync(new InternalFutureListener(lsnr));
-        }
+    @Override public void stopListenAsync(IgniteInClosure<? super 
IgniteFuture<V>> lsnr) {
+        A.notNull(lsnr, "lsnr");
+
+        fut.stopListenAsync(new InternalFutureListener(lsnr));
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/857c5259/modules/core/src/main/java/org/apache/ignite/lang/IgniteFuture.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/lang/IgniteFuture.java 
b/modules/core/src/main/java/org/apache/ignite/lang/IgniteFuture.java
index 9f9e724..b93b33f 100644
--- a/modules/core/src/main/java/org/apache/ignite/lang/IgniteFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/lang/IgniteFuture.java
@@ -52,7 +52,7 @@ public interface IgniteFuture<V> extends Future<V> {
      * @throws IgniteFutureTimeoutException Subclass of {@link 
IgniteException} thrown if the wait was timed out.
      * @throws IgniteException If computation failed.
      */
-    public V get(long timeout)throws IgniteException;
+    public V get(long timeout) throws IgniteException;
 
     /**
      * Synchronously waits for completion of the computation for
@@ -154,15 +154,14 @@ public interface IgniteFuture<V> extends Future<V> {
      *
      * @param lsnr Listener closure to register. If not provided - this method 
is no-op.
      */
-    public void listenAsync(@Nullable IgniteInClosure<? super IgniteFuture<V>> 
lsnr);
+    public void listenAsync(IgniteInClosure<? super IgniteFuture<V>> lsnr);
 
     /**
-     * Removes given listeners from the future. If no listener is passed in, 
then all listeners
-     * will be removed.
+     * Removes given listener from the future.
      *
-     * @param lsnr Listeners to remove.
+     * @param lsnr Listener to remove.
      */
-    public void stopListenAsync(@Nullable IgniteInClosure<? super 
IgniteFuture<V>>... lsnr);
+    public void stopListenAsync(IgniteInClosure<? super IgniteFuture<V>> lsnr);
 
     /**
      * Make a chained future to convert result of this future (when complete) 
into a new format.
@@ -172,5 +171,4 @@ public interface IgniteFuture<V> extends Future<V> {
      * @return Chained future that finishes after this future completes and 
done callback is called.
      */
     public <T> IgniteFuture<T> chain(IgniteClosure<? super IgniteFuture<V>, T> 
doneCb);
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/857c5259/modules/core/src/test/java/org/apache/ignite/internal/util/future/IgniteFutureImplTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/util/future/IgniteFutureImplTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/util/future/IgniteFutureImplTest.java
index 66a6e64..d57ed8e 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/util/future/IgniteFutureImplTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/util/future/IgniteFutureImplTest.java
@@ -237,7 +237,8 @@ public class IgniteFutureImplTest extends 
GridCommonAbstractTest {
             fut.listenAsync(lsnr1);
             fut.listenAsync(lsnr2);
 
-            fut.stopListenAsync(lsnr2, lsnr1);
+            fut.stopListenAsync(lsnr2);
+            fut.stopListenAsync(lsnr1);
 
             fut0.onDone("test");
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/857c5259/modules/schedule/src/main/java/org/apache/ignite/internal/processors/schedule/ScheduleFutureImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/schedule/src/main/java/org/apache/ignite/internal/processors/schedule/ScheduleFutureImpl.java
 
b/modules/schedule/src/main/java/org/apache/ignite/internal/processors/schedule/ScheduleFutureImpl.java
index aefca70..67531b4 100644
--- 
a/modules/schedule/src/main/java/org/apache/ignite/internal/processors/schedule/ScheduleFutureImpl.java
+++ 
b/modules/schedule/src/main/java/org/apache/ignite/internal/processors/schedule/ScheduleFutureImpl.java
@@ -77,8 +77,7 @@ class ScheduleFutureImpl<R> implements SchedulerFuture<R>, 
Externalizable {
     private final AtomicBoolean descheduled = new AtomicBoolean(false);
 
     /** Listeners. */
-    private Collection<IgniteInClosure<? super IgniteFuture<R>>> lsnrs =
-        new ArrayList<>(1);
+    private Collection<IgniteInClosure<? super IgniteFuture<R>>> lsnrs = new 
ArrayList<>(1);
 
     /** Statistics. */
     @SuppressWarnings({"FieldAccessedSynchronizedAndUnsynchronized"})
@@ -613,11 +612,12 @@ class ScheduleFutureImpl<R> implements 
SchedulerFuture<R>, Externalizable {
     }
 
     /** {@inheritDoc} */
-    @Override public void stopListenAsync(@Nullable IgniteInClosure<? super 
IgniteFuture<R>>... lsnr) {
-        if (!F.isEmpty(lsnr))
-            synchronized (mux) {
-                lsnrs.removeAll(F.asList(lsnr));
-            }
+    @Override public void stopListenAsync(@Nullable IgniteInClosure<? super 
IgniteFuture<R>> lsnr) {
+        A.notNull(lsnr, "lsnr");
+
+        synchronized (mux) {
+            lsnrs.remove(lsnr);
+        }
     }
 
     /** {@inheritDoc} */
@@ -972,7 +972,7 @@ class ScheduleFutureImpl<R> implements SchedulerFuture<R>, 
Externalizable {
         }
 
         /** {@inheritDoc} */
-        @Override public void stopListenAsync(@Nullable IgniteInClosure<? 
super IgniteFuture<R>>... lsnr) {
+        @Override public void stopListenAsync(@Nullable IgniteInClosure<? 
super IgniteFuture<R>> lsnr) {
             ref.stopListenAsync(lsnr);
         }
 

Reply via email to