Minors.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/1acf0b7f Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/1acf0b7f Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/1acf0b7f Branch: refs/heads/ignite-5054-splitter-2 Commit: 1acf0b7f6f7c580e55514feb4c794735da9ccf34 Parents: 4a26787 Author: devozerov <voze...@gridgain.com> Authored: Wed May 17 16:28:53 2017 +0300 Committer: devozerov <voze...@gridgain.com> Committed: Wed May 17 16:28:53 2017 +0300 ---------------------------------------------------------------------- .../h2/twostep/GridReduceQueryExecutor.java | 45 ++++++++++---------- 1 file changed, 23 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1acf0b7f/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java index 4b31ef6..75914ef 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java @@ -865,11 +865,14 @@ public class GridReduceQueryExecutor { * @return The first partitioned cache context. */ private GridCacheContext<?,?> findFirstPartitioned(List<Integer> cacheIds) { - for (Integer cacheId : cacheIds) { - GridCacheContext<?, ?> extraCctx = cacheContext(cacheId); + for (int i = 0; i < cacheIds.size(); i++) { + GridCacheContext<?, ?> cctx = cacheContext(cacheIds.get(i)); + + if (i == 0 && cctx.isLocal()) + throw new CacheException("Cache is LOCAL: " + cctx.name()); - if (!extraCctx.isReplicated() && !extraCctx.isLocal()) - return extraCctx; + if (!cctx.isReplicated() && !cctx.isLocal()) + return cctx; } throw new IllegalStateException("Failed to find partitioned cache."); @@ -982,10 +985,10 @@ public class GridReduceQueryExecutor { * @return Collection of all data nodes owning all the caches or {@code null} for retry. */ private Collection<ClusterNode> replicatedUnstableDataNodes(List<Integer> cacheIds) { - GridCacheContext<?, ?> cctx = cacheContext(cacheIds.get(0)); - int i = 0; + GridCacheContext<?, ?> cctx = cacheContext(cacheIds.get(i++)); + // The main cache is allowed to be partitioned. if (!cctx.isReplicated()) { assert cacheIds.size() > 1: "no extra replicated caches with partitioned main cache"; @@ -1001,28 +1004,26 @@ public class GridReduceQueryExecutor { if (F.isEmpty(nodes)) return null; // Retry. - if (cacheIds.size() > 1) { - for (;i < cacheIds.size(); i++) { - GridCacheContext<?, ?> extraCctx = cacheContext(cacheIds.get(i)); + for (;i < cacheIds.size(); i++) { + GridCacheContext<?, ?> extraCctx = cacheContext(cacheIds.get(i)); - if (extraCctx.isLocal()) - continue; + if (extraCctx.isLocal()) + continue; - if (!extraCctx.isReplicated()) - throw new CacheException("Queries running on replicated cache should not contain JOINs " + - "with tables in partitioned caches [replicatedCache=" + cctx.name() + ", " + - "partitionedCache=" + extraCctx.name() + "]"); + if (!extraCctx.isReplicated()) + throw new CacheException("Queries running on replicated cache should not contain JOINs " + + "with tables in partitioned caches [replicatedCache=" + cctx.name() + ", " + + "partitionedCache=" + extraCctx.name() + "]"); - Set<ClusterNode> extraOwners = replicatedUnstableDataNodes(extraCctx); + Set<ClusterNode> extraOwners = replicatedUnstableDataNodes(extraCctx); - if (F.isEmpty(extraOwners)) - return null; // Retry. + if (F.isEmpty(extraOwners)) + return null; // Retry. - nodes.retainAll(extraOwners); + nodes.retainAll(extraOwners); - if (nodes.isEmpty()) - return null; // Retry. - } + if (nodes.isEmpty()) + return null; // Retry. } return nodes;