You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2015/05/19 15:46:05 UTC

incubator-ignite git commit: # Review.

Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-gg-9614 8deaf562a -> a765d2a80


# Review.


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

Branch: refs/heads/ignite-gg-9614
Commit: a765d2a80d6c5f4ed9c9a82083446f4baae65322
Parents: 8deaf56
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue May 19 16:45:28 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue May 19 16:45:28 2015 +0300

----------------------------------------------------------------------
 .../internal/GridEventConsumeHandler.java       |  1 +
 .../interop/GridLifecycleAwareEventFilter.java  |  2 ++
 .../GridLifecycleAwareLocalEventListener.java   |  1 +
 .../eventstorage/GridEventStorageManager.java   | 26 +++++++++++---------
 4 files changed, 19 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a765d2a8/modules/core/src/main/java/org/apache/ignite/internal/GridEventConsumeHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridEventConsumeHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/GridEventConsumeHandler.java
index cf6d605..c63b50d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/GridEventConsumeHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/GridEventConsumeHandler.java
@@ -193,6 +193,7 @@ class GridEventConsumeHandler implements GridContinuousHandler {
         if (lsnr != null)
             ctx.event().removeLocalEventListener(lsnr, types);
 
+        // TODO: Not safe. Exception thrown from filter close will tiled in not-closed cb.
         if (filter instanceof GridLifecycleAwareEventFilter)
             ((GridLifecycleAwareEventFilter)filter).close();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a765d2a8/modules/core/src/main/java/org/apache/ignite/internal/interop/GridLifecycleAwareEventFilter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/interop/GridLifecycleAwareEventFilter.java b/modules/core/src/main/java/org/apache/ignite/internal/interop/GridLifecycleAwareEventFilter.java
index 13d6616..c54954c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/interop/GridLifecycleAwareEventFilter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/interop/GridLifecycleAwareEventFilter.java
@@ -24,10 +24,12 @@ import org.apache.ignite.lang.*;
 /**
  * Special version of predicate for events with initialize/close callbacks.
  */
+// TODO: Rename to GridInterop*.
 public interface GridLifecycleAwareEventFilter<E extends Event> extends IgnitePredicate<E> {
     /**
      * Initializes the filter.
      */
+    // TODO: Accept GridContext, not Ignite.
     public void initialize(Ignite ignite);
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a765d2a8/modules/core/src/main/java/org/apache/ignite/internal/interop/GridLifecycleAwareLocalEventListener.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/interop/GridLifecycleAwareLocalEventListener.java b/modules/core/src/main/java/org/apache/ignite/internal/interop/GridLifecycleAwareLocalEventListener.java
index f5b363e..aac8bbf 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/interop/GridLifecycleAwareLocalEventListener.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/interop/GridLifecycleAwareLocalEventListener.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.interop;
 /**
  * Special version of listener for events with close callbacks.
  */
+// TODO: Rename to GridInterop*.
 public interface GridLifecycleAwareLocalEventListener {
     /**
      * Closes the listener.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a765d2a8/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java
index bd37b4f..fc26bab 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java
@@ -653,10 +653,10 @@ public class GridEventStorageManager extends GridManagerAdapter<EventStorageSpi>
 
         if (lsnr instanceof UserListenerWrapper)
         {
-            UserListenerWrapper wrapper = (UserListenerWrapper)lsnr;
+            IgnitePredicate p = ((UserListenerWrapper)lsnr).listener();
 
-            if (wrapper.listener() instanceof GridLifecycleAwareLocalEventListener)
-                ((GridLifecycleAwareLocalEventListener)wrapper.listener()).close();
+            if (p instanceof GridLifecycleAwareLocalEventListener)
+                ((GridLifecycleAwareLocalEventListener)p).close();
         }
 
         return found;
@@ -761,16 +761,20 @@ public class GridEventStorageManager extends GridManagerAdapter<EventStorageSpi>
     public <T extends Event> Collection<T> localEvents(IgnitePredicate<T> p) {
         assert p != null;
 
-        if (p instanceof GridLifecycleAwareEventFilter)
-            ((GridLifecycleAwareEventFilter)p).initialize(ctx.grid());
+        if (p instanceof GridLifecycleAwareEventFilter) {
+            GridLifecycleAwareEventFilter p0 = (GridLifecycleAwareEventFilter)p;
 
-        try {
-            return getSpi().localEvents(p);
-        }
-        finally {
-            if (p instanceof GridLifecycleAwareEventFilter)
-                ((GridLifecycleAwareEventFilter)p).close();
+            p0.initialize(ctx.grid());
+
+            try {
+                return getSpi().localEvents(p0);
+            }
+            finally {
+                p0.close();
+            }
         }
+        else
+            return getSpi().localEvents(p);
     }
 
     /**