Return-Path: X-Original-To: apmail-ignite-commits-archive@minotaur.apache.org Delivered-To: apmail-ignite-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4847817A54 for ; Tue, 14 Apr 2015 13:23:05 +0000 (UTC) Received: (qmail 97323 invoked by uid 500); 14 Apr 2015 13:22:52 -0000 Delivered-To: apmail-ignite-commits-archive@ignite.apache.org Received: (qmail 97293 invoked by uid 500); 14 Apr 2015 13:22:52 -0000 Mailing-List: contact commits-help@ignite.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.incubator.apache.org Delivered-To: mailing list commits@ignite.incubator.apache.org Received: (qmail 97284 invoked by uid 99); 14 Apr 2015 13:22:52 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Apr 2015 13:22:52 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO mail.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with SMTP; Tue, 14 Apr 2015 13:22:30 +0000 Received: (qmail 96462 invoked by uid 99); 14 Apr 2015 13:22:27 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Apr 2015 13:22:27 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 632FAE0231; Tue, 14 Apr 2015 13:22:27 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: sboikov@apache.org To: commits@ignite.incubator.apache.org Date: Tue, 14 Apr 2015 13:22:27 -0000 Message-Id: <95f96a6e37a942ce97e16dd8fc581225@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [1/9] incubator-ignite git commit: # ignite-560 X-Virus-Checked: Checked by ClamAV on apache.org Repository: incubator-ignite Updated Branches: refs/heads/ignite-743 bd80bca16 -> 66a1b3c80 # ignite-560 Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/03025dee Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/03025dee Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/03025dee Branch: refs/heads/ignite-743 Commit: 03025deef0a5efd9ff2da1105a0d513a189ec2c2 Parents: fceebf2 Author: sboikov Authored: Mon Apr 13 11:01:06 2015 +0300 Committer: sboikov Committed: Mon Apr 13 11:10:14 2015 +0300 ---------------------------------------------------------------------- .../distributed/near/GridNearCacheEntry.java | 6 ++-- .../junits/common/GridCommonAbstractTest.java | 36 +++++++++++++++++++- 2 files changed, 39 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/03025dee/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheEntry.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheEntry.java index b22f79f..742900b 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheEntry.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheEntry.java @@ -157,7 +157,7 @@ public class GridNearCacheEntry extends GridDistributedCacheEntry { // Version does not change for load ops. update(e.value(), e.expireTime(), e.ttl(), e.isNew() ? ver : e.version()); - if (cctx.deferredDelete()) { + if (cctx.deferredDelete() && !isNew() && !isInternal()) { boolean deleted = val == null; if (deleted != deletedUnlocked()) { @@ -196,6 +196,7 @@ public class GridNearCacheEntry extends GridDistributedCacheEntry { * @param ver Version. * @param dhtVer DHT version. * @param primaryNodeId Primary node ID. + * @param topVer Topology version. * @return {@code True} if reset was done. * @throws GridCacheEntryRemovedException If obsolete. * @throws IgniteCheckedException If failed. @@ -238,6 +239,7 @@ public class GridNearCacheEntry extends GridDistributedCacheEntry { * @param expireTime Expire time. * @param ttl Time to live. * @param primaryNodeId Primary node ID. + * @param topVer Topology version. */ public void updateOrEvict(GridCacheVersion dhtVer, @Nullable CacheObject val, @@ -382,7 +384,7 @@ public class GridNearCacheEntry extends GridDistributedCacheEntry { if (!dhtVer.equals(dhtVersion())) { update(val, expireTime, ttl, ver); - if (cctx.deferredDelete()) { + if (cctx.deferredDelete() && !isInternal()) { boolean deleted = val == null; if (deleted != deletedUnlocked()) { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/03025dee/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java index 98822f0..5533897 100644 --- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java @@ -784,7 +784,16 @@ public abstract class GridCommonAbstractTest extends GridAbstractTest { * @return Near cache for key. */ protected IgniteCache primaryCache(Integer key, String cacheName) { - return primaryNode(key, null).cache(null); + return primaryNode(key, cacheName).cache(cacheName); + } + + /** + * @param key Key. + * @param cacheName Cache name. + * @return Near cache for key. + */ + protected IgniteCache backupCache(Integer key, String cacheName) { + return backupNode(key, cacheName).cache(cacheName); } /** @@ -809,6 +818,31 @@ public abstract class GridCommonAbstractTest extends GridAbstractTest { } /** + * @param key Key. + * @param cacheName Cache name. + * @return Ignite instance which has primary cache for given key. + */ + protected Ignite backupNode(Object key, String cacheName) { + List allGrids = Ignition.allGrids(); + + assertFalse("There are no alive nodes.", F.isEmpty(allGrids)); + + Ignite ignite = allGrids.get(0); + + Affinity aff = ignite.affinity(cacheName); + + Collection nodes = aff.mapKeyToPrimaryAndBackups(key); + + assertTrue("Expected more than one node for key [key=" + key + ", nodes=" + nodes +']', nodes.size() > 1); + + Iterator it = nodes.iterator(); + + it.next(); // Skip primary. + + return grid(it.next()); + } + + /** * In ATOMIC cache with CLOCK mode if key is updated from different nodes at same time * only one update wins others are ignored (can happen in test event when updates are executed from * different nodes sequentially), this delay is used to avoid lost updates.