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 2016/02/04 09:00:08 UTC

[1/8] ignite git commit: IGNITE-2465 - Fixed race in load cache closure - Fixes #431.

Repository: ignite
Updated Branches:
  refs/heads/ignite-2523 3967130f5 -> 7e09a146a


IGNITE-2465 - Fixed race in load cache closure - Fixes #431.

Signed-off-by: Alexey Goncharuk <al...@gmail.com>


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/500bd3ab
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/500bd3ab
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/500bd3ab

Branch: refs/heads/ignite-2523
Commit: 500bd3ab576830f8160eb66274590b7684a39599
Parents: e7de923
Author: ashutak <as...@gridgain.com>
Authored: Wed Feb 3 14:56:42 2016 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Wed Feb 3 14:56:42 2016 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheAdapter.java      | 100 ++++++++++++++++++-
 1 file changed, 96 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/500bd3ab/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 69abc54..2c3a197 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
@@ -70,6 +70,7 @@ import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.FileSystemConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.TransactionConfiguration;
+import org.apache.ignite.internal.ComputeTaskInternalFuture;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.IgniteInterruptedCheckedException;
 import org.apache.ignite.internal.IgniteKernal;
@@ -101,6 +102,7 @@ import org.apache.ignite.internal.transactions.IgniteTxHeuristicCheckedException
 import org.apache.ignite.internal.transactions.IgniteTxRollbackCheckedException;
 import org.apache.ignite.internal.util.F0;
 import org.apache.ignite.internal.util.GridLeanMap;
+import org.apache.ignite.internal.util.future.GridCompoundFuture;
 import org.apache.ignite.internal.util.future.GridEmbeddedFuture;
 import org.apache.ignite.internal.util.future.GridFinishedFuture;
 import org.apache.ignite.internal.util.future.GridFutureAdapter;
@@ -128,6 +130,7 @@ import org.apache.ignite.lang.IgniteCallable;
 import org.apache.ignite.lang.IgniteClosure;
 import org.apache.ignite.lang.IgniteInClosure;
 import org.apache.ignite.lang.IgniteOutClosure;
+import org.apache.ignite.lang.IgnitePredicate;
 import org.apache.ignite.lang.IgniteProductVersion;
 import org.apache.ignite.lang.IgniteUuid;
 import org.apache.ignite.mxbean.CacheMetricsMXBean;
@@ -166,6 +169,9 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
     /** Maximum number of retries when topology changes. */
     public static final int MAX_RETRIES = IgniteSystemProperties.getInteger(IGNITE_CACHE_RETRIES_COUNT, 100);
 
