Repository: ignite Updated Branches: refs/heads/ignite-5872 2874f75e1 -> ee6f76965
IGNITE-5872 - Fixed NPE Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ee6f7696 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ee6f7696 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ee6f7696 Branch: refs/heads/ignite-5872 Commit: ee6f769651777abd309e9a5d1932d45babe2e9d9 Parents: 2874f75 Author: Alexey Goncharuk <[email protected]> Authored: Mon Aug 7 19:14:43 2017 +0300 Committer: Alexey Goncharuk <[email protected]> Committed: Mon Aug 7 19:14:43 2017 +0300 ---------------------------------------------------------------------- .../GridCachePartitionExchangeManager.java | 20 +++++++++----------- .../dht/GridClientPartitionTopology.java | 6 +++++- .../CachePartitionFullCountersMap.java | 10 ---------- .../preloader/GridDhtPartitionsFullMessage.java | 4 +--- .../IgniteDhtPartitionCountersMap.java | 6 ++---- 5 files changed, 17 insertions(+), 29 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/ee6f7696/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java index e18eb55..12b313a 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java @@ -668,23 +668,21 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana if (top != null) return top; - Object affKey = null; - CacheGroupDescriptor grpDesc = cctx.cache().cacheGroupDescriptors().get(grpId); - if (grpDesc != null) { - CacheConfiguration<?, ?> ccfg = grpDesc.config(); + assert grpDesc != null; - AffinityFunction aff = ccfg.getAffinity(); + CacheConfiguration<?, ?> ccfg = grpDesc.config(); - affKey = cctx.kernalContext().affinity().similaryAffinityKey(aff, - ccfg.getNodeFilter(), - ccfg.getBackups(), - aff.partitions()); - } + AffinityFunction aff = ccfg.getAffinity(); + + Object affKey = cctx.kernalContext().affinity().similaryAffinityKey(aff, + ccfg.getNodeFilter(), + ccfg.getBackups(), + aff.partitions()); GridClientPartitionTopology old = clientTops.putIfAbsent(grpId, - top = new GridClientPartitionTopology(cctx, grpId, exchFut, affKey)); + top = new GridClientPartitionTopology(cctx, grpId, exchFut, aff.partitions(), affKey)); return old != null ? old : top; } http://git-wip-us.apache.org/repos/asf/ignite/blob/ee6f7696/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java index cf45120..6448f69 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java @@ -105,7 +105,7 @@ public class GridClientPartitionTopology implements GridDhtPartitionTopology { private final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); /** Partition update counters. */ - private CachePartitionFullCountersMap cntrMap = new CachePartitionFullCountersMap(); + private CachePartitionFullCountersMap cntrMap; /** */ private final Object similarAffKey; @@ -117,12 +117,14 @@ public class GridClientPartitionTopology implements GridDhtPartitionTopology { * @param cctx Context. * @param grpId Group ID. * @param exchFut Exchange ID. + * @param parts Number of partitions in the group. * @param similarAffKey Key to find caches with similar affinity. */ public GridClientPartitionTopology( GridCacheSharedContext cctx, int grpId, GridDhtPartitionsExchangeFuture exchFut, + int parts, Object similarAffKey ) { this.cctx = cctx; @@ -138,6 +140,8 @@ public class GridClientPartitionTopology implements GridDhtPartitionTopology { lock.writeLock().lock(); try { + cntrMap = new CachePartitionFullCountersMap(parts); + beforeExchange0(cctx.localNode(), exchFut); } finally { http://git-wip-us.apache.org/repos/asf/ignite/blob/ee6f7696/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/CachePartitionFullCountersMap.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/CachePartitionFullCountersMap.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/CachePartitionFullCountersMap.java index 543ca1b..1384a55 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/CachePartitionFullCountersMap.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/CachePartitionFullCountersMap.java @@ -28,22 +28,12 @@ public class CachePartitionFullCountersMap implements Serializable { private static final long serialVersionUID = 0L; /** */ - public static final CachePartitionFullCountersMap EMPTY = new CachePartitionFullCountersMap(); - - /** */ private long[] initialUpdCntrs; /** */ private long[] updCntrs; /** - * - */ - public CachePartitionFullCountersMap() { - // Empty map. - } - - /** * @param other Map to copy. */ public CachePartitionFullCountersMap(CachePartitionFullCountersMap other) { http://git-wip-us.apache.org/repos/asf/ignite/blob/ee6f7696/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java index ef3a58f..5f415e2 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java @@ -198,9 +198,7 @@ public class GridDhtPartitionsFullMessage extends GridDhtPartitionsAbstractMessa * @return Partition update counters. */ public CachePartitionFullCountersMap partitionUpdateCounters(int grpId) { - CachePartitionFullCountersMap res = partCntrs == null ? null : partCntrs.get(grpId); - - return res != null ? res : CachePartitionFullCountersMap.EMPTY; + return partCntrs == null ? null : partCntrs.get(grpId); } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/ee6f7696/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/IgniteDhtPartitionCountersMap.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/IgniteDhtPartitionCountersMap.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/IgniteDhtPartitionCountersMap.java index 0124e80..75cfb37 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/IgniteDhtPartitionCountersMap.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/IgniteDhtPartitionCountersMap.java @@ -22,8 +22,6 @@ import java.io.Serializable; import java.util.HashMap; import java.util.Map; -import static org.apache.ignite.internal.processors.cache.distributed.dht.preloader.CachePartitionFullCountersMap.EMPTY; - /** * Partition counters map. */ @@ -52,12 +50,12 @@ public class IgniteDhtPartitionCountersMap implements Serializable { */ public synchronized CachePartitionFullCountersMap get(int cacheId) { if (map == null) - map = new HashMap<>(); + return null; CachePartitionFullCountersMap cntrMap = map.get(cacheId); if (cntrMap == null) - return EMPTY; + return null; return cntrMap; }
