You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2015/02/02 11:28:40 UTC
[04/50] [abbrv] incubator-ignite git commit: ignite-91
ignite-91
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/27827c82
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/27827c82
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/27827c82
Branch: refs/heads/ignite-16
Commit: 27827c8217545686e8c5132e0f29dd1aecc19f3b
Parents: 9996140
Author: sboikov <sb...@gridgain.com>
Authored: Wed Jan 28 18:09:48 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Jan 28 18:09:48 2015 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheAdapter.java | 26 +++++++++++++-------
.../dht/GridPartitionedGetFuture.java | 11 +++++++--
.../dht/atomic/GridDhtAtomicCache.java | 21 ++++++++++++++++
.../dht/atomic/GridNearAtomicUpdateFuture.java | 17 +++++++++++--
.../dht/colocated/GridDhtColocatedCache.java | 3 +++
.../distributed/near/GridNearGetFuture.java | 11 +++++++--
.../local/atomic/GridLocalAtomicCache.java | 12 ++++++---
.../cache/GridCacheAbstractFullApiSelfTest.java | 12 ++++++---
8 files changed, 91 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/27827c82/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 14ddae1..4f401c0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -1681,12 +1681,14 @@ public abstract class GridCacheAdapter<K, V> implements GridCache<K, V>,
}
/** {@inheritDoc} */
- @Override public void evictAll(@Nullable Collection<? extends K> keys) {
+ @Override public void evictAll(Collection<? extends K> keys) {
evictAll(keys, (IgnitePredicate<CacheEntry<K, V>>[])null);
}
/** {@inheritDoc} */
@Nullable @Override public V get(K key) throws IgniteCheckedException {
+ A.notNull(key, "key");
+
boolean statsEnabled = ctx.config().isStatisticsEnabled();
long start = statsEnabled ? System.nanoTime() : 0L;
@@ -1704,6 +1706,8 @@ public abstract class GridCacheAdapter<K, V> implements GridCache<K, V>,
/** {@inheritDoc} */
@Override public IgniteFuture<V> getAsync(final K key) {
+ A.notNull(key, "key");
+
final boolean statsEnabled = ctx.config().isStatisticsEnabled();
final long start = statsEnabled ? System.nanoTime() : 0L;
@@ -1725,6 +1729,8 @@ public abstract class GridCacheAdapter<K, V> implements GridCache<K, V>,
/** {@inheritDoc} */
@Override public Map<K, V> getAll(@Nullable Collection<? extends K> keys) throws IgniteCheckedException {
+ A.notNull(keys, "keys");
+
boolean statsEnabled = ctx.config().isStatisticsEnabled();
long start = statsEnabled ? System.nanoTime() : 0L;
@@ -1742,6 +1748,8 @@ public abstract class GridCacheAdapter<K, V> implements GridCache<K, V>,
/** {@inheritDoc} */
@Override public IgniteFuture<Map<K, V>> getAllAsync(@Nullable final Collection<? extends K> keys) {
+ A.notNull(keys, "keys");
+
final boolean statsEnabled = ctx.config().isStatisticsEnabled();
final long start = statsEnabled ? System.nanoTime() : 0L;
@@ -1879,9 +1887,8 @@ public abstract class GridCacheAdapter<K, V> implements GridCache<K, V>,
Map<K, GridCacheVersion> misses = null;
for (K key : keys) {
- // Ignore null keys.
if (key == null)
- continue;
+ throw new NullPointerException("Null key.");
while (true) {
GridCacheEntryEx<K, V> entry;
@@ -2206,14 +2213,12 @@ public abstract class GridCacheAdapter<K, V> implements GridCache<K, V>,
ctx.denyOnLocalRead();
return ctx.wrapClone(asyncOp(new AsyncOp<V>(key) {
- @Override
- public IgniteFuture<V> op(IgniteTxLocalAdapter<K, V> tx) {
+ @Override public IgniteFuture<V> op(IgniteTxLocalAdapter<K, V> tx) {
return tx.putAllAsync(ctx, F.t(key, val), true, entry, ttl, filter)
.chain((IgniteClosure<IgniteFuture<GridCacheReturn<V>>, V>)RET2VAL);
}
- @Override
- public String toString() {
+ @Override public String toString() {
return "putAsync [key=" + key + ", val=" + val + ", filter=" + Arrays.toString(filter) + ']';
}
}));
@@ -2664,8 +2669,7 @@ public abstract class GridCacheAdapter<K, V> implements GridCache<K, V>,
}
/** {@inheritDoc} */
- @Nullable
- @Override public V replace(final K key, final V val) throws IgniteCheckedException {
+ @Nullable @Override public V replace(final K key, final V val) throws IgniteCheckedException {
A.notNull(key, "key", val, "val");
if (keyCheck)
@@ -3098,6 +3102,8 @@ public abstract class GridCacheAdapter<K, V> implements GridCache<K, V>,
/** {@inheritDoc} */
@Override public IgniteFuture<Boolean> removexAsync(K key, IgnitePredicate<CacheEntry<K, V>>... filter) {
+ A.notNull(key, "key");
+
return removexAsync(key, null, filter);
}
@@ -4571,6 +4577,8 @@ public abstract class GridCacheAdapter<K, V> implements GridCache<K, V>,
*/
public void evictAll(Collection<? extends K> keys,
@Nullable IgnitePredicate<CacheEntry<K, V>>... filter) {
+ A.notNull(keys, "keys");
+
ctx.denyOnFlag(READ);
if (F.isEmpty(keys))
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/27827c82/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
index 23e487f..7227026 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
@@ -290,8 +290,15 @@ public class GridPartitionedGetFuture<K, V> extends GridCompoundIdentityFuture<M
// Assign keys to primary nodes.
for (K key : keys) {
- if (key != null)
- hasRmtNodes |= map(key, mappings, locVals, topVer, mapped);
+ if (key == null) {
+ NullPointerException err = new NullPointerException("Null key");
+
+ onDone(err);
+
+ throw err;
+ }
+
+ hasRmtNodes |= map(key, mappings, locVals, topVer, mapped);
}
if (isDone())
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/27827c82/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
index c993397..e35c6d0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
@@ -309,6 +309,8 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
@SuppressWarnings("unchecked")
@Override public IgniteFuture<V> putAsync(K key, V val, @Nullable GridCacheEntryEx<K, V> entry,
long ttl, @Nullable IgnitePredicate<CacheEntry<K, V>>... filter) {
+ A.notNull(key, "key");
+
return updateAllAsync0(F0.asMap(key, val),
null,
null,
@@ -324,6 +326,8 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
@SuppressWarnings("unchecked")
@Override public IgniteFuture<Boolean> putxAsync(K key, V val, @Nullable GridCacheEntryEx<K, V> entry, long ttl,
@Nullable IgnitePredicate<CacheEntry<K, V>>... filter) {
+ A.notNull(key, "key");
+
return updateAllAsync0(F0.asMap(key, val),
null,
null,
@@ -342,6 +346,8 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
/** {@inheritDoc} */
@Override public IgniteFuture<V> putIfAbsentAsync(K key, V val) {
+ A.notNull(key, "key", val, "val");
+
return putAsync(key, val, ctx.noPeekArray());
}
@@ -352,6 +358,8 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
/** {@inheritDoc} */
@Override public IgniteFuture<Boolean> putxIfAbsentAsync(K key, V val) {
+ A.notNull(key, "key", val, "val");
+
return putxAsync(key, val, ctx.noPeekArray());
}
@@ -362,6 +370,8 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
/** {@inheritDoc} */
@Override public IgniteFuture<V> replaceAsync(K key, V val) {
+ A.notNull(key, "key", val, "val");
+
return putAsync(key, val, ctx.hasPeekArray());
}
@@ -372,6 +382,8 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
/** {@inheritDoc} */
@Override public IgniteFuture<Boolean> replacexAsync(K key, V val) {
+ A.notNull(key, "key", val, "val");
+
return putxAsync(key, val, ctx.hasPeekArray());
}
@@ -382,6 +394,8 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
/** {@inheritDoc} */
@Override public IgniteFuture<Boolean> replaceAsync(K key, V oldVal, V newVal) {
+ A.notNull(key, "key", oldVal, "oldVal", newVal, "newVal");
+
return putxAsync(key, newVal, ctx.equalsPeekArray(oldVal));
}
@@ -398,6 +412,8 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
/** {@inheritDoc} */
@SuppressWarnings("unchecked")
@Override public IgniteFuture<GridCacheReturn<V>> removexAsync(K key, V val) {
+ A.notNull(key, "key", val, "val");
+
return removeAllAsync0(F.asList(key), null, null, true, true, ctx.equalsPeekArray(val));
}
@@ -492,6 +508,8 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
@SuppressWarnings("unchecked")
@Override public IgniteFuture<Boolean> removexAsync(K key, @Nullable GridCacheEntryEx<K, V> entry,
@Nullable IgnitePredicate<CacheEntry<K, V>>... filter) {
+ A.notNull(key, "key");
+
return removeAllAsync0(Collections.singletonList(key), null, entry, false, false, filter);
}
@@ -874,6 +892,9 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
// Optimistically expect that all keys are available locally (avoid creation of get future).
for (K key : keys) {
+ if (key == null)
+ throw new NullPointerException("Null key.");
+
GridCacheEntryEx<K, V> entry = null;
while (true) {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/27827c82/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
index d55c001..6f6f03b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
@@ -626,8 +626,13 @@ public class GridNearAtomicUpdateFuture<K, V> extends GridFutureAdapter<Object>
// Create mappings first, then send messages.
for (K key : keys) {
- if (key == null)
- continue;
+ if (key == null) {
+ NullPointerException err = new NullPointerException("Null key.");
+
+ onDone(err);
+
+ throw err;
+ }
Object val;
long drTtl;
@@ -639,6 +644,14 @@ public class GridNearAtomicUpdateFuture<K, V> extends GridFutureAdapter<Object>
drTtl = -1;
drExpireTime = -1;
drVer = null;
+
+ if (val == null) {
+ NullPointerException err = new NullPointerException("Null value.");
+
+ onDone(err);
+
+ throw err;
+ }
}
else if (drPutVals != null) {
GridCacheDrInfo<V> drPutVal = drPutValsIt.next();
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/27827c82/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
index ae582cc..668f6fe 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
@@ -265,6 +265,9 @@ public class GridDhtColocatedCache<K, V> extends GridDhtTransactionalCacheAdapte
// Optimistically expect that all keys are available locally (avoid creation of get future).
for (K key : keys) {
+ if (key == null)
+ throw new NullPointerException("Null key.");
+
GridCacheEntryEx<K, V> entry = null;
while (true) {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/27827c82/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java
index 5500ba3..7eb5013 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java
@@ -295,8 +295,15 @@ public final class GridNearGetFuture<K, V> extends GridCompoundIdentityFuture<Ma
// Assign keys to primary nodes.
for (K key : keys) {
- if (key != null)
- savedVers = map(key, mappings, topVer, mapped, savedVers);
+ if (key == null) {
+ NullPointerException err = new NullPointerException("Null key.");
+
+ onDone(err);
+
+ throw err;
+ }
+
+ savedVers = map(key, mappings, topVer, mapped, savedVers);
}
if (isDone())
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/27827c82/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 2c4a774..2c360ba 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
@@ -259,7 +259,7 @@ public class GridLocalAtomicCache<K, V> extends GridCacheAdapter<K, V> {
/** {@inheritDoc} */
@SuppressWarnings("unchecked")
@Override public GridCacheReturn<V> replacex(K key, V oldVal, V newVal) throws IgniteCheckedException {
- A.notNull(key, "key");
+ A.notNull(key, "key", oldVal, "oldVal", newVal, "newVal");
ctx.denyOnLocalRead();
@@ -277,7 +277,7 @@ public class GridLocalAtomicCache<K, V> extends GridCacheAdapter<K, V> {
/** {@inheritDoc} */
@SuppressWarnings("unchecked")
@Override public GridCacheReturn<V> removex(K key, V val) throws IgniteCheckedException {
- A.notNull(key, "key");
+ A.notNull(key, "key", val, "val");
ctx.denyOnLocalRead();
@@ -295,7 +295,7 @@ public class GridLocalAtomicCache<K, V> extends GridCacheAdapter<K, V> {
/** {@inheritDoc} */
@SuppressWarnings("unchecked")
@Override public IgniteFuture<GridCacheReturn<V>> removexAsync(K key, V val) {
- A.notNull(key, "key");
+ A.notNull(key, "key", val, "val");
ctx.denyOnLocalRead();
@@ -305,7 +305,7 @@ public class GridLocalAtomicCache<K, V> extends GridCacheAdapter<K, V> {
/** {@inheritDoc} */
@SuppressWarnings("unchecked")
@Override public IgniteFuture<GridCacheReturn<V>> replacexAsync(K key, V oldVal, V newVal) {
- A.notNull(key, "key");
+ A.notNull(key, "key", oldVal, "oldVal", newVal, "newVal");
ctx.denyOnLocalRead();
@@ -500,6 +500,8 @@ public class GridLocalAtomicCache<K, V> extends GridCacheAdapter<K, V> {
throws IgniteCheckedException {
ctx.denyOnFlag(LOCAL);
+ A.notNull(keys, "keys");
+
String taskName = ctx.kernalContext().job().currentTaskName();
return getAllInternal(keys,
@@ -526,6 +528,8 @@ public class GridLocalAtomicCache<K, V> extends GridCacheAdapter<K, V> {
) {
ctx.denyOnFlag(LOCAL);
+ A.notNull(keys, "keys");
+
final boolean swapOrOffheap = ctx.isSwapOrOffheapEnabled();
final boolean storeEnabled = ctx.readThrough();
final boolean clone = ctx.hasFlag(CLONE);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/27827c82/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 e7b93bf..905f6b4 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
@@ -525,14 +525,20 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract
* @throws Exception In case of error.
*/
public void testGetAllWithNulls() throws Exception {
- GridCache<String, Integer> cache = cache();
+ final GridCache<String, Integer> cache = cache();
- Collection<String> c = new LinkedList<>();
+ final Collection<String> c = new LinkedList<>();
c.add("key1");
c.add(null);
- cache.getAll(c);
+ GridTestUtils.assertThrows(log, new Callable<Void>() {
+ @Override public Void call() throws Exception {
+ cache.getAll(c);
+
+ return null;
+ }
+ }, NullPointerException.class, null);
}
/**