+    /** */
+    public static final IgniteProductVersion LOAD_CACHE_JOB_SINCE = IgniteProductVersion.fromString("1.5.7");
+
     /** Deserialization stash. */
     private static final ThreadLocal<IgniteBiTuple<String, String>> stash = new ThreadLocal<IgniteBiTuple<String,
         String>>() {
@@ -3737,7 +3743,19 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
      */
     IgniteInternalFuture<?> globalLoadCacheAsync(@Nullable IgniteBiPredicate<K, V> p, @Nullable Object... args)
         throws IgniteCheckedException {
-        ClusterGroup nodes = ctx.kernalContext().grid().cluster().forCacheNodes(ctx.name());
+        ClusterGroup oldNodes = ctx.kernalContext().grid().cluster().forCacheNodes(ctx.name())
+            .forPredicate(new IgnitePredicate<ClusterNode>() {
+                @Override public boolean apply(ClusterNode node) {
+                    return node.version().compareToIgnoreTimestamp(LOAD_CACHE_JOB_SINCE) < 0;
+                }
+            });
+
+        ClusterGroup newNodes = ctx.kernalContext().grid().cluster().forCacheNodes(ctx.name())
+            .forPredicate(new IgnitePredicate<ClusterNode>() {
+                @Override public boolean apply(ClusterNode node) {
+                    return node.version().compareToIgnoreTimestamp(LOAD_CACHE_JOB_SINCE) >= 0;
+                }
+            });
 
         ctx.kernalContext().task().setThreadContext(TC_NO_FAILOVER, true);
 
@@ -3745,9 +3763,27 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
 
         ExpiryPolicy plc = opCtx != null ? opCtx.expiry() : null;
 
-        return ctx.kernalContext().closure().callAsync(BROADCAST,
-            Arrays.asList(new LoadCacheClosure<>(ctx.name(), p, args, plc)),
-            nodes.nodes());
+        GridCompoundFuture<Object, ?> fut = new GridCompoundFuture<>();
+
+        if (!F.isEmpty(oldNodes.nodes())) {
+            ComputeTaskInternalFuture oldNodesFut = ctx.kernalContext().closure().callAsync(BROADCAST,
+                Arrays.asList(new LoadCacheClosure<>(ctx.name(), p, args, plc)),
+                oldNodes.nodes());
+
+            fut.add(oldNodesFut);
+        }
+
+        if (!F.isEmpty(newNodes.nodes())) {
+            ComputeTaskInternalFuture newNodesFut = ctx.kernalContext().closure().callAsync(BROADCAST,
+                Arrays.asList(new LoadCacheJob<>(ctx.name(), ctx.affinity().affinityTopologyVersion(), p, args, plc)),
+                newNodes.nodes());
+
+            fut.add(newNodesFut);
+        }
+
+        fut.markInitialized();
+
+        return fut;
     }
 
     /**
@@ -5498,6 +5534,62 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
     }
 
     /**
+     * Internal callable for global size calculation.
+     */
+    @GridInternal
+    private static class LoadCacheJob<K, V> extends TopologyVersionAwareJob {
+        /** */
+        private static final long serialVersionUID = 0L;
+
+        /** */
+        private final IgniteBiPredicate<K, V> p;
+
+        /** */
+        private final Object[] args;
+
+        /** */
+        private final ExpiryPolicy plc;
+
+        /**
+         * @param cacheName Cache name.
+         * @param topVer Affinity topology version.
+         * @param p Predicate.
+         * @param args Arguments.
+         * @param plc Policy.
+         */
+        private LoadCacheJob(String cacheName, AffinityTopologyVersion topVer, IgniteBiPredicate<K, V> p, Object[] args,
+            ExpiryPolicy plc) {
+            super(cacheName, topVer);
+
+            this.p = p;
+            this.args = args;
+            this.plc = plc;
+        }
+
+        /** {@inheritDoc} */
+        @Nullable @Override public Object localExecute(@Nullable IgniteInternalCache cache) {
+            try {
+                assert cache != null : "Failed to get a cache [cacheName=" + cacheName + ", topVer=" + topVer + "]";
+
+                if (plc != null)
+                    cache = cache.withExpiryPolicy(plc);
+
+                cache.localLoadCache(p, args);
+
+                return null;
+            }
+            catch (IgniteCheckedException e) {
+                throw U.convertException(e);
+            }
+        }
+
+        /** {@inheritDoc} */
+        public String toString() {
+            return S.toString(LoadCacheJob.class, this);
+        }
+    }
+
+    /**
      * Holder for last async operation future.
      */
     protected static class FutureHolder {


[6/8] ignite git commit: IGNITE-2523: Fixed message count tests.

Posted by vo...@apache.org.
IGNITE-2523: Fixed message count tests.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d3e1645a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d3e1645a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d3e1645a

Branch: refs/heads/ignite-2523
Commit: d3e1645aaeb8fd9393744cb087a9ddde27f2e95b
Parents: 3d34e50
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Thu Feb 4 10:52:48 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Thu Feb 4 10:52:48 2016 +0300

----------------------------------------------------------------------
 .../GridCacheAtomicMessageCountSelfTest.java    | 40 ++++++++++++++------
 1 file changed, 28 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d3e1645a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAtomicMessageCountSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAtomicMessageCountSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAtomicMessageCountSelfTest.java
index 0e17102..cda86ba 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAtomicMessageCountSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAtomicMessageCountSelfTest.java
@@ -28,6 +28,7 @@ import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.managers.communication.GridIoMessage;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicUpdateRequest;
+import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateRequest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateRequest;
 import org.apache.ignite.lang.IgniteInClosure;
 import org.apache.ignite.plugin.extensions.communication.Message;
@@ -138,6 +139,7 @@ public class GridCacheAtomicMessageCountSelfTest extends GridCommonAbstractTest
             TestCommunicationSpi commSpi = (TestCommunicationSpi)grid(0).configuration().getCommunicationSpi();
 
             commSpi.registerMessage(GridNearAtomicUpdateRequest.class);
+            commSpi.registerMessage(GridNearAtomicSingleUpdateRequest.class);
             commSpi.registerMessage(GridDhtAtomicUpdateRequest.class);
 
             int putCnt = 15;
@@ -166,22 +168,22 @@ public class GridCacheAtomicMessageCountSelfTest extends GridCommonAbstractTest
                 jcache(0).put(i, i);
             }
 
-            assertEquals(expNearCnt, commSpi.messageCount(GridNearAtomicUpdateRequest.class));
-            assertEquals(expDhtCnt, commSpi.messageCount(GridDhtAtomicUpdateRequest.class));
+            assertEquals(expNearCnt, nearRequestsCount(commSpi));
+            assertEquals(expDhtCnt, dhtRequestsCount(commSpi));
 
             if (writeOrderMode == CLOCK) {
                 for (int i = 1; i < 4; i++) {
                     commSpi = (TestCommunicationSpi)grid(i).configuration().getCommunicationSpi();
 
-                    assertEquals(0, commSpi.messageCount(GridNearAtomicUpdateRequest.class));
-                    assertEquals(0, commSpi.messageCount(GridDhtAtomicUpdateRequest.class));
+                    assertEquals(0, nearRequestsCount(commSpi));
+                    assertEquals(0, dhtRequestsCount(commSpi));
                 }
             }
             else {
                 for (int i = 1; i < 4; i++) {
                     commSpi = (TestCommunicationSpi)grid(i).configuration().getCommunicationSpi();
 
-                    assertEquals(0, commSpi.messageCount(GridNearAtomicUpdateRequest.class));
+                    assertEquals(0, nearRequestsCount(commSpi));
                 }
             }
         }
