ignite-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From agoncha...@apache.org
Subject [1/7] incubator-ignite git commit: # IGNITE-45 - Fixing tests.
Date Sat, 21 Mar 2015 05:45:00 GMT
Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-45 f1a46c4ad -> 77ca91c1c


# IGNITE-45 - Fixing tests.


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

Branch: refs/heads/ignite-45
Commit: 77715e238754dc983abf6b23341bbf0ea1060e5c
Parents: 4e4feb8
Author: Alexey Goncharuk <agoncharuk@gridgain.com>
Authored: Fri Mar 20 19:03:48 2015 -0700
Committer: Alexey Goncharuk <agoncharuk@gridgain.com>
Committed: Fri Mar 20 19:03:48 2015 -0700

----------------------------------------------------------------------
 .../processors/cache/GridCacheProcessor.java    | 33 +++++++++++++++++---
 1 file changed, 29 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/77715e23/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 278e2c8..a943624 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
@@ -46,6 +46,7 @@ import org.apache.ignite.internal.processors.query.*;
 import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.future.*;
 import org.apache.ignite.internal.util.lang.*;
+import org.apache.ignite.internal.util.tostring.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.lang.*;
@@ -1539,10 +1540,12 @@ public class GridCacheProcessor extends GridProcessorAdapter {
 
         DynamicCacheDescriptor desc = registeredCaches.get(maskNull(cacheName));
 
+        U.debug(log, "Requested to start cache [localNodeId=" + ctx.localNodeId() + ", name="
+ cacheName + ", desc=" + desc + ']');
+
         DynamicCacheChangeRequest req = new DynamicCacheChangeRequest(ctx.localNodeId());
 
         if (ccfg != null) {
-            if (desc != null) {
+            if (desc != null && !desc.cancelled()) {
                 if (failIfExists)
                     return new GridFinishedFuture<>(new IgniteCacheExistsException("Failed
to start cache " +
                             "(a cache with the same name is already started): " + cacheName));
@@ -1615,7 +1618,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
         Collection<DynamicCacheChangeRequest> sendReqs = new ArrayList<>(reqs.size());
 
         for (DynamicCacheChangeRequest req : reqs) {
-            DynamicCacheStartFuture fut = new DynamicCacheStartFuture(req.cacheName(), req.deploymentId());
+            DynamicCacheStartFuture fut = new DynamicCacheStartFuture(req.cacheName(), req.deploymentId(),
req);
 
             try {
                 if (req.isStop()) {
@@ -1643,6 +1646,8 @@ public class GridCacheProcessor extends GridProcessorAdapter {
 
                 if (old != null) {
                     if (req.isStart() && !req.clientStartOnly()) {
+                        U.debug(log, "!!! Future collision (will fail) [old=" + old + ",
req=" + req + ']');
+
                         fut.onDone(new IgniteCacheExistsException("Failed to start cache
" +
                             "(a cache with the same name is already being started or stopped):
" + req.cacheName()));
                     }
@@ -2464,16 +2469,22 @@ public class GridCacheProcessor extends GridProcessorAdapter {
     @SuppressWarnings("ExternalizableWithoutPublicNoArgConstructor")
     private class DynamicCacheStartFuture extends GridFutureAdapter<Object> {
         /** Start ID. */
+        @GridToStringInclude
         private IgniteUuid deploymentId;
 
         /** Cache name. */
         private String cacheName;
 
+        /** Change request. */
+        @GridToStringInclude
+        private DynamicCacheChangeRequest req;
+
         /**
          */
-        private DynamicCacheStartFuture(String cacheName, IgniteUuid deploymentId) {
+        private DynamicCacheStartFuture(String cacheName, IgniteUuid deploymentId, DynamicCacheChangeRequest
req) {
             this.deploymentId = deploymentId;
             this.cacheName = cacheName;
+            this.req = req;
         }
 
         /**
@@ -2483,16 +2494,30 @@ public class GridCacheProcessor extends GridProcessorAdapter {
             return deploymentId;
         }
 
+        /**
+         * @return Request.
+         */
+        public DynamicCacheChangeRequest request() {
+            return req;
+        }
+
         /** {@inheritDoc} */
         @Override public boolean onDone(@Nullable Object res, @Nullable Throwable err) {
+            pendingFuts.remove(maskNull(cacheName), this);
+
             if (super.onDone(res, err)) {
-                pendingFuts.remove(maskNull(cacheName), this);
+                U.debug(log, "Completed future: " + this);
 
                 return true;
             }
 
             return false;
         }
+
+        /** {@inheritDoc} */
+        @Override public String toString() {
+            return S.toString(DynamicCacheStartFuture.class, this);
+        }
     }
 
     /**


Mime
View raw message