Repository: incubator-ignite Updated Branches: refs/heads/ignite-901 15ef9b9e3 -> fa007b1f5
IGNITE-1026 - Always create client cache Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/eef2b372 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/eef2b372 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/eef2b372 Branch: refs/heads/ignite-901 Commit: eef2b372fe83f7626981f9ce1364d99da5d0c60a Parents: af829d0 Author: Valentin Kulichenko <vkuliche...@gridgain.com> Authored: Wed Jun 17 19:24:25 2015 -0700 Committer: Valentin Kulichenko <vkuliche...@gridgain.com> Committed: Wed Jun 17 19:24:25 2015 -0700 ---------------------------------------------------------------------- .../processors/cache/GridCacheProcessor.java | 71 +++++--------------- 1 file changed, 16 insertions(+), 55 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/eef2b372/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 2f7f22c..e6a0994 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 @@ -1917,7 +1917,7 @@ public class GridCacheProcessor extends GridProcessorAdapter { req.clientStartOnly(true); } else - return new GridFinishedFuture<>(); + req.clientStartOnly(true); req.deploymentId(desc.deploymentId()); @@ -1948,14 +1948,14 @@ public class GridCacheProcessor extends GridProcessorAdapter { ccfg = desc.cacheConfiguration(); if (ccfg == null) - return new GridFinishedFuture<>(new CacheExistsException("Failed to start near cache " + + return new GridFinishedFuture<>(new CacheExistsException("Failed to start client cache " + "(a cache with the given name is not started): " + cacheName)); if (CU.affinityNode(ctx.discovery().localNode(), ccfg.getNodeFilter())) { if (ccfg.getNearConfiguration() != null) return new GridFinishedFuture<>(); else - return new GridFinishedFuture<>(new IgniteCheckedException("Failed to start near cache " + + return new GridFinishedFuture<>(new IgniteCheckedException("Failed to start client cache " + "(local node is an affinity node for cache): " + cacheName)); } @@ -2523,12 +2523,17 @@ public class GridCacheProcessor extends GridProcessorAdapter { if (log.isDebugEnabled()) log.debug("Getting cache for name: " + name); - IgniteCache<K, V> jcache = (IgniteCache<K, V>)jCacheProxies.get(maskNull(name)); + String masked = maskNull(name); - if (jcache == null) - jcache = startJCache(name, true); + IgniteCacheProxy<?, ?> cache = jCacheProxies.get(masked); + + if (cache == null) { + dynamicStartCache(null, name, null, false); + + cache = jCacheProxies.get(masked); + } - return jcache == null ? null : ((IgniteCacheProxy<K, V>)jcache).internalProxy(); + return cache == null ? null : (IgniteInternalCache<K, V>)cache.internalProxy(); } /** @@ -2638,57 +2643,13 @@ public class GridCacheProcessor extends GridProcessorAdapter { if (desc != null && !desc.cacheType().userCache()) throw new IllegalStateException("Failed to get cache because it is a system cache: " + cacheName); - if (cache == null) - cache = startJCache(cacheName, failIfNotStarted); - - return (IgniteCacheProxy<K, V>)cache; - } - - /** - * @param cacheName Cache name. - * @param failIfNotStarted If {@code true} throws {@link IllegalArgumentException} if cache is not started, - * otherwise returns {@code null} in this case. - * @return Cache instance for given name. - * @throws IgniteCheckedException If failed. - */ - private IgniteCacheProxy startJCache(String cacheName, boolean failIfNotStarted) throws IgniteCheckedException { - checkEmptyTransactions(); - - String masked = maskNull(cacheName); - - DynamicCacheDescriptor desc = registeredCaches.get(masked); + if (cache == null) { + dynamicStartCache(null, cacheName, null, false).get(); - if (desc == null || desc.cancelled()) { - if (failIfNotStarted) - throw new IllegalArgumentException("Cache is not started: " + cacheName); - - return null; + cache = jCacheProxies.get(masked); } - DynamicCacheChangeRequest req = new DynamicCacheChangeRequest(cacheName, ctx.localNodeId()); - - req.cacheName(cacheName); - - req.deploymentId(desc.deploymentId()); - - CacheConfiguration cfg = new CacheConfiguration(desc.cacheConfiguration()); - - cfg.setNearConfiguration(null); - - req.startCacheConfiguration(cfg); - - req.cacheType(desc.cacheType()); - - req.clientStartOnly(true); - - F.first(initiateCacheChanges(F.asList(req), false)).get(); - - IgniteCacheProxy cache = jCacheProxies.get(masked); - - if (cache == null && failIfNotStarted) - throw new IllegalArgumentException("Cache is not started: " + cacheName); - - return cache; + return (IgniteCacheProxy<K, V>)cache; } /**