@@ -191,6 +193,27 @@ public class GridCacheAtomicMessageCountSelfTest extends GridCommonAbstractTest
     }
 
     /**
+     * Get amount of near update requests.
+     *
+     * @param commSpi Communication SPI.
+     * @return Count.
+     */
+    private int nearRequestsCount(TestCommunicationSpi commSpi) {
+        return commSpi.messageCount(GridNearAtomicUpdateRequest.class) +
+            commSpi.messageCount(GridNearAtomicSingleUpdateRequest.class);
+    }
+
+    /**
+     * Get amount of DHT update requests.
+     *
+     * @param commSpi Communication SPI.
+     * @return Count.
+     */
+    private int dhtRequestsCount(TestCommunicationSpi commSpi) {
+        return commSpi.messageCount(GridDhtAtomicUpdateRequest.class);
+    }
+
+    /**
      * Test communication SPI.
      */
     private static class TestCommunicationSpi extends TcpCommunicationSpi {
@@ -229,12 +252,5 @@ public class GridCacheAtomicMessageCountSelfTest extends GridCommonAbstractTest
 
             return cntr == null ? 0 : cntr.get();
         }
-
-        /**
-         * Resets counter to zero.
-         */
-        public void resetCount() {
-            cntMap.clear();
-        }
     }
 }
\ No newline at end of file


[2/8] ignite git commit: Improved exception handling in IgniteContext

Posted by vo...@apache.org.
Improved exception handling in IgniteContext


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d1e2957a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d1e2957a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d1e2957a

