You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by av...@apache.org on 2018/05/22 11:06:11 UTC
ignite git commit: IGNITE-8516 Not null constraint doesn't checked
Repository: ignite
Updated Branches:
refs/heads/master 306f77868 -> 409a55226
IGNITE-8516 Not null constraint doesn't checked
Signed-off-by: Anton Vinogradov <av...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/409a5522
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/409a5522
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/409a5522
Branch: refs/heads/master
Commit: 409a55226a6f180293793d617f5eb65dd51aee69
Parents: 306f778
Author: sbt-garus-dg <ga...@gmail.com>
Authored: Tue May 22 14:05:58 2018 +0300
Committer: Anton Vinogradov <av...@apache.org>
Committed: Tue May 22 14:05:58 2018 +0300
----------------------------------------------------------------------
.../dht/atomic/GridNearAtomicUpdateFuture.java | 6 +-
.../query/IgniteSqlNotNullConstraintTest.java | 88 ++++++++++++--------
2 files changed, 59 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/409a5522/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 e516a99..78725d6 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
@@ -1105,8 +1105,12 @@ public class GridNearAtomicUpdateFuture extends GridNearAtomicAbstractUpdateFutu
KeyCacheObject cacheKey = cctx.toCacheKeyObject(key);
- if (op != TRANSFORM)
+ if (op != TRANSFORM) {
val = cctx.toCacheObject(val);
+
+ if (op == CREATE || op == UPDATE)
+ cctx.validateKeyAndValue(cacheKey, (CacheObject)val);
+ }
else
val = EntryProcessorResourceInjectorProxy.wrap(cctx.kernalContext(), (EntryProcessor)val);
http://git-wip-us.apache.org/repos/asf/ignite/blob/409a5522/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlNotNullConstraintTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlNotNullConstraintTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlNotNullConstraintTest.java
index 7a62931..3a90c99 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlNotNullConstraintTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlNotNullConstraintTest.java
@@ -389,25 +389,12 @@ public class IgniteSqlNotNullConstraintTest extends GridCommonAbstractTest {
/** */
public void testAtomicOrImplicitTxPutAll() throws Exception {
- executeWithAllCaches(new TestClosure() {
- @Override public void run() throws Exception {
- Throwable t = GridTestUtils.assertThrowsWithCause(new Callable<Object>() {
- @Override public Object call() throws Exception {
- cache.putAll(F.asMap(key1, okValue, key2, badValue));
-
- return null;
- }
- }, IgniteSQLException.class);
-
- IgniteSQLException ex = X.cause(t, IgniteSQLException.class);
-
- assertNotNull(ex);
-
- assertTrue(ex.getMessage().contains(ERR_MSG));
+ doAtomicOrImplicitTxPutAll(F.asMap(1, okValue, 5, badValue), 1);
+ }
- assertEquals(isLocalAtomic() ? 1 : 0, cache.size());
- }
- });
+ /** */
+ public void testAtomicOrImplicitTxPutAllForSingleValue() throws Exception {
+ doAtomicOrImplicitTxPutAll(F.asMap(5, badValue), 0);
}
/** */
@@ -604,23 +591,12 @@ public class IgniteSqlNotNullConstraintTest extends GridCommonAbstractTest {
/** */
public void testTxPutAll() throws Exception {
- executeWithAllTxCaches(new TestClosure() {
- @Override public void run() throws Exception {
- GridTestUtils.assertThrows(log, new Callable<Object>() {
- @Override public Object call() throws Exception {
- try (Transaction tx = ignite.transactions().txStart(concurrency, isolation)) {
- cache.putAll(F.asMap(key1, okValue, key2, badValue));
-
- tx.commit();
- }
-
- assertEquals(0, cache.size());
+ doTxPutAll(F.asMap(1, okValue, 5, badValue));
+ }
- return null;
- }
- }, CacheException.class, ERR_MSG);
- }
- });
+ /** */
+ public void testTxPutAllForSingleValue() throws Exception {
+ doTxPutAll(F.asMap(5, badValue));
}
/** */
@@ -1016,6 +992,50 @@ public class IgniteSqlNotNullConstraintTest extends GridCommonAbstractTest {
}
/** */
+ private void doAtomicOrImplicitTxPutAll(final Map<Integer, Person> values, int expAtomicCacheSize) throws Exception {
+ executeWithAllCaches(new TestClosure() {
+ @Override public void run() throws Exception {
+ Throwable t = GridTestUtils.assertThrowsWithCause(new Callable<Object>() {
+ @Override public Object call() throws Exception {
+ cache.putAll(values);
+
+ return null;
+ }
+ }, IgniteSQLException.class);
+
+ IgniteSQLException ex = X.cause(t, IgniteSQLException.class);
+
+ assertNotNull(ex);
+
+ assertTrue(ex.getMessage().contains(ERR_MSG));
+
+ assertEquals(isLocalAtomic() ? expAtomicCacheSize : 0, cache.size());
+ }
+ });
+ }
+
+ /** */
+ private void doTxPutAll(Map<Integer, Person> values) throws Exception {
+ executeWithAllTxCaches(new TestClosure() {
+ @Override public void run() throws Exception {
+ GridTestUtils.assertThrows(log, new Callable<Object>() {
+ @Override public Object call() throws Exception {
+ try (Transaction tx = ignite.transactions().txStart(concurrency, isolation)) {
+ cache.putAll(values);
+
+ tx.commit();
+ }
+
+ assertEquals(0, cache.size());
+
+ return null;
+ }
+ }, CacheException.class, ERR_MSG);
+ }
+ });
+ }
+
+ /** */
private void executeWithAllCaches(TestClosure clo) throws Exception {
for (CacheConfiguration ccfg : cacheConfigurations())
executeForCache(ccfg, clo, TransactionConcurrency.OPTIMISTIC, TransactionIsolation.READ_COMMITTED);