fix assertion on restore data structure

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

Branch: refs/heads/ignite-5398
Commit: f24829278a4b67e3890ea6c66a13b90b6e60cb06
Parents: 6d3f86f
Author: Dmitriy Govorukhin <[email protected]>
Authored: Wed May 31 16:19:16 2017 +0300
Committer: Dmitriy Govorukhin <[email protected]>
Committed: Wed May 31 16:19:16 2017 +0300

----------------------------------------------------------------------
 .../processors/cache/CacheAffinitySharedManager.java |  5 -----
 .../processors/cache/GridCacheProcessor.java         | 10 ++++++++++
 .../datastructures/DataStructuresProcessor.java      | 15 ++++++++++-----
 3 files changed, 20 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/f2482927/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
index 9c57ded..5fdd1bc 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
@@ -397,8 +397,6 @@ public class CacheAffinitySharedManager<K, V> extends 
GridCacheSharedManagerAdap
             Integer cacheId = CU.cacheId(req.cacheName());
 
             if (req.start()) {
-                systemCacheRestarted |= 
GridCacheUtils.isSystemCache(req.cacheName());
-
                 exchLog.info("prepareCacheStart start [topVer=" + 
fut.topologyVersion() + ", cache=" + req.cacheName() + ']');
 
                 cctx.cache().prepareCacheStart(req, fut.topologyVersion());
@@ -510,9 +508,6 @@ public class CacheAffinitySharedManager<K, V> extends 
GridCacheSharedManagerAdap
             }
         }
 
-        if (systemCacheRestarted)
-            ctx.dataStructures().restoreStructuresState(ctx);
-
         exchLog.info("onCacheChangeRequest end [topVer=" + 
fut.topologyVersion() + ", crd=" + crd + ']');
 
         return clientOnly;

http://git-wip-us.apache.org/repos/asf/ignite/blob/f2482927/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 9e51f6f..6d0b310 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
@@ -1975,6 +1975,16 @@ public class GridCacheProcessor extends 
GridProcessorAdapter {
             }
         }
 
+        if (reqs != null) {
+            for (DynamicCacheChangeRequest req : reqs) {
+                if (req.start() && 
GridCacheUtils.isSystemCache(req.cacheName())) {
+                    ctx.dataStructures().restoreStructuresState(ctx);
+
+                    break;
+                }
+            }
+        }
+
         if (!F.isEmpty(reqs) && err == null) {
             Collection<IgniteBiTuple<GridCacheContext, Boolean>> stopped = 
null;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/f2482927/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
index 0ae5b86..1e5993b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
@@ -324,14 +324,19 @@ public final class DataStructuresProcessor extends 
GridProcessorAdapter implemen
     /**
      * @param ctx Context.
      */
-    public void restoreStructuresState(GridKernalContext ctx) throws 
IgniteCheckedException {
+    public void restoreStructuresState(GridKernalContext ctx) {
         onKernalStart0(true);
 
-        for (Map.Entry<GridCacheInternal, GridCacheRemovable> e : 
dsMap.entrySet()) {
-            GridCacheRemovable v = e.getValue();
+        try {
+            for (Map.Entry<GridCacheInternal, GridCacheRemovable> e : 
dsMap.entrySet()) {
+                GridCacheRemovable v = e.getValue();
 
-            if (v instanceof IgniteChangeGlobalStateSupport)
-                ((IgniteChangeGlobalStateSupport)v).onActivate(ctx);
+                if (v instanceof IgniteChangeGlobalStateSupport)
+                    ((IgniteChangeGlobalStateSupport)v).onActivate(ctx);
+            }
+        }
+        catch (IgniteCheckedException e) {
+            log.error("Fail restore structures state ", e);
         }
     }
 

Reply via email to