Branch: refs/heads/ignite-2523
Commit: d1e2957a7440b7a781439811ab9bdfedf38bd640
Parents: 500bd3a
Author: Valentin Kulichenko <va...@gmail.com>
Authored: Wed Feb 3 18:44:44 2016 -0800
Committer: Valentin Kulichenko <va...@gmail.com>
Committed: Wed Feb 3 18:44:44 2016 -0800

----------------------------------------------------------------------
 .../scala/org/apache/ignite/spark/IgniteContext.scala    | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d1e2957a/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteContext.scala
----------------------------------------------------------------------
diff --git a/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteContext.scala b/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteContext.scala
index 6e48017..57fe84f 100644
--- a/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteContext.scala
+++ b/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteContext.scala
@@ -20,7 +20,7 @@ package org.apache.ignite.spark
 
 import org.apache.ignite.internal.IgnitionEx
 import org.apache.ignite.internal.util.IgniteUtils
-import org.apache.ignite.{IgniteSystemProperties, Ignition, Ignite}
+import org.apache.ignite._
 import org.apache.ignite.configuration.{CacheConfiguration, IgniteConfiguration}
 import org.apache.spark.{Logging, SparkContext}
 import org.apache.spark.sql.SQLContext
@@ -146,14 +146,19 @@ class IgniteContext[K, V](
             Ignition.ignite(igniteCfg.getGridName)
         }
         catch {
-            case e: Exception ⇒
+            case e: IgniteIllegalStateException ⇒
                 try {
                     igniteCfg.setClientMode(client || driver)
 
                     Ignition.start(igniteCfg)
                 }
                 catch {
-                    case e: Exception ⇒ Ignition.ignite(igniteCfg.getGridName)
+                    case e: IgniteException ⇒ {
+                        logError("Failed to start Ignite client. Will try to use an existing instance with name: "
+                            + igniteCfg.getGridName, e)
+
+                        Ignition.ignite(igniteCfg.getGridName)
+                    }
                 }
         }
     }


[8/8] ignite git commit: IGNITE-2523: Fixed several other tests.

Posted by vo...@apache.org.
IGNITE-2523: Fixed several other tests.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/7e09a146
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/7e09a146
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/7e09a146

Branch: refs/heads/ignite-2523
Commit: 7e09a146acefccc885e78c57ca85f754d4db5d45
Parents: 0128f98
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Thu Feb 4 10:59:59 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Thu Feb 4 10:59:59 2016 +0300

----------------------------------------------------------------------
 .../IgniteCacheClientNodeChangingTopologyTest.java | 17 ++++++++++++++++-
 ...acheAtomicInvalidPartitionHandlingSelfTest.java |  7 +++++--
 2 files changed, 21 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/7e09a146/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodeChangingTopologyTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodeChangingTopologyTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodeChangingTopologyTest.java
index 13f2598..c83af51 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodeChangingTopologyTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodeChangingTopologyTest.java
@@ -61,7 +61,9 @@ import org.apache.ignite.internal.processors.affinity.GridAffinityFunctionContex
 import org.apache.ignite.internal.processors.cache.GridCacheAdapter;
 import org.apache.ignite.internal.processors.cache.GridCacheAffinityManager;
 import org.apache.ignite.internal.processors.cache.GridCacheEntryEx;
+import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateRequest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateRequest;
+import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateRequestInterface;
 import org.apache.ignite.internal.processors.cache.distributed.near.GridNearCacheAdapter;
 import org.apache.ignite.internal.processors.cache.distributed.near.GridNearCacheEntry;
 import org.apache.ignite.internal.processors.cache.distributed.near.GridNearLockRequest;
@@ -231,7 +233,10 @@ public class IgniteCacheClientNodeChangingTopologyTest extends GridCommonAbstrac
 
         // Block messages requests for both nodes.
         spi.blockMessages(GridNearAtomicUpdateRequest.class, ignite0.localNode().id());
