#ignite-286:wip
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/13c82969 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/13c82969 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/13c82969 Branch: refs/heads/ignite-286 Commit: 13c8296947b220e13f7ef04ff8a7a40d8a2071e7 Parents: e0ff79b Author: ivasilinets <ivasilin...@gridgain.com> Authored: Fri Apr 24 16:15:31 2015 +0300 Committer: ivasilinets <ivasilin...@gridgain.com> Committed: Fri Apr 24 16:15:31 2015 +0300 ---------------------------------------------------------------------- .../cache/local/atomic/GridLocalAtomicCache.java | 8 +++++--- .../cache/transactions/IgniteTxLocalAdapter.java | 14 ++++++++------ .../cache/GridCacheAbstractFullApiSelfTest.java | 16 +++++++++------- .../processors/cache/GridCacheAbstractSelfTest.java | 2 +- .../testsuites/IgniteCacheFullApiSelfTestSuite.java | 12 ++++++------ 5 files changed, 29 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/13c82969/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java index 997485c..8799690 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java @@ -1386,11 +1386,13 @@ public class GridLocalAtomicCache<K, V> extends GridCacheAdapter<K, V> { private List<GridCacheEntryEx> lockEntries(Collection<? extends K> keys) { List<GridCacheEntryEx> locked = new ArrayList<>(keys.size()); + for (K key : keys) { + if (key == null) + throw new NullPointerException("Null key."); + } + while (true) { for (K key : keys) { - if (key == null) - throw new NullPointerException("Null key."); - GridCacheEntryEx entry = entryEx(ctx.toCacheKeyObject(key)); locked.add(entry); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/13c82969/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java index 0ce8d9e..5f5fca9 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java @@ -2018,6 +2018,14 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter assert cached == null || keys.size() == 1; assert cached == null || F.first(keys).equals(cached.key()); + for (Object key : keys) { + if (key == null) { + setRollbackOnly(); + + throw new NullPointerException("Null key."); + } + } + try { addActiveCache(cacheCtx); } @@ -2039,12 +2047,6 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter groupLockSanityCheck(cacheCtx, keys); for (Object key : keys) { - if (key == null) { - setRollbackOnly(); - - throw new NullPointerException("Null key."); - } - Object val = rmv || lookup == null ? null : lookup.get(key); EntryProcessor entryProcessor = invokeMap == null ? null : invokeMap.get(key); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/13c82969/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java index 63c93ae..aa00a49 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java @@ -2461,7 +2461,7 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract * @throws Exception In case of error. */ public void testRemoveAllWithNulls() throws Exception { - /* final IgniteCache<String, Integer> cache = jcache(); + final IgniteCache<String, Integer> cache = jcache(); final Set<String> c = new LinkedHashSet<>(); @@ -2477,6 +2477,8 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract } }, NullPointerException.class, null); + assertEquals(0, grid(0).cache(null).localSize()); + GridTestUtils.assertThrows(log, new Callable<Void>() { @Override public Void call() throws Exception { cache.removeAll(null); @@ -2507,7 +2509,7 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract return null; } - }, NullPointerException.class, null);*/ + }, NullPointerException.class, null); } /** @@ -4583,17 +4585,17 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract for (int i = 0; i < keys.size(); i++) data.put(keys.get(i), i); - /* checkSkipStoreWithTransaction(cache, cacheSkipStore, data, keys, OPTIMISTIC, READ_COMMITTED); + checkSkipStoreWithTransaction(cache, cacheSkipStore, data, keys, OPTIMISTIC, READ_COMMITTED); checkSkipStoreWithTransaction(cache, cacheSkipStore, data, keys, OPTIMISTIC, REPEATABLE_READ); - checkSkipStoreWithTransaction(cache, cacheSkipStore, data, keys, OPTIMISTIC, SERIALIZABLE);*/ + checkSkipStoreWithTransaction(cache, cacheSkipStore, data, keys, OPTIMISTIC, SERIALIZABLE); - checkSkipStoreWithTransaction(cache, cacheSkipStore, data, keys, PESSIMISTIC, READ_COMMITTED); + //checkSkipStoreWithTransaction(cache, cacheSkipStore, data, keys, PESSIMISTIC, READ_COMMITTED); //checkSkipStoreWithTransaction(cache, cacheSkipStore, data, keys, PESSIMISTIC, REPEATABLE_READ); -/* - checkSkipStoreWithTransaction(cache, cacheSkipStore, data, keys, PESSIMISTIC, SERIALIZABLE);*/ + + checkSkipStoreWithTransaction(cache, cacheSkipStore, data, keys, PESSIMISTIC, SERIALIZABLE); } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/13c82969/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java index f329ebb..1b91d7c 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java @@ -110,7 +110,7 @@ public abstract class GridCacheAbstractSelfTest extends GridCommonAbstractTest { while (true) { try { final int fi = i; - jcache(fi).localSize(CachePeekMode.ALL); + assertTrue( "Cache is not empty: " + " localSize = " + jcache(fi).localSize(CachePeekMode.ALL) + ", local entries " + entrySet(jcache(fi).localEntries()), http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/13c82969/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFullApiSelfTestSuite.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFullApiSelfTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFullApiSelfTestSuite.java index 0bf28a0..5c2b77f 100644 --- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFullApiSelfTestSuite.java +++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFullApiSelfTestSuite.java @@ -34,7 +34,7 @@ public class IgniteCacheFullApiSelfTestSuite extends TestSuite { public static TestSuite suite() throws Exception { TestSuite suite = new TestSuite("Cache Full API Test Suite"); - /* // One node. + // One node. suite.addTestSuite(GridCacheLocalFullApiSelfTest.class); suite.addTestSuite(GridCacheLocalAtomicFullApiSelfTest.class); suite.addTestSuite(GridCacheReplicatedFullApiSelfTest.class); @@ -58,7 +58,7 @@ public class IgniteCacheFullApiSelfTestSuite extends TestSuite { suite.addTestSuite(GridCachePartitionedOffHeapFullApiSelfTest.class); suite.addTestSuite(GridCacheAtomicOffHeapFullApiSelfTest.class); suite.addTestSuite(GridCacheAtomicPrimaryWriteOrderOffHeapFullApiSelfTest.class); - suite.addTestSuite(GridCachePartitionedNearDisabledOffHeapFullApiSelfTest.class);*/ + suite.addTestSuite(GridCachePartitionedNearDisabledOffHeapFullApiSelfTest.class); // One node with off-heap tiered mode. suite.addTestSuite(GridCacheLocalOffHeapTieredFullApiSelfTest.class); @@ -69,7 +69,7 @@ public class IgniteCacheFullApiSelfTestSuite extends TestSuite { suite.addTestSuite(GridCacheAtomicPrimaryWriteOrderOffHeapTieredFullApiSelfTest.class); suite.addTestSuite(GridCachePartitionedNearDisabledOffHeapTieredFullApiSelfTest.class); - /*// Multi-node. + // Multi-node. suite.addTestSuite(GridCacheReplicatedMultiNodeFullApiSelfTest.class); suite.addTestSuite(GridCacheReplicatedMultiNodeP2PDisabledFullApiSelfTest.class); suite.addTestSuite(GridCacheReplicatedAtomicMultiNodeFullApiSelfTest.class); @@ -119,7 +119,7 @@ public class IgniteCacheFullApiSelfTestSuite extends TestSuite { suite.addTestSuite(GridCachePartitionedOffHeapMultiNodeFullApiSelfTest.class); suite.addTestSuite(GridCacheAtomicOffHeapMultiNodeFullApiSelfTest.class); suite.addTestSuite(GridCacheAtomicPrimaryWrityOrderOffHeapMultiNodeFullApiSelfTest.class); - suite.addTestSuite(GridCachePartitionedNearDisabledOffHeapMultiNodeFullApiSelfTest.class);*/ + suite.addTestSuite(GridCachePartitionedNearDisabledOffHeapMultiNodeFullApiSelfTest.class); // Multi-node with off-heap tiered mode. suite.addTestSuite(GridCacheReplicatedOffHeapTieredMultiNodeFullApiSelfTest.class); @@ -128,11 +128,11 @@ public class IgniteCacheFullApiSelfTestSuite extends TestSuite { suite.addTestSuite(GridCacheAtomicPrimaryWrityOrderOffHeapTieredMultiNodeFullApiSelfTest.class); suite.addTestSuite(GridCachePartitionedNearDisabledOffHeapTieredMultiNodeFullApiSelfTest.class); - /*// Private cache API. + // Private cache API. suite.addTestSuite(GridCacheExLocalFullApiSelfTest.class); suite.addTestSuite(GridCacheExReplicatedFullApiSelfTest.class); suite.addTestSuite(GridCacheExNearFullApiSelfTest.class); - suite.addTestSuite(GridCacheExColocatedFullApiSelfTest.class);*/ + suite.addTestSuite(GridCacheExColocatedFullApiSelfTest.class); // Multithreaded // TODO: GG-708 // suite.addTestSuite(GridCacheLocalFullApiMultithreadedSelfTest.class);