IGNITE-594 - Fixed NPE, added test.

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

Branch: refs/heads/ignite-573
Commit: 411481c80797384b61e520a0b2bd057058701a82
Parents: f9f649a
Author: Alexey Goncharuk <agoncha...@gridgain.com>
Authored: Wed Mar 25 22:10:11 2015 -0700
Committer: Alexey Goncharuk <agoncha...@gridgain.com>
Committed: Wed Mar 25 22:10:11 2015 -0700

----------------------------------------------------------------------
 .../discovery/GridDiscoveryManager.java         |  3 +-
 .../cache/IgniteDynamicCacheStartSelfTest.java  | 33 ++++++++++++++++++++
 2 files changed, 35 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/411481c8/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
index 2eb6916..3cd6aab 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
@@ -369,7 +369,8 @@ public class GridDiscoveryManager extends 
GridManagerAdapter<DiscoverySpi> {
 
                 if (type == DiscoveryCustomEvent.EVT_DISCOVERY_CUSTOM_EVT) {
                     try {
-                        customEvtLsnr.apply(data);
+                        if (customEvtLsnr != null)
+                            customEvtLsnr.apply(data);
                     }
                     catch (Exception e) {
                         U.error(log, "Failed to notify direct custom event 
listener: " + data, e);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/411481c8/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartSelfTest.java
index 1752368..e57a0a2 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartSelfTest.java
@@ -62,6 +62,9 @@ public class IgniteDynamicCacheStartSelfTest extends 
GridCommonAbstractTest {
     /** */
     private boolean testAttribute = true;
 
+    /** */
+    private boolean daemon;
+
     /**
      * @return Number of nodes for this test.
      */
@@ -88,6 +91,9 @@ public class IgniteDynamicCacheStartSelfTest extends 
GridCommonAbstractTest {
 
         cfg.setIncludeEventTypes(EventType.EVT_CACHE_STARTED, 
EventType.EVT_CACHE_STOPPED, EventType.EVT_CACHE_NODES_LEFT);
 
+        if (daemon)
+            cfg.setDaemon(true);
+
         return cfg;
     }
 
@@ -969,4 +975,31 @@ public class IgniteDynamicCacheStartSelfTest extends 
GridCommonAbstractTest {
                 ignite(i).events().stopLocalListen(lsnrs[i]);
         }
     }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testDaemonNode() throws Exception {
+        daemon = true;
+
+        Ignite dNode = startGrid(nodeCount());
+
+        try {
+            CacheConfiguration cfg = new 
CacheConfiguration(DYNAMIC_CACHE_NAME);
+
+            try (IgniteCache cache = ignite(0).createCache(cfg)) {
+                for (int i = 0; i < 100; i++) {
+                    
assertFalse(ignite(0).affinity(DYNAMIC_CACHE_NAME).mapKeyToPrimaryAndBackups(i)
+                        .contains(dNode.cluster().localNode()));
+
+                    cache.put(i, i);
+                }
+            }
+        }
+        finally {
+            stopGrid(nodeCount());
+
+            daemon = false;
+        }
+    }
 }

Reply via email to