+        spi.blockMessages(GridNearAtomicSingleUpdateRequest.class, ignite0.localNode().id());
+
         spi.blockMessages(GridNearAtomicUpdateRequest.class, ignite1.localNode().id());
+        spi.blockMessages(GridNearAtomicSingleUpdateRequest.class, ignite1.localNode().id());
 
         final IgniteCache<Integer, Integer> cache = ignite2.cache(null);
 
@@ -273,6 +278,7 @@ public class IgniteCacheClientNodeChangingTopologyTest extends GridCommonAbstrac
 
         // Block messages requests for single node.
         spi.blockMessages(GridNearAtomicUpdateRequest.class, ignite0.localNode().id());
+        spi.blockMessages(GridNearAtomicSingleUpdateRequest.class, ignite0.localNode().id());
 
         putFut = GridTestUtils.runAsync(new Callable<Object>() {
             @Override public Object call() throws Exception {
@@ -360,10 +366,16 @@ public class IgniteCacheClientNodeChangingTopologyTest extends GridCommonAbstrac
 
         // Block messages requests for both nodes.
         spi.blockMessages(GridNearAtomicUpdateRequest.class, ignite0.localNode().id());
+        spi.blockMessages(GridNearAtomicSingleUpdateRequest.class, ignite0.localNode().id());
+
         spi.blockMessages(GridNearAtomicUpdateRequest.class, ignite1.localNode().id());
+        spi.blockMessages(GridNearAtomicSingleUpdateRequest.class, ignite1.localNode().id());
+
         spi.blockMessages(GridNearAtomicUpdateRequest.class, ignite2.localNode().id());
+        spi.blockMessages(GridNearAtomicSingleUpdateRequest.class, ignite2.localNode().id());
 
         spi.record(GridNearAtomicUpdateRequest.class);
+        spi.record(GridNearAtomicSingleUpdateRequest.class);
 
         final IgniteCache<Integer, Integer> cache = ignite3.cache(null);
 
@@ -400,7 +412,7 @@ public class IgniteCacheClientNodeChangingTopologyTest extends GridCommonAbstrac
         assertEquals(3, msgs.size());
 
         for (Object msg : msgs)
-            assertTrue(((GridNearAtomicUpdateRequest)msg).clientRequest());
+            assertTrue(((GridNearAtomicUpdateRequestInterface)msg).clientRequest());
 
         map.put(primaryKey(ignite0.cache(null)), 3);
         map.put(primaryKey(ignite1.cache(null)), 4);
@@ -458,7 +470,10 @@ public class IgniteCacheClientNodeChangingTopologyTest extends GridCommonAbstrac
 
         // Block messages requests for both nodes.
         spi.blockMessages(GridNearAtomicUpdateRequest.class, ignite0.localNode().id());
+        spi.blockMessages(GridNearAtomicSingleUpdateRequest.class, ignite0.localNode().id());
+
         spi.blockMessages(GridNearAtomicUpdateRequest.class, ignite1.localNode().id());
+        spi.blockMessages(GridNearAtomicSingleUpdateRequest.class, ignite1.localNode().id());
 
         final IgniteCache<Integer, Integer> cache = ignite2.cache(null);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/7e09a146/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
index 74d2d09..c3bd369 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
@@ -477,8 +477,11 @@ public class GridCacheAtomicInvalidPartitionHandlingSelfTest extends GridCommonA
         private boolean delayMessage(GridIoMessage msg) {
             Object origMsg = msg.message();
 
-            return delay &&
-                ((origMsg instanceof GridNearAtomicUpdateRequest) || (origMsg instanceof GridDhtAtomicUpdateRequest));
+            return delay && (
+                (origMsg instanceof GridNearAtomicUpdateRequest) ||
+                (origMsg instanceof GridNearAtomicSingleUpdateRequest) ||
+                (origMsg instanceof GridDhtAtomicUpdateRequest)
+            );
         }
     }
 }
\ No newline at end of file


[4/8] ignite git commit: IGNITE-2541: Fixed potential NPE in GridCacheUpdateAtomicResult caused by unsafe [long -> Long -> long] transitions.

Posted by vo...@apache.org.
IGNITE-2541: Fixed potential NPE in GridCacheUpdateAtomicResult caused by unsafe [long -> Long -> long] transitions.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/10a2b7a1
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/10a2b7a1
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/10a2b7a1

Branch: refs/heads/ignite-2523
Commit: 10a2b7a18de3d9e0cb3fdf147956c127fa4d4d2b
Parents: 74d9d05
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Thu Feb 4 09:41:26 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Thu Feb 4 09:41:26 2016 +0300

----------------------------------------------------------------------
 .../ignite/internal/processors/cache/GridCacheMapEntry.java      | 4 ++--
 .../internal/processors/cache/GridCacheUpdateAtomicResult.java   | 4 ++--
 .../cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java  | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/10a2b7a1/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
index 64cfd01..ae40295 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
@@ -2135,7 +2135,7 @@ public abstract class GridCacheMapEntry extends GridMetadataAwareAdapter impleme
                         null,
                         null,
                         false,
-                        updateCntr0 == null ? 0 : updateCntr);
+                        updateCntr0 == null ? 0 : updateCntr0);
                 }
             }
             else
