#IGNITE-99: Rewrite allPartitions().
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/bd684771 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/bd684771 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/bd684771 Branch: refs/heads/sprint-1 Commit: bd6847717308652a6ebed680882a0a3a20d71fee Parents: dc7fc31 Author: ivasilinets <ivasilin...@gridgain.com> Authored: Fri Jan 23 17:18:12 2015 +0300 Committer: ivasilinets <ivasilin...@gridgain.com> Committed: Fri Jan 23 17:18:12 2015 +0300 ---------------------------------------------------------------------- .../processors/affinity/GridAffinityProcessor.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/bd684771/modules/core/src/main/java/org/gridgain/grid/kernal/processors/affinity/GridAffinityProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/affinity/GridAffinityProcessor.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/affinity/GridAffinityProcessor.java index 68cc5d2..f55c0f2 100644 --- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/affinity/GridAffinityProcessor.java +++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/affinity/GridAffinityProcessor.java @@ -623,11 +623,19 @@ public class GridAffinityProcessor extends GridProcessorAdapter { /** {@inheritDoc} */ @Override public int[] allPartitions(ClusterNode n) { try { - Set<Integer> parts = GridAffinityProcessor.this.affinityCache(cacheName, topologyVersion()) - .assignment.backupPartitions(n.id()); + Collection<Integer> parts = new HashSet<>(); + + AffinityInfo affInfo= GridAffinityProcessor.this.affinityCache(cacheName, topologyVersion()); - parts.addAll(GridAffinityProcessor.this.affinityCache(cacheName, topologyVersion()) - .assignment.primaryPartitions(n.id())); + for (int partsCnt = affInfo.affFunc.partitions(), part = 0; part < partsCnt; part++) { + for (ClusterNode affNode : affInfo.assignment.get(part)) { + if (n.id().equals(affNode.id())) { + parts.add(part); + + break; + } + } + } return U.toIntArray(parts); }