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/04/29 12:55:40 UTC

[01/20] ignite git commit: Refactoring response.

Repository: ignite
Updated Branches:
  refs/heads/ignite-2523-1 5d4af1a16 -> 5866b999f


Refactoring response.


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

Branch: refs/heads/ignite-2523-1
Commit: 091f5d10ddc17a5a45a08e62a3c31bece63b1869
Parents: 10387a7
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Apr 26 12:22:21 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Apr 26 12:22:21 2016 +0300

----------------------------------------------------------------------
 .../dht/atomic/GridDhtAtomicCache.java          | 21 +++--
 .../GridNearAtomicSingleUpdateFuture.java       | 18 ++--
 .../dht/atomic/GridNearAtomicUpdateFuture.java  | 23 ++---
 .../atomic/GridNearAtomicUpdateResponse.java    | 93 +++++++++++++-------
 .../distributed/near/GridNearAtomicCache.java   | 23 +++--
 5 files changed, 108 insertions(+), 70 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/091f5d10/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 c48787c..37a5f45 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
@@ -210,12 +210,17 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
                 if (req.writeSynchronizationMode() != FULL_ASYNC)
                     sendNearUpdateReply(res.nodeId(), res);
                 else {
-                    if (!F.isEmpty(res.remapKeys()))
+                    if (res.remapKeysCount() > 0)
                         // Remap keys on primary node in FULL_ASYNC mode.
                         remapToNewPrimary(req);
                     else if (res.error() != null) {
+                        Collection<KeyCacheObject> failedKeys = new ArrayList<>(res.failedKeysCount());
+
+                        for (int i = 0; i < res.failedKeysCount(); i++)
+                            failedKeys.add(res.failedKey(i));
+
                         U.error(log, "Failed to process write update request in FULL_ASYNC mode for keys: " +
-                            res.failedKeys(), res.error());
+                            failedKeys, res.error());
                     }
                 }
             }
@@ -1526,7 +1531,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
 
                 try {
                     if (top.stopping()) {
-                        res.addFailedKeys(req.keys(), new IgniteCheckedException("Failed to perform cache operation " +
+                        res.addFailedKeys(req, new IgniteCheckedException("Failed to perform cache operation " +
                             "(cache is stopped): " + name()));
 
                         completionCb.apply(req, res);
@@ -1669,7 +1674,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
             // an attempt to use cleaned resources.
             U.error(log, "Unexpected exception during cache update", e);
 
-            res.addFailedKeys(req.keys(), e);
+            res.addFailedKeys(req, e);
 
             completionCb.apply(req, res);
 
@@ -1682,7 +1687,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
         if (remap) {
             assert dhtFut == null;
 
-            res.remapKeys(req.keys());
+            res.remapKeys(req);
 
             completionCb.apply(req, res);
         }
@@ -1739,7 +1744,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
                 reloadIfNeeded(locked);
             }
             catch (IgniteCheckedException e) {
-                res.addFailedKeys(req.keys(), e);
+                res.addFailedKeys(req, e);
 
                 return new UpdateBatchResult();
             }
@@ -2593,7 +2598,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
             }
         }
         catch (IgniteCheckedException e) {
-            res.addFailedKeys(putMap != null ? putMap.keySet() : rmvKeys, e, ctx);
+            res.addFailedKeys(putMap != null ? putMap.keySet() : rmvKeys, e);
         }
 
         if (storeErr != null) {
@@ -2602,7 +2607,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
             for (Object failedKey : storeErr.failedKeys())
                 failed.add(ctx.toCacheKeyObject(failedKey));
 
-            res.addFailedKeys(failed, storeErr.getCause(), ctx);
+            res.addFailedKeys(failed, storeErr.getCause());
         }
 
         return dhtFut;

http://git-wip-us.apache.org/repos/asf/ignite/blob/091f5d10/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
index d8c217e..34399ac 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
@@ -163,7 +163,7 @@ public class GridNearAtomicSingleUpdateFuture extends GridNearAtomicAbstractUpda
 
                 e.retryReadyFuture(cctx.shared().nextAffinityReadyFuture(req.topologyVersion()));
 
-                res.addFailedKeys(req.keys(), e);
+                res.addFailedKeys(req, e);
             }
         }
 
@@ -233,22 +233,22 @@ public class GridNearAtomicSingleUpdateFuture extends GridNearAtomicAbstractUpda
 
             this.req = null;
 
-            boolean remapKey = !F.isEmpty(res.remapKeys());
+            boolean remapKey = res.remapKeysCount() > 0;
 
             if (remapKey) {
                 if (mapErrTopVer == null || mapErrTopVer.compareTo(req.topologyVersion()) < 0)
                     mapErrTopVer = req.topologyVersion();
             }
             else if (res.error() != null) {
-                if (res.failedKeys() != null) {
+                if (res.failedKeysCount() > 0) {
                     if (err == null)
                         err = new CachePartialUpdateCheckedException(
                             "Failed to update keys (retry update if possible).");
 
-                    Collection<Object> keys = new ArrayList<>(res.failedKeys().size());
+                    Collection<Object> keys = new ArrayList<>(res.failedKeysCount());
 
-                    for (KeyCacheObject key : res.failedKeys())
-                        keys.add(cctx.cacheObjectContext().unwrapBinaryIfNeeded(key, keepBinary, false));
+                    for (int i = 0; i < res.failedKeysCount(); i++)
+                        keys.add(cctx.cacheObjectContext().unwrapBinaryIfNeeded(res.failedKey(i), keepBinary, false));
 
                     err.add(keys, res.error(), req.topologyVersion());
                 }
@@ -319,7 +319,7 @@ public class GridNearAtomicSingleUpdateFuture extends GridNearAtomicAbstractUpda
             }
         }
 
-        if (res.error() != null && res.failedKeys() == null) {
+        if (res.error() != null && res.failedKeysCount() == 0) {
             onDone(res.error());
 
             return;
@@ -392,7 +392,7 @@ public class GridNearAtomicSingleUpdateFuture extends GridNearAtomicAbstractUpda
     private void updateNear(GridNearAtomicAbstractUpdateRequest req, GridNearAtomicUpdateResponse res) {
         assert nearEnabled;
 
-        if (res.remapKeys() != null || !req.hasPrimary())
+        if (res.remapKeysCount() > 0 || !req.hasPrimary())
             return;
 
         GridNearAtomicCache near = (GridNearAtomicCache)cctx.dht().near();
@@ -496,7 +496,7 @@ public class GridNearAtomicSingleUpdateFuture extends GridNearAtomicAbstractUpda
                 req.futureVersion(),
                 cctx.deploymentEnabled());
 
-            res.addFailedKeys(req.keys(), e);
+            res.addFailedKeys(req, e);
 
             onResult(req.nodeId(), res, true);
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/091f5d10/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 7021e2f..bad4647 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
@@ -185,7 +185,7 @@ public class GridNearAtomicUpdateFuture extends GridNearAtomicAbstractUpdateFutu
 
                 e.retryReadyFuture(cctx.shared().nextAffinityReadyFuture(req.topologyVersion()));
 
-                res.addFailedKeys(req.keys(), e);
+                res.addFailedKeys(req, e);
             }
         }
 
@@ -298,27 +298,28 @@ public class GridNearAtomicUpdateFuture extends GridNearAtomicAbstractUpdateFutu
 
             assert req != null && req.topologyVersion().equals(topVer) : req;
 