@@ -2431,7 +2431,7 @@ public abstract class GridCacheMapEntry extends GridMetadataAwareAdapter impleme
             enqueueVer,
             conflictCtx,
             true,
-            updateCntr0);
+            updateCntr0 == null ? 0 : updateCntr0);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/10a2b7a1/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUpdateAtomicResult.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUpdateAtomicResult.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUpdateAtomicResult.java
index 9df476e..2355b7c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUpdateAtomicResult.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUpdateAtomicResult.java
@@ -58,7 +58,7 @@ public class GridCacheUpdateAtomicResult {
     private final boolean sndToDht;
 
     /** */
-    private final Long updateCntr;
+    private final long updateCntr;
 
     /** Value computed by entry processor. */
     private IgniteBiTuple<Object, Exception> res;
@@ -137,7 +137,7 @@ public class GridCacheUpdateAtomicResult {
     /**
      * @return Partition update index.
      */
-    public Long updateCounter() {
+    public long updateCounter() {
         return updateCntr;
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/10a2b7a1/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
index e31af19..06c8441 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
@@ -225,7 +225,7 @@ public class GridDhtAtomicUpdateFuture extends GridFutureAdapter<Void>
         @Nullable GridCacheVersion conflictVer,
         boolean addPrevVal,
         @Nullable CacheObject prevVal,
-        @Nullable Long updateCntr) {
+        long updateCntr) {
         AffinityTopologyVersion topVer = updateReq.topologyVersion();
 
         Collection<ClusterNode> dhtNodes = cctx.dht().topology().nodes(entry.partition(), topVer);


[7/8] ignite git commit: IGNITE-2523: Fixed IgniteCacheAtomicStopBusySelfTest.

Posted by vo...@apache.org.
IGNITE-2523: Fixed IgniteCacheAtomicStopBusySelfTest.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/0128f988
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/0128f988
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/0128f988

Branch: refs/heads/ignite-2523
Commit: 0128f988c60cdbd9aec6996626b6ffb1ad1fa30e
Parents: d3e1645
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Thu Feb 4 10:54:25 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Thu Feb 4 10:54:25 2016 +0300

----------------------------------------------------------------------
 .../processors/cache/IgniteCacheAtomicStopBusySelfTest.java     | 5 +++++
 1 file changed, 5 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/0128f988/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAtomicStopBusySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAtomicStopBusySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAtomicStopBusySelfTest.java
index cdb7907..024ff2f 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAtomicStopBusySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAtomicStopBusySelfTest.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.internal.processors.cache;
 
 import org.apache.ignite.cache.CacheAtomicityMode;
+import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateRequest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateRequest;
 
 /**
@@ -32,6 +33,7 @@ public class IgniteCacheAtomicStopBusySelfTest extends IgniteCacheAbstractStopBu
     /** {@inheritDoc} */
     @Override public void testPut() throws Exception {
         bannedMsg.set(GridNearAtomicUpdateRequest.class);
+        bannedMsg.set(GridNearAtomicSingleUpdateRequest.class);
 
         super.testPut();
     }
@@ -39,6 +41,7 @@ public class IgniteCacheAtomicStopBusySelfTest extends IgniteCacheAbstractStopBu
     /** {@inheritDoc} */
     @Override public void testPutBatch() throws Exception {
         bannedMsg.set(GridNearAtomicUpdateRequest.class);
+        bannedMsg.set(GridNearAtomicSingleUpdateRequest.class);
 
         super.testPut();
     }
@@ -46,6 +49,7 @@ public class IgniteCacheAtomicStopBusySelfTest extends IgniteCacheAbstractStopBu
     /** {@inheritDoc} */
     @Override public void testPutAsync() throws Exception {
         bannedMsg.set(GridNearAtomicUpdateRequest.class);
+        bannedMsg.set(GridNearAtomicSingleUpdateRequest.class);
 
         super.testPut();
     }
@@ -53,6 +57,7 @@ public class IgniteCacheAtomicStopBusySelfTest extends IgniteCacheAbstractStopBu
     /** {@inheritDoc} */
     @Override public void testRemove() throws Exception {
         bannedMsg.set(GridNearAtomicUpdateRequest.class);
+        bannedMsg.set(GridNearAtomicSingleUpdateRequest.class);
 
         super.testPut();
     }


[3/8] ignite git commit: Fixed GridFactorySelfTest which started failing due to minor change in exception message.

Posted by vo...@apache.org.
Fixed GridFactorySelfTest which started failing due to minor change in exception message.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/74d9d05b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/74d9d05b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/74d9d05b

Branch: refs/heads/ignite-2523
Commit: 74d9d05b7cee071dad4c50a3a053781d78a488a8
Parents: d1e2957
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Thu Feb 4 09:36:52 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Thu Feb 4 09:36:52 2016 +0300

----------------------------------------------------------------------
 .../test/java/org/apache/ignite/internal/GridFactorySelfTest.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/74d9d05b/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java b/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java
index d72b577..cca3e8b 100644
--- a/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java
+++ b/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java
@@ -469,7 +469,7 @@ public class GridFactorySelfTest extends GridCommonAbstractTest {
                                 String msg = e.getMessage();
 
                                 if (msg != null &&
-                                    (msg.contains("Default grid instance has already been started.") ||
+                                    (msg.contains("Default Ignite instance has already been started.") ||
                                     msg.contains("Ignite instance with this name has already been started:")))
                                     info("Caught expected exception: " + msg);
                                 else


[5/8] ignite git commit: Merge branch 'master' into ignite-2523

Posted by vo...@apache.org.
Merge branch 'master' into ignite-2523


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/3d34e50c
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/3d34e50c
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/3d34e50c

Branch: refs/heads/ignite-2523
Commit: 3d34e50c9ece0d12e35a0ff6130659cfa03bdddf
Parents: 3967130 10a2b7a
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Thu Feb 4 10:44:33 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Thu Feb 4 10:44:33 2016 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheAdapter.java      | 100 ++++++++++++++++++-
 .../processors/cache/GridCacheMapEntry.java     |   4 +-
 .../cache/GridCacheUpdateAtomicResult.java      |   4 +-
 .../dht/atomic/GridDhtAtomicUpdateFuture.java   |   2 +-
 .../org/apache/ignite/spark/IgniteContext.scala |  11 +-
 .../ignite/internal/GridFactorySelfTest.java    |   2 +-
 6 files changed, 110 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/3d34e50c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
----------------------------------------------------------------------