# ignite-929 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/d58f5cd4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/d58f5cd4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/d58f5cd4

Branch: refs/heads/ignite-929
Commit: d58f5cd4de957a37af8ef2b7c6ceacc648f72090
Parents: 39183ee
Author: sboikov <sboi...@gridgain.com>
Authored: Wed May 27 17:27:40 2015 +0300
Committer: sboikov <sboi...@gridgain.com>
Committed: Wed May 27 17:27:40 2015 +0300

----------------------------------------------------------------------
 .../managers/discovery/GridDiscoveryManager.java        | 12 ++++++++++--
 .../internal/processors/cache/GridCacheProcessor.java   |  7 ++-----
 .../cache/distributed/dht/GridDhtCacheEntry.java        |  5 +++--
 .../processors/cache/CacheStopAndDestroySelfTest.java   |  6 +++++-
 4 files changed, 20 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d58f5cd4/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 9737002..c7bbf6f 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
@@ -255,7 +255,7 @@ public class GridDiscoveryManager extends 
GridManagerAdapter<DiscoverySpi> {
      * @param cacheName Cache name.
      * @param clientNodeId Near node ID.
      */
-    public void onNodeLeft(String cacheName, UUID clientNodeId) {
+    public void onClientCacheClose(String cacheName, UUID clientNodeId) {
         CachePredicate predicate = registeredCaches.get(cacheName);
 
         if (predicate != null)
@@ -999,9 +999,17 @@ public class GridDiscoveryManager extends 
GridManagerAdapter<DiscoverySpi> {
      * @return {@code True} if node for given ID is alive.
      */
     public boolean alive(UUID nodeId) {
+        return getAlive(nodeId) != null;
+    }
+
+    /**
+     * @param nodeId Node ID.
+     * @return Node if node is alive.
+     */
+    @Nullable public ClusterNode getAlive(UUID nodeId) {
         assert nodeId != null;
 
-        return getSpi().getNode(nodeId) != null; // Go directly to SPI without 
checking disco cache.
+        return getSpi().getNode(nodeId); // Go directly to SPI without 
checking disco cache.
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d58f5cd4/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index ccbf10a..3c5d2dc 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -2129,7 +2129,6 @@ public class GridCacheProcessor extends 
GridProcessorAdapter {
                     req.nearCacheConfiguration() != null);
             }
             else if (req.close()) {
-
                 if (req.initiatingNodeId().equals(ctx.localNodeId())) {
                     stopGateway(req);
 
@@ -2139,14 +2138,12 @@ public class GridCacheProcessor extends 
GridProcessorAdapter {
                         registeredCaches.remove(maskNull(req.cacheName()), 
desc);
                 }
 
-                ctx.discovery().onNodeLeft(req.cacheName(), 
req.initiatingNodeId());
+                ctx.discovery().onClientCacheClose(req.cacheName(), 
req.initiatingNodeId());
 
                 DynamicCacheStartFuture changeFut = 
(DynamicCacheStartFuture)pendingFuts.get(maskNull(req.cacheName()));
 
-                if (changeFut != null && 
changeFut.deploymentId().equals(req.deploymentId())) {
-                    // No-op.
+                if (changeFut != null && 
changeFut.deploymentId().equals(req.deploymentId()))
                     changeFut.onDone();
-                }
             }
             else {
                 if (desc == null) {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d58f5cd4/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheEntry.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheEntry.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheEntry.java
index 1ecc63c..9318438 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheEntry.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheEntry.java
@@ -601,8 +601,9 @@ public class GridDhtCacheEntry extends 
GridDistributedCacheEntry {
         List<ReaderId> newRdrs = null;
 
         for (int i = 0; i < rdrs.length; i++) {
-            if (!cctx.discovery().alive(rdrs[i].nodeId()) ||
-                
!cctx.discovery().cacheNode(cctx.discovery().node(rdrs[i].nodeId), 
cacheName())) {
+            ClusterNode node = cctx.discovery().getAlive(rdrs[i].nodeId());
+
+            if (node == null || !cctx.discovery().cacheNode(node, 
cacheName())) {
                 // Node has left and if new list has already been created, 
just skip.
                 // Otherwise, create new list and add alive nodes.
                 if (newRdrs == null) {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d58f5cd4/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStopAndDestroySelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStopAndDestroySelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStopAndDestroySelfTest.java
index 31e5d92..48769da 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStopAndDestroySelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStopAndDestroySelfTest.java
@@ -325,7 +325,11 @@ public class CacheStopAndDestroySelfTest extends 
GridCommonAbstractTest {
 
         assert 
grid(0).cache(CACHE_NAME_CLOSE_NEAR).get(KEY_VAL).equals(KEY_VAL + "recreated");
         assert 
grid(1).cache(CACHE_NAME_CLOSE_NEAR).get(KEY_VAL).equals(KEY_VAL + "recreated");
-        assert 
grid(2).cache(CACHE_NAME_CLOSE_NEAR).get(KEY_VAL).equals(KEY_VAL + "recreated");
+        assert 
grid(2).cache(CACHE_NAME_CLOSE_NEAR).localPeek(KEY_VAL).equals(KEY_VAL + 
"recreated");
+
+        grid(0).cache(CACHE_NAME_CLOSE_NEAR).put(KEY_VAL, KEY_VAL + 
"recreated2");
+
+        assert 
grid(2).cache(CACHE_NAME_CLOSE_NEAR).localPeek(KEY_VAL).equals(KEY_VAL + 
"recreated2");
 
         //Local close. Same as Local destroy.
 

Reply via email to