-            if (res.remapKeys() != null) {
+            if (res.remapKeysCount() > 0) {
                 assert !fastMap || cctx.kernalContext().clientNode();
 
                 if (remapKeys == null)
-                    remapKeys = U.newHashSet(res.remapKeys().size());
+                    remapKeys = U.newHashSet(res.remapKeysCount());
 
-                remapKeys.addAll(res.remapKeys());
+                for (int i = 0; i < res.remapKeysCount(); i++)
+                    remapKeys.add(res.remapKey(i));
 
                 if (mapErrTopVer == null || mapErrTopVer.compareTo(req.topologyVersion()) < 0)
                     mapErrTopVer = req.topologyVersion();
             }
             else if (res.error() != null) {
-                if (res.failedKeys() != null) {
+                if (res.failedKeysCount() > 0) {
                     if (err == null)
                         err = new CachePartialUpdateCheckedException(
                             "Failed to update keys (retry update if possible).");
 
-                    Collection<Object> keys = new ArrayList<>(res.failedKeys().size());
+                    Collection<Object> keys = new ArrayList<>(res.failedKeysCount());
 
-                    for (KeyCacheObject key : res.failedKeys())
-                        keys.add(cctx.cacheObjectContext().unwrapBinaryIfNeeded(key, keepBinary, false));
+                    for (int i = 0; i < res.failedKeysCount(); i++)
+                        keys.add(cctx.cacheObjectContext().unwrapBinaryIfNeeded(res.failedKey(i), keepBinary, false));
 
                     err.add(keys, res.error(), req.topologyVersion());
                 }
@@ -399,7 +400,7 @@ public class GridNearAtomicUpdateFuture extends GridNearAtomicAbstractUpdateFutu
             }
         }
 
-        if (res.error() != null && res.failedKeys() == null) {
+        if (res.error() != null && res.failedKeysCount() == 0) {
             onDone(res.error());
 
             return;
@@ -486,7 +487,7 @@ public class GridNearAtomicUpdateFuture extends GridNearAtomicAbstractUpdateFutu
     private void updateNear(GridNearAtomicUpdateRequest req, GridNearAtomicUpdateResponse res) {
         assert nearEnabled;
 
-        if (res.remapKeys() != null || !req.hasPrimary())
+        if (res.remapKeysCount() > 0 || !req.hasPrimary())
             return;
 
         GridNearAtomicCache near = (GridNearAtomicCache)cctx.dht().near();
@@ -634,7 +635,7 @@ public class GridNearAtomicUpdateFuture extends GridNearAtomicAbstractUpdateFutu
                 req.futureVersion(),
                 cctx.deploymentEnabled());
 
-            res.addFailedKeys(req.keys(), e);
+            res.addFailedKeys(req, e);
 
             onResult(req.nodeId(), res, true);
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/091f5d10/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
index f47bb75..bc552df 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
@@ -23,7 +23,6 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.UUID;
-import java.util.concurrent.ConcurrentLinkedQueue;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.internal.GridDirectCollection;
 import org.apache.ignite.internal.GridDirectTransient;
@@ -75,7 +74,7 @@ public class GridNearAtomicUpdateResponse extends GridCacheMessage implements Gr
     /** Failed keys. */
     @GridToStringInclude
     @GridDirectCollection(KeyCacheObject.class)
-    private volatile Collection<KeyCacheObject> failedKeys;
+    private volatile List<KeyCacheObject> failedKeys;
 
     /** Keys that should be remapped. */
     @GridToStringInclude
@@ -167,10 +166,18 @@ public class GridNearAtomicUpdateResponse extends GridCacheMessage implements Gr
     }
 
     /**
-     * @return Collection of failed keys.
+     * @return Failed keys count.
      */
-    public Collection<KeyCacheObject> failedKeys() {
-        return failedKeys;
+    public int failedKeysCount() {
+        return failedKeys == null ? 0 : failedKeys.size();
+    }
+
+    /**
+     * @param idx Index.
+     * @return Failed key.
+     */
+    public KeyCacheObject failedKey(int idx) {
+        return failedKeys.get(idx);
     }
 
     /**
@@ -189,17 +196,28 @@ public class GridNearAtomicUpdateResponse extends GridCacheMessage implements Gr
     }
 
     /**
-     * @param remapKeys Remap keys.
+     * @param req Request.
+     */
+    public void remapKeys(GridNearAtomicAbstractUpdateRequest req) {
+        remapKeys = new ArrayList<>(req.keysCount());
+
+        for (int i = 0; i < req.keysCount(); i++)
+            remapKeys.add(req.key(i));
+    }
+
+    /**
+     * @param idx Index.
+     * @return Remap key.
      */
-    public void remapKeys(List<KeyCacheObject> remapKeys) {
-        this.remapKeys = remapKeys;
+    public KeyCacheObject remapKey(int idx) {
+        return remapKeys.get(idx);
     }
 
     /**
-     * @return Remap keys.
+     * @return Remap keys count.
      */
-    public Collection<KeyCacheObject> remapKeys() {
-        return remapKeys;
+    public int remapKeysCount() {
+        return remapKeys == null ? 0 : remapKeys.size();
     }
 
     /**
@@ -312,18 +330,24 @@ public class GridNearAtomicUpdateResponse extends GridCacheMessage implements Gr
     }
 
     /**
-     * @return Indexes of keys for which update was skipped
+     * Check if update was skipped for the given index.
+     *
+     * @param idx Index.
+     * @return {@code True} if skipped.
      */
-    @Nullable public List<Integer> skippedIndexes() {
-        return nearSkipIdxs;
+    public boolean isNearSkippedIndex(int idx) {
+        return nearSkipIdxs != null && nearSkipIdxs.contains(idx);
     }
 
     /**
-     * @return Indexes of keys for which values were generated on primary node.
+     * Check if this is an index of a key for which values were generated on primary node.
+     *
+     * @param idx Index.
+     * @return {@code True} if values were generated on primary node.
      */
-   @Nullable public List<Integer> nearValuesIndexes() {
-        return nearValsIdxs;
-   }
+    public boolean isNearValueIndex(int idx) {
+        return nearValsIdxs != null && nearValsIdxs.contains(idx);
+    }
 
     /**
      * @param idx Index.
@@ -341,14 +365,11 @@ public class GridNearAtomicUpdateResponse extends GridCacheMessage implements Gr
      */
     public synchronized void addFailedKey(KeyCacheObject key, Throwable e) {
         if (failedKeys == null)
-            failedKeys = new ConcurrentLinkedQueue<>();
+            failedKeys = new ArrayList<>(1);
 
         failedKeys.add(key);
 
-        if (err == null)
-            err = new IgniteCheckedException("Failed to update keys on primary node.");
-
-        err.addSuppressed(e);
+        setFailedKeysError(e);
     }
 
     /**
@@ -365,25 +386,31 @@ public class GridNearAtomicUpdateResponse extends GridCacheMessage implements Gr
             failedKeys.addAll(keys);
         }
 
-        if (err == null)
-            err = new IgniteCheckedException("Failed to update keys on primary node.");
-
-        err.addSuppressed(e);
+        setFailedKeysError(e);
     }
 
     /**
-     * Adds keys to collection of failed keys.
+     * Add keys to collection of failed keys.
      *
-     * @param keys Key to add.
+     * @param req Request.
      * @param e Error cause.
-     * @param ctx Context.
      */
-    public synchronized void addFailedKeys(Collection<KeyCacheObject> keys, Throwable e, GridCacheContext ctx) {
+    public synchronized void addFailedKeys(GridNearAtomicAbstractUpdateRequest req, Throwable e) {
         if (failedKeys == null)
-            failedKeys = new ArrayList<>(keys.size());
+            failedKeys = new ArrayList<>(req.keysCount());
 
-        failedKeys.addAll(keys);
+        for (int i = 0; i < req.keysCount(); i++)
+            failedKeys.add(req.key(i));
+
+        setFailedKeysError(e);
+    }
 
+    /**
+     * Set failed keys error.
+     *
+     * @param e Error.
+     */
+    private void setFailedKeysError(Throwable e) {
         if (err == null)
             err = new IgniteCheckedException("Failed to update keys on primary node.");
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/091f5d10/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
index ac87ead..ac1ef70 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
@@ -129,18 +129,13 @@ public class GridNearAtomicCache<K, V> extends GridNearCacheAdapter<K, V> {
         GridNearAtomicAbstractUpdateRequest req,
         GridNearAtomicUpdateResponse res
     ) {
-        if (F.size(res.failedKeys()) == req.keysCount())
+        if (res.failedKeysCount() == req.keysCount())
             return;
 
         /*
          * Choose value to be stored in near cache: first check key is not in failed and not in skipped list,
          * then check if value was generated on primary node, if not then use value sent in request.
          */
-
-        Collection<KeyCacheObject> failed = res.failedKeys();
-        List<Integer> nearValsIdxs = res.nearValuesIndexes();
-        List<Integer> skipped = res.skippedIndexes();
-
         GridCacheVersion ver = req.updateVersion();
 
         if (ver == null)
@@ -153,12 +148,22 @@ public class GridNearAtomicCache<K, V> extends GridNearCacheAdapter<K, V> {
         String taskName = ctx.kernalContext().task().resolveTaskName(req.taskNameHash());
 
         for (int i = 0; i < req.keysCount(); i++) {
-            if (F.contains(skipped, i))
+            if (res.isNearSkippedIndex(i))
                 continue;
 
             KeyCacheObject key = req.key(i);
 
-            if (F.contains(failed, key))
+            boolean failed = false;
+
+            for (int j = 0; j < res.failedKeysCount(); j++) {
+                if (F.eq(res.failedKey(j), key)) {
+                    failed = true;
+
+                    break;
+                }
+            }
+
+            if (failed)
                 continue;
 
             if (ctx.affinity().belongs(ctx.localNode(), ctx.affinity().partition(key), req.topologyVersion())) { // Reader became backup.
@@ -172,7 +177,7 @@ public class GridNearAtomicCache<K, V> extends GridNearCacheAdapter<K, V> {
 
             CacheObject val = null;
 
-            if (F.contains(nearValsIdxs, i)) {
+            if (res.isNearValueIndex(i)) {
                 val = res.nearValue(nearValIdx);
 
                 nearValIdx++;


[06/20] ignite git commit: Reworked near processing.

Posted by vo...@apache.org.
Reworked near processing.


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

Branch: refs/heads/ignite-2523-1
Commit: c011b1c37bee22e0e37d17114c7ba337c32155f2
Parents: 6a233dd
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Apr 26 16:14:40 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Apr 26 16:14:40 2016 +0300

----------------------------------------------------------------------
 .../GridNearAtomicSingleUpdateResponse.java     | 111 +++++++------------
 1 file changed, 38 insertions(+), 73 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/c011b1c3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
index 9c4aebe..7a7c04d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
@@ -18,7 +18,6 @@
 package org.apache.ignite.internal.processors.cache.distributed.dht.atomic;
 
 import org.apache.ignite.IgniteCheckedException;
-import org.apache.ignite.internal.GridDirectCollection;
 import org.apache.ignite.internal.GridDirectTransient;
 import org.apache.ignite.internal.processors.cache.CacheObject;
 import org.apache.ignite.internal.processors.cache.GridCacheContext;
@@ -26,20 +25,16 @@ import org.apache.ignite.internal.processors.cache.GridCacheReturn;
 import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
 import org.apache.ignite.internal.processors.cache.KeyCacheObject;
 import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
-import org.apache.ignite.internal.util.GridLongList;
 import org.apache.ignite.internal.util.tostring.GridToStringInclude;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType;
 import org.apache.ignite.plugin.extensions.communication.MessageReader;
 import org.apache.ignite.plugin.extensions.communication.MessageWriter;
 import org.jetbrains.annotations.Nullable;
 
 import java.io.Externalizable;
 import java.nio.ByteBuffer;
-import java.util.ArrayList;
 import java.util.Collection;
-import java.util.List;
 import java.util.UUID;
 
 /**
@@ -76,26 +71,23 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
     private KeyCacheObject remapKey;
 
     /** Indexes of keys for which values were generated on primary node (used if originating node has near cache). */
-    @GridDirectCollection(int.class)
-    private List<Integer> nearValsIdxs;
+    private boolean nearValsIdx;
 
     /** Indexes of keys for which update was skipped (used if originating node has near cache). */
-    @GridDirectCollection(int.class)
-    private List<Integer> nearSkipIdxs;
+    private boolean nearSkipIdx;
 
     /** Values generated on primary node which should be put to originating node's near cache. */
     @GridToStringInclude
-    @GridDirectCollection(CacheObject.class)
-    private List<CacheObject> nearVals;
+    private CacheObject nearVal;
 
     /** Version generated on primary node to be used for originating node's near cache update. */
     private GridCacheVersion nearVer;
 
     /** Near TTLs. */
-    private GridLongList nearTtls;
+    private long nearTtl = -1L;
 
     /** Near expire times. */
-    private GridLongList nearExpireTimes;
+    private long nearExpireTime = -1L;
 
     /**
      * Empty constructor required by {@link Externalizable}.
@@ -191,65 +183,35 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
 
     /** {@inheritDoc} */
     @Override public void addNearValue(int keyIdx, @Nullable CacheObject val, long ttl, long expireTime) {
-        if (nearValsIdxs == null) {
-            nearValsIdxs = new ArrayList<>();
-            nearVals = new ArrayList<>();
-        }
+        assert keyIdx == 0;
 
         addNearTtl(keyIdx, ttl, expireTime);
 
-        nearValsIdxs.add(keyIdx);
-        nearVals.add(val);
+        nearValsIdx = true;
+        nearVal = val;
     }
 
     /** {@inheritDoc} */
     @SuppressWarnings("ForLoopReplaceableByForEach")
     @Override public void addNearTtl(int keyIdx, long ttl, long expireTime) {
-        if (ttl >= 0) {
-            if (nearTtls == null) {
-                nearTtls = new GridLongList(16);
-
-                for (int i = 0; i < keyIdx; i++)
-                    nearTtls.add(-1L);
-            }
-        }
+        assert keyIdx == 0;
 
-        if (nearTtls != null)
-            nearTtls.add(ttl);
-
-        if (expireTime >= 0) {
-            if (nearExpireTimes == null) {
-                nearExpireTimes = new GridLongList(16);
-
-                for (int i = 0; i < keyIdx; i++)
-                    nearExpireTimes.add(-1);
-            }
-        }
-
-        if (nearExpireTimes != null)
-            nearExpireTimes.add(expireTime);
+        nearTtl = ttl;
+        nearExpireTime = expireTime;
     }
 
     /** {@inheritDoc} */
     @Override public long nearExpireTime(int idx) {
-        if (nearExpireTimes != null) {
-            assert idx >= 0 && idx < nearExpireTimes.size();
-
-            return nearExpireTimes.get(idx);
-        }
+        assert idx == 0;
 
-        return -1L;
+        return nearExpireTime;
     }
 
     /** {@inheritDoc} */
     @Override public long nearTtl(int idx) {
-        if (nearTtls != null) {
-            assert idx >= 0 && idx < nearTtls.size();
-
-            return nearTtls.get(idx);
-        }
+        assert idx == 0;
 
-        return -1L;
+        return nearTtl;
     }
 
     /** {@inheritDoc} */
@@ -264,27 +226,32 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
 
     /** {@inheritDoc} */
     @Override public void addSkippedIndex(int keyIdx) {
-        if (nearSkipIdxs == null)
-            nearSkipIdxs = new ArrayList<>();
+        assert keyIdx == 0;
 
-        nearSkipIdxs.add(keyIdx);
+        nearSkipIdx = true;
 
         addNearTtl(keyIdx, -1L, -1L);
     }
 
     /** {@inheritDoc} */
     @Override public boolean isNearSkippedIndex(int idx) {
-        return nearSkipIdxs != null && nearSkipIdxs.contains(idx);
+        assert idx == 0;
+
+        return nearSkipIdx;
     }
 
     /** {@inheritDoc} */
     @Override public boolean isNearValueIndex(int idx) {
-        return nearValsIdxs != null && nearValsIdxs.contains(idx);
+        assert idx == 0;
+
+        return nearValsIdx;
     }
 
     /** {@inheritDoc} */
     @Override @Nullable public CacheObject nearValue(int idx) {
-        return nearVals.get(idx);
+        assert idx == 0;
+
+        return nearVal;
     }
 
     /** {@inheritDoc} */
@@ -338,8 +305,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
 
         prepareMarshalCacheObject(failedKey, cctx);
         prepareMarshalCacheObject(remapKey, cctx);
-
-        prepareMarshalCacheObjects(nearVals, cctx);
+        prepareMarshalCacheObject(nearVal, cctx);
 
         if (ret != null)
             ret.prepareMarshal(cctx);
@@ -356,8 +322,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
 
         finishUnmarshalCacheObject(failedKey, cctx, ldr);
         finishUnmarshalCacheObject(remapKey, cctx, ldr);
-
-        finishUnmarshalCacheObjects(nearVals, cctx, ldr);
+        finishUnmarshalCacheObject(nearVal, cctx, ldr);
 
         if (ret != null)
             ret.finishUnmarshal(cctx, ldr);
@@ -399,31 +364,31 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
                 writer.incrementState();
 
             case 6:
-                if (!writer.writeMessage("nearExpireTimes", nearExpireTimes))
+                if (!writer.writeLong("nearExpireTime", nearExpireTime))
                     return false;
 
                 writer.incrementState();
 
             case 7:
-                if (!writer.writeCollection("nearSkipIdxs", nearSkipIdxs, MessageCollectionItemType.INT))
+                if (!writer.writeBoolean("nearSkipIdx", nearSkipIdx))
                     return false;
 
                 writer.incrementState();
 
             case 8:
-                if (!writer.writeMessage("nearTtls", nearTtls))
+                if (!writer.writeLong("nearTtl", nearTtl))
                     return false;
 
                 writer.incrementState();
 
             case 9:
-                if (!writer.writeCollection("nearVals", nearVals, MessageCollectionItemType.MSG))
+                if (!writer.writeMessage("nearVal", nearVal))
                     return false;
 
                 writer.incrementState();
 
             case 10:
-                if (!writer.writeCollection("nearValsIdxs", nearValsIdxs, MessageCollectionItemType.INT))
+                if (!writer.writeBoolean("nearValsIdx", nearValsIdx))
                     return false;
 
                 writer.incrementState();
@@ -487,7 +452,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
                 reader.incrementState();
 
             case 6:
-                nearExpireTimes = reader.readMessage("nearExpireTimes");
+                nearExpireTime = reader.readLong("nearExpireTime");
 
                 if (!reader.isLastRead())
                     return false;
@@ -495,7 +460,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
                 reader.incrementState();
 
             case 7:
-                nearSkipIdxs = reader.readCollection("nearSkipIdxs", MessageCollectionItemType.INT);
+                nearSkipIdx = reader.readBoolean("nearSkipIdx");
 
                 if (!reader.isLastRead())
                     return false;
@@ -503,7 +468,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
                 reader.incrementState();
 
             case 8:
-                nearTtls = reader.readMessage("nearTtls");
+                nearTtl = reader.readLong("nearTtl");
 
                 if (!reader.isLastRead())
                     return false;
@@ -511,7 +476,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
                 reader.incrementState();
 
             case 9:
-                nearVals = reader.readCollection("nearVals", MessageCollectionItemType.MSG);
+                nearVal = reader.readMessage("nearVal");
 
                 if (!reader.isLastRead())
                     return false;
@@ -519,7 +484,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
                 reader.incrementState();
 
             case 10:
-                nearValsIdxs = reader.readCollection("nearValsIdxs", MessageCollectionItemType.INT);
+                nearValsIdx = reader.readBoolean("nearValsIdx");
 
                 if (!reader.isLastRead())
                     return false;


[17/20] ignite git commit: Temporary disabled tests.

Posted by vo...@apache.org.
Temporary disabled tests.


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

Branch: refs/heads/ignite-2523-1
Commit: 97facf3c58aad65504e636a5eab7d807124cf8d5
Parents: 72df110
Author: sboikov <sb...@gridgain.com>
Authored: Fri Apr 29 11:06:55 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Apr 29 11:07:34 2016 +0300

----------------------------------------------------------------------
 .../testsuites/IgniteCacheDataStructuresSelfTestSuite.java     | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/97facf3c/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java
index 59a18e5..09e7c4d 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java
@@ -110,7 +110,7 @@ public class IgniteCacheDataStructuresSelfTestSuite extends TestSuite {
         suite.addTest(new TestSuite(GridCacheLocalAtomicQueueApiSelfTest.class));
         suite.addTest(new TestSuite(IgniteLocalCountDownLatchSelfTest.class));
         suite.addTest(new TestSuite(IgniteLocalSemaphoreSelfTest.class));
-        suite.addTest(new TestSuite(IgniteLocalLockSelfTest.class));
+        //suite.addTest(new TestSuite(IgniteLocalLockSelfTest.class));
 
         suite.addTest(new TestSuite(GridCacheReplicatedSequenceApiSelfTest.class));
         suite.addTest(new TestSuite(GridCacheReplicatedSequenceMultiNodeSelfTest.class));
@@ -121,7 +121,7 @@ public class IgniteCacheDataStructuresSelfTestSuite extends TestSuite {
         suite.addTest(new TestSuite(GridCacheReplicatedDataStructuresFailoverSelfTest.class));
         suite.addTest(new TestSuite(IgniteReplicatedCountDownLatchSelfTest.class));
         suite.addTest(new TestSuite(IgniteReplicatedSemaphoreSelfTest.class));
-        suite.addTest(new TestSuite(IgniteReplicatedLockSelfTest.class));
+        //suite.addTest(new TestSuite(IgniteReplicatedLockSelfTest.class));
         suite.addTest(new TestSuite(IgniteCacheAtomicReplicatedNodeRestartSelfTest.class));
 
         suite.addTest(new TestSuite(GridCachePartitionedSequenceApiSelfTest.class));
@@ -144,7 +144,7 @@ public class IgniteCacheDataStructuresSelfTestSuite extends TestSuite {
         suite.addTest(new TestSuite(IgnitePartitionedCountDownLatchSelfTest.class));
         suite.addTest(new TestSuite(IgniteDataStructureWithJobTest.class));
         suite.addTest(new TestSuite(IgnitePartitionedSemaphoreSelfTest.class));
-        suite.addTest(new TestSuite(IgnitePartitionedLockSelfTest.class));
+        //suite.addTest(new TestSuite(IgnitePartitionedLockSelfTest.class));
 
         suite.addTest(new TestSuite(GridCachePartitionedSetFailoverSelfTest.class));
         suite.addTest(new TestSuite(GridCachePartitionedOffheapSetFailoverSelfTest.class));


[20/20] ignite git commit: Minors.

Posted by vo...@apache.org.
Minors.


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

Branch: refs/heads/ignite-2523-1
Commit: 5866b999f09119041de254fcece5c6a0db22715f
Parents: 313af5a
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Fri Apr 29 13:55:14 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Fri Apr 29 13:55:14 2016 +0300

----------------------------------------------------------------------
 .../distributed/dht/atomic/GridNearAtomicUpdateRequest.java  | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/5866b999/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
index 97340d8..e79d31f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
@@ -61,6 +61,10 @@ public class GridNearAtomicUpdateRequest extends GridNearAtomicAbstractUpdateReq
     /** */
     private static final long serialVersionUID = 0L;
 
+    /** Target node ID. */
+    @GridDirectTransient
+    private UUID nodeId;
+
     /** Future version. */
     private GridCacheVersion futVer;
 
@@ -155,10 +159,6 @@ public class GridNearAtomicUpdateRequest extends GridNearAtomicAbstractUpdateReq
     @GridDirectTransient
     private GridNearAtomicAbstractUpdateResponse res;
 
-    /** Target node ID. */
-    @GridDirectTransient
-    private UUID nodeId;
-
     /** Maximum possible size of inner collections. */
     @GridDirectTransient
     private int initSize;


[07/20] ignite git commit: Wired up single response into cache logic.

Posted by vo...@apache.org.
Wired up single response into cache logic.


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

Branch: refs/heads/ignite-2523-1
Commit: fe132a5feb0d428c0c86d85e79bf669c820373c6
Parents: c011b1c
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Apr 26 16:24:14 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Apr 26 16:24:14 2016 +0300

----------------------------------------------------------------------
 .../communication/GridIoMessageFactory.java     |  6 +++++
 .../processors/cache/GridCacheIoManager.java    |  3 ++-
 .../dht/atomic/GridDhtAtomicCache.java          | 28 ++++++++++++++++++--
 .../GridNearAtomicSingleUpdateFuture.java       |  4 +--
 .../GridNearAtomicSingleUpdateResponse.java     |  2 +-
 .../IgniteClientReconnectCacheTest.java         |  3 ++-
 6 files changed, 39 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/fe132a5f/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
index e028cf4..833b5b3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
@@ -69,6 +69,7 @@ import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDh
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicUpdateRequest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicUpdateResponse;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateRequest;
+import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateResponse;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateRequest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateResponse;
 import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtForceKeysRequest;
@@ -732,6 +733,11 @@ public class GridIoMessageFactory implements MessageFactory {
 
                 break;
 
+            case -24:
+                msg = new GridNearAtomicSingleUpdateResponse();
+
+                break;
+
             // [-3..119] [124] - this
             // [120..123] - DR
             // [-4..-22] - SQL

http://git-wip-us.apache.org/repos/asf/ignite/blob/fe132a5f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
index 4113749..1c72e5e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
@@ -46,6 +46,7 @@ import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDh
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicUpdateResponse;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateResponse;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateRequest;
+import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateResponse;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateRequest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateResponse;
 import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtForceKeysRequest;
@@ -608,7 +609,7 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter {
             case -23: {
                 GridNearAtomicSingleUpdateRequest req = (GridNearAtomicSingleUpdateRequest)msg;
 
-                GridNearAtomicAbstractUpdateResponse res = new GridNearAtomicUpdateResponse(
+                GridNearAtomicAbstractUpdateResponse res = new GridNearAtomicSingleUpdateResponse(
                     ctx.cacheId(),
                     nodeId,
                     req.futureVersion(),

http://git-wip-us.apache.org/repos/asf/ignite/blob/fe132a5f/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 36cd098..4018663 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
@@ -274,6 +274,12 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
             }
         });
 
+        ctx.io().addHandler(ctx.cacheId(), GridNearAtomicSingleUpdateResponse.class, new CI2<UUID, GridNearAtomicSingleUpdateResponse>() {
+            @Override public void apply(UUID nodeId, GridNearAtomicSingleUpdateResponse res) {
+                processNearAtomicUpdateResponse(nodeId, res);
+            }
+        });
+
         ctx.io().addHandler(ctx.cacheId(), GridDhtAtomicUpdateRequest.class, new CI2<UUID, GridDhtAtomicUpdateRequest>() {
             @Override public void apply(UUID nodeId, GridDhtAtomicUpdateRequest req) {
                 processDhtAtomicUpdateRequest(nodeId, req);
@@ -1494,6 +1500,25 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
     }
 
     /**
+     * Create near update response.
+     *
+     * @param nodeId Node ID.
+     * @param req Request.
+     * @return Response.
+     */
+    private GridNearAtomicAbstractUpdateResponse createNearResponse(UUID nodeId,
+        GridNearAtomicAbstractUpdateRequest req) {
+        if (req.isSingle()) {
+            return new GridNearAtomicSingleUpdateResponse(ctx.cacheId(), nodeId, req.futureVersion(),
+                ctx.deploymentEnabled());
+        }
+        else {
+            return new GridNearAtomicUpdateResponse(ctx.cacheId(), nodeId, req.futureVersion(),
+                ctx.deploymentEnabled());
+        }
+    }
+
+    /**
      * Executes local update after preloader fetched values.
      *
      * @param nodeId Node ID.
@@ -1505,8 +1530,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
         GridNearAtomicAbstractUpdateRequest req,
         CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicAbstractUpdateResponse> completionCb
     ) {
-        GridNearAtomicAbstractUpdateResponse res = new GridNearAtomicUpdateResponse(ctx.cacheId(), nodeId,
-            req.futureVersion(), ctx.deploymentEnabled());
+        GridNearAtomicAbstractUpdateResponse res = createNearResponse(nodeId, req);
 
         assert !req.returnValue() || (req.operation() == TRANSFORM || req.keysCount() == 1);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/fe132a5f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
index 064e067..a6cff49 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
@@ -153,7 +153,7 @@ public class GridNearAtomicSingleUpdateFuture extends GridNearAtomicAbstractUpda
                 this.req : null;
 
             if (req != null && req.response() == null) {
-                res = new GridNearAtomicUpdateResponse(cctx.cacheId(),
+                res = new GridNearAtomicSingleUpdateResponse(cctx.cacheId(),
                     nodeId,
                     req.futureVersion(),
                     cctx.deploymentEnabled());
@@ -492,7 +492,7 @@ public class GridNearAtomicSingleUpdateFuture extends GridNearAtomicAbstractUpda
      */
     void onSendError(GridNearAtomicAbstractUpdateRequest req, IgniteCheckedException e) {
         synchronized (mux) {
-            GridNearAtomicAbstractUpdateResponse res = new GridNearAtomicUpdateResponse(cctx.cacheId(),
+            GridNearAtomicAbstractUpdateResponse res = new GridNearAtomicSingleUpdateResponse(cctx.cacheId(),
                 req.nodeId(),
                 req.futureVersion(),
                 cctx.deploymentEnabled());

http://git-wip-us.apache.org/repos/asf/ignite/blob/fe132a5f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
index 7a7c04d..9ec6fcf 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
@@ -522,7 +522,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
 
     /** {@inheritDoc} */
     @Override public byte directType() {
-        return 41;
+        return -24;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/fe132a5f/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java
index 8451a55..f1eac1a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java
@@ -51,6 +51,7 @@ import org.apache.ignite.events.DiscoveryEvent;
 import org.apache.ignite.events.Event;
 import org.apache.ignite.internal.managers.communication.GridIoMessage;
 import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager;
+import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateResponse;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateResponse;
 import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsFullMessage;
 import org.apache.ignite.internal.processors.cache.distributed.near.GridNearGetResponse;
@@ -815,7 +816,7 @@ public class IgniteClientReconnectCacheTest extends IgniteClientReconnectAbstrac
                             Collection<Class> clss = new HashSet<>();
 
                             clss.add(GridNearAtomicUpdateResponse.class);
-                            // TODO: Add single.
+                            clss.add(GridNearAtomicSingleUpdateResponse.class);
 
                             checkOperationInProgressFails(client, ccfg, clss, putOp);
                         }


[16/20] ignite git commit: IGNITE-2957 .NET: Added IIgnite.CacheNames() method. This closes #675.

Posted by vo...@apache.org.
IGNITE-2957 .NET: Added IIgnite.CacheNames() method. This closes #675.


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

Branch: refs/heads/ignite-2523-1
Commit: 72df110499962c177857cbeff368528094535f5c
Parents: 8dd6f19
Author: Pavel Tupitsyn <pt...@gridgain.com>
Authored: Fri Apr 29 10:26:57 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Fri Apr 29 10:26:57 2016 +0300

----------------------------------------------------------------------
 .../platform/PlatformNoopProcessor.java           |  5 +++++
 .../processors/platform/PlatformProcessor.java    |  7 +++++++
 .../platform/PlatformProcessorImpl.java           | 15 +++++++++++++++
 .../cpp/common/include/ignite/common/exports.h    |  1 +
 .../cpp/common/include/ignite/common/java.h       |  2 ++
 .../platforms/cpp/common/project/vs/module.def    |  1 +
 modules/platforms/cpp/common/src/exports.cpp      |  4 ++++
 modules/platforms/cpp/common/src/java.cpp         | 11 +++++++++++
 .../Cache/CacheAbstractTest.cs                    | 18 ++++++++++++++++++
 .../dotnet/Apache.Ignite.Core/IIgnite.cs          |  8 ++++++++
 .../dotnet/Apache.Ignite.Core/Impl/Ignite.cs      | 18 ++++++++++++++++++
 .../dotnet/Apache.Ignite.Core/Impl/IgniteProxy.cs |  7 +++++++
 .../Impl/Unmanaged/IgniteJniNativeMethods.cs      |  3 +++
 .../Impl/Unmanaged/UnmanagedUtils.cs              |  5 +++++
 14 files changed, 105 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/72df1104/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformNoopProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformNoopProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformNoopProcessor.java
index 155981c..cdf418f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformNoopProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformNoopProcessor.java
@@ -152,6 +152,11 @@ public class PlatformNoopProcessor extends GridProcessorAdapter implements Platf
     }
 
     /** {@inheritDoc} */
+    @Override public void getCacheNames(long memPtr) {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
     @Override public PlatformTarget atomicSequence(String name, long initVal, boolean create) throws IgniteException {
         return null;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/72df1104/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessor.java
index cca29d8..fc42b68 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessor.java
@@ -235,6 +235,13 @@ public interface PlatformProcessor extends GridProcessor {
     public void getIgniteConfiguration(long memPtr);
 
     /**
+     * Gets the cache names.
+     *
+     * @param memPtr Stream to write data to.
+     */
+    public void getCacheNames(long memPtr);
+
+    /**
      * Starts a near cache on local node if cache was previously started.
      *
      * @param cacheName Cache name.

http://git-wip-us.apache.org/repos/asf/ignite/blob/72df1104/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessorImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessorImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessorImpl.java
index e294735..5830d37 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessorImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessorImpl.java
@@ -415,6 +415,21 @@ public class PlatformProcessorImpl extends GridProcessorAdapter implements Platf
     }
 
     /** {@inheritDoc} */
+    @Override public void getCacheNames(long memPtr) {
+        PlatformOutputStream stream = platformCtx.memory().get(memPtr).output();
+        BinaryRawWriterEx writer = platformCtx.writer(stream);
+
+        Collection<String> names = ignite().cacheNames();
+
+        writer.writeInt(names.size());
+
+        for (String name : names)
+            writer.writeString(name);
+
+        stream.synchronize();
+    }
+
+    /** {@inheritDoc} */
     @Override public PlatformTarget createNearCache(@Nullable String cacheName, long memPtr) {
         NearCacheConfiguration cfg = getNearCacheConfiguration(memPtr);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/72df1104/modules/platforms/cpp/common/include/ignite/common/exports.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/common/include/ignite/common/exports.h b/modules/platforms/cpp/common/include/ignite/common/exports.h
index c62b365..5798c83 100644
--- a/modules/platforms/cpp/common/include/ignite/common/exports.h
+++ b/modules/platforms/cpp/common/include/ignite/common/exports.h
@@ -53,6 +53,7 @@ extern "C" {
     void* IGNITE_CALL IgniteProcessorAtomicSequence(gcj::JniContext* ctx, void* obj, char* name, long long initVal, bool create);
     void* IGNITE_CALL IgniteProcessorAtomicReference(gcj::JniContext* ctx, void* obj, char* name, long long memPtr, bool create);
     void IGNITE_CALL IgniteProcessorGetIgniteConfiguration(gcj::JniContext* ctx, void* obj, long long memPtr);
+    void IGNITE_CALL IgniteProcessorGetCacheNames(gcj::JniContext* ctx, void* obj, long long memPtr);
     
     long long IGNITE_CALL IgniteTargetInStreamOutLong(gcj::JniContext* ctx, void* obj, int opType, long long memPtr);
     void IGNITE_CALL IgniteTargetInStreamOutStream(gcj::JniContext* ctx, void* obj, int opType, long long inMemPtr, long long outMemPtr);

http://git-wip-us.apache.org/repos/asf/ignite/blob/72df1104/modules/platforms/cpp/common/include/ignite/common/java.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/common/include/ignite/common/java.h b/modules/platforms/cpp/common/include/ignite/common/java.h
index f2007cb..7deb5ef 100644
--- a/modules/platforms/cpp/common/include/ignite/common/java.h
+++ b/modules/platforms/cpp/common/include/ignite/common/java.h
@@ -319,6 +319,7 @@ namespace ignite
                 jmethodID m_PlatformProcessor_extensions;
                 jmethodID m_PlatformProcessor_atomicLong;
                 jmethodID m_PlatformProcessor_getIgniteConfiguration;
+                jmethodID m_PlatformProcessor_getCacheNames;
                 jmethodID m_PlatformProcessor_atomicSequence;
                 jmethodID m_PlatformProcessor_atomicReference;
 
@@ -537,6 +538,7 @@ namespace ignite
                 jobject ProcessorAtomicSequence(jobject obj, char* name, long long initVal, bool create);
                 jobject ProcessorAtomicReference(jobject obj, char* name, long long memPtr, bool create);
 				void ProcessorGetIgniteConfiguration(jobject obj, long long memPtr);
+				void ProcessorGetCacheNames(jobject obj, long long memPtr);
                 
                 long long TargetInStreamOutLong(jobject obj, int type, long long memPtr, JniErrorInfo* errInfo = NULL);
                 void TargetInStreamOutStream(jobject obj, int opType, long long inMemPtr, long long outMemPtr, JniErrorInfo* errInfo = NULL);

http://git-wip-us.apache.org/repos/asf/ignite/blob/72df1104/modules/platforms/cpp/common/project/vs/module.def
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/common/project/vs/module.def b/modules/platforms/cpp/common/project/vs/module.def
index 57e58f3..5f2e941 100644
--- a/modules/platforms/cpp/common/project/vs/module.def
+++ b/modules/platforms/cpp/common/project/vs/module.def
@@ -132,3 +132,4 @@ IgniteAtomicReferenceIsClosed @129
 IgniteAtomicReferenceClose @130
 IgniteProcessorCreateNearCache @131
 IgniteProcessorGetOrCreateNearCache @132
+IgniteProcessorGetCacheNames @133

http://git-wip-us.apache.org/repos/asf/ignite/blob/72df1104/modules/platforms/cpp/common/src/exports.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/common/src/exports.cpp b/modules/platforms/cpp/common/src/exports.cpp
index 0d951b6..43ccb7a 100644
--- a/modules/platforms/cpp/common/src/exports.cpp
+++ b/modules/platforms/cpp/common/src/exports.cpp
@@ -134,6 +134,10 @@ extern "C" {
         return ctx->ProcessorGetIgniteConfiguration(static_cast<jobject>(obj), memPtr);
     }
 
+	void IGNITE_CALL IgniteProcessorGetCacheNames(gcj::JniContext* ctx, void* obj, long long memPtr) {
+        return ctx->ProcessorGetCacheNames(static_cast<jobject>(obj), memPtr);
+    }
+
     long long IGNITE_CALL IgniteTargetInStreamOutLong(gcj::JniContext* ctx, void* obj, int opType, long long memPtr) {
         return ctx->TargetInStreamOutLong(static_cast<jobject>(obj), opType, memPtr);
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/72df1104/modules/platforms/cpp/common/src/java.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/common/src/java.cpp b/modules/platforms/cpp/common/src/java.cpp
index 081a606..663e2b1 100644
--- a/modules/platforms/cpp/common/src/java.cpp
+++ b/modules/platforms/cpp/common/src/java.cpp
@@ -208,6 +208,7 @@ namespace ignite
             JniMethod M_PLATFORM_PROCESSOR_ATOMIC_SEQUENCE = JniMethod("atomicSequence", "(Ljava/lang/String;JZ)Lorg/apache/ignite/internal/processors/platform/PlatformTarget;", false);
             JniMethod M_PLATFORM_PROCESSOR_ATOMIC_REFERENCE = JniMethod("atomicReference", "(Ljava/lang/String;JZ)Lorg/apache/ignite/internal/processors/platform/PlatformTarget;", false);            
             JniMethod M_PLATFORM_PROCESSOR_GET_IGNITE_CONFIGURATION = JniMethod("getIgniteConfiguration", "(J)V", false);
+            JniMethod M_PLATFORM_PROCESSOR_GET_CACHE_NAMES = JniMethod("getCacheNames", "(J)V", false);
 
             const char* C_PLATFORM_TARGET = "org/apache/ignite/internal/processors/platform/PlatformTarget";
             JniMethod M_PLATFORM_TARGET_IN_STREAM_OUT_LONG = JniMethod("inStreamOutLong", "(IJ)J", false);
@@ -679,6 +680,7 @@ namespace ignite
                 m_PlatformProcessor_atomicSequence = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_ATOMIC_SEQUENCE);
                 m_PlatformProcessor_atomicReference = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_ATOMIC_REFERENCE);
 				m_PlatformProcessor_getIgniteConfiguration = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_GET_IGNITE_CONFIGURATION);
+				m_PlatformProcessor_getCacheNames = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_GET_CACHE_NAMES);
 
                 c_PlatformTarget = FindClass(env, C_PLATFORM_TARGET);
                 m_PlatformTarget_inStreamOutLong = FindMethod(env, c_PlatformTarget, M_PLATFORM_TARGET_IN_STREAM_OUT_LONG);
@@ -1462,6 +1464,15 @@ namespace ignite
                 ExceptionCheck(env);
             }
 
+            void JniContext::ProcessorGetCacheNames(jobject obj, long long memPtr)
+            {
+                JNIEnv* env = Attach();
+
+                env->CallVoidMethod(obj, jvm->GetMembers().m_PlatformProcessor_getCacheNames, memPtr);
+
+                ExceptionCheck(env);
+            }
+
             long long JniContext::TargetInStreamOutLong(jobject obj, int opType, long long memPtr, JniErrorInfo* err) {
                 JNIEnv* env = Attach();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/72df1104/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheAbstractTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheAbstractTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheAbstractTest.cs
index 9f0528c..62dc2df 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheAbstractTest.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheAbstractTest.cs
@@ -3062,8 +3062,10 @@ namespace Apache.Ignite.Core.Tests.Cache
 
             // Can't get non-existent cache with Cache method
             Assert.Throws<ArgumentException>(() => GetIgnite(0).GetCache<int, int>(randomName));
+            Assert.IsFalse(GetIgnite(0).GetCacheNames().Contains(randomName));
 
             var cache = GetIgnite(0).CreateCache<int, int>(randomName);
+            Assert.IsTrue(GetIgnite(0).GetCacheNames().Contains(randomName));
 
             cache.Put(1, 10);
 
@@ -3111,9 +3113,12 @@ namespace Apache.Ignite.Core.Tests.Cache
             var cache = ignite.CreateCache<int, int>(cacheName);
 
             Assert.IsNotNull(ignite.GetCache<int, int>(cacheName));
+            Assert.IsTrue(GetIgnite(0).GetCacheNames().Contains(cacheName));
 
             ignite.DestroyCache(cache.Name);
 
+            Assert.IsFalse(GetIgnite(0).GetCacheNames().Contains(cacheName));
+
             var ex = Assert.Throws<ArgumentException>(() => ignite.GetCache<int, int>(cacheName));
 
             Assert.IsTrue(ex.Message.StartsWith("Cache doesn't exist"));
@@ -3121,6 +3126,19 @@ namespace Apache.Ignite.Core.Tests.Cache
             Assert.Throws<InvalidOperationException>(() => cache.Get(1));
         }
 
+        [Test]
+        public void TestCacheNames()
+        {
+            var cacheNames = GetIgnite(0).GetCacheNames();
+            var expectedNames = new[]
+            {
+                "local", "local_atomic", "partitioned", "partitioned_atomic",
+                "partitioned_near", "partitioned_atomic_near", "replicated", "replicated_atomic"
+            };
+
+            Assert.AreEqual(0, expectedNames.Except(cacheNames).Count());
+        }
+
 
         [Test]
         public void TestIndexer()

http://git-wip-us.apache.org/repos/asf/ignite/blob/72df1104/modules/platforms/dotnet/Apache.Ignite.Core/IIgnite.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/IIgnite.cs b/modules/platforms/dotnet/Apache.Ignite.Core/IIgnite.cs
index 428c1a8..b45c625 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/IIgnite.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/IIgnite.cs
@@ -18,6 +18,7 @@
 namespace Apache.Ignite.Core
 {
     using System;
+    using System.Collections.Generic;
     using System.Diagnostics.CodeAnalysis;
     using Apache.Ignite.Core.Binary;
     using Apache.Ignite.Core.Cache;
@@ -266,5 +267,12 @@ namespace Apache.Ignite.Core
         /// <typeparam name="TV">Cache value type.</typeparam>
         /// <returns>Near cache instance.</returns>
         ICache<TK, TV> GetOrCreateNearCache<TK, TV>(string name, NearCacheConfiguration configuration);
+
+        /// <summary>
+        /// Gets the collection of names of currently available caches, or empty collection if there are no caches.
+        /// Note that null string is a valid cache name.
+        /// </summary>
+        /// <returns>Collection of names of currently available caches.</returns>
+        ICollection<string> GetCacheNames();
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/72df1104/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs
index b84ff29..aee82a7 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs
@@ -622,6 +622,24 @@ namespace Apache.Ignite.Core.Impl
             return GetOrCreateNearCache0<TK, TV>(name, configuration, UU.ProcessorGetOrCreateNearCache);
         }
 
+        /** <inheritdoc /> */
+        public ICollection<string> GetCacheNames()
+        {
+            using (var stream = IgniteManager.Memory.Allocate(1024).GetStream())
+            {
+                UU.ProcessorGetCacheNames(_proc, stream.MemoryPointer);
+                stream.SynchronizeInput();
+
+                var reader = _marsh.StartUnmarshal(stream);
+                var res = new string[stream.ReadInt()];
+
+                for (int i = 0; i < res.Length; i++)
+                    res[i] = reader.ReadString();
+
+                return res;
+            }
+        }
+
         /// <summary>
         /// Gets or creates near cache.
         /// </summary>

http://git-wip-us.apache.org/repos/asf/ignite/blob/72df1104/modules/platforms/dotnet/Apache.Ignite.Core/Impl/IgniteProxy.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/IgniteProxy.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/IgniteProxy.cs
index a767077..0ad056a 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/IgniteProxy.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/IgniteProxy.cs
@@ -366,12 +366,19 @@ namespace Apache.Ignite.Core.Impl
             return _ignite.CreateNearCache<TK, TV>(name, configuration);
         }
 
+        /** <inheritdoc /> */
         public ICache<TK, TV> GetOrCreateNearCache<TK, TV>(string name, NearCacheConfiguration configuration)
         {
             return _ignite.GetOrCreateNearCache<TK, TV>(name, configuration);
         }
 
         /** <inheritdoc /> */
+        public ICollection<string> GetCacheNames()
+        {
+            return _ignite.GetCacheNames();
+        }
+
+        /** <inheritdoc /> */
         public IAtomicSequence GetAtomicSequence(string name, long initialValue, bool create)
         {
             return _ignite.GetAtomicSequence(name, initialValue, create);

http://git-wip-us.apache.org/repos/asf/ignite/blob/72df1104/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/IgniteJniNativeMethods.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/IgniteJniNativeMethods.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/IgniteJniNativeMethods.cs
index 2603841..bb26382 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/IgniteJniNativeMethods.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/IgniteJniNativeMethods.cs
@@ -110,6 +110,9 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
         [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorGetIgniteConfiguration")]
         public static extern void ProcessorGetIgniteConfiguration(void* ctx, void* obj, long memPtr);
 
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorGetCacheNames")]
+        public static extern void ProcessorGetCacheNames(void* ctx, void* obj, long memPtr);
+
         [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTargetInStreamOutLong")]
         public static extern long TargetInStreamOutLong(void* ctx, void* target, int opType, long memPtr);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/72df1104/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedUtils.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedUtils.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedUtils.cs
index f8b5256..a0abfaa 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedUtils.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedUtils.cs
@@ -356,6 +356,11 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
             JNI.ProcessorGetIgniteConfiguration(target.Context, target.Target, memPtr);
         }
 
+        internal static void ProcessorGetCacheNames(IUnmanagedTarget target, long memPtr)
+        {
+            JNI.ProcessorGetCacheNames(target.Context, target.Target, memPtr);
+        }
+
         #endregion
 
         #region NATIVE METHODS: TARGET


[15/20] ignite git commit: Merge branch 'master' into ignite-2523-1-resp

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


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

Branch: refs/heads/ignite-2523-1
Commit: bc3a39690b66b0395524e60c60f1c592e9c3d6d9
Parents: 834c9da 8dd6f19
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Fri Apr 29 09:02:08 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Fri Apr 29 09:02:08 2016 +0300

----------------------------------------------------------------------
 .../cache/BinaryObjectOffHeapUnswapTemporaryTest.java   | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
----------------------------------------------------------------------



[08/20] ignite git commit: Minors.

Posted by vo...@apache.org.
Minors.


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

Branch: refs/heads/ignite-2523-1
Commit: f64cdcced0b50002820e448429e6ad15f4308068
Parents: fe132a5
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Apr 26 16:31:32 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Apr 26 16:31:32 2016 +0300

----------------------------------------------------------------------
 .../dht/atomic/GridNearAtomicAbstractUpdateResponse.java     | 5 +++++
 .../dht/atomic/GridNearAtomicSingleUpdateResponse.java       | 5 +++++
 .../distributed/dht/atomic/GridNearAtomicUpdateResponse.java | 8 ++++++--
 3 files changed, 16 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/f64cdcce/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java
index e945604..56bdd66 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java
@@ -198,4 +198,9 @@ public abstract class GridNearAtomicAbstractUpdateResponse extends GridCacheMess
      * @param e Error cause.
      */
     public abstract void addFailedKeys(GridNearAtomicAbstractUpdateRequest req, Throwable e);
+
+    /**
+     * @return {@code True} is this is a response for a single key-value pair update.
+     */
+    public abstract boolean isSingle();
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/f64cdcce/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
index 9ec6fcf..fcb7afc 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
@@ -293,6 +293,11 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
         err.addSuppressed(e);
     }
 
+    /** {@inheritDoc} */
+    @Override public boolean isSingle() {
+        return true;
+    }
+
     /** {@inheritDoc}
      * @param ctx*/
     @Override public void prepareMarshal(GridCacheSharedContext ctx) throws IgniteCheckedException {

http://git-wip-us.apache.org/repos/asf/ignite/blob/f64cdcce/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
index 7e27657..34d3fe3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
@@ -330,8 +330,12 @@ public class GridNearAtomicUpdateResponse extends GridNearAtomicAbstractUpdateRe
         err.addSuppressed(e);
     }
 
-    /** {@inheritDoc}
-     * @param ctx*/
+    /** {@inheritDoc} */
+    @Override public boolean isSingle() {
+        return false;
+    }
+
+    /** {@inheritDoc} */
     @Override public void prepareMarshal(GridCacheSharedContext ctx) throws IgniteCheckedException {
         super.prepareMarshal(ctx);
 


[09/20] ignite git commit: Reworked "failedKey" - now it is a flag.

Posted by vo...@apache.org.
Reworked "failedKey" - now it is a flag.


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

Branch: refs/heads/ignite-2523-1
Commit: 4372eb51f83a2b72ae10e72db7710dba3d13d8b2
Parents: f64cdcc
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Apr 26 16:35:50 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Apr 26 16:35:50 2016 +0300

----------------------------------------------------------------------
 .../dht/atomic/GridDhtAtomicCache.java          |  2 +-
 .../GridNearAtomicAbstractUpdateResponse.java   |  3 ++-
 .../GridNearAtomicSingleUpdateFuture.java       |  3 ++-
 .../GridNearAtomicSingleUpdateResponse.java     | 21 ++++++++++----------
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |  3 ++-
 .../atomic/GridNearAtomicUpdateResponse.java    |  2 +-
 .../distributed/near/GridNearAtomicCache.java   |  2 +-
 7 files changed, 19 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/4372eb51/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 4018663..4c5d46c 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
@@ -218,7 +218,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
                         Collection<KeyCacheObject> failedKeys = new ArrayList<>(res.failedKeysCount());
 
                         for (int i = 0; i < res.failedKeysCount(); i++)
-                            failedKeys.add(res.failedKey(i));
+                            failedKeys.add(res.failedKey(req, i));
 
                         U.error(log, "Failed to process write update request in FULL_ASYNC mode for keys: " +
                             failedKeys, res.error());

http://git-wip-us.apache.org/repos/asf/ignite/blob/4372eb51/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java
index 56bdd66..4fb6b32 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java
@@ -77,10 +77,11 @@ public abstract class GridNearAtomicAbstractUpdateResponse extends GridCacheMess
     public abstract int failedKeysCount();
 
     /**
+     * @param req Request.
      * @param idx Index.
      * @return Failed key.
      */
-    public abstract KeyCacheObject failedKey(int idx);
+    public abstract KeyCacheObject failedKey(GridNearAtomicAbstractUpdateRequest req, int idx);
 
     /**
      * @return Return value.

http://git-wip-us.apache.org/repos/asf/ignite/blob/4372eb51/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
index a6cff49..9448d74 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
@@ -248,7 +248,8 @@ public class GridNearAtomicSingleUpdateFuture extends GridNearAtomicAbstractUpda
                     Collection<Object> keys = new ArrayList<>(res.failedKeysCount());
 
                     for (int i = 0; i < res.failedKeysCount(); i++)
-                        keys.add(cctx.cacheObjectContext().unwrapBinaryIfNeeded(res.failedKey(i), keepBinary, false));
+                        keys.add(cctx.cacheObjectContext().unwrapBinaryIfNeeded(
+                            res.failedKey(req, i), keepBinary, false));
 
                     err.add(keys, res.error(), req.topologyVersion());
                 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/4372eb51/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
index fcb7afc..41fa699 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
@@ -64,7 +64,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
 
     /** Failed keys. */
     @GridToStringInclude
-    private volatile KeyCacheObject failedKey;
+    private volatile boolean failedKey;
 
     /** Keys that should be remapped. */
     @GridToStringInclude
@@ -138,14 +138,15 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
 
     /** {@inheritDoc} */
     @Override public int failedKeysCount() {
-        return failedKey == null ? 0 : 1;
+        return failedKey ? 1 : 0;
     }
 
     /** {@inheritDoc} */
-    @Override public KeyCacheObject failedKey(int idx) {
+    @Override public KeyCacheObject failedKey(GridNearAtomicAbstractUpdateRequest req, int idx) {
         assert idx == 0;
+        assert failedKey;
 
-        return failedKey;
+        return req.key(0);
     }
 
     /** {@inheritDoc} */
@@ -256,7 +257,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
 
     /** {@inheritDoc} */
     @Override public synchronized void addFailedKey(KeyCacheObject key, Throwable e) {
-        failedKey = key;
+        failedKey = true;
 
         setFailedKeysError(e);
     }
@@ -266,7 +267,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
         if (keys != null) {
             assert keys.size() == 1;
 
-            failedKey = keys.iterator().next();
+            failedKey = true;
         }
 
         setFailedKeysError(e);
@@ -276,7 +277,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
     @Override public synchronized void addFailedKeys(GridNearAtomicAbstractUpdateRequest req, Throwable e) {
         assert req instanceof GridNearAtomicSingleUpdateRequest;
 
-        failedKey = req.key(0);
+        failedKey = true;
 
         setFailedKeysError(e);
     }
@@ -308,7 +309,6 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
 
         GridCacheContext cctx = ctx.cacheContext(cacheId);
 
-        prepareMarshalCacheObject(failedKey, cctx);
         prepareMarshalCacheObject(remapKey, cctx);
         prepareMarshalCacheObject(nearVal, cctx);
 
@@ -325,7 +325,6 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
 
         GridCacheContext cctx = ctx.cacheContext(cacheId);
 
-        finishUnmarshalCacheObject(failedKey, cctx, ldr);
         finishUnmarshalCacheObject(remapKey, cctx, ldr);
         finishUnmarshalCacheObject(nearVal, cctx, ldr);
 
@@ -357,7 +356,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
                 writer.incrementState();
 
             case 4:
-                if (!writer.writeMessage("failedKey", failedKey))
+                if (!writer.writeBoolean("failedKey", failedKey))
                     return false;
 
                 writer.incrementState();
@@ -441,7 +440,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
                 reader.incrementState();
 
             case 4:
-                failedKey = reader.readMessage("failedKey");
+                failedKey = reader.readBoolean("failedKey");
 
                 if (!reader.isLastRead())
                     return false;

http://git-wip-us.apache.org/repos/asf/ignite/blob/4372eb51/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 07071f2..a858bca 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
@@ -319,7 +319,8 @@ public class GridNearAtomicUpdateFuture extends GridNearAtomicAbstractUpdateFutu
                     Collection<Object> keys = new ArrayList<>(res.failedKeysCount());
 
                     for (int i = 0; i < res.failedKeysCount(); i++)
-                        keys.add(cctx.cacheObjectContext().unwrapBinaryIfNeeded(res.failedKey(i), keepBinary, false));
+                        keys.add(cctx.cacheObjectContext().unwrapBinaryIfNeeded(
+                            res.failedKey(req, i), keepBinary, false));
 
                     err.add(keys, res.error(), req.topologyVersion());
                 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/4372eb51/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
index 34d3fe3..c14e376 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
@@ -151,7 +151,7 @@ public class GridNearAtomicUpdateResponse extends GridNearAtomicAbstractUpdateRe
     }
 
     /** {@inheritDoc} */
-    @Override public KeyCacheObject failedKey(int idx) {
+    @Override public KeyCacheObject failedKey(GridNearAtomicAbstractUpdateRequest req, int idx) {
         return failedKeys.get(idx);
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/4372eb51/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
index 995b948..97be2eb 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
@@ -156,7 +156,7 @@ public class GridNearAtomicCache<K, V> extends GridNearCacheAdapter<K, V> {
             boolean failed = false;
 
             for (int j = 0; j < res.failedKeysCount(); j++) {
-                if (F.eq(res.failedKey(j), key)) {
+                if (F.eq(res.failedKey(req, j), key)) {
                     failed = true;
 
                     break;


[18/20] ignite git commit: IGNITE-3041: Implement config variations test for IgniteServices

Posted by vo...@apache.org.
IGNITE-3041: Implement config variations test for IgniteServices


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

Branch: refs/heads/ignite-2523-1
Commit: 6c705daa9c9c3a6540d582f8ef1195cccf4e7849
Parents: 97facf3
Author: sboikov <sb...@gridgain.com>
Authored: Fri Apr 29 12:21:02 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Apr 29 12:21:02 2016 +0300

----------------------------------------------------------------------
 ...gniteServiceConfigVariationsFullApiTest.java | 350 +++++++++++++++++++
 .../configvariations/VariationsTestsConfig.java |   2 +-
 .../IgniteConfigVariationsAbstractTest.java     |  72 +++-
 ...ServiceConfigVariationsFullApiTestSuite.java |  92 +++++
 4 files changed, 507 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/6c705daa/modules/core/src/test/java/org/apache/ignite/internal/processors/service/IgniteServiceConfigVariationsFullApiTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/IgniteServiceConfigVariationsFullApiTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/IgniteServiceConfigVariationsFullApiTest.java
new file mode 100644
index 0000000..4e6d1e6
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/IgniteServiceConfigVariationsFullApiTest.java
@@ -0,0 +1,350 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.service;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.Serializable;
+import java.util.concurrent.ThreadLocalRandom;
+import javax.cache.configuration.Factory;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.IgniteServices;
+import org.apache.ignite.binary.BinaryObjectException;
+import org.apache.ignite.binary.BinaryReader;
+import org.apache.ignite.binary.BinaryWriter;
+import org.apache.ignite.binary.Binarylizable;
+import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.services.Service;
+import org.apache.ignite.services.ServiceConfiguration;
+import org.apache.ignite.services.ServiceContext;
+import org.apache.ignite.testframework.configvariations.Parameters;
+import org.apache.ignite.testframework.junits.IgniteConfigVariationsAbstractTest;
+
+/**
+ * Full API services test.
+ */
+public class IgniteServiceConfigVariationsFullApiTest extends IgniteConfigVariationsAbstractTest {
+    /** Test service name. */
+    private static final String SERVICE_NAME = "testService";
+
+    /** Test service name. */
+    private static final String CACHE_NAME = "testCache";
+
+    /** */
+    protected static final int CLIENT_NODE_IDX_2 = 4;
+
+    /** Test object id counter. */
+    private static int cntr;
+
+    /** Callable factories. */
+    @SuppressWarnings("unchecked")
+    private static final Factory[] serviceFactories = new Factory[] {
+        Parameters.factory(TestServiceImpl.class),
+        Parameters.factory(TestServiceImplExternalizable.class),
+        Parameters.factory(TestServiceImplBinarylizable.class)
+    };
+
+    /** {@inheritDoc} */
+    @Override protected boolean expectedClient(String testGridName) {
+        int i = testsCfg.gridCount();
+
+        if (i < 5)
+            return super.expectedClient(testGridName);
+
+        // Use two client nodes if grid index 5 or greater.
+        return getTestGridName(CLIENT_NODE_IDX).equals(testGridName)
+            || getTestGridName(CLIENT_NODE_IDX_2).equals(testGridName);
+    }
+
+    /**
+     * Test node singleton deployment
+     *
+     * @throws Exception If failed.
+     */
+    public void testNodeSingletonDeploy() throws Exception {
+        runInAllDataModes(new ServiceTestRunnable(true, new DeployClosure() {
+            @Override public void run(IgniteServices services, String svcName, TestService svc) {
+                services.deployNodeSingleton(svcName, (Service)svc);
+            }
+        }));
+    }
+
+    /**
+     * Test cluster singleton deployment
+     *
+     * @throws Exception If failed.
+     */
+    public void testClusterSingletonDeploy() throws Exception {
+        runInAllDataModes(new ServiceTestRunnable(false, new DeployClosure() {
+            @Override public void run(IgniteServices services, String svcName, TestService svc) {
+                services.deployClusterSingleton(svcName, (Service)svc);
+            }
+        }));
+    }
+
+    /**
+     * Test key affinity deployment
+     *
+     * @throws Exception If failed.
+     */
+    public void testKeyAffinityDeploy() throws Exception {
+        runInAllDataModes(new ServiceTestRunnable(false, new DeployClosure() {
+            @Override public void run(IgniteServices services, String svcName, TestService svc) {
+                IgniteCache<Object, Object> cache = grid(testedNodeIdx).getOrCreateCache(CACHE_NAME);
+
+                services.deployKeyAffinitySingleton(svcName, (Service)svc, cache.getName(), "1");
+            }
+        }));
+    }
+
+    /**
+     * Tests multiple deployment
+     *
+     * @throws Exception If failed.
+     */
+    public void testMultipleDeploy() throws Exception {
+        runInAllDataModes(new ServiceTestRunnable(true, new DeployClosure() {
+            @Override public void run(IgniteServices services, String svcName, TestService svc) {
+                services.deployMultiple(svcName, (Service)svc, 0, 1);
+            }
+        }));
+    }
+
+    /**
+     * Tests deployment.
+     *
+     * @throws Exception If failed.
+     */
+    public void testDeploy() throws Exception {
+        runInAllDataModes(new ServiceTestRunnable(false, new DeployClosure() {
+            @Override public void run(IgniteServices services, String svcName, TestService svc) {
+                services.deployClusterSingleton(svcName, (Service)svc);
+
+                ServiceConfiguration cfg = new ServiceConfiguration();
+
+                cfg.setName(svcName);
+
+                cfg.setService((Service)svc);
+
+                cfg.setTotalCount(1);
+
+                cfg.setMaxPerNodeCount(1);
+
+                cfg.setNodeFilter(services.clusterGroup().predicate());
+
+                services.deploy(cfg);
+            }
+        }));
+    }
+
+    /**
+     * Service test closure
+     */
+    private class ServiceTestRunnable implements TestRunnable {
+        /** Sticky. */
+        private final boolean sticky;
+
+        /** Deploy closure */
+        private final DeployClosure deployC;
+
+        /**
+         * Default constructor.
+         *
+         * @param sticky Sticky flag.
+         * @param deployC Closure.
+         */
+        public ServiceTestRunnable(boolean sticky, DeployClosure deployC) {
+            this.sticky = sticky;
+
+            this.deployC = deployC;
+        }
+
+        /** {@inheritDoc} */
+        @Override public void run() throws Exception {
+            for (Factory factory : serviceFactories)
+                testService((TestService)factory.create(), sticky, deployC);
+        }
+    }
+
+    /**
+     *
+     */
+    interface DeployClosure {
+        /**
+         * @param services Services.
+         * @param svcName Service name.
+         * @param svc Service.
+         */
+        void run(IgniteServices services, String svcName, TestService svc);
+    }
+
+    /**
+     * Tests deployment and contract.
+     *
+     * @param svc Service.
+     * @param sticky Sticky.
+     * @param deployC Closure.
+     * @throws Exception If failed.
+     */
+    protected void testService(TestService svc, boolean sticky, DeployClosure deployC) throws Exception {
+        IgniteEx ignite = testedGrid();
+
+        IgniteServices services = ignite.services();
+
+        Object expected = value(++cntr);
+
+        // Put value for testing Service instance serialization.
+        svc.setValue(expected);
+
+        deployC.run(services, SERVICE_NAME, svc);
+
+        // Expect correct value from local instance.
+        assertEquals(expected, svc.getValue());
+
+        // Use stickiness to make sure data will be fetched from the same instance.
+        TestService proxy = services.serviceProxy(SERVICE_NAME, TestService.class, sticky);
+
+        // Expect that correct value is returned from deployed instance.
+        assertEquals(expected, proxy.getValue());
+
+        expected = value(++cntr);
+
+        // Change value.
+        proxy.setValue(expected);
+
+        // Expect correct value after being read back.
+        int r = 1000;
+
+        while(r-- > 0)
+            assertEquals(expected, proxy.getValue());
+
+        assertEquals("Expected 1 deployed service", 1, services.serviceDescriptors().size());
+
+        // Randomize stop method invocation
+        boolean tmp = ThreadLocalRandom.current().nextBoolean();
+
+        if (tmp)
+            services.cancelAll();
+        else
+            services.cancel(SERVICE_NAME);
+    }
+
+    /**
+     * Test service
+     */
+    public interface TestService {
+        /**
+         * @param o argument to set.
+         */
+        void setValue(Object o);
+
+        /**
+         * @return Argument
+         * @throws Exception If failed.
+         */
+        Object getValue() throws Exception;
+    }
+
+    /**
+     * Implementation for {@link TestService}
+     */
+    public static class TestServiceImpl implements Service, TestService, Serializable {
+        /** Test value. */
+        protected Object val;
+
+        /**
+         * Default constructor.
+         */
+        public TestServiceImpl() {
+            // No-op.
+        }
+
+        /** {@inheritDoc} */
+        @Override public Object getValue() throws Exception {
+            return val;
+        }
+
+        /** {@inheritDoc} */
+        @Override public void cancel(ServiceContext ctx) {
+            // No-op
+        }
+
+        /** {@inheritDoc} */
+        @Override public void init(ServiceContext ctx) throws Exception {
+            // No-op
+        }
+
+        /** {@inheritDoc} */
+        @Override public void execute(ServiceContext ctx) throws Exception {
+            // No-op
+        }
+
+        /** {@inheritDoc} */
+        public void setValue(Object val) {
+            this.val = val;
+        }
+    }
+
+    /**
+     * Echo service, externalizable object
+     */
+    @SuppressWarnings({"PublicInnerClass"})
+    public static class TestServiceImplExternalizable extends TestServiceImpl implements Externalizable {
+        /**
+         * Default constructor.
+         */
+        public TestServiceImplExternalizable() {
+            // No-op.
+        }
+
+        /** {@inheritDoc} */
+        @Override public void writeExternal(ObjectOutput out) throws IOException {
+            out.writeObject(val);
+        }
+
+        /** {@inheritDoc} */
+        @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+            val = in.readObject();
+        }
+    }
+
+    /**
+     * Echo service, binarylizable object
+     */
+    @SuppressWarnings({"PublicInnerClass"})
+    public static class TestServiceImplBinarylizable extends TestServiceImpl implements Binarylizable {
+        /**
+         * Default constructor.
+         */
+        public TestServiceImplBinarylizable() {
+            // No-op.
+        }
+
+        /** {@inheritDoc} */
+        @Override public void writeBinary(BinaryWriter writer) throws BinaryObjectException {
+            writer.writeObject("arg", val);
+        }
+
+        /** {@inheritDoc} */
+        @Override public void readBinary(BinaryReader reader) throws BinaryObjectException {
+            val = reader.readObject("arg");
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/6c705daa/modules/core/src/test/java/org/apache/ignite/testframework/configvariations/VariationsTestsConfig.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/configvariations/VariationsTestsConfig.java b/modules/core/src/test/java/org/apache/ignite/testframework/configvariations/VariationsTestsConfig.java
index 7bcfc7f..929b0c8 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/configvariations/VariationsTestsConfig.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/configvariations/VariationsTestsConfig.java
@@ -70,7 +70,7 @@ public class VariationsTestsConfig {
      * @param factory Factory.
      * @param desc Config description.
      * @param stopNodes Stope nodes.
-     * @param gridCnt Grdi count.
+     * @param gridCnt Grid count.
      */
     public VariationsTestsConfig(
         ConfigFactory factory,

http://git-wip-us.apache.org/repos/asf/ignite/blob/6c705daa/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteConfigVariationsAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteConfigVariationsAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteConfigVariationsAbstractTest.java
index 258eba8..3b8c046 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteConfigVariationsAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteConfigVariationsAbstractTest.java
@@ -27,6 +27,10 @@ import java.io.ObjectOutputStream;
 import java.io.Serializable;
 import org.apache.commons.io.FileUtils;
 import org.apache.ignite.Ignition;
+import org.apache.ignite.binary.BinaryObjectException;
+import org.apache.ignite.binary.BinaryReader;
+import org.apache.ignite.binary.BinaryWriter;
+import org.apache.ignite.binary.Binarylizable;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.internal.util.typedef.internal.U;
@@ -200,12 +204,12 @@ public abstract class IgniteConfigVariationsAbstractTest extends GridCommonAbstr
         for (int i = 0; i < DataMode.values().length; i++) {
             dataMode = DataMode.values()[i];
 
-            if ((getConfiguration().getMarshaller() instanceof JdkMarshaller)
-                && (dataMode == DataMode.PLANE_OBJECT)) {
-                info("Skip test for JdkMarshaller & PLANE_OBJECT data mode");
+            if (!isCompatible()) {
+                info("Skipping test in data mode: " + dataMode);
+
                 continue;
             }
-
+            
             info("Running test in data mode: " + dataMode);
 
             if (i != 0)
@@ -250,6 +254,8 @@ public abstract class IgniteConfigVariationsAbstractTest extends GridCommonAbstr
                 return new ExternalizableObject(keyId);
             case PLANE_OBJECT:
                 return new TestObject(keyId);
+            case BINARILIZABLE:
+                return new BinarylizableObject(keyId);
             default:
                 throw new IllegalArgumentException("mode: " + mode);
         }
@@ -279,6 +285,8 @@ public abstract class IgniteConfigVariationsAbstractTest extends GridCommonAbstr
                 return new ExternalizableObject(idx);
             case PLANE_OBJECT:
                 return new TestObject(idx);
+            case BINARILIZABLE:
+                return new BinarylizableObject(idx);
             default:
                 throw new IllegalArgumentException("mode: " + mode);
         }
@@ -395,7 +403,7 @@ public abstract class IgniteConfigVariationsAbstractTest extends GridCommonAbstr
         /**
          * Default constructor.
          */
-        public ExternalizableObject() {
+        ExternalizableObject() {
             super(-1);
         }
 
@@ -422,6 +430,37 @@ public abstract class IgniteConfigVariationsAbstractTest extends GridCommonAbstr
     }
 
     /**
+     *
+     */
+    public static class BinarylizableObject extends TestObject implements Binarylizable {
+        /**
+         * Default constructor.
+         */
+        public BinarylizableObject() {
+            super(-1);
+        }
+
+        /**
+         * @param val Value.
+         */
+        public BinarylizableObject(int val) {
+            super(val);
+        }
+
+        @Override public void writeBinary(BinaryWriter writer) throws BinaryObjectException {
+            writer.writeInt("val", val);
+            writer.writeString("strVal", strVal);
+            writer.writeEnum("enumVal", enumVal);
+        }
+
+        @Override public void readBinary(BinaryReader reader) throws BinaryObjectException {
+            val = reader.readInt("val");
+            strVal = reader.readString("strVal");
+            enumVal = reader.readEnum("enumVal");
+        }
+    }
+
+    /**
      * Data mode.
      */
     public enum DataMode {
@@ -432,7 +471,10 @@ public abstract class IgniteConfigVariationsAbstractTest extends GridCommonAbstr
         EXTERNALIZABLE,
 
         /** Objects without Serializable and Externalizable. */
-        PLANE_OBJECT
+        PLANE_OBJECT,
+
+        /** Binarylizable objects. Compatible only with binary marshaller */
+        BINARILIZABLE
     }
 
     /**
@@ -452,10 +494,24 @@ public abstract class IgniteConfigVariationsAbstractTest extends GridCommonAbstr
     /**
      *
      */
-    public static interface TestRunnable {
+    public interface TestRunnable {
         /**
          * @throws Exception If failed.
          */
-        public void run() throws Exception;
+        void run() throws Exception;
+    }
+
+    /**
+     * Check test compatibility with current data mode
+     * @return true if incompatible
+     * @throws Exception
+     */
+    protected boolean isCompatible() throws Exception {
+        switch (dataMode) {
+            case BINARILIZABLE:
+            case PLANE_OBJECT:
+                return !(getConfiguration().getMarshaller() instanceof JdkMarshaller);
+        }
+        return false;
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/6c705daa/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteServiceConfigVariationsFullApiTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteServiceConfigVariationsFullApiTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteServiceConfigVariationsFullApiTestSuite.java
new file mode 100644
index 0000000..328ae8d
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteServiceConfigVariationsFullApiTestSuite.java
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.testsuites;
+
+import junit.framework.TestSuite;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.binary.BinaryMarshaller;
+import org.apache.ignite.internal.processors.service.IgniteServiceConfigVariationsFullApiTest;
+import org.apache.ignite.marshaller.jdk.JdkMarshaller;
+import org.apache.ignite.testframework.configvariations.ConfigParameter;
+import org.apache.ignite.testframework.configvariations.ConfigVariations;
+import org.apache.ignite.testframework.configvariations.ConfigVariationsTestSuiteBuilder;
+import org.apache.ignite.testframework.configvariations.Parameters;
+
+/**
+ * Full API service test suit.
+ */
+public class IgniteServiceConfigVariationsFullApiTestSuite extends TestSuite {
+    /** */
+    @SuppressWarnings("unchecked")
+    private static final ConfigParameter<IgniteConfiguration>[][] PARAMS = new ConfigParameter[][] {
+        Parameters.objectParameters("setMarshaller",
+            Parameters.factory(JdkMarshaller.class),
+            Parameters.factory(BinaryMarshaller.class),
+            ConfigVariations.optimizedMarshallerFactory()
+        ),
+
+        Parameters.booleanParameters("setPeerClassLoadingEnabled")
+    };
+
+    /**
+     * @return Compute API test suite.
+     * @throws Exception If failed.
+     */
+    public static TestSuite suite() throws Exception {
+        TestSuite suite = new TestSuite("Service Deployment New Full API Test Suite");
+
+        suite.addTest(new ConfigVariationsTestSuiteBuilder(
+            "Single server",
+            IgniteServiceConfigVariationsFullApiTest.class)
+            .igniteParams(PARAMS)
+            .gridsCount(1)
+            .build());
+
+        // Tests run on server (node#0) & client(node#1).
+        suite.addTest(new ConfigVariationsTestSuiteBuilder(
+            "1 server, 1 client",
+            IgniteServiceConfigVariationsFullApiTest.class)
+            .igniteParams(PARAMS)
+            .gridsCount(2)
+            .testedNodesCount(2)
+            .withClients()
+            .build());
+
+        // Tests run on servers (node#0,node#2,node#3) & client(node#1).
+        suite.addTest(new ConfigVariationsTestSuiteBuilder(
+            "3 servers, 1 client",
+            IgniteServiceConfigVariationsFullApiTest.class)
+            .igniteParams(PARAMS)
+            .gridsCount(4)
+            .testedNodesCount(2)
+            .withClients()
+            .build());
+
+        // Tests run on servers (node#0,node#2,node#3) & client(node#1,node#4).
+        suite.addTest(new ConfigVariationsTestSuiteBuilder(
+            "3 servers, 2 clients",
+            IgniteServiceConfigVariationsFullApiTest.class)
+            .igniteParams(PARAMS)
+            .gridsCount(5)
+            .testedNodesCount(2)
+            .withClients()
+            .build());
+
+        return suite;
+    }
+}
\ No newline at end of file


[02/20] ignite git commit: Added abstract response.

Posted by vo...@apache.org.
Added abstract response.


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

Branch: refs/heads/ignite-2523-1
Commit: 70d2dd745476eddf7b1e55e5ebb33ccf356c9e9f
Parents: 091f5d1
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Apr 26 15:40:12 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Apr 26 15:40:12 2016 +0300

----------------------------------------------------------------------
 .../GridNearAtomicAbstractUpdateRequest.java    |   7 +-
 .../GridNearAtomicAbstractUpdateResponse.java   | 201 +++++++++++++++++++
 .../GridNearAtomicSingleUpdateRequest.java      |   5 -
 .../dht/atomic/GridNearAtomicUpdateRequest.java |   5 -
 .../atomic/GridNearAtomicUpdateResponse.java    | 185 +++++------------
 5 files changed, 256 insertions(+), 147 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/70d2dd74/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java
index b78a70a..6e868e4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java
@@ -33,7 +33,7 @@ import java.util.List;
 import java.util.UUID;
 
 /**
- * Abstract near update request.
+ * Abstract near ATOMIC update request.
  */
 public abstract class GridNearAtomicAbstractUpdateRequest extends GridCacheMessage implements GridCacheDeployable {
     /** */
@@ -43,6 +43,11 @@ public abstract class GridNearAtomicAbstractUpdateRequest extends GridCacheMessa
     public static final int CACHE_MSG_IDX = nextIndexId();
 
     /** {@inheritDoc} */
+    @Override public boolean addDeploymentInfo() {
+        return addDepInfo;
+    }
+
+    /** {@inheritDoc} */
     @Override public int lookupIndex() {
         return CACHE_MSG_IDX;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/70d2dd74/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java
new file mode 100644
index 0000000..e945604
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java
@@ -0,0 +1,201 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.distributed.dht.atomic;
+
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.processors.cache.CacheObject;
+import org.apache.ignite.internal.processors.cache.GridCacheDeployable;
+import org.apache.ignite.internal.processors.cache.GridCacheMessage;
+import org.apache.ignite.internal.processors.cache.GridCacheReturn;
+import org.apache.ignite.internal.processors.cache.KeyCacheObject;
+import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.Collection;
+import java.util.UUID;
+
+/**
+ * Abstract near ATOMIC update response.
+ */
+public abstract class GridNearAtomicAbstractUpdateResponse extends GridCacheMessage implements GridCacheDeployable {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Cache message index. */
+    public static final int CACHE_MSG_IDX = nextIndexId();
+
+    /** {@inheritDoc} */
+    @Override public boolean addDeploymentInfo() {
+        return addDepInfo;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int lookupIndex() {
+        return CACHE_MSG_IDX;
+    }
+
+    /**
+     * @return Node ID this response should be sent to.
+     */
+    public abstract UUID nodeId();
+
+    /**
+     * @param nodeId Node ID.
+     */
+    public abstract void nodeId(UUID nodeId);
+
+    /**
+     * @return Future version.
+     */
+    public abstract GridCacheVersion futureVersion();
+
+    /**
+     * Sets update error.
+     *
+     * @param err Error.
+     */
+    public abstract void error(IgniteCheckedException err);
+
+    /**
+     * @return Failed keys count.
+     */
+    public abstract int failedKeysCount();
+
+    /**
+     * @param idx Index.
+     * @return Failed key.
+     */
+    public abstract KeyCacheObject failedKey(int idx);
+
+    /**
+     * @return Return value.
+     */
+    public abstract GridCacheReturn returnValue();
+
+    /**
+     * @param ret Return value.
+     */
+    @SuppressWarnings("unchecked")
+    public abstract void returnValue(GridCacheReturn ret);
+
+    /**
+     * @param req Request.
+     */
+    public abstract void remapKeys(GridNearAtomicAbstractUpdateRequest req);
+
+    /**
+     * @param idx Index.
+     * @return Remap key.
+     */
+    public abstract KeyCacheObject remapKey(int idx);
+
+    /**
+     * @return Remap keys count.
+     */
+    public abstract int remapKeysCount();
+
+    /**
+     * Adds value to be put in near cache on originating node.
+     *
+     * @param keyIdx Key index.
+     * @param val Value.
+     * @param ttl TTL for near cache update.
+     * @param expireTime Expire time for near cache update.
+     */
+    public abstract void addNearValue(int keyIdx, @Nullable CacheObject val, long ttl, long expireTime);
+
+    /**
+     * @param keyIdx Key index.
+     * @param ttl TTL for near cache update.
+     * @param expireTime Expire time for near cache update.
+     */
+    public abstract void addNearTtl(int keyIdx, long ttl, long expireTime);
+
+    /**
+     * @param idx Index.
+     * @return Expire time for near cache update.
+     */
+    public abstract long nearExpireTime(int idx);
+
+    /**
+     * @param idx Index.
+     * @return TTL for near cache update.
+     */
+    public abstract long nearTtl(int idx);
+
+    /**
+     * @param nearVer Version generated on primary node to be used for originating node's near cache update.
+     */
+    public abstract void nearVersion(GridCacheVersion nearVer);
+
+    /**
+     * @return Version generated on primary node to be used for originating node's near cache update.
+     */
+    public abstract GridCacheVersion nearVersion();
+
+    /**
+     * @param keyIdx Index of key for which update was skipped
+     */
+    public abstract void addSkippedIndex(int keyIdx);
+
+    /**
+     * Check if update was skipped for the given index.
+     *
+     * @param idx Index.
+     * @return {@code True} if skipped.
+     */
+    public abstract boolean isNearSkippedIndex(int idx);
+
+    /**
+     * Check if this is an index of a key for which values were generated on primary node.
+     *
+     * @param idx Index.
+     * @return {@code True} if values were generated on primary node.
+     */
+    public abstract boolean isNearValueIndex(int idx);
+
+    /**
+     * @param idx Index.
+     * @return Value generated on primary node which should be put to originating node's near cache.
+     */
+    @Nullable public abstract CacheObject nearValue(int idx);
+
+    /**
+     * Adds key to collection of failed keys.
+     *
+     * @param key Key to add.
+     * @param e Error cause.
+     */
+    public abstract void addFailedKey(KeyCacheObject key, Throwable e);
+
+    /**
+     * Adds keys to collection of failed keys.
+     *
+     * @param keys Key to add.
+     * @param e Error cause.
+     */
+    public abstract void addFailedKeys(Collection<KeyCacheObject> keys, Throwable e);
+
+    /**
+     * Add keys to collection of failed keys.
+     *
+     * @param req Request.
+     * @param e Error cause.
+     */
+    public abstract void addFailedKeys(GridNearAtomicAbstractUpdateRequest req, Throwable e);
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/70d2dd74/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java
index d2a3034..13b990e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java
@@ -496,11 +496,6 @@ public class GridNearAtomicSingleUpdateRequest extends GridNearAtomicAbstractUpd
     }
 
     /** {@inheritDoc} */
-    @Override public boolean addDeploymentInfo() {
-        return addDepInfo;
-    }
-
-    /** {@inheritDoc} */
     @Override public boolean isSingle() {
         return true;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/70d2dd74/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
index 706190a..d458ac2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
@@ -593,11 +593,6 @@ public class GridNearAtomicUpdateRequest extends GridNearAtomicAbstractUpdateReq
     }
 
     /** {@inheritDoc} */
-    @Override public boolean addDeploymentInfo() {
-        return addDepInfo;
-    }
-
-    /** {@inheritDoc} */
     @Override public boolean isSingle() {
         return false;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/70d2dd74/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
index bc552df..4c50bba 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
@@ -28,8 +28,6 @@ import org.apache.ignite.internal.GridDirectCollection;
 import org.apache.ignite.internal.GridDirectTransient;
 import org.apache.ignite.internal.processors.cache.CacheObject;
 import org.apache.ignite.internal.processors.cache.GridCacheContext;
-import org.apache.ignite.internal.processors.cache.GridCacheDeployable;
-import org.apache.ignite.internal.processors.cache.GridCacheMessage;
 import org.apache.ignite.internal.processors.cache.GridCacheReturn;
 import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
 import org.apache.ignite.internal.processors.cache.KeyCacheObject;
@@ -46,13 +44,10 @@ import org.jetbrains.annotations.Nullable;
 /**
  * DHT atomic cache near update response.
  */
-public class GridNearAtomicUpdateResponse extends GridCacheMessage implements GridCacheDeployable {
+public class GridNearAtomicUpdateResponse extends GridNearAtomicAbstractUpdateResponse {
     /** */
     private static final long serialVersionUID = 0L;
 
-    /** Cache message index. */
-    public static final int CACHE_MSG_IDX = nextIndexId();
-
     /** Node ID this reply should be sent to. */
     @GridDirectTransient
     private UUID nodeId;
@@ -126,37 +121,22 @@ public class GridNearAtomicUpdateResponse extends GridCacheMessage implements Gr
     }
 
     /** {@inheritDoc} */
-    @Override public int lookupIndex() {
-        return CACHE_MSG_IDX;
-    }
-
-    /**
-     * @return Node ID this response should be sent to.
-     */
-    public UUID nodeId() {
+    @Override public UUID nodeId() {
         return nodeId;
     }
 
-    /**
-     * @param nodeId Node ID.
-     */
-    public void nodeId(UUID nodeId) {
+    /** {@inheritDoc} */
+    @Override public void nodeId(UUID nodeId) {
         this.nodeId = nodeId;
     }
 
-    /**
-     * @return Future version.
-     */
-    public GridCacheVersion futureVersion() {
+    /** {@inheritDoc} */
+    @Override public GridCacheVersion futureVersion() {
         return futVer;
     }
 
-    /**
-     * Sets update error.
-     *
-     * @param err Error.
-     */
-    public void error(IgniteCheckedException err){
+    /** {@inheritDoc} */
+    @Override public void error(IgniteCheckedException err){
         this.err = err;
     }
 
@@ -165,70 +145,50 @@ public class GridNearAtomicUpdateResponse extends GridCacheMessage implements Gr
         return err;
     }
 
-    /**
-     * @return Failed keys count.
-     */
-    public int failedKeysCount() {
+    /** {@inheritDoc} */
+    @Override public int failedKeysCount() {
         return failedKeys == null ? 0 : failedKeys.size();
     }
 
-    /**
-     * @param idx Index.
-     * @return Failed key.
-     */
-    public KeyCacheObject failedKey(int idx) {
+    /** {@inheritDoc} */
+    @Override public KeyCacheObject failedKey(int idx) {
         return failedKeys.get(idx);
     }
 
-    /**
-     * @return Return value.
-     */
-    public GridCacheReturn returnValue() {
+    /** {@inheritDoc} */
+    @Override public GridCacheReturn returnValue() {
         return ret;
     }
 
     /**
      * @param ret Return value.
      */
+    /** {@inheritDoc} */
     @SuppressWarnings("unchecked")
-    public void returnValue(GridCacheReturn ret) {
+    @Override public void returnValue(GridCacheReturn ret) {
         this.ret = ret;
     }
 
-    /**
-     * @param req Request.
-     */
-    public void remapKeys(GridNearAtomicAbstractUpdateRequest req) {
+    /** {@inheritDoc} */
+    @Override public void remapKeys(GridNearAtomicAbstractUpdateRequest req) {
         remapKeys = new ArrayList<>(req.keysCount());
 
         for (int i = 0; i < req.keysCount(); i++)
             remapKeys.add(req.key(i));
     }
 
-    /**
-     * @param idx Index.
-     * @return Remap key.
-     */
-    public KeyCacheObject remapKey(int idx) {
+    /** {@inheritDoc} */
+    @Override public KeyCacheObject remapKey(int idx) {
         return remapKeys.get(idx);
     }
 
-    /**
-     * @return Remap keys count.
-     */
-    public int remapKeysCount() {
+    /** {@inheritDoc} */
+    @Override public int remapKeysCount() {
         return remapKeys == null ? 0 : remapKeys.size();
     }
 
-    /**
-     * Adds value to be put in near cache on originating node.
-     *
-     * @param keyIdx Key index.
-     * @param val Value.
-     * @param ttl TTL for near cache update.
-     * @param expireTime Expire time for near cache update.
-     */
-    public void addNearValue(int keyIdx,
+    /** {@inheritDoc} */
+    @Override public void addNearValue(int keyIdx,
         @Nullable CacheObject val,
         long ttl,
         long expireTime) {
@@ -243,13 +203,9 @@ public class GridNearAtomicUpdateResponse extends GridCacheMessage implements Gr
         nearVals.add(val);
     }
 
-    /**
-     * @param keyIdx Key index.
-     * @param ttl TTL for near cache update.
-     * @param expireTime Expire time for near cache update.
-     */
+    /** {@inheritDoc} */
     @SuppressWarnings("ForLoopReplaceableByForEach")
-    public void addNearTtl(int keyIdx, long ttl, long expireTime) {
+    @Override public void addNearTtl(int keyIdx, long ttl, long expireTime) {
         if (ttl >= 0) {
             if (nearTtls == null) {
                 nearTtls = new GridLongList(16);
@@ -275,11 +231,8 @@ public class GridNearAtomicUpdateResponse extends GridCacheMessage implements Gr
             nearExpireTimes.add(expireTime);
     }
 
-    /**
-     * @param idx Index.
-     * @return Expire time for near cache update.
-     */
-    public long nearExpireTime(int idx) {
+    /** {@inheritDoc} */
+    @Override public long nearExpireTime(int idx) {
         if (nearExpireTimes != null) {
             assert idx >= 0 && idx < nearExpireTimes.size();
 
@@ -289,11 +242,8 @@ public class GridNearAtomicUpdateResponse extends GridCacheMessage implements Gr
         return -1L;
     }
 
-    /**
-     * @param idx Index.
-     * @return TTL for near cache update.
-     */
-    public long nearTtl(int idx) {
+    /** {@inheritDoc} */
+    @Override public long nearTtl(int idx) {
         if (nearTtls != null) {
             assert idx >= 0 && idx < nearTtls.size();
 
@@ -303,24 +253,18 @@ public class GridNearAtomicUpdateResponse extends GridCacheMessage implements Gr
         return -1L;
     }
 
-    /**
-     * @param nearVer Version generated on primary node to be used for originating node's near cache update.
-     */
-    public void nearVersion(GridCacheVersion nearVer) {
+    /** {@inheritDoc} */
+    @Override public void nearVersion(GridCacheVersion nearVer) {
         this.nearVer = nearVer;
     }
 
-    /**
-     * @return Version generated on primary node to be used for originating node's near cache update.
-     */
-    public GridCacheVersion nearVersion() {
+    /** {@inheritDoc} */
+    @Override public GridCacheVersion nearVersion() {
         return nearVer;
     }
 
-    /**
-     * @param keyIdx Index of key for which update was skipped
-     */
-    public void addSkippedIndex(int keyIdx) {
+    /** {@inheritDoc} */
+    @Override public void addSkippedIndex(int keyIdx) {
         if (nearSkipIdxs == null)
             nearSkipIdxs = new ArrayList<>();
 
@@ -329,41 +273,23 @@ public class GridNearAtomicUpdateResponse extends GridCacheMessage implements Gr
         addNearTtl(keyIdx, -1L, -1L);
     }
 
-    /**
-     * Check if update was skipped for the given index.
-     *
-     * @param idx Index.
-     * @return {@code True} if skipped.
-     */
-    public boolean isNearSkippedIndex(int idx) {
+    /** {@inheritDoc} */
+    @Override public boolean isNearSkippedIndex(int idx) {
         return nearSkipIdxs != null && nearSkipIdxs.contains(idx);
     }
 
-    /**
-     * Check if this is an index of a key for which values were generated on primary node.
-     *
-     * @param idx Index.
-     * @return {@code True} if values were generated on primary node.
-     */
-    public boolean isNearValueIndex(int idx) {
+    /** {@inheritDoc} */
+    @Override public boolean isNearValueIndex(int idx) {
         return nearValsIdxs != null && nearValsIdxs.contains(idx);
     }
 
-    /**
-     * @param idx Index.
-     * @return Value generated on primary node which should be put to originating node's near cache.
-     */
-    @Nullable public CacheObject nearValue(int idx) {
+    /** {@inheritDoc} */
+    @Override @Nullable public CacheObject nearValue(int idx) {
         return nearVals.get(idx);
     }
 
-    /**
-     * Adds key to collection of failed keys.
-     *
-     * @param key Key to add.
-     * @param e Error cause.
-     */
-    public synchronized void addFailedKey(KeyCacheObject key, Throwable e) {
+    /** {@inheritDoc} */
+    @Override public synchronized void addFailedKey(KeyCacheObject key, Throwable e) {
         if (failedKeys == null)
             failedKeys = new ArrayList<>(1);
 
@@ -372,13 +298,8 @@ public class GridNearAtomicUpdateResponse extends GridCacheMessage implements Gr
         setFailedKeysError(e);
     }
 
-    /**
-     * Adds keys to collection of failed keys.
-     *
-     * @param keys Key to add.
-     * @param e Error cause.
-     */
-    public synchronized void addFailedKeys(Collection<KeyCacheObject> keys, Throwable e) {
+    /** {@inheritDoc} */
+    @Override public synchronized void addFailedKeys(Collection<KeyCacheObject> keys, Throwable e) {
         if (keys != null) {
             if (failedKeys == null)
                 failedKeys = new ArrayList<>(keys.size());
@@ -389,13 +310,8 @@ public class GridNearAtomicUpdateResponse extends GridCacheMessage implements Gr
         setFailedKeysError(e);
     }
 
-    /**
-     * Add keys to collection of failed keys.
-     *
-     * @param req Request.
-     * @param e Error cause.
-     */
-    public synchronized void addFailedKeys(GridNearAtomicAbstractUpdateRequest req, Throwable e) {
+    /** {@inheritDoc} */
+    @Override public synchronized void addFailedKeys(GridNearAtomicAbstractUpdateRequest req, Throwable e) {
         if (failedKeys == null)
             failedKeys = new ArrayList<>(req.keysCount());
 
@@ -456,10 +372,7 @@ public class GridNearAtomicUpdateResponse extends GridCacheMessage implements Gr
             ret.finishUnmarshal(cctx, ldr);
     }
 
-    /** {@inheritDoc} */
-    @Override public boolean addDeploymentInfo() {
-        return addDepInfo;
-    }
+
 
     /** {@inheritDoc} */
     @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {


[11/20] ignite git commit: Moved near data to extras.

Posted by vo...@apache.org.
Moved near data to extras.


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

Branch: refs/heads/ignite-2523-1
Commit: 5f55c4dd1e14797779781fcee3b3faaac6a0e358
Parents: e522320
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Wed Apr 27 10:46:36 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Wed Apr 27 10:46:36 2016 +0300

----------------------------------------------------------------------
 .../GridNearAtomicSingleUpdateResponse.java     | 147 ++++++++++++-------
 1 file changed, 96 insertions(+), 51 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/5f55c4dd/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
index b807896..212344f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
@@ -70,24 +70,8 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
     @GridToStringInclude
     private boolean remapKey;
 
-    /** Indexes of keys for which values were generated on primary node (used if originating node has near cache). */
-    private boolean nearValsIdx;
-
-    /** Indexes of keys for which update was skipped (used if originating node has near cache). */
-    private boolean nearSkipIdx;
-
-    /** Values generated on primary node which should be put to originating node's near cache. */
-    @GridToStringInclude
-    private CacheObject nearVal;
-
-    /** Version generated on primary node to be used for originating node's near cache update. */
-    private GridCacheVersion nearVer;
-
-    /** Near TTLs. */
-    private long nearTtl = -1L;
-
-    /** Near expire times. */
-    private long nearExpireTime = -1L;
+    /** Near extras. */
+    private NearExtras nearExtras;
 
     /**
      * Empty constructor required by {@link Externalizable}.
@@ -186,10 +170,12 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
     @Override public void addNearValue(int keyIdx, @Nullable CacheObject val, long ttl, long expireTime) {
         assert keyIdx == 0;
 
+        initializeNearExtras();
+
         addNearTtl(keyIdx, ttl, expireTime);
 
-        nearValsIdx = true;
-        nearVal = val;
+        nearExtras.valsIdx = true;
+        nearExtras.val = val;
     }
 
     /** {@inheritDoc} */
@@ -197,39 +183,45 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
     @Override public void addNearTtl(int keyIdx, long ttl, long expireTime) {
         assert keyIdx == 0;
 
-        nearTtl = ttl;
-        nearExpireTime = expireTime;
+        initializeNearExtras();
+
+        nearExtras.ttl = ttl;
+        nearExtras.expireTime = expireTime;
     }
 
     /** {@inheritDoc} */
     @Override public long nearExpireTime(int idx) {
         assert idx == 0;
 
-        return nearExpireTime;
+        return nearExtras != null ? nearExtras.expireTime : -1;
     }
 
     /** {@inheritDoc} */
     @Override public long nearTtl(int idx) {
         assert idx == 0;
 
-        return nearTtl;
+        return nearExtras != null ? nearExtras.ttl : -1;
     }
 
     /** {@inheritDoc} */
     @Override public void nearVersion(GridCacheVersion nearVer) {
-        this.nearVer = nearVer;
+        initializeNearExtras();
+
+        nearExtras.ver = nearVer;
     }
 
     /** {@inheritDoc} */
     @Override public GridCacheVersion nearVersion() {
-        return nearVer;
+        return nearExtras != null ? nearExtras.ver : null;
     }
 
     /** {@inheritDoc} */
     @Override public void addSkippedIndex(int keyIdx) {
         assert keyIdx == 0;
 
-        nearSkipIdx = true;
+        initializeNearExtras();
+
+        nearExtras.skipIdx = true;
 
         addNearTtl(keyIdx, -1L, -1L);
     }
@@ -238,21 +230,21 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
     @Override public boolean isNearSkippedIndex(int idx) {
         assert idx == 0;
 
-        return nearSkipIdx;
+        return nearExtras != null && nearExtras.skipIdx;
     }
 
     /** {@inheritDoc} */
     @Override public boolean isNearValueIndex(int idx) {
         assert idx == 0;
 
-        return nearValsIdx;
+        return nearExtras != null && nearExtras.valsIdx;
     }
 
     /** {@inheritDoc} */
     @Override @Nullable public CacheObject nearValue(int idx) {
         assert idx == 0;
 
-        return nearVal;
+        return nearExtras != null ? nearExtras.val : null;
     }
 
     /** {@inheritDoc} */
@@ -299,6 +291,14 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
         return true;
     }
 
+    /**
+     * Initialize near extras.
+     */
+    private void initializeNearExtras() {
+        if (nearExtras == null)
+            nearExtras = new NearExtras();
+    }
+
     /** {@inheritDoc}
      * @param ctx*/
     @Override public void prepareMarshal(GridCacheSharedContext ctx) throws IgniteCheckedException {
@@ -309,7 +309,8 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
 
         GridCacheContext cctx = ctx.cacheContext(cacheId);
 
-        prepareMarshalCacheObject(nearVal, cctx);
+        if (nearExtras != null)
+            prepareMarshalCacheObject(nearExtras.val, cctx);
 
         if (ret != null)
             ret.prepareMarshal(cctx);
@@ -324,14 +325,13 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
 
         GridCacheContext cctx = ctx.cacheContext(cacheId);
 
-        finishUnmarshalCacheObject(nearVal, cctx, ldr);
+        if (nearExtras != null)
+            finishUnmarshalCacheObject(nearExtras.val, cctx, ldr);
 
         if (ret != null)
             ret.finishUnmarshal(cctx, ldr);
     }
 
-
-
     /** {@inheritDoc} */
     @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
         writer.setBuffer(buf);
@@ -366,53 +366,61 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
                 writer.incrementState();
 
             case 6:
-                if (!writer.writeLong("nearExpireTime", nearExpireTime))
+                if (!writer.writeBoolean("remapKey", remapKey))
                     return false;
 
                 writer.incrementState();
 
             case 7:
-                if (!writer.writeBoolean("nearSkipIdx", nearSkipIdx))
+                if (!writer.writeMessage("ret", ret))
                     return false;
 
                 writer.incrementState();
 
             case 8:
-                if (!writer.writeLong("nearTtl", nearTtl))
+                if (!writer.writeBoolean("hasNearExtras", nearExtras != null))
                     return false;
 
                 writer.incrementState();
 
+                if (nearExtras == null)
+                    return true;
+
             case 9:
-                if (!writer.writeMessage("nearVal", nearVal))
+                if (!writer.writeLong("nearExpireTime", nearExtras.expireTime))
                     return false;
 
                 writer.incrementState();
 
             case 10:
-                if (!writer.writeBoolean("nearValsIdx", nearValsIdx))
+                if (!writer.writeBoolean("nearSkipIdx", nearExtras.skipIdx))
                     return false;
 
                 writer.incrementState();
 
             case 11:
-                if (!writer.writeMessage("nearVer", nearVer))
+                if (!writer.writeLong("nearTtl", nearExtras.ttl))
                     return false;
 
                 writer.incrementState();
 
             case 12:
-                if (!writer.writeBoolean("remapKey", remapKey))
+                if (!writer.writeMessage("nearVal", nearExtras.val))
                     return false;
 
                 writer.incrementState();
 
             case 13:
-                if (!writer.writeMessage("ret", ret))
+                if (!writer.writeBoolean("nearValsIdx", nearExtras.valsIdx))
                     return false;
 
                 writer.incrementState();
 
+            case 14:
+                if (!writer.writeMessage("nearVer", nearExtras.ver))
+                    return false;
+
+                writer.incrementState();
         }
 
         return true;
@@ -454,7 +462,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
                 reader.incrementState();
 
             case 6:
-                nearExpireTime = reader.readLong("nearExpireTime");
+                remapKey = reader.readBoolean("remapKey");
 
                 if (!reader.isLastRead())
                     return false;
@@ -462,7 +470,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
                 reader.incrementState();
 
             case 7:
-                nearSkipIdx = reader.readBoolean("nearSkipIdx");
+                ret = reader.readMessage("ret");
 
                 if (!reader.isLastRead())
                     return false;
@@ -470,15 +478,21 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
                 reader.incrementState();
 
             case 8:
-                nearTtl = reader.readLong("nearTtl");
+                boolean hasNearExtras = reader.readBoolean("hasNearExtras");
 
                 if (!reader.isLastRead())
                     return false;
 
+                if (hasNearExtras)
+                    nearExtras = new NearExtras();
+
                 reader.incrementState();
 
+                if (!hasNearExtras)
+                    return reader.afterMessageRead(GridNearAtomicSingleUpdateResponse.class);
+
             case 9:
-                nearVal = reader.readMessage("nearVal");
+                nearExtras.expireTime = reader.readLong("nearExpireTime");
 
                 if (!reader.isLastRead())
                     return false;
@@ -486,7 +500,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
                 reader.incrementState();
 
             case 10:
-                nearValsIdx = reader.readBoolean("nearValsIdx");
+                nearExtras.skipIdx = reader.readBoolean("nearSkipIdx");
 
                 if (!reader.isLastRead())
                     return false;
@@ -494,7 +508,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
                 reader.incrementState();
 
             case 11:
-                nearVer = reader.readMessage("nearVer");
+                nearExtras.ttl = reader.readLong("nearTtl");
 
                 if (!reader.isLastRead())
                     return false;
@@ -502,7 +516,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
                 reader.incrementState();
 
             case 12:
-                remapKey = reader.readBoolean("remapKey");
+                nearExtras.val = reader.readMessage("nearVal");
 
                 if (!reader.isLastRead())
                     return false;
@@ -510,13 +524,20 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
                 reader.incrementState();
 
             case 13:
-                ret = reader.readMessage("ret");
+                nearExtras.valsIdx = reader.readBoolean("nearValsIdx");
 
                 if (!reader.isLastRead())
                     return false;
 
                 reader.incrementState();
 
+            case 14:
+                nearExtras.ver = reader.readMessage("nearVer");
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
         }
 
         return reader.afterMessageRead(GridNearAtomicSingleUpdateResponse.class);
@@ -529,11 +550,35 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 14;
+        return nearExtras != null ? (byte)15 : (byte)9;
     }
 
     /** {@inheritDoc} */
     @Override public String toString() {
         return S.toString(GridNearAtomicSingleUpdateResponse.class, this, "parent");
     }
+
+    /**
+     * Extra data for near nodes.
+     */
+    private static class NearExtras {
+        /** Indexes of keys for which values were generated on primary node (used if originating node has near cache). */
+        private boolean valsIdx;
+
+        /** Indexes of keys for which update was skipped (used if originating node has near cache). */
+        private boolean skipIdx;
+
+        /** Values generated on primary node which should be put to originating node's near cache. */
+        @GridToStringInclude
+        private CacheObject val;
+
+        /** Version generated on primary node to be used for originating node's near cache update. */
+        private GridCacheVersion ver;
+
+        /** Near TTLs. */
+        private long ttl = -1L;
+
+        /** Near expire times. */
+        private long expireTime = -1L;
+    }
 }


[13/20] ignite git commit: Merge branch 'ignite-2523-1' into ignite-2523-1-resp

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


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

Branch: refs/heads/ignite-2523-1
Commit: 834c9da6c87c856d5228059bae5ef6db63510464
Parents: f163aba 5d4af1a
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Thu Apr 28 16:39:08 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Thu Apr 28 16:39:08 2016 +0300

----------------------------------------------------------------------
 .../apache/ignite/IgniteSystemProperties.java   |  16 ++-
 .../dht/GridClientPartitionTopology.java        |   6 +-
 .../dht/GridDhtPartitionTopology.java           |   2 +-
 .../dht/GridDhtPartitionTopologyImpl.java       |   6 +-
 .../dht/GridDhtTransactionalCacheAdapter.java   |   4 +-
 .../dht/atomic/GridDhtAtomicUpdateFuture.java   |   8 +-
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |  10 +-
 .../processors/cluster/GridUpdateNotifier.java  |   3 +-
 .../ignite/spi/discovery/tcp/ServerImpl.java    |   5 +-
 .../spi/discovery/tcp/TcpDiscoveryImpl.java     |  10 ++
 ...GridServiceProxyClientReconnectSelfTest.java |   2 +-
 .../spi/discovery/tcp/TcpDiscoverySelfTest.java |  34 +++++
 .../properties/NotStringSystemPropertyTest.java | 124 +++++++++++++++++++
 .../ignite/testsuites/IgniteBasicTestSuite.java |   2 +
 .../Apache.Ignite.Linq.nuspec                   |   5 +-
 15 files changed, 215 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


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

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


[10/20] ignite git commit: Reworked "remapKey" - now it is a flag.

Posted by vo...@apache.org.
Reworked "remapKey" - now it is a flag.


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

Branch: refs/heads/ignite-2523-1
Commit: e5223202c81ee887a862d27d74aaec89e85421c4
Parents: 4372eb5
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Apr 26 16:38:34 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Apr 26 16:38:34 2016 +0300

----------------------------------------------------------------------
 .../GridNearAtomicAbstractUpdateResponse.java       |  2 +-
 .../atomic/GridNearAtomicSingleUpdateResponse.java  | 16 +++++++---------
 .../dht/atomic/GridNearAtomicUpdateFuture.java      |  2 +-
 .../dht/atomic/GridNearAtomicUpdateResponse.java    |  2 +-
 4 files changed, 10 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/e5223202/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java
index 4fb6b32..91b1ac5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java
@@ -103,7 +103,7 @@ public abstract class GridNearAtomicAbstractUpdateResponse extends GridCacheMess
      * @param idx Index.
      * @return Remap key.
      */
-    public abstract KeyCacheObject remapKey(int idx);
+    public abstract KeyCacheObject remapKey(GridNearAtomicAbstractUpdateRequest req, int idx);
 
     /**
      * @return Remap keys count.

http://git-wip-us.apache.org/repos/asf/ignite/blob/e5223202/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
index 41fa699..b807896 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
@@ -68,7 +68,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
 
     /** Keys that should be remapped. */
     @GridToStringInclude
-    private KeyCacheObject remapKey;
+    private boolean remapKey;
 
     /** Indexes of keys for which values were generated on primary node (used if originating node has near cache). */
     private boolean nearValsIdx;
@@ -167,19 +167,19 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
     @Override public void remapKeys(GridNearAtomicAbstractUpdateRequest req) {
         assert req instanceof GridNearAtomicSingleUpdateRequest;
 
-        remapKey = req.key(0);
+        remapKey = true;
     }
 
     /** {@inheritDoc} */
-    @Override public KeyCacheObject remapKey(int idx) {
+    @Override public KeyCacheObject remapKey(GridNearAtomicAbstractUpdateRequest req, int idx) {
         assert idx == 0;
 
-        return remapKey;
+        return req.key(0);
     }
 
     /** {@inheritDoc} */
     @Override public int remapKeysCount() {
-        return remapKey == null ? 0 : 1;
+        return remapKey ? 1 : 0;
     }
 
     /** {@inheritDoc} */
@@ -309,7 +309,6 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
 
         GridCacheContext cctx = ctx.cacheContext(cacheId);
 
-        prepareMarshalCacheObject(remapKey, cctx);
         prepareMarshalCacheObject(nearVal, cctx);
 
         if (ret != null)
@@ -325,7 +324,6 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
 
         GridCacheContext cctx = ctx.cacheContext(cacheId);
 
-        finishUnmarshalCacheObject(remapKey, cctx, ldr);
         finishUnmarshalCacheObject(nearVal, cctx, ldr);
 
         if (ret != null)
@@ -404,7 +402,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
                 writer.incrementState();
 
             case 12:
-                if (!writer.writeMessage("remapKey", remapKey))
+                if (!writer.writeBoolean("remapKey", remapKey))
                     return false;
 
                 writer.incrementState();
@@ -504,7 +502,7 @@ public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUp
                 reader.incrementState();
 
             case 12:
-                remapKey = reader.readMessage("remapKey");
+                remapKey = reader.readBoolean("remapKey");
 
                 if (!reader.isLastRead())
                     return false;

http://git-wip-us.apache.org/repos/asf/ignite/blob/e5223202/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 a858bca..7080609 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
@@ -305,7 +305,7 @@ public class GridNearAtomicUpdateFuture extends GridNearAtomicAbstractUpdateFutu
                     remapKeys = U.newHashSet(res.remapKeysCount());
 
                 for (int i = 0; i < res.remapKeysCount(); i++)
-                    remapKeys.add(res.remapKey(i));
+                    remapKeys.add(res.remapKey(req, i));
 
                 if (mapErrTopVer == null || mapErrTopVer.compareTo(req.topologyVersion()) < 0)
                     mapErrTopVer = req.topologyVersion();

http://git-wip-us.apache.org/repos/asf/ignite/blob/e5223202/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
index c14e376..6654265 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
@@ -178,7 +178,7 @@ public class GridNearAtomicUpdateResponse extends GridNearAtomicAbstractUpdateRe
     }
 
     /** {@inheritDoc} */
-    @Override public KeyCacheObject remapKey(int idx) {
+    @Override public KeyCacheObject remapKey(GridNearAtomicAbstractUpdateRequest req, int idx) {
         return remapKeys.get(idx);
     }
 


[14/20] ignite git commit: Fixed BinaryObjectOffheapUnswapTemporaryTest.

Posted by vo...@apache.org.
Fixed BinaryObjectOffheapUnswapTemporaryTest.


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

Branch: refs/heads/ignite-2523-1
Commit: 8dd6f199b2b6b79e3d3b313228b9b89b214f5870
Parents: 344cceb
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Fri Apr 29 09:01:47 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Fri Apr 29 09:01:47 2016 +0300

----------------------------------------------------------------------
 .../cache/BinaryObjectOffHeapUnswapTemporaryTest.java   | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/8dd6f199/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/BinaryObjectOffHeapUnswapTemporaryTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/BinaryObjectOffHeapUnswapTemporaryTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/BinaryObjectOffHeapUnswapTemporaryTest.java
index f26191f..824481b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/BinaryObjectOffHeapUnswapTemporaryTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/BinaryObjectOffHeapUnswapTemporaryTest.java
@@ -36,6 +36,7 @@ import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.binary.BinaryMarshaller;
 import org.apache.ignite.internal.binary.BinaryObjectOffheapImpl;
 import org.apache.ignite.lang.IgniteInClosure;
+import org.apache.ignite.spi.swapspace.file.FileSwapSpaceSpi;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.apache.ignite.transactions.Transaction;
 import org.apache.ignite.transactions.TransactionConcurrency;
@@ -53,6 +54,9 @@ public class BinaryObjectOffHeapUnswapTemporaryTest extends GridCommonAbstractTe
     /** */
     private static final int CNT = 20;
 
+    /** Cache name. */
+    private static final String CACHE_NAME = "cache";
+
     /** */
     @SuppressWarnings("serial")
     private static final CacheEntryProcessor PROC = new CacheEntryProcessor() {
@@ -69,6 +73,7 @@ public class BinaryObjectOffHeapUnswapTemporaryTest extends GridCommonAbstractTe
         IgniteConfiguration c = super.getConfiguration(gridName);
 
         c.setMarshaller(new BinaryMarshaller());
+        c.setSwapSpaceSpi(new FileSwapSpaceSpi());
 
         return c;
     }
@@ -82,8 +87,9 @@ public class BinaryObjectOffHeapUnswapTemporaryTest extends GridCommonAbstractTe
         CacheMemoryMode memoryMode) {
         this.atomicityMode = atomicityMode;
 
-        CacheConfiguration cfg = new CacheConfiguration();
+        CacheConfiguration<Object, Object>  cfg = new CacheConfiguration<>();
 
+        cfg.setName(CACHE_NAME);
         cfg.setCacheMode(CacheMode.PARTITIONED);
         cfg.setAtomicityMode(atomicityMode);
         cfg.setMemoryMode(memoryMode);
@@ -168,10 +174,10 @@ public class BinaryObjectOffHeapUnswapTemporaryTest extends GridCommonAbstractTe
      */
     @SuppressWarnings("serial")
     private void doTest() {
-        final IgniteCache<Integer, BinaryObject> cache = jcache(0).withKeepBinary();
+        final IgniteCache<Integer, BinaryObject> cache = jcache(0, CACHE_NAME).withKeepBinary();
 
         for (int key = 0; key < CNT; key++)
-            jcache(0).put(key, new TestObject(key));
+            jcache(0, CACHE_NAME).put(key, new TestObject(key));
 
         for (int key = CNT; key < 2 * CNT; key++) {
             BinaryObjectBuilder builder = ignite(0).binary().builder("SomeType");


[19/20] ignite git commit: Merge branch 'master' into ignite-2523-1-resp

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


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

Branch: refs/heads/ignite-2523-1
Commit: 313af5a68b8f6d9ece7e478bbb86b1208b89720b
Parents: bc3a396 6c705da
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Fri Apr 29 13:39:58 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Fri Apr 29 13:39:58 2016 +0300

----------------------------------------------------------------------
 .../platform/PlatformNoopProcessor.java         |   5 +
 .../processors/platform/PlatformProcessor.java  |   7 +
 .../platform/PlatformProcessorImpl.java         |  15 +
 ...gniteServiceConfigVariationsFullApiTest.java | 350 +++++++++++++++++++
 .../configvariations/VariationsTestsConfig.java |   2 +-
 .../IgniteConfigVariationsAbstractTest.java     |  72 +++-
 .../IgniteCacheDataStructuresSelfTestSuite.java |   6 +-
 ...ServiceConfigVariationsFullApiTestSuite.java |  92 +++++
 .../cpp/common/include/ignite/common/exports.h  |   1 +
 .../cpp/common/include/ignite/common/java.h     |   2 +
 .../platforms/cpp/common/project/vs/module.def  |   1 +
 modules/platforms/cpp/common/src/exports.cpp    |   4 +
 modules/platforms/cpp/common/src/java.cpp       |  11 +
 .../Cache/CacheAbstractTest.cs                  |  18 +
 .../dotnet/Apache.Ignite.Core/IIgnite.cs        |   8 +
 .../dotnet/Apache.Ignite.Core/Impl/Ignite.cs    |  18 +
 .../Apache.Ignite.Core/Impl/IgniteProxy.cs      |   7 +
 .../Impl/Unmanaged/IgniteJniNativeMethods.cs    |   3 +
 .../Impl/Unmanaged/UnmanagedUtils.cs            |   5 +
 19 files changed, 615 insertions(+), 12 deletions(-)
----------------------------------------------------------------------



[05/20] ignite git commit: Added single response, reworked failed/remap keys.

Posted by vo...@apache.org.
Added single response, reworked failed/remap keys.


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

Branch: refs/heads/ignite-2523-1
Commit: 6a233ddac5f8d323ffa5c9235bf70df47edeb1e8
Parents: 1eb4bfb
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Apr 26 16:06:12 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Apr 26 16:06:12 2016 +0300

----------------------------------------------------------------------
 .../GridNearAtomicSingleUpdateResponse.java     | 572 +++++++++++++++++++
 .../atomic/GridNearAtomicUpdateResponse.java    |   5 +-
 2 files changed, 573 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/6a233dda/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
new file mode 100644
index 0000000..9c4aebe
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
@@ -0,0 +1,572 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.distributed.dht.atomic;
+
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.GridDirectCollection;
+import org.apache.ignite.internal.GridDirectTransient;
+import org.apache.ignite.internal.processors.cache.CacheObject;
+import org.apache.ignite.internal.processors.cache.GridCacheContext;
+import org.apache.ignite.internal.processors.cache.GridCacheReturn;
+import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+import org.apache.ignite.internal.processors.cache.KeyCacheObject;
+import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
+import org.apache.ignite.internal.util.GridLongList;
+import org.apache.ignite.internal.util.tostring.GridToStringInclude;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType;
+import org.apache.ignite.plugin.extensions.communication.MessageReader;
+import org.apache.ignite.plugin.extensions.communication.MessageWriter;
+import org.jetbrains.annotations.Nullable;
+
+import java.io.Externalizable;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.UUID;
+
+/**
+ * DHT atomic cache near update response.
+ */
+public class GridNearAtomicSingleUpdateResponse extends GridNearAtomicAbstractUpdateResponse {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Node ID this reply should be sent to. */
+    @GridDirectTransient
+    private UUID nodeId;
+
+    /** Future version. */
+    private GridCacheVersion futVer;
+
+    /** Update error. */
+    @GridDirectTransient
+    private volatile IgniteCheckedException err;
+
+    /** Serialized error. */
+    private byte[] errBytes;
+
+    /** Return value. */
+    @GridToStringInclude
+    private GridCacheReturn ret;
+
+    /** Failed keys. */
+    @GridToStringInclude
+    private volatile KeyCacheObject failedKey;
+
+    /** Keys that should be remapped. */
+    @GridToStringInclude
+    private KeyCacheObject remapKey;
+
+    /** Indexes of keys for which values were generated on primary node (used if originating node has near cache). */
+    @GridDirectCollection(int.class)
+    private List<Integer> nearValsIdxs;
+
+    /** Indexes of keys for which update was skipped (used if originating node has near cache). */
+    @GridDirectCollection(int.class)
+    private List<Integer> nearSkipIdxs;
+
+    /** Values generated on primary node which should be put to originating node's near cache. */
+    @GridToStringInclude
+    @GridDirectCollection(CacheObject.class)
+    private List<CacheObject> nearVals;
+
+    /** Version generated on primary node to be used for originating node's near cache update. */
+    private GridCacheVersion nearVer;
+
+    /** Near TTLs. */
+    private GridLongList nearTtls;
+
+    /** Near expire times. */
+    private GridLongList nearExpireTimes;
+
+    /**
+     * Empty constructor required by {@link Externalizable}.
+     */
+    public GridNearAtomicSingleUpdateResponse() {
+        // No-op.
+    }
+
+    /**
+     * @param cacheId Cache ID.
+     * @param nodeId Node ID this reply should be sent to.
+     * @param futVer Future version.
+     * @param addDepInfo Deployment info flag.
+     */
+    public GridNearAtomicSingleUpdateResponse(int cacheId, UUID nodeId, GridCacheVersion futVer, boolean addDepInfo) {
+        assert futVer != null;
+
+        this.cacheId = cacheId;
+        this.nodeId = nodeId;
+        this.futVer = futVer;
+        this.addDepInfo = addDepInfo;
+    }
+
+    /** {@inheritDoc} */
+    @Override public UUID nodeId() {
+        return nodeId;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void nodeId(UUID nodeId) {
+        this.nodeId = nodeId;
+    }
+
+    /** {@inheritDoc} */
+    @Override public GridCacheVersion futureVersion() {
+        return futVer;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void error(IgniteCheckedException err){
+        this.err = err;
+    }
+
+    /** {@inheritDoc} */
+    @Override public IgniteCheckedException error() {
+        return err;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int failedKeysCount() {
+        return failedKey == null ? 0 : 1;
+    }
+
+    /** {@inheritDoc} */
+    @Override public KeyCacheObject failedKey(int idx) {
+        assert idx == 0;
+
+        return failedKey;
+    }
+
+    /** {@inheritDoc} */
+    @Override public GridCacheReturn returnValue() {
+        return ret;
+    }
+
+    /**
+     * @param ret Return value.
+     */
+    /** {@inheritDoc} */
+    @SuppressWarnings("unchecked")
+    @Override public void returnValue(GridCacheReturn ret) {
+        this.ret = ret;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void remapKeys(GridNearAtomicAbstractUpdateRequest req) {
+        assert req instanceof GridNearAtomicSingleUpdateRequest;
+
+        remapKey = req.key(0);
+    }
+
+    /** {@inheritDoc} */
+    @Override public KeyCacheObject remapKey(int idx) {
+        assert idx == 0;
+
+        return remapKey;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int remapKeysCount() {
+        return remapKey == null ? 0 : 1;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void addNearValue(int keyIdx, @Nullable CacheObject val, long ttl, long expireTime) {
+        if (nearValsIdxs == null) {
+            nearValsIdxs = new ArrayList<>();
+            nearVals = new ArrayList<>();
+        }
+
+        addNearTtl(keyIdx, ttl, expireTime);
+
+        nearValsIdxs.add(keyIdx);
+        nearVals.add(val);
+    }
+
+    /** {@inheritDoc} */
+    @SuppressWarnings("ForLoopReplaceableByForEach")
+    @Override public void addNearTtl(int keyIdx, long ttl, long expireTime) {
+        if (ttl >= 0) {
+            if (nearTtls == null) {
+                nearTtls = new GridLongList(16);
+
+                for (int i = 0; i < keyIdx; i++)
+                    nearTtls.add(-1L);
+            }
+        }
+
+        if (nearTtls != null)
+            nearTtls.add(ttl);
+
+        if (expireTime >= 0) {
+            if (nearExpireTimes == null) {
+                nearExpireTimes = new GridLongList(16);
+
+                for (int i = 0; i < keyIdx; i++)
+                    nearExpireTimes.add(-1);
+            }
+        }
+
+        if (nearExpireTimes != null)
+            nearExpireTimes.add(expireTime);
+    }
+
+    /** {@inheritDoc} */
+    @Override public long nearExpireTime(int idx) {
+        if (nearExpireTimes != null) {
+            assert idx >= 0 && idx < nearExpireTimes.size();
+
+            return nearExpireTimes.get(idx);
+        }
+
+        return -1L;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long nearTtl(int idx) {
+        if (nearTtls != null) {
+            assert idx >= 0 && idx < nearTtls.size();
+
+            return nearTtls.get(idx);
+        }
+
+        return -1L;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void nearVersion(GridCacheVersion nearVer) {
+        this.nearVer = nearVer;
+    }
+
+    /** {@inheritDoc} */
+    @Override public GridCacheVersion nearVersion() {
+        return nearVer;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void addSkippedIndex(int keyIdx) {
+        if (nearSkipIdxs == null)
+            nearSkipIdxs = new ArrayList<>();
+
+        nearSkipIdxs.add(keyIdx);
+
+        addNearTtl(keyIdx, -1L, -1L);
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean isNearSkippedIndex(int idx) {
+        return nearSkipIdxs != null && nearSkipIdxs.contains(idx);
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean isNearValueIndex(int idx) {
+        return nearValsIdxs != null && nearValsIdxs.contains(idx);
+    }
+
+    /** {@inheritDoc} */
+    @Override @Nullable public CacheObject nearValue(int idx) {
+        return nearVals.get(idx);
+    }
+
+    /** {@inheritDoc} */
+    @Override public synchronized void addFailedKey(KeyCacheObject key, Throwable e) {
+        failedKey = key;
+
+        setFailedKeysError(e);
+    }
+
+    /** {@inheritDoc} */
+    @Override public synchronized void addFailedKeys(Collection<KeyCacheObject> keys, Throwable e) {
+        if (keys != null) {
+            assert keys.size() == 1;
+
+            failedKey = keys.iterator().next();
+        }
+
+        setFailedKeysError(e);
+    }
+
+    /** {@inheritDoc} */
+    @Override public synchronized void addFailedKeys(GridNearAtomicAbstractUpdateRequest req, Throwable e) {
+        assert req instanceof GridNearAtomicSingleUpdateRequest;
+
+        failedKey = req.key(0);
+
+        setFailedKeysError(e);
+    }
+
+    /**
+     * Set failed keys error.
+     *
+     * @param e Error.
+     */
+    private void setFailedKeysError(Throwable e) {
+        if (err == null)
+            err = new IgniteCheckedException("Failed to update keys on primary node.");
+
+        err.addSuppressed(e);
+    }
+
+    /** {@inheritDoc}
+     * @param ctx*/
+    @Override public void prepareMarshal(GridCacheSharedContext ctx) throws IgniteCheckedException {
+        super.prepareMarshal(ctx);
+
+        if (err != null && errBytes == null)
+            errBytes = ctx.marshaller().marshal(err);
+
+        GridCacheContext cctx = ctx.cacheContext(cacheId);
+
+        prepareMarshalCacheObject(failedKey, cctx);
+        prepareMarshalCacheObject(remapKey, cctx);
+
+        prepareMarshalCacheObjects(nearVals, cctx);
+
+        if (ret != null)
+            ret.prepareMarshal(cctx);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void finishUnmarshal(GridCacheSharedContext ctx, ClassLoader ldr) throws IgniteCheckedException {
+        super.finishUnmarshal(ctx, ldr);
+
+        if (errBytes != null && err == null)
+            err = ctx.marshaller().unmarshal(errBytes, U.resolveClassLoader(ldr, ctx.gridConfig()));
+
+        GridCacheContext cctx = ctx.cacheContext(cacheId);
+
+        finishUnmarshalCacheObject(failedKey, cctx, ldr);
+        finishUnmarshalCacheObject(remapKey, cctx, ldr);
+
+        finishUnmarshalCacheObjects(nearVals, cctx, ldr);
+
+        if (ret != null)
+            ret.finishUnmarshal(cctx, ldr);
+    }
+
+
+
+    /** {@inheritDoc} */
+    @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
+        writer.setBuffer(buf);
+
+        if (!super.writeTo(buf, writer))
+            return false;
+
+        if (!writer.isHeaderWritten()) {
+            if (!writer.writeHeader(directType(), fieldsCount()))
+                return false;
+
+            writer.onHeaderWritten();
+        }
+
+        switch (writer.state()) {
+            case 3:
+                if (!writer.writeByteArray("errBytes", errBytes))
+                    return false;
+
+                writer.incrementState();
+
+            case 4:
+                if (!writer.writeMessage("failedKey", failedKey))
+                    return false;
+
+                writer.incrementState();
+
+            case 5:
+                if (!writer.writeMessage("futVer", futVer))
+                    return false;
+
+                writer.incrementState();
+
+            case 6:
+                if (!writer.writeMessage("nearExpireTimes", nearExpireTimes))
+                    return false;
+
+                writer.incrementState();
+
+            case 7:
+                if (!writer.writeCollection("nearSkipIdxs", nearSkipIdxs, MessageCollectionItemType.INT))
+                    return false;
+
+                writer.incrementState();
+
+            case 8:
+                if (!writer.writeMessage("nearTtls", nearTtls))
+                    return false;
+
+                writer.incrementState();
+
+            case 9:
+                if (!writer.writeCollection("nearVals", nearVals, MessageCollectionItemType.MSG))
+                    return false;
+
+                writer.incrementState();
+
+            case 10:
+                if (!writer.writeCollection("nearValsIdxs", nearValsIdxs, MessageCollectionItemType.INT))
+                    return false;
+
+                writer.incrementState();
+
+            case 11:
+                if (!writer.writeMessage("nearVer", nearVer))
+                    return false;
+
+                writer.incrementState();
+
+            case 12:
+                if (!writer.writeMessage("remapKey", remapKey))
+                    return false;
+
+                writer.incrementState();
+
+            case 13:
+                if (!writer.writeMessage("ret", ret))
+                    return false;
+
+                writer.incrementState();
+
+        }
+
+        return true;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
+        reader.setBuffer(buf);
+
+        if (!reader.beforeMessageRead())
+            return false;
+
+        if (!super.readFrom(buf, reader))
+            return false;
+
+        switch (reader.state()) {
+            case 3:
+                errBytes = reader.readByteArray("errBytes");
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 4:
+                failedKey = reader.readMessage("failedKey");
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 5:
+                futVer = reader.readMessage("futVer");
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 6:
+                nearExpireTimes = reader.readMessage("nearExpireTimes");
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 7:
+                nearSkipIdxs = reader.readCollection("nearSkipIdxs", MessageCollectionItemType.INT);
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 8:
+                nearTtls = reader.readMessage("nearTtls");
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 9:
+                nearVals = reader.readCollection("nearVals", MessageCollectionItemType.MSG);
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 10:
+                nearValsIdxs = reader.readCollection("nearValsIdxs", MessageCollectionItemType.INT);
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 11:
+                nearVer = reader.readMessage("nearVer");
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 12:
+                remapKey = reader.readMessage("remapKey");
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 13:
+                ret = reader.readMessage("ret");
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+        }
+
+        return reader.afterMessageRead(GridNearAtomicSingleUpdateResponse.class);
+    }
+
+    /** {@inheritDoc} */
+    @Override public byte directType() {
+        return 41;
+    }
+
+    /** {@inheritDoc} */
+    @Override public byte fieldsCount() {
+        return 14;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(GridNearAtomicSingleUpdateResponse.class, this, "parent");
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/6a233dda/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
index 4c50bba..7e27657 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
@@ -188,10 +188,7 @@ public class GridNearAtomicUpdateResponse extends GridNearAtomicAbstractUpdateRe
     }
 
     /** {@inheritDoc} */
-    @Override public void addNearValue(int keyIdx,
-        @Nullable CacheObject val,
-        long ttl,
-        long expireTime) {
+    @Override public void addNearValue(int keyIdx, @Nullable CacheObject val, long ttl, long expireTime) {
         if (nearValsIdxs == null) {
             nearValsIdxs = new ArrayList<>();
             nearVals = new ArrayList<>();


[03/20] ignite git commit: Refactoring: use abstract response instead of concrete.

Posted by vo...@apache.org.
Refactoring: use abstract response instead of concrete.


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

Branch: refs/heads/ignite-2523-1
Commit: 279ce72971f8d8e3bb9a2d8691a480f20bc08541
Parents: 70d2dd7
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Apr 26 15:57:37 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Apr 26 15:57:37 2016 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheIoManager.java    |  5 +--
 .../dht/atomic/GridDhtAtomicCache.java          | 37 ++++++++++----------
 .../dht/atomic/GridDhtAtomicUpdateFuture.java   |  8 ++---
 .../GridNearAtomicAbstractUpdateRequest.java    |  4 +--
 .../GridNearAtomicSingleUpdateFuture.java       | 13 +++----
 .../GridNearAtomicSingleUpdateRequest.java      |  6 ++--
 .../dht/atomic/GridNearAtomicUpdateFuture.java  | 20 ++++++-----
 .../dht/atomic/GridNearAtomicUpdateRequest.java |  6 ++--
 .../distributed/near/GridNearAtomicCache.java   |  4 +--
 .../IgniteClientReconnectAbstractTest.java      |  3 +-
 .../IgniteClientReconnectCacheTest.java         | 31 ++++++++++++----
 .../IgniteClientReconnectCollectionsTest.java   |  3 +-
 12 files changed, 82 insertions(+), 58 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/279ce729/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
index 82b7604..4113749 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
@@ -44,6 +44,7 @@ import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrep
 import org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicUpdateRequest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicUpdateResponse;
+import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateResponse;
 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.GridNearAtomicUpdateResponse;
@@ -429,7 +430,7 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter {
             case 40: {
                 GridNearAtomicUpdateRequest req = (GridNearAtomicUpdateRequest)msg;
 
-                GridNearAtomicUpdateResponse res = new GridNearAtomicUpdateResponse(
+                GridNearAtomicAbstractUpdateResponse res = new GridNearAtomicUpdateResponse(
                     ctx.cacheId(),
                     nodeId,
                     req.futureVersion(),
@@ -607,7 +608,7 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter {
             case -23: {
                 GridNearAtomicSingleUpdateRequest req = (GridNearAtomicSingleUpdateRequest)msg;
 
-                GridNearAtomicUpdateResponse res = new GridNearAtomicUpdateResponse(
+                GridNearAtomicAbstractUpdateResponse res = new GridNearAtomicUpdateResponse(
                     ctx.cacheId(),
                     nodeId,
                     req.futureVersion(),

http://git-wip-us.apache.org/repos/asf/ignite/blob/279ce729/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 37a5f45..36cd098 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
@@ -139,7 +139,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
 
     /** Update reply closure. */
     @GridToStringExclude
-    private CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicUpdateResponse> updateReplyClos;
+    private CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicAbstractUpdateResponse> updateReplyClos;
 
     /** Pending  */
     private ConcurrentMap<UUID, DeferredResponseBuffer> pendingResponses = new ConcurrentHashMap8<>();
@@ -192,9 +192,10 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
             }
         });
 
-        updateReplyClos = new CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicUpdateResponse>() {
+        updateReplyClos = new CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicAbstractUpdateResponse>() {
             @SuppressWarnings("ThrowableResultOfMethodCallIgnored")
-            @Override public void apply(GridNearAtomicAbstractUpdateRequest req, GridNearAtomicUpdateResponse res) {
+            @Override public void apply(GridNearAtomicAbstractUpdateRequest req,
+                GridNearAtomicAbstractUpdateResponse res) {
                 if (ctx.config().getAtomicWriteOrderMode() == CLOCK) {
                     assert req.writeSynchronizationMode() != FULL_ASYNC : req;
 
@@ -1477,7 +1478,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
     public void updateAllAsyncInternal(
         final UUID nodeId,
         final GridNearAtomicAbstractUpdateRequest req,
-        final CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicUpdateResponse> completionCb
+        final CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicAbstractUpdateResponse> completionCb
     ) {
         IgniteInternalFuture<Object> forceFut = preldr.request(req.keys(), req.topologyVersion());
 
@@ -1502,10 +1503,10 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
     public void updateAllAsyncInternal0(
         UUID nodeId,
         GridNearAtomicAbstractUpdateRequest req,
-        CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicUpdateResponse> completionCb
+        CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicAbstractUpdateResponse> completionCb
     ) {
-        GridNearAtomicUpdateResponse res = new GridNearAtomicUpdateResponse(ctx.cacheId(), nodeId, req.futureVersion(),
-            ctx.deploymentEnabled());
+        GridNearAtomicAbstractUpdateResponse res = new GridNearAtomicUpdateResponse(ctx.cacheId(), nodeId,
+            req.futureVersion(), ctx.deploymentEnabled());
 
         assert !req.returnValue() || (req.operation() == TRANSFORM || req.keysCount() == 1);
 
@@ -1726,11 +1727,11 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
         final ClusterNode node,
         final boolean hasNear,
         final GridNearAtomicAbstractUpdateRequest req,
-        final GridNearAtomicUpdateResponse res,
+        final GridNearAtomicAbstractUpdateResponse res,
         final List<GridDhtCacheEntry> locked,
         final GridCacheVersion ver,
         @Nullable GridDhtAtomicUpdateFuture dhtFut,
-        final CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicUpdateResponse> completionCb,
+        final CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicAbstractUpdateResponse> completionCb,
         final boolean replicate,
         final String taskName,
         @Nullable final IgniteCacheExpiryPolicy expiry,
@@ -2145,11 +2146,11 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
         ClusterNode node,
         boolean hasNear,
         GridNearAtomicAbstractUpdateRequest req,
-        GridNearAtomicUpdateResponse res,
+        GridNearAtomicAbstractUpdateResponse res,
         List<GridDhtCacheEntry> locked,
         GridCacheVersion ver,
         @Nullable GridDhtAtomicUpdateFuture dhtFut,
-        CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicUpdateResponse> completionCb,
+        CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicAbstractUpdateResponse> completionCb,
         boolean replicate,
         String taskName,
         @Nullable IgniteCacheExpiryPolicy expiry,
@@ -2378,9 +2379,9 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
         @Nullable final Collection<KeyCacheObject> rmvKeys,
         @Nullable final Map<KeyCacheObject, EntryProcessor<Object, Object, Object>> entryProcessorMap,
         @Nullable GridDhtAtomicUpdateFuture dhtFut,
-        final CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicUpdateResponse> completionCb,
+        final CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicAbstractUpdateResponse> completionCb,
         final GridNearAtomicAbstractUpdateRequest req,
-        final GridNearAtomicUpdateResponse res,
+        final GridNearAtomicAbstractUpdateResponse res,
         final boolean replicate,
         final UpdateBatchResult batchRes,
         final String taskName,
@@ -2757,7 +2758,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
      * @return {@code True} if filter evaluation succeeded.
      */
     private boolean checkFilter(GridCacheEntryEx entry, GridNearAtomicAbstractUpdateRequest req,
-        GridNearAtomicUpdateResponse res) {
+        GridNearAtomicAbstractUpdateResponse res) {
         try {
             return ctx.isAllLocked(entry, req.filter());
         }
@@ -2851,8 +2852,8 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
     @Nullable private GridDhtAtomicUpdateFuture createDhtFuture(
         GridCacheVersion writeVer,
         GridNearAtomicAbstractUpdateRequest updateReq,
-        GridNearAtomicUpdateResponse updateRes,
-        CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicUpdateResponse> completionCb,
+        GridNearAtomicAbstractUpdateResponse updateRes,
+        CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicAbstractUpdateResponse> completionCb,
         boolean force
     ) {
         if (!force) {
@@ -2897,7 +2898,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
      * @param res Near atomic update response.
      */
     @SuppressWarnings("unchecked")
-    private void processNearAtomicUpdateResponse(UUID nodeId, GridNearAtomicUpdateResponse res) {
+    private void processNearAtomicUpdateResponse(UUID nodeId, GridNearAtomicAbstractUpdateResponse res) {
         if (log.isDebugEnabled())
             log.debug("Processing near atomic update response [nodeId=" + nodeId + ", res=" + res + ']');
 
@@ -3108,7 +3109,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
      * @param nodeId Originating node ID.
      * @param res Near update response.
      */
-    private void sendNearUpdateReply(UUID nodeId, GridNearAtomicUpdateResponse res) {
+    private void sendNearUpdateReply(UUID nodeId, GridNearAtomicAbstractUpdateResponse res) {
         try {
             ctx.io().send(nodeId, res, ctx.ioPolicy());
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/279ce729/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 1fcac71..82238e0 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
@@ -79,7 +79,7 @@ public class GridDhtAtomicUpdateFuture extends GridFutureAdapter<Void>
 
     /** Completion callback. */
     @GridToStringExclude
-    private final CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicUpdateResponse> completionCb;
+    private final CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicAbstractUpdateResponse> completionCb;
 
     /** Mappings. */
     @GridToStringInclude
@@ -92,7 +92,7 @@ public class GridDhtAtomicUpdateFuture extends GridFutureAdapter<Void>
     private final GridNearAtomicAbstractUpdateRequest updateReq;
 
     /** Update response. */
-    private final GridNearAtomicUpdateResponse updateRes;
+    private final GridNearAtomicAbstractUpdateResponse updateRes;
 
     /** Future keys. */
     private final Collection<KeyCacheObject> keys;
@@ -115,10 +115,10 @@ public class GridDhtAtomicUpdateFuture extends GridFutureAdapter<Void>
      */
     public GridDhtAtomicUpdateFuture(
         GridCacheContext cctx,
-        CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicUpdateResponse> completionCb,
+        CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicAbstractUpdateResponse> completionCb,
         GridCacheVersion writeVer,
         GridNearAtomicAbstractUpdateRequest updateReq,
-        GridNearAtomicUpdateResponse updateRes
+        GridNearAtomicAbstractUpdateResponse updateRes
     ) {
         this.cctx = cctx;
         this.writeVer = writeVer;

http://git-wip-us.apache.org/repos/asf/ignite/blob/279ce729/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java
index 6e868e4..7e3e2e5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java
@@ -215,12 +215,12 @@ public abstract class GridNearAtomicAbstractUpdateRequest extends GridCacheMessa
      * @param res Response.
      * @return {@code True} if current response was {@code null}.
      */
-    public abstract boolean onResponse(GridNearAtomicUpdateResponse res);
+    public abstract boolean onResponse(GridNearAtomicAbstractUpdateResponse res);
 
     /**
      * @return Response.
      */
-    @Nullable public abstract GridNearAtomicUpdateResponse response();
+    @Nullable public abstract GridNearAtomicAbstractUpdateResponse response();
 
     /**
      * Cleanup values.

http://git-wip-us.apache.org/repos/asf/ignite/blob/279ce729/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
index 34399ac..064e067 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
@@ -146,7 +146,7 @@ public class GridNearAtomicSingleUpdateFuture extends GridNearAtomicAbstractUpda
 
     /** {@inheritDoc} */
     @Override public boolean onNodeLeft(UUID nodeId) {
-        GridNearAtomicUpdateResponse res = null;
+        GridNearAtomicAbstractUpdateResponse res = null;
 
         synchronized (mux) {
             GridNearAtomicAbstractUpdateRequest req = this.req != null && this.req.nodeId().equals(nodeId) ?
@@ -212,7 +212,7 @@ public class GridNearAtomicSingleUpdateFuture extends GridNearAtomicAbstractUpda
      * @param nodeErr {@code True} if response was created on node failure.
      */
     @SuppressWarnings({"unchecked", "ThrowableResultOfMethodCallIgnored"})
-    public void onResult(UUID nodeId, GridNearAtomicUpdateResponse res, boolean nodeErr) {
+    public void onResult(UUID nodeId, GridNearAtomicAbstractUpdateResponse res, boolean nodeErr) {
         GridNearAtomicAbstractUpdateRequest req;
 
         AffinityTopologyVersion remapTopVer = null;
@@ -389,7 +389,7 @@ public class GridNearAtomicSingleUpdateFuture extends GridNearAtomicAbstractUpda
      * @param req Update request.
      * @param res Update response.
      */
-    private void updateNear(GridNearAtomicAbstractUpdateRequest req, GridNearAtomicUpdateResponse res) {
+    private void updateNear(GridNearAtomicAbstractUpdateRequest req, GridNearAtomicAbstractUpdateResponse res) {
         assert nearEnabled;
 
         if (res.remapKeysCount() > 0 || !req.hasPrimary())
@@ -463,8 +463,9 @@ public class GridNearAtomicSingleUpdateFuture extends GridNearAtomicAbstractUpda
     private void mapSingle(UUID nodeId, GridNearAtomicAbstractUpdateRequest req) {
         if (cctx.localNodeId().equals(nodeId)) {
             cache.updateAllAsyncInternal(nodeId, req,
-                new CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicUpdateResponse>() {
-                    @Override public void apply(GridNearAtomicAbstractUpdateRequest req, GridNearAtomicUpdateResponse res) {
+                new CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicAbstractUpdateResponse>() {
+                    @Override public void apply(GridNearAtomicAbstractUpdateRequest req,
+                        GridNearAtomicAbstractUpdateResponse res) {
                         onResult(res.nodeId(), res, false);
                     }
                 });
@@ -491,7 +492,7 @@ public class GridNearAtomicSingleUpdateFuture extends GridNearAtomicAbstractUpda
      */
     void onSendError(GridNearAtomicAbstractUpdateRequest req, IgniteCheckedException e) {
         synchronized (mux) {
-            GridNearAtomicUpdateResponse res = new GridNearAtomicUpdateResponse(cctx.cacheId(),
+            GridNearAtomicAbstractUpdateResponse res = new GridNearAtomicUpdateResponse(cctx.cacheId(),
                 req.nodeId(),
                 req.futureVersion(),
                 cctx.deploymentEnabled());

http://git-wip-us.apache.org/repos/asf/ignite/blob/279ce729/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java
index 13b990e..ef1f50a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java
@@ -152,7 +152,7 @@ public class GridNearAtomicSingleUpdateRequest extends GridNearAtomicAbstractUpd
 
     /** */
     @GridDirectTransient
-    private GridNearAtomicUpdateResponse res;
+    private GridNearAtomicAbstractUpdateResponse res;
 
     /** Target node ID. */
     @GridDirectTransient
@@ -427,7 +427,7 @@ public class GridNearAtomicSingleUpdateRequest extends GridNearAtomicAbstractUpd
     }
 
     /** {@inheritDoc} */
-    @Override public boolean onResponse(GridNearAtomicUpdateResponse res) {
+    @Override public boolean onResponse(GridNearAtomicAbstractUpdateResponse res) {
         if (this.res == null) {
             this.res = res;
 
@@ -438,7 +438,7 @@ public class GridNearAtomicSingleUpdateRequest extends GridNearAtomicAbstractUpd
     }
 
     /** {@inheritDoc} */
-    @Override @Nullable public GridNearAtomicUpdateResponse response() {
+    @Override @Nullable public GridNearAtomicAbstractUpdateResponse response() {
         return res;
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/279ce729/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 bad4647..07071f2 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
@@ -164,7 +164,7 @@ public class GridNearAtomicUpdateFuture extends GridNearAtomicAbstractUpdateFutu
 
     /** {@inheritDoc} */
     @Override public boolean onNodeLeft(UUID nodeId) {
-        GridNearAtomicUpdateResponse res = null;
+        GridNearAtomicAbstractUpdateResponse res = null;
 
         synchronized (mux) {
             GridNearAtomicUpdateRequest req;
@@ -258,7 +258,7 @@ public class GridNearAtomicUpdateFuture extends GridNearAtomicAbstractUpdateFutu
      * @param nodeErr {@code True} if response was created on node failure.
      */
     @SuppressWarnings({"unchecked", "ThrowableResultOfMethodCallIgnored"})
-    public void onResult(UUID nodeId, GridNearAtomicUpdateResponse res, boolean nodeErr) {
+    public void onResult(UUID nodeId, GridNearAtomicAbstractUpdateResponse res, boolean nodeErr) {
         GridNearAtomicUpdateRequest req;
 
         AffinityTopologyVersion remapTopVer = null;
@@ -409,7 +409,7 @@ public class GridNearAtomicUpdateFuture extends GridNearAtomicAbstractUpdateFutu
         if (rcvAll && nearEnabled) {
             if (mappings != null) {
                 for (GridNearAtomicUpdateRequest req0 : mappings.values()) {
-                    GridNearAtomicUpdateResponse res0 = req0.response();
+                    GridNearAtomicAbstractUpdateResponse res0 = req0.response();
 
                     assert res0 != null : req0;
 
@@ -484,7 +484,7 @@ public class GridNearAtomicUpdateFuture extends GridNearAtomicAbstractUpdateFutu
      * @param req Update request.
      * @param res Update response.
      */
-    private void updateNear(GridNearAtomicUpdateRequest req, GridNearAtomicUpdateResponse res) {
+    private void updateNear(GridNearAtomicUpdateRequest req, GridNearAtomicAbstractUpdateResponse res) {
         assert nearEnabled;
 
         if (res.remapKeysCount() > 0 || !req.hasPrimary())
@@ -558,8 +558,9 @@ public class GridNearAtomicUpdateFuture extends GridNearAtomicAbstractUpdateFutu
     private void mapSingle(UUID nodeId, GridNearAtomicUpdateRequest req) {
         if (cctx.localNodeId().equals(nodeId)) {
             cache.updateAllAsyncInternal(nodeId, req,
-                new CI2<GridNearAtomicUpdateRequest, GridNearAtomicUpdateResponse>() {
-                    @Override public void apply(GridNearAtomicUpdateRequest req, GridNearAtomicUpdateResponse res) {
+                new CI2<GridNearAtomicUpdateRequest, GridNearAtomicAbstractUpdateResponse>() {
+                    @Override public void apply(GridNearAtomicUpdateRequest req,
+                        GridNearAtomicAbstractUpdateResponse res) {
                         onResult(res.nodeId(), res, false);
                     }
                 });
@@ -613,8 +614,9 @@ public class GridNearAtomicUpdateFuture extends GridNearAtomicAbstractUpdateFutu
 
         if (locUpdate != null) {
             cache.updateAllAsyncInternal(cctx.localNodeId(), locUpdate,
-                new CI2<GridNearAtomicUpdateRequest, GridNearAtomicUpdateResponse>() {
-                    @Override public void apply(GridNearAtomicUpdateRequest req, GridNearAtomicUpdateResponse res) {
+                new CI2<GridNearAtomicUpdateRequest, GridNearAtomicAbstractUpdateResponse>() {
+                    @Override public void apply(GridNearAtomicUpdateRequest req,
+                        GridNearAtomicAbstractUpdateResponse res) {
                         onResult(res.nodeId(), res, false);
                     }
                 });
@@ -630,7 +632,7 @@ public class GridNearAtomicUpdateFuture extends GridNearAtomicAbstractUpdateFutu
      */
     void onSendError(GridNearAtomicUpdateRequest req, IgniteCheckedException e) {
         synchronized (mux) {
-            GridNearAtomicUpdateResponse res = new GridNearAtomicUpdateResponse(cctx.cacheId(),
+            GridNearAtomicAbstractUpdateResponse res = new GridNearAtomicUpdateResponse(cctx.cacheId(),
                 req.nodeId(),
                 req.futureVersion(),
                 cctx.deploymentEnabled());

http://git-wip-us.apache.org/repos/asf/ignite/blob/279ce729/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
index d458ac2..75c530d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
@@ -149,7 +149,7 @@ public class GridNearAtomicUpdateRequest extends GridNearAtomicAbstractUpdateReq
 
     /** */
     @GridDirectTransient
-    private GridNearAtomicUpdateResponse res;
+    private GridNearAtomicAbstractUpdateResponse res;
 
     /** Target node ID. */
     @GridDirectTransient
@@ -506,7 +506,7 @@ public class GridNearAtomicUpdateRequest extends GridNearAtomicAbstractUpdateReq
     }
 
     /** {@inheritDoc} */
-    @Override public boolean onResponse(GridNearAtomicUpdateResponse res) {
+    @Override public boolean onResponse(GridNearAtomicAbstractUpdateResponse res) {
         if (this.res == null) {
             this.res = res;
 
@@ -517,7 +517,7 @@ public class GridNearAtomicUpdateRequest extends GridNearAtomicAbstractUpdateReq
     }
 
     /** {@inheritDoc} */
-    @Override @Nullable public GridNearAtomicUpdateResponse response() {
+    @Override @Nullable public GridNearAtomicAbstractUpdateResponse response() {
         return res;
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/279ce729/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
index ac1ef70..995b948 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
@@ -45,7 +45,7 @@ import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDh
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicUpdateRequest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicUpdateResponse;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateRequest;
-import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateResponse;
+import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateResponse;
 import org.apache.ignite.internal.processors.cache.dr.GridCacheDrInfo;
 import org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalEx;
 import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
@@ -127,7 +127,7 @@ public class GridNearAtomicCache<K, V> extends GridNearCacheAdapter<K, V> {
      */
     public void processNearAtomicUpdateResponse(
         GridNearAtomicAbstractUpdateRequest req,
-        GridNearAtomicUpdateResponse res
+        GridNearAtomicAbstractUpdateResponse res
     ) {
         if (res.failedKeysCount() == req.keysCount())
             return;

http://git-wip-us.apache.org/repos/asf/ignite/blob/279ce729/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectAbstractTest.java
index 4d49366..36e8aa2 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectAbstractTest.java
@@ -419,6 +419,7 @@ public abstract class IgniteClientReconnectAbstractTest extends GridCommonAbstra
         private IgniteLogger log;
 
         /** {@inheritDoc} */
+        @SuppressWarnings("unchecked")
         @Override public void sendMessage(ClusterNode node, Message msg, IgniteInClosure<IgniteException> ackC)
             throws IgniteSpiException {
             Class msgCls0 = msgCls;
@@ -427,7 +428,7 @@ public abstract class IgniteClientReconnectAbstractTest extends GridCommonAbstra
                 classes.put(((GridIoMessage)msg).message().getClass().getName(), node);
 
             if (msgCls0 != null && msg instanceof GridIoMessage
-                && ((GridIoMessage)msg).message().getClass().equals(msgCls)) {
+                && msgCls0.isAssignableFrom(((GridIoMessage)msg).message().getClass())) {
                 log.info("Block message: " + msg);
 
                 return;

http://git-wip-us.apache.org/repos/asf/ignite/blob/279ce729/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java
index ad6c46f..8451a55 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java
@@ -19,6 +19,8 @@ package org.apache.ignite.internal;
 
 import java.io.Serializable;
 import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -805,14 +807,20 @@ public class IgniteClientReconnectCacheTest extends IgniteClientReconnectAbstrac
                     ccfg.setWriteSynchronizationMode(syncMode);
 
                     if (syncMode != FULL_ASYNC) {
-                        Class<?> cls = (ccfg.getAtomicityMode() == ATOMIC) ?
-                            GridNearAtomicUpdateResponse.class : GridNearTxPrepareResponse.class;
-
                         log.info("Test cache put [atomicity=" + atomicityMode +
                             ", writeOrder=" + writeOrder +
                             ", syncMode=" + syncMode + ']');
 
-                        checkOperationInProgressFails(client, ccfg, cls, putOp);
+                        if (ccfg.getAtomicityMode() == ATOMIC) {
+                            Collection<Class> clss = new HashSet<>();
+
+                            clss.add(GridNearAtomicUpdateResponse.class);
+                            // TODO: Add single.
+
+                            checkOperationInProgressFails(client, ccfg, clss, putOp);
+                        }
+                        else
+                            checkOperationInProgressFails(client, ccfg, GridNearTxPrepareResponse.class, putOp);
 
                         client.destroyCache(ccfg.getName());
                     }
@@ -1250,16 +1258,24 @@ public class IgniteClientReconnectCacheTest extends IgniteClientReconnectAbstrac
      */
     static class TestClass5 implements Serializable {}
 
+    private void checkOperationInProgressFails(IgniteEx client,
+        final CacheConfiguration<Object, Object> ccfg,
+        Class msgToBlock,
+        final IgniteInClosure<IgniteCache<Object, Object>> c)
+        throws Exception {
+        checkOperationInProgressFails(client, ccfg, Collections.singleton(msgToBlock), c);
+    }
+
     /**
      * @param client Client.
      * @param ccfg Cache configuration.
-     * @param msgToBlock Message to block.
+     * @param msgsToBlock Message to block.
      * @param c Cache operation closure.
      * @throws Exception If failed.
      */
     private void checkOperationInProgressFails(IgniteEx client,
         final CacheConfiguration<Object, Object> ccfg,
-        Class<?> msgToBlock,
+        Collection<Class> msgsToBlock,
         final IgniteInClosure<IgniteCache<Object, Object>> c)
         throws Exception
     {
@@ -1272,7 +1288,8 @@ public class IgniteClientReconnectCacheTest extends IgniteClientReconnectAbstrac
         for (int i = 0; i < SRV_CNT; i++) {
             TestCommunicationSpi srvCommSpi = (TestCommunicationSpi)grid(i).configuration().getCommunicationSpi();
 
-            srvCommSpi.blockMessages(msgToBlock, client.localNode().id());
+            for (Class msgToBlock : msgsToBlock)
+                srvCommSpi.blockMessages(msgToBlock, client.localNode().id());
         }
 
         IgniteInternalFuture<?> fut = GridTestUtils.runAsync(new Callable<Object>() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/279ce729/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCollectionsTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCollectionsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCollectionsTest.java
index 8ee669c..e8b7d06 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCollectionsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCollectionsTest.java
@@ -26,6 +26,7 @@ import org.apache.ignite.IgniteClientDisconnectedException;
 import org.apache.ignite.IgniteQueue;
 import org.apache.ignite.IgniteSet;
 import org.apache.ignite.configuration.CollectionConfiguration;
+import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateResponse;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateResponse;
 import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxPrepareResponse;
 import org.apache.ignite.testframework.GridTestUtils;
@@ -315,7 +316,7 @@ public class IgniteClientReconnectCollectionsTest extends IgniteClientReconnectA
         BlockTcpCommunicationSpi commSpi = commSpi(srv);
 
         if (colCfg.getAtomicityMode() == ATOMIC)
-            commSpi.blockMessage(GridNearAtomicUpdateResponse.class);
+            commSpi.blockMessage(GridNearAtomicAbstractUpdateResponse.class);
         else
             commSpi.blockMessage(GridNearTxPrepareResponse.class);
 


[12/20] ignite git commit: Merge branch 'ignite-2523-1' into ignite-2523-1-resp

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


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

Branch: refs/heads/ignite-2523-1
Commit: f163abad1d27e4040615a9239f1699f969c480f0
Parents: 5f55c4d fa3bc45
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Thu Apr 28 14:28:43 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Thu Apr 28 14:28:43 2016 +0300

----------------------------------------------------------------------
 .../datastructures/IgniteLockExample.java       |  293 +++
 .../ignite/examples/CacheExamplesSelfTest.java  |    8 +
 .../internal/benchmarks/model/IntValue.java     |   19 +-
 .../src/main/java/org/apache/ignite/Ignite.java |   17 +
 .../java/org/apache/ignite/IgniteCondition.java |  338 +++
 .../main/java/org/apache/ignite/IgniteLock.java |  489 +++++
 .../configuration/CacheConfiguration.java       |    2 +
 .../ignite/internal/GridKernalContextImpl.java  |    4 +-
 .../ignite/internal/IgniteEventsImpl.java       |   11 +-
 .../apache/ignite/internal/IgniteKernal.java    |   21 +
 .../ignite/internal/IgniteMessagingImpl.java    |    7 +-
 .../org/apache/ignite/internal/IgnitionEx.java  |    2 +-
 .../ignite/internal/binary/BinaryContext.java   |    4 +
 .../internal/binary/BinaryObjectImpl.java       |   14 +
 .../internal/binary/GridBinaryMarshaller.java   |    3 +
 .../internal/direct/DirectMessageReader.java    |    5 +
 .../processors/cache/GridCacheAdapter.java      |  448 ++--
 .../cache/GridCacheAffinityManager.java         |   10 +-
 .../cache/GridCacheClearAllRunnable.java        |    2 +-
 .../cache/GridCacheConcurrentMap.java           | 1996 +-----------------
 .../cache/GridCacheConcurrentMapImpl.java       |  344 +++
 .../processors/cache/GridCacheContext.java      |   52 +-
 .../cache/GridCacheDeploymentManager.java       |    2 +-
 .../processors/cache/GridCacheEntrySet.java     |  113 -
 .../cache/GridCacheEvictionManager.java         |    2 +-
 .../processors/cache/GridCacheKeySet.java       |  104 -
 .../processors/cache/GridCacheMapEntry.java     |   22 +-
 .../processors/cache/GridCacheProcessor.java    |    1 -
 .../processors/cache/GridCacheProxyImpl.java    |    2 +-
 .../processors/cache/GridCacheUtils.java        |    1 -
 .../processors/cache/GridNoStorageCacheMap.java |  107 +
 .../processors/cache/IgniteInternalCache.java   |    2 +-
 .../processors/cache/KeyCacheObject.java        |   11 +
 .../processors/cache/KeyCacheObjectImpl.java    |   32 +-
 .../binary/CacheObjectBinaryProcessorImpl.java  |   24 +-
 .../GridDistributedCacheAdapter.java            |    4 +-
 .../distributed/GridDistributedLockRequest.java |   19 +-
 .../GridDistributedTxRemoteAdapter.java         |    1 -
 .../GridDistributedUnlockRequest.java           |   16 +-
 .../dht/GridCachePartitionedConcurrentMap.java  |  191 ++
 .../dht/GridClientPartitionTopology.java        |    7 -
 .../distributed/dht/GridDhtCacheAdapter.java    |   77 +-
 .../distributed/dht/GridDhtCacheEntry.java      |   25 +-
 .../distributed/dht/GridDhtLocalPartition.java  |  152 +-
 .../distributed/dht/GridDhtLockRequest.java     |   16 +-
 .../dht/GridDhtPartitionTopology.java           |    7 -
 .../dht/GridDhtPartitionTopologyImpl.java       |  281 ++-
 .../distributed/dht/GridDhtUnlockRequest.java   |   15 +-
 .../distributed/dht/GridNoStorageCacheMap.java  |  122 --
 .../dht/GridPartitionedGetFuture.java           |    2 +-
 .../dht/GridPartitionedSingleGetFuture.java     |    2 +-
 .../dht/atomic/GridDhtAtomicCache.java          |   75 +-
 .../dht/atomic/GridDhtAtomicUpdateRequest.java  |   22 +-
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |    6 +-
 .../dht/atomic/GridNearAtomicUpdateRequest.java |   31 +-
 .../dht/colocated/GridDhtColocatedCache.java    |   13 +-
 .../dht/preloader/GridDhtPartitionDemander.java |    2 +-
 .../dht/preloader/GridDhtPartitionSupplier.java |    8 +-
 .../distributed/near/GridNearCacheAdapter.java  |   94 +-
 .../distributed/near/GridNearGetFuture.java     |    2 +-
 .../distributed/near/GridNearGetRequest.java    |   45 +-
 .../distributed/near/GridNearLockRequest.java   |   16 +-
 .../near/GridNearSingleGetRequest.java          |   24 +-
 .../distributed/near/GridNearUnlockRequest.java |   21 +-
 .../processors/cache/local/GridLocalCache.java  |    7 +-
 .../local/atomic/GridLocalAtomicCache.java      |   24 +-
 .../continuous/CacheContinuousQueryManager.java |    1 +
 .../cache/transactions/IgniteInternalTx.java    |    1 -
 .../cache/transactions/IgniteTxAdapter.java     |    1 -
 .../cache/transactions/IgniteTxEntry.java       |   35 +-
 .../cacheobject/IgniteCacheObjectProcessor.java |   10 +
 .../IgniteCacheObjectProcessorImpl.java         |   36 +-
 .../continuous/GridContinuousProcessor.java     |   29 +-
 .../datastructures/DataStructuresProcessor.java |  158 +-
 .../GridCacheAtomicReferenceImpl.java           |    2 +-
 .../datastructures/GridCacheLockEx.java         |   52 +
 .../datastructures/GridCacheLockImpl.java       | 1538 ++++++++++++++
 .../datastructures/GridCacheLockState.java      |  353 ++++
 .../datastructures/GridCacheSemaphoreImpl.java  |   33 +
 .../platform/PlatformAbstractBootstrap.java     |   17 +-
 .../processors/platform/PlatformBootstrap.java  |    6 +-
 .../platform/PlatformContextImpl.java           |    1 -
 .../PlatformDefaultJavaObjectFactory.java       |   62 +
 .../processors/platform/PlatformIgnition.java   |   18 +-
 .../platform/PlatformJavaObjectFactoryEx.java   |   36 +
 .../PlatformJavaObjectFactoryProxy.java         |  192 ++
 .../PlatformJavaObjectSingletonFactory.java     |   48 +
 .../platform/PlatformNoopProcessor.java         |   10 +
 .../processors/platform/PlatformProcessor.java  |   19 +
 .../platform/PlatformProcessorImpl.java         |   41 +-
 .../query/PlatformContinuousQueryImpl.java      |   50 +-
 .../utils/PlatformConfigurationUtils.java       |   98 +-
 .../platform/utils/PlatformUtils.java           |   69 +
 .../ignite/internal/util/IgniteUtils.java       |    5 +-
 .../internal/util/PartitionedReadOnlySet.java   |   71 +
 .../util/StripedCompositeReadWriteLock.java     |   10 +
 .../ignite/internal/util/lang/GridFunc.java     |    3 +-
 .../ignite/internal/visor/cache/VisorCache.java |    6 +-
 .../platform/PlatformJavaObjectFactory.java     |   36 +
 .../extensions/communication/MessageReader.java |    9 +
 .../ignite/spi/IgniteNodeValidationResult.java  |    8 +-
 .../ignite/spi/discovery/tcp/ServerImpl.java    |  250 ++-
 .../tcp/internal/TcpDiscoveryNode.java          |    2 +-
 .../messages/TcpDiscoveryAbstractMessage.java   |    4 +-
 .../TcpDiscoveryCustomEventMessage.java         |   13 +-
 .../TcpDiscoveryJoinRequestMessage.java         |   16 +-
 .../TcpDiscoveryStatusCheckMessage.java         |   18 +-
 .../resources/META-INF/classnames.properties    |    2 +
 .../IgniteClientReconnectAtomicsTest.java       |   58 +
 .../GridCachePreloadingEvictionsSelfTest.java   |    4 +-
 .../cache/GridCacheTtlManagerSelfTest.java      |    2 +-
 ...idCacheValueConsistencyAbstractSelfTest.java |    3 +-
 .../IgniteDynamicClientCacheStartSelfTest.java  |   10 -
 .../IgniteTxStoreExceptionAbstractSelfTest.java |    8 +-
 .../GridCacheBinaryObjectsAbstractSelfTest.java |    2 +-
 ...eAbstractDataStructuresFailoverSelfTest.java |  208 +-
 ...actQueueFailoverDataConsistencySelfTest.java |    2 +-
 .../GridCacheQueueCleanupSelfTest.java          |    4 +-
 .../GridCacheSequenceApiSelfAbstractTest.java   |   37 -
 .../GridCacheSetAbstractSelfTest.java           |    5 +-
 .../GridCacheSetFailoverAbstractSelfTest.java   |    8 +-
 .../IgniteClientDataStructuresAbstractTest.java |   70 +
 .../IgniteDataStructureUniqueNameTest.java      |   16 +-
 .../IgniteLockAbstractSelfTest.java             | 1629 ++++++++++++++
 .../IgniteSemaphoreAbstractSelfTest.java        |   31 +
 .../local/IgniteLocalLockSelfTest.java          |  110 +
 .../IgnitePartitionedLockSelfTest.java          |   33 +
 .../IgnitePartitionedQueueNoBackupsTest.java    |    6 +-
 .../IgnitePartitionedSetNoBackupsSelfTest.java  |    6 +-
 .../IgniteReplicatedLockSelfTest.java           |   33 +
 .../distributed/GridCacheLockAbstractTest.java  |    2 +-
 .../distributed/dht/GridCacheDhtTestUtils.java  |    9 +-
 .../near/GridCacheNearOneNodeSelfTest.java      |    4 +-
 .../processors/igfs/IgfsAbstractSelfTest.java   |   10 +-
 .../cache/GridCacheDataStructuresLoadTest.java  |   53 +
 .../platform/PlatformCacheEntryEventFilter.java |  193 ++
 .../PlatformCacheEntryEventFilterFactory.java   |   59 +
 ...latformDefaultJavaObjectFactorySelfTest.java |  185 ++
 .../PlatformJavaObjectFactoryProxySelfTest.java |  220 ++
 .../platform/PlatformStartIgniteTask.java       |    1 +
 .../ignite/platform/PlatformStopIgniteTask.java |    1 +
 .../platform/javaobject/TestJavaObject.java     |  271 +++
 .../javaobject/TestJavaObjectNoDefaultCtor.java |   49 +
 .../TestJavaObjectNoDefaultCtorFactory.java     |   68 +
 .../ignite/testframework/junits/IgniteMock.java |   10 +
 .../junits/multijvm/IgniteProcessProxy.java     |    7 +
 .../ignite/testsuites/IgniteBasicTestSuite.java |    2 +
 .../IgniteCacheDataStructuresSelfTestSuite.java |    6 +
 .../testsuites/IgnitePlatformsTestSuite.java    |   41 +
 .../common/include/ignite/common/concurrent.h   |  176 +-
 .../cpp/common/include/ignite/common/exports.h  |    2 +
 .../cpp/common/include/ignite/common/java.h     |    5 +
 .../platforms/cpp/common/project/vs/module.def  |    2 +
 modules/platforms/cpp/common/src/concurrent.cpp |   13 +-
 modules/platforms/cpp/common/src/exports.cpp    |    8 +
 modules/platforms/cpp/common/src/java.cpp       |   30 +
 .../cpp/core-test/src/concurrent_test.cpp       |   93 +
 .../Apache.Ignite.Core.Tests.csproj             |    2 +
 .../Cache/CacheConfigurationTest.cs             |   49 +
 .../Cache/CacheNearTest.cs                      |  188 ++
 .../Cache/Query/CacheLinqTest.cs                |    2 -
 .../Continuous/ContinuousQueryJavaFilterTest.cs |  323 +++
 .../Apache.Ignite.Core.Tests/EventsTest.cs      |    4 +-
 .../IgniteConfigurationSerializerTest.cs        |    3 +-
 .../IgniteConfigurationTest.cs                  |    2 +
 .../dotnet/Apache.Ignite.Core.Tests/app.config  |    4 +
 .../Apache.Ignite.Core.csproj                   |   16 +-
 .../Cache/Configuration/CacheConfiguration.cs   |   15 +
 .../Configuration/NearCacheConfiguration.cs     |   75 +
 .../Cache/Eviction/EvictionPolicyBase.cs        |  126 ++
 .../Cache/Eviction/FifoEvictionPolicy.cs        |   39 +
 .../Cache/Eviction/IEvictionPolicy.cs           |   32 +
 .../Cache/Eviction/LruEvictionPolicy.cs         |   39 +
 .../Continuous/ContinuousQueryExtensions.cs     |   42 +
 .../Apache.Ignite.Core/Events/CacheEvent.cs     |    9 +-
 .../dotnet/Apache.Ignite.Core/IIgnite.cs        |   42 +
 .../Apache.Ignite.Core/IgniteConfiguration.cs   |   34 +
 .../Impl/Binary/BinaryUtils.cs                  |    3 +
 .../Impl/Binary/Marshaller.cs                   |    2 +
 .../Cache/Event/JavaCacheEntryEventFilter.cs    |   49 +
 .../Continuous/ContinuousQueryHandleImpl.cs     |   17 +-
 .../Common/PlatformJavaObjectFactoryProxy.cs    |  106 +
 .../dotnet/Apache.Ignite.Core/Impl/Ignite.cs    |   62 +
 .../Apache.Ignite.Core/Impl/IgniteProxy.cs      |   25 +
 .../Impl/Unmanaged/IgniteJniNativeMethods.cs    |    6 +
 .../Impl/Unmanaged/UnmanagedUtils.cs            |   32 +
 .../Apache.Ignite.Core/Interop/JavaObject.cs    |   80 +
 .../ignite/schema/generator/CodeGenerator.java  |   30 +-
 .../ignite/schema/generator/XmlGenerator.java   |    2 +-
 .../org/apache/ignite/IgniteSpringBean.java     |   11 +
 190 files changed, 11294 insertions(+), 3190 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/f163abad/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
index 4c5d46c,4bbf47a..2c0417c
--- 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
@@@ -190,12 -189,16 +189,17 @@@ public class GridDhtAtomicCache<K, V> e
  
                  return new GridDhtAtomicCacheEntry(ctx, topVer, key, hash, val);
              }
-         });
+         };
+     }
+ 
+     /** {@inheritDoc} */
+     @Override protected void init() {
+         super.init();
  
 -        updateReplyClos = new CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicUpdateResponse>() {
 +        updateReplyClos = new CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicAbstractUpdateResponse>() {
              @SuppressWarnings("ThrowableResultOfMethodCallIgnored")
 -            @Override public void apply(GridNearAtomicAbstractUpdateRequest req, GridNearAtomicUpdateResponse res) {
 +            @Override public void apply(GridNearAtomicAbstractUpdateRequest req,
 +                GridNearAtomicAbstractUpdateResponse res) {
                  if (ctx.config().getAtomicWriteOrderMode() == CLOCK) {
                      assert req.writeSynchronizationMode() != FULL_ASYNC : req;
  

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

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


[04/20] ignite git commit: Minors.

Posted by vo...@apache.org.
Minors.


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

Branch: refs/heads/ignite-2523-1
Commit: 1eb4bfb8b12eaa55c31c926945e288428fc50131
Parents: 279ce72
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Apr 26 15:58:39 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Apr 26 15:58:39 2016 +0300

----------------------------------------------------------------------
 .../ignite/internal/IgniteClientReconnectCollectionsTest.java     | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/1eb4bfb8/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCollectionsTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCollectionsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCollectionsTest.java
index e8b7d06..2149ae2 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCollectionsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCollectionsTest.java
@@ -27,7 +27,6 @@ import org.apache.ignite.IgniteQueue;
 import org.apache.ignite.IgniteSet;
 import org.apache.ignite.configuration.CollectionConfiguration;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateResponse;
-import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateResponse;
 import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxPrepareResponse;
 import org.apache.ignite.testframework.GridTestUtils;
 
@@ -458,7 +457,7 @@ public class IgniteClientReconnectCollectionsTest extends IgniteClientReconnectA
         BlockTcpCommunicationSpi commSpi = commSpi(srv);
 
         if (colCfg.getAtomicityMode() == ATOMIC)
-            commSpi.blockMessage(GridNearAtomicUpdateResponse.class);
+            commSpi.blockMessage(GridNearAtomicAbstractUpdateResponse.class);
         else
             commSpi.blockMessage(GridNearTxPrepareResponse.class);