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 7B41F17A3A for ; Wed, 4 Mar 2015 01:32:01 +0000 (UTC) Received: (qmail 66406 invoked by uid 500); 4 Mar 2015 01:31:58 -0000 Delivered-To: apmail-ignite-commits-archive@ignite.apache.org Received: (qmail 66329 invoked by uid 500); 4 Mar 2015 01:31:58 -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 66310 invoked by uid 99); 4 Mar 2015 01:31:58 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 04 Mar 2015 01:31:58 +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; Wed, 04 Mar 2015 01:31:56 +0000 Received: (qmail 63704 invoked by uid 99); 4 Mar 2015 01:31:31 -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; Wed, 04 Mar 2015 01:31:31 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 7ECCEE1089; Wed, 4 Mar 2015 01:31:31 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: vkulichenko@apache.org To: commits@ignite.incubator.apache.org Date: Wed, 04 Mar 2015 01:32:08 -0000 Message-Id: <004c3da9406b4267b4daf5215bfaae96@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [38/50] [abbrv] incubator-ignite git commit: # sprint-1 restored check that queue can not be used with atomic cache in CLOCK mode X-Virus-Checked: Checked by ClamAV on apache.org # sprint-1 restored check that queue can not be used with atomic cache in CLOCK mode Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/59264704 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/59264704 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/59264704 Branch: refs/heads/master Commit: 5926470450dfe799849f722dadf7e0a100fc6be0 Parents: f27a989 Author: sboikov Authored: Mon Feb 16 17:12:03 2015 +0300 Committer: sboikov Committed: Mon Feb 16 17:12:03 2015 +0300 ---------------------------------------------------------------------- .../datastructures/IgniteQueueExample.java | 2 +- .../datastructures/DataStructuresProcessor.java | 15 ++++++- .../IgniteDataStructureUniqueNameTest.java | 41 ++++++++++++++++++++ 3 files changed, 56 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/59264704/examples/src/main/java/org/apache/ignite/examples/datastructures/IgniteQueueExample.java ---------------------------------------------------------------------- diff --git a/examples/src/main/java/org/apache/ignite/examples/datastructures/IgniteQueueExample.java b/examples/src/main/java/org/apache/ignite/examples/datastructures/IgniteQueueExample.java index 4219dd1..519d11a 100644 --- a/examples/src/main/java/org/apache/ignite/examples/datastructures/IgniteQueueExample.java +++ b/examples/src/main/java/org/apache/ignite/examples/datastructures/IgniteQueueExample.java @@ -36,7 +36,7 @@ import java.util.*; */ public class IgniteQueueExample { /** Cache name. */ - private static final String CACHE_NAME = "partitioned"; + private static final String CACHE_NAME = "partitioned_tx"; /** Number of retries */ private static final int RETRIES = 20; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/59264704/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java index 2b55ec5..a2d69fb 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java @@ -38,6 +38,7 @@ import java.io.*; import java.util.*; import java.util.concurrent.*; +import static org.apache.ignite.cache.CacheAtomicWriteOrderMode.*; import static org.apache.ignite.internal.processors.cache.CacheFlag.*; import static org.apache.ignite.internal.processors.cache.GridCacheOperation.*; import static org.apache.ignite.internal.processors.datastructures.DataStructuresProcessor.DataStructureType.*; @@ -690,6 +691,8 @@ public final class DataStructuresProcessor extends GridProcessorAdapter { if (ctx.cache().publicCache(cfg.getCacheName()) == null) throw new IgniteCheckedException("Cache for collection is not configured: " + cfg.getCacheName()); + + checkSupportsQueue(ctx.cache().internalCache(cfg.getCacheName()).context()); } DataStructureInfo dsInfo = new DataStructureInfo(name, @@ -1191,6 +1194,16 @@ public final class DataStructuresProcessor extends GridProcessorAdapter { } /** + * @param cctx Cache context. + * @throws IgniteCheckedException If {@link IgniteQueue} can with given cache. + */ + private void checkSupportsQueue(GridCacheContext cctx) throws IgniteCheckedException { + if (cctx.atomic() && !cctx.isLocal() && cctx.config().getAtomicWriteOrderMode() == CLOCK) + throw new IgniteCheckedException("IgniteQueue can not be used with ATOMIC cache with CLOCK write order mode" + + " (change write order mode to PRIMARY in configuration)"); + } + + /** * */ static enum DataStructureType { @@ -1261,7 +1274,7 @@ public final class DataStructuresProcessor extends GridProcessorAdapter { // No-op. } - /* + /** * @param cacheName Collection cache name. * @param collocated Collocated flag. */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/59264704/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/IgniteDataStructureUniqueNameTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/IgniteDataStructureUniqueNameTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/IgniteDataStructureUniqueNameTest.java index 92b88ff..7e5d603 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/IgniteDataStructureUniqueNameTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/IgniteDataStructureUniqueNameTest.java @@ -28,13 +28,18 @@ import java.io.*; import java.util.*; import java.util.concurrent.*; +import static org.apache.ignite.cache.CacheAtomicWriteOrderMode.*; import static org.apache.ignite.cache.CacheAtomicityMode.*; import static org.apache.ignite.cache.CacheMode.*; +import static org.apache.ignite.cache.CacheWriteSynchronizationMode.*; /** * */ public class IgniteDataStructureUniqueNameTest extends IgniteCollectionAbstractTest { + /** */ + private static final String ATOMIC_CLOCK_CACHE_NAME = "atomicClockCache"; + /** {@inheritDoc} */ @Override protected int gridCount() { return 3; @@ -61,12 +66,48 @@ public class IgniteDataStructureUniqueNameTest extends IgniteCollectionAbstractT cfg.setAtomicConfiguration(atomicCfg); + CacheConfiguration[] ccfgs = cfg.getCacheConfiguration(); + + assert ccfgs.length == 1 : ccfgs.length; + + CacheConfiguration ccfg = new CacheConfiguration(); + + ccfg.setCacheMode(PARTITIONED); + ccfg.setName(ATOMIC_CLOCK_CACHE_NAME); + ccfg.setAtomicityMode(ATOMIC); + ccfg.setAtomicWriteOrderMode(CLOCK); + ccfg.setWriteSynchronizationMode(FULL_SYNC); + + cfg.setCacheConfiguration(ccfgs[0], ccfg); + return cfg; } /** * @throws Exception If failed. */ + public void testQueueAtomicClockCache() throws Exception { + final String queueName = "testQueueAtomicClockCache"; + + GridTestUtils.assertThrows(log, new Callable() { + @Override public Void call() throws Exception { + CollectionConfiguration colCfg = new CollectionConfiguration(); + + colCfg.setCacheName(ATOMIC_CLOCK_CACHE_NAME); + + ignite(0).queue(queueName, 0, colCfg); + + return null; + } + }, IgniteException.class, "IgniteQueue can not be used with ATOMIC cache with CLOCK write order mode " + + "(change write order mode to PRIMARY in configuration)"); + + assertNull(ignite(0).queue(queueName, 0, null)); + } + + /** + * @throws Exception If failed. + */ public void testUniqueNameMultithreaded() throws Exception { testUniqueName(true); }