You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2015/09/03 03:03:10 UTC

[01/50] [abbrv] ignite git commit: IGNITE-264 - WIP

Repository: ignite
Updated Branches:
  refs/heads/ignite-264 [created] 8af9e64c1


IGNITE-264 - WIP


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

Branch: refs/heads/ignite-264
Commit: 4bf51e7704d207bf91e994925ca509d2b6ba537d
Parents: f286bb4
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Tue Feb 24 18:09:27 2015 -0800
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Tue Feb 24 18:09:27 2015 -0800

----------------------------------------------------------------------
 .../distributed/dht/GridDhtTxPrepareFuture.java |  9 ++++--
 .../cache/transactions/IgniteTxHandler.java     |  4 +--
 .../cache/transactions/IgniteTxManager.java     | 34 +++-----------------
 3 files changed, 12 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/4bf51e77/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
index f6ae0fb..2b1d2f0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
@@ -789,9 +789,6 @@ public final class GridDhtTxPrepareFuture<K, V> extends GridCompoundIdentityFutu
             return;
 
         try {
-            // We are holding transaction-level locks for entries here, so we can get next write version.
-            tx.writeVersion(cctx.versions().next(tx.topologyVersion()));
-
             onEntriesLocked();
 
             {
@@ -810,6 +807,12 @@ public final class GridDhtTxPrepareFuture<K, V> extends GridCompoundIdentityFutu
                 }
             }
 
+            // We are holding transaction-level locks for entries here, so we can get next write version.
+            if (tx.onePhaseCommit())
+                tx.writeVersion(tx.nearXidVersion());
+            else
+                tx.writeVersion(cctx.versions().next(tx.topologyVersion()));
+
             if (isDone())
                 return;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bf51e77/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index 3680f0d..90af0b2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@ -782,9 +782,9 @@ public class IgniteTxHandler<K, V> {
         if (tx == null) {
             if (req.commit())
                 // Must be some long time duplicate, but we add it anyway.
-                ctx.tm().addCommittedTx(req.version(), null);
+                ctx.tm().addCommittedTx(req.writeVersion(), null);
             else
-                ctx.tm().addRolledbackTx(req.version());
+                ctx.tm().addRolledbackTx(req.writeVersion());
 
             if (log.isDebugEnabled())
                 log.debug("Received finish request for non-existing transaction (added to completed set) " +

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bf51e77/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
index f9c4c54..e347cce 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
@@ -335,7 +335,7 @@ public class IgniteTxManager<K, V> extends GridCacheSharedManagerAdapter<K, V> {
      *      {@code false} otherwise.
      */
     public boolean isCompleted(IgniteInternalTx<K, V> tx) {
-        return completedVers.containsKey(tx.xidVersion());
+        return completedVers.containsKey(tx.writeVersion());
     }
 
     /**
@@ -936,36 +936,10 @@ public class IgniteTxManager<K, V> extends GridCacheSharedManagerAdapter<K, V> {
     }
 
     /**
-     * Gets committed transactions starting from the given version (inclusive). // TODO: GG-4011: why inclusive?
-     *
-     * @param min Start (or minimum) version.
-     * @return Committed transactions starting from the given version (non-inclusive).
-     */
-    public Collection<GridCacheVersion> committedVersions(GridCacheVersion min) {
-        ConcurrentNavigableMap<GridCacheVersion, Boolean> tail
-            = completedVers.tailMap(min, true);
-
-        return F.isEmpty(tail) ? Collections.<GridCacheVersion>emptyList() : copyOf(tail, true);
-    }
-
-    /**
-     * Gets rolledback transactions starting from the given version (inclusive). // TODO: GG-4011: why inclusive?
-     *
-     * @param min Start (or minimum) version.
-     * @return Committed transactions starting from the given version (non-inclusive).
-     */
-    public Collection<GridCacheVersion> rolledbackVersions(GridCacheVersion min) {
-        ConcurrentNavigableMap<GridCacheVersion, Boolean> tail
-            = completedVers.tailMap(min, true);
-
-        return F.isEmpty(tail) ? Collections.<GridCacheVersion>emptyList() : copyOf(tail, false);
-    }
-
-    /**
      * @param tx Tx to remove.
      */
     public void removeCommittedTx(IgniteInternalTx<K, V> tx) {
-        completedVers.remove(tx.xidVersion(), true);
+        completedVers.remove(tx.writeVersion(), true);
     }
 
     /**
@@ -973,7 +947,7 @@ public class IgniteTxManager<K, V> extends GridCacheSharedManagerAdapter<K, V> {
      * @return If transaction was not already present in committed set.
      */
     public boolean addCommittedTx(IgniteInternalTx<K, V> tx) {
-        return addCommittedTx(tx.xidVersion(), tx.nearXidVersion());
+        return addCommittedTx(tx.writeVersion(), tx.nearXidVersion());
     }
 
     /**
@@ -1084,7 +1058,7 @@ public class IgniteTxManager<K, V> extends GridCacheSharedManagerAdapter<K, V> {
          * so we don't do it here.
          */
 
-        Boolean committed = completedVers.get(tx.xidVersion());
+        Boolean committed = completedVers.get(tx.writeVersion());
 
         // 1. Make sure that committed version has been recorded.
         if (!((committed != null && committed) || tx.writeSet().isEmpty() || tx.isSystemInvalidate())) {


[03/50] [abbrv] ignite git commit: IGNITE-264 - WIP

Posted by ag...@apache.org.
IGNITE-264 - WIP


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

Branch: refs/heads/ignite-264
Commit: 541175b479d07d18e0a1069cfb9f6cb48eebe12c
Parents: 9b0bd71
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Thu Feb 26 11:33:42 2015 -0800
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Thu Feb 26 11:33:42 2015 -0800

----------------------------------------------------------------------
 .../src/main/java/org/jdk8/backport/ConcurrentLinkedHashMap.java   | 2 --
 1 file changed, 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/541175b4/modules/core/src/main/java/org/jdk8/backport/ConcurrentLinkedHashMap.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/jdk8/backport/ConcurrentLinkedHashMap.java b/modules/core/src/main/java/org/jdk8/backport/ConcurrentLinkedHashMap.java
index e3f16a2..c0e0996 100644
--- a/modules/core/src/main/java/org/jdk8/backport/ConcurrentLinkedHashMap.java
+++ b/modules/core/src/main/java/org/jdk8/backport/ConcurrentLinkedHashMap.java
@@ -729,8 +729,6 @@ public class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V> implements
                         if (qEntry != null && qEntry != e)
                             qEntry.val = val;
 
-                        ((HashEntry<K, V>)e.node.item).val = val;
-
                         modified = true;
                     }
                 }


[25/50] [abbrv] ignite git commit: IGNITE-264 - Fixing tests WIP.

Posted by ag...@apache.org.
IGNITE-264 - Fixing tests WIP.


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

Branch: refs/heads/ignite-264
Commit: a733984d48e2d45aee2d7c6fa2702bf5205a80ca
Parents: ed5edc1
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Wed Aug 12 14:53:15 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Wed Aug 12 14:53:15 2015 -0700

----------------------------------------------------------------------
 .../cache/distributed/dht/GridDhtTxFinishFuture.java        | 2 +-
 .../cache/distributed/near/GridNearTxFinishFuture.java      | 2 +-
 .../processors/cache/transactions/IgniteTxLocalAdapter.java | 9 ++++++---
 .../processors/cache/transactions/IgniteTxManager.java      | 5 ++++-
 4 files changed, 12 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/a733984d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
index c01f85d..8bd518b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
@@ -209,7 +209,7 @@ public final class GridDhtTxFinishFuture<K, V> extends GridCompoundIdentityFutur
     @Override public boolean onDone(IgniteInternalTx tx, Throwable err) {
         if (initialized() || err != null) {
             if (this.tx.onePhaseCommit() && (this.tx.state() == COMMITTING))
-                this.tx.tmCommit();
+                this.tx.tmFinish(err == null);
 
             Throwable e = this.err.get();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/a733984d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
index 94c5150..1e16982 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
@@ -232,7 +232,7 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
             if (this.tx.onePhaseCommit() && (this.tx.state() == COMMITTING)) {
                 finishOnePhase();
 
-                this.tx.tmCommit();
+                this.tx.tmFinish(err == null);
             }
 
             Throwable th = this.err.get();

http://git-wip-us.apache.org/repos/asf/ignite/blob/a733984d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
index 9e4473b..f800135 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
@@ -1028,14 +1028,17 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
     /**
      * Commits transaction to transaction manager. Used for one-phase commit transactions only.
      */
-    public void tmCommit() {
+    public void tmFinish(boolean commit) {
         assert onePhaseCommit();
 
         if (doneFlag.compareAndSet(false, true)) {
             // Unlock all locks.
-            cctx.tm().commitTx(this);
+            if (commit)
+                cctx.tm().commitTx(this);
+            else
+                cctx.tm().rollbackTx(this);
 
-            state(COMMITTED);
+            state(commit ? COMMITTED : ROLLED_BACK);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/a733984d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
index f3bca17..124e71d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
@@ -1118,9 +1118,12 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
         if (!((committed != null && committed) || tx.writeSet().isEmpty() || tx.isSystemInvalidate())) {
             uncommitTx(tx);
 
+            GridCacheVersion first = completedVers.isEmpty() ? null : completedVers.firstKey();
+            GridCacheVersion last = completedVers.isEmpty() ? null : completedVers.lastKey();
+
             throw new IgniteException("Missing commit version (consider increasing " +
                 IGNITE_MAX_COMPLETED_TX_COUNT + " system property) [ver=" + tx.xidVersion() + ", firstVer=" +
-                completedVers.firstKey() + ", lastVer=" + completedVers.lastKey() + ", tx=" + tx.xid() + ']');
+                first + ", lastVer=" + last + ", tx=" + tx.xid() + ']');
         }
 
         ConcurrentMap<GridCacheVersion, IgniteInternalTx> txIdMap = transactionMap(tx);


[29/50] [abbrv] ignite git commit: Merge remote-tracking branch 'upstream/master' into ignite-264

Posted by ag...@apache.org.
Merge remote-tracking branch 'upstream/master' into ignite-264


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

Branch: refs/heads/ignite-264
Commit: d97a340c36c0f559e29fd65437f43c4e4a905cd8
Parents: 9278d80 89e94b6
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Tue Aug 25 17:01:09 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Tue Aug 25 17:01:09 2015 -0700

----------------------------------------------------------------------
 examples/config/example-cache.xml               |    2 -
 .../examples/igfs/IgfsMapReduceExample.java     |    3 +
 .../examples/servicegrid/ServicesExample.java   |   13 +-
 .../ignite/codegen/MessageCodeGenerator.java    |   25 +-
 modules/core/pom.xml                            |   21 +
 .../src/main/java/org/apache/ignite/Ignite.java |    7 +
 .../java/org/apache/ignite/IgniteCache.java     |   41 +
 .../java/org/apache/ignite/IgnitePortables.java |  362 ++
 .../apache/ignite/IgniteSystemProperties.java   |    3 +
 .../store/jdbc/CacheAbstractJdbcStore.java      |   45 +-
 .../cache/store/jdbc/CacheJdbcPojoStore.java    |   32 +-
 .../store/jdbc/CacheJdbcPojoStoreFactory.java   |    2 +-
 .../store/jdbc/dialect/BasicJdbcDialect.java    |    3 +
 .../cache/store/jdbc/dialect/DB2Dialect.java    |    3 +
 .../cache/store/jdbc/dialect/H2Dialect.java     |    3 +
 .../cache/store/jdbc/dialect/JdbcDialect.java   |    3 +-
 .../cache/store/jdbc/dialect/MySQLDialect.java  |    3 +
 .../cache/store/jdbc/dialect/OracleDialect.java |    3 +
 .../store/jdbc/dialect/SQLServerDialect.java    |    3 +
 .../cluster/ClusterTopologyException.java       |   18 +
 .../configuration/CacheConfiguration.java       |   40 +
 .../configuration/IgniteConfiguration.java      |   27 +-
 .../configuration/PlatformConfiguration.java    |   25 +
 .../internal/GridEventConsumeHandler.java       |   14 +-
 .../ignite/internal/GridJobCancelRequest.java   |    2 +-
 .../ignite/internal/GridJobExecuteRequest.java  |    2 +-
 .../ignite/internal/GridJobExecuteResponse.java |    2 +-
 .../ignite/internal/GridJobSiblingsRequest.java |    2 +-
 .../internal/GridJobSiblingsResponse.java       |    2 +-
 .../ignite/internal/GridKernalContext.java      |    6 +
 .../ignite/internal/GridKernalContextImpl.java  |   15 +-
 .../ignite/internal/GridTaskCancelRequest.java  |    2 +-
 .../ignite/internal/GridTaskSessionRequest.java |    2 +-
 .../org/apache/ignite/internal/IgniteEx.java    |    1 +
 .../apache/ignite/internal/IgniteKernal.java    |   13 +-
 .../ignite/internal/MarshallerContextImpl.java  |   24 +-
 .../ClusterTopologyCheckedException.java        |   18 +
 .../internal/direct/DirectByteBufferStream.java |    2 +-
 .../internal/direct/DirectMessageReader.java    |    6 +
 .../interop/InteropAwareEventFilter.java        |   37 -
 .../internal/interop/InteropBootstrap.java      |   35 -
 .../interop/InteropBootstrapFactory.java        |   39 -
 .../internal/interop/InteropException.java      |   71 -
 .../internal/interop/InteropIgnition.java       |  241 --
 .../interop/InteropLocalEventListener.java      |   28 -
 .../interop/InteropNoCallbackException.java     |   50 -
 .../internal/interop/InteropProcessor.java      |   51 -
 .../checkpoint/GridCheckpointRequest.java       |    2 +-
 .../managers/communication/GridIoManager.java   |    2 +-
 .../managers/communication/GridIoMessage.java   |    2 +-
 .../communication/GridIoMessageFactory.java     |    6 +
 .../communication/GridIoUserMessage.java        |    2 +-
 .../deployment/GridDeploymentInfoBean.java      |    2 +-
 .../deployment/GridDeploymentRequest.java       |    2 +-
 .../deployment/GridDeploymentResponse.java      |    2 +-
 .../eventstorage/GridEventStorageManager.java   |   10 +-
 .../eventstorage/GridEventStorageMessage.java   |    2 +-
 .../platform/PlatformAwareEventFilter.java      |   37 +
 .../platform/PlatformLocalEventListener.java    |   28 +
 .../portable/GridPortableMarshaller.java        |  304 ++
 .../portable/PortableAbstractLazyValue.java     |   57 +
 .../internal/portable/PortableBuilderEnum.java  |  114 +
 .../internal/portable/PortableBuilderImpl.java  |  519 +++
 .../portable/PortableBuilderReader.java         |  775 ++++
 .../PortableBuilderSerializationAware.java      |   29 +
 .../portable/PortableBuilderSerializer.java     |  210 +
 .../portable/PortableClassDescriptor.java       | 1344 +++++++
 .../internal/portable/PortableContext.java      | 1089 ++++++
 .../portable/PortableEnumArrayLazyValue.java    |  111 +
 .../portable/PortableLazyArrayList.java         |  156 +
 .../portable/PortableLazyLinkedList.java        |  210 +
 .../internal/portable/PortableLazyMap.java      |  214 +
 .../internal/portable/PortableLazyMapEntry.java |   66 +
 .../internal/portable/PortableLazySet.java      |   89 +
 .../internal/portable/PortableLazyValue.java    |   28 +
 .../portable/PortableMetaDataCollector.java     |  253 ++
 .../portable/PortableMetaDataHandler.java       |   43 +
 .../internal/portable/PortableMetaDataImpl.java |  140 +
 .../portable/PortableObjectArrayLazyValue.java  |   89 +
 .../internal/portable/PortableObjectEx.java     |  213 +
 .../internal/portable/PortableObjectImpl.java   |  383 ++
 .../portable/PortableObjectOffheapImpl.java     |  238 ++
 .../portable/PortablePlainLazyValue.java        |   47 +
 .../portable/PortablePlainPortableObject.java   |   50 +
 .../internal/portable/PortablePrimitives.java   |  773 ++++
 .../internal/portable/PortableRawReaderEx.java  |   33 +
 .../internal/portable/PortableRawWriterEx.java  |   60 +
 .../portable/PortableReaderContext.java         |   83 +
 .../internal/portable/PortableReaderExImpl.java | 2949 ++++++++++++++
 .../PortableThreadLocalMemoryAllocator.java     |  163 +
 .../ignite/internal/portable/PortableUtils.java |  419 ++
 .../portable/PortableValueWithType.java         |   74 +
 .../internal/portable/PortableWriterExImpl.java | 1759 +++++++++
 .../ignite/internal/portable/package-info.java  |   22 +
 .../streams/PortableAbstractInputStream.java    |  343 ++
 .../streams/PortableAbstractOutputStream.java   |  323 ++
 .../streams/PortableAbstractStream.java         |   82 +
 .../streams/PortableHeapInputStream.java        |  134 +
 .../streams/PortableHeapOutputStream.java       |  155 +
 .../portable/streams/PortableInputStream.java   |  168 +
 .../streams/PortableMemoryAllocator.java        |   76 +
 .../streams/PortableOffheapInputStream.java     |  129 +
 .../streams/PortableOffheapOutputStream.java    |  169 +
 .../portable/streams/PortableOutputStream.java  |  165 +
 .../streams/PortableSimpleMemoryAllocator.java  |   67 +
 .../portable/streams/PortableStream.java        |   53 +
 .../internal/portable/streams/package-info.java |   22 +
 .../affinity/AffinityTopologyVersion.java       |    2 +-
 .../cache/CacheEntryInfoCollection.java         |    2 +-
 .../cache/CacheEntryPredicateAdapter.java       |    2 +-
 .../cache/CacheEntryPredicateContainsValue.java |    2 +-
 .../cache/CacheEntrySerializablePredicate.java  |    2 +-
 .../processors/cache/CacheEvictionEntry.java    |    2 +-
 .../cache/CacheInvokeDirectResult.java          |    2 +-
 .../processors/cache/CacheObjectAdapter.java    |    2 +-
 .../cache/CacheObjectByteArrayImpl.java         |    2 +-
 .../CachePartialUpdateCheckedException.java     |   34 +-
 .../processors/cache/GridCacheAdapter.java      |  246 +-
 .../processors/cache/GridCacheEntryInfo.java    |    2 +-
 .../cache/GridCacheEvictionManager.java         |    2 +-
 .../cache/GridCacheEvictionRequest.java         |    2 +-
 .../cache/GridCacheEvictionResponse.java        |    2 +-
 .../processors/cache/GridCacheIoManager.java    |    1 -
 .../processors/cache/GridCacheMapEntry.java     |    4 +-
 .../processors/cache/GridCacheMessage.java      |    2 +-
 .../processors/cache/GridCacheProcessor.java    |   70 +-
 .../processors/cache/GridCacheReturn.java       |    2 +-
 .../cache/GridCacheSharedContext.java           |   17 +
 .../processors/cache/GridCacheUtils.java        |   23 +
 .../processors/cache/IgniteCacheProxy.java      |    5 +
 .../distributed/GridCacheTtlUpdateRequest.java  |    3 +-
 .../distributed/GridCacheTxRecoveryRequest.java |    2 +-
 .../GridCacheTxRecoveryResponse.java            |    2 +-
 .../distributed/GridDistributedBaseMessage.java |    2 +-
 .../distributed/GridDistributedCacheEntry.java  |   11 +-
 .../distributed/GridDistributedLockRequest.java |    2 +-
 .../GridDistributedLockResponse.java            |    2 +-
 .../GridDistributedTxFinishRequest.java         |    2 +-
 .../GridDistributedTxFinishResponse.java        |    2 +-
 .../GridDistributedTxPrepareRequest.java        |    2 +-
 .../GridDistributedTxPrepareResponse.java       |    2 +-
 .../GridDistributedUnlockRequest.java           |    2 +-
 .../dht/GridDhtAffinityAssignmentRequest.java   |    2 +-
 .../dht/GridDhtAffinityAssignmentResponse.java  |    2 +-
 .../distributed/dht/GridDhtCacheAdapter.java    |   12 +-
 .../cache/distributed/dht/GridDhtGetFuture.java |   12 +-
 .../distributed/dht/GridDhtLockRequest.java     |    2 +-
 .../distributed/dht/GridDhtLockResponse.java    |    2 +-
 .../distributed/dht/GridDhtTxFinishRequest.java |    2 +-
 .../dht/GridDhtTxFinishResponse.java            |    2 +-
 .../cache/distributed/dht/GridDhtTxLocal.java   |    4 +-
 .../distributed/dht/GridDhtTxPrepareFuture.java |  150 +-
 .../dht/GridDhtTxPrepareRequest.java            |    2 +-
 .../dht/GridDhtTxPrepareResponse.java           |   20 +-
 .../distributed/dht/GridDhtUnlockRequest.java   |    2 +-
 .../GridDhtUnreservedPartitionException.java    |   66 +
 .../dht/GridPartitionedGetFuture.java           |  104 +-
 .../dht/atomic/GridDhtAtomicCache.java          |   16 +-
 .../GridDhtAtomicDeferredUpdateResponse.java    |    2 +-
 .../dht/atomic/GridDhtAtomicUpdateRequest.java  |    2 +-
 .../dht/atomic/GridDhtAtomicUpdateResponse.java |    2 +-
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |   66 +-
 .../dht/atomic/GridNearAtomicUpdateRequest.java |    2 +-
 .../atomic/GridNearAtomicUpdateResponse.java    |    2 +-
 .../dht/colocated/GridDhtColocatedCache.java    |   19 +-
 .../colocated/GridDhtColocatedLockFuture.java   |    8 +-
 .../dht/preloader/GridDhtForceKeysRequest.java  |    3 +-
 .../dht/preloader/GridDhtForceKeysResponse.java |    4 +-
 .../GridDhtPartitionDemandMessage.java          |    2 +-
 .../preloader/GridDhtPartitionExchangeId.java   |    2 +-
 .../GridDhtPartitionSupplyMessage.java          |    2 +-
 .../GridDhtPartitionsAbstractMessage.java       |    2 +-
 .../GridDhtPartitionsExchangeFuture.java        |   40 +-
 .../preloader/GridDhtPartitionsFullMessage.java |    2 +-
 .../GridDhtPartitionsSingleMessage.java         |    2 +-
 .../GridDhtPartitionsSingleRequest.java         |    2 +-
 .../distributed/near/CacheVersionedValue.java   |    2 +-
 .../distributed/near/GridNearAtomicCache.java   |    6 +-
 .../distributed/near/GridNearCacheAdapter.java  |   15 +-
 .../distributed/near/GridNearCacheEntry.java    |   10 +-
 .../distributed/near/GridNearGetFuture.java     |  120 +-
 .../distributed/near/GridNearGetRequest.java    |    2 +-
 .../distributed/near/GridNearGetResponse.java   |    2 +-
 .../distributed/near/GridNearLockFuture.java    |   12 +-
 .../distributed/near/GridNearLockRequest.java   |    2 +-
 .../distributed/near/GridNearLockResponse.java  |    2 +-
 .../near/GridNearOptimisticTxPrepareFuture.java |   15 +-
 .../GridNearPessimisticTxPrepareFuture.java     |    9 +-
 .../near/GridNearTransactionalCache.java        |    9 +-
 .../near/GridNearTxFinishRequest.java           |    2 +-
 .../near/GridNearTxFinishResponse.java          |    2 +-
 .../cache/distributed/near/GridNearTxLocal.java |    7 +-
 .../near/GridNearTxPrepareRequest.java          |    2 +-
 .../near/GridNearTxPrepareResponse.java         |    5 +-
 .../distributed/near/GridNearUnlockRequest.java |    2 +-
 .../cache/local/GridLocalCacheEntry.java        |    4 +-
 .../local/atomic/GridLocalAtomicCache.java      |   17 +-
 .../CacheDefaultPortableAffinityKeyMapper.java  |   51 +
 .../portable/CacheObjectPortableContext.java    |  187 +
 .../portable/CacheObjectPortableProcessor.java  |  101 +
 .../CacheObjectPortableProcessorImpl.java       |  956 +++++
 .../cache/portable/IgnitePortablesImpl.java     |  176 +
 .../cache/portable/PortableMetaDataKey.java     |   80 +
 .../processors/cache/portable/package-info.java |   22 +
 .../cache/query/GridCacheQueryAdapter.java      |   56 +-
 .../cache/query/GridCacheQueryManager.java      |   71 +-
 .../cache/query/GridCacheQueryRequest.java      |    2 +-
 .../cache/query/GridCacheQueryResponse.java     |    2 +-
 .../cache/query/GridCacheSqlQuery.java          |    9 +-
 .../continuous/CacheContinuousQueryEntry.java   |    2 +-
 .../cache/store/CacheOsStoreManager.java        |    3 +-
 .../cache/transactions/IgniteInternalTx.java    |    2 +-
 .../cache/transactions/IgniteTxAdapter.java     |   19 +-
 .../cache/transactions/IgniteTxEntry.java       |    2 +-
 .../cache/transactions/IgniteTxHandler.java     |    5 +-
 .../cache/transactions/IgniteTxKey.java         |    2 +-
 .../transactions/IgniteTxLocalAdapter.java      |    4 +-
 .../cache/transactions/TxEntryValueHolder.java  |    2 +-
 .../version/GridCacheRawVersionedEntry.java     |    2 +-
 .../cache/version/GridCacheVersion.java         |    2 +-
 .../cache/version/GridCacheVersionEx.java       |    2 +-
 .../clock/GridClockDeltaSnapshotMessage.java    |    2 +-
 .../processors/clock/GridClockDeltaVersion.java |    2 +-
 .../continuous/GridContinuousMessage.java       |    2 +-
 .../datastreamer/DataStreamerEntry.java         |    2 +-
 .../datastreamer/DataStreamerRequest.java       |    2 +-
 .../datastreamer/DataStreamerResponse.java      |    2 +-
 .../processors/igfs/IgfsAckMessage.java         |    2 +-
 .../internal/processors/igfs/IgfsBlockKey.java  |    2 +-
 .../processors/igfs/IgfsBlocksMessage.java      |    2 +-
 .../igfs/IgfsCommunicationMessage.java          |    2 +-
 .../processors/igfs/IgfsDeleteMessage.java      |    2 +-
 .../processors/igfs/IgfsFileAffinityRange.java  |    9 +-
 .../igfs/IgfsFragmentizerRequest.java           |    2 +-
 .../igfs/IgfsFragmentizerResponse.java          |    2 +-
 .../processors/igfs/IgfsSyncMessage.java        |    2 +-
 .../platform/PlatformNoopProcessor.java         |   41 +
 .../processors/platform/PlatformProcessor.java  |   40 +
 .../portable/GridPortableInputStream.java       |  168 -
 .../portable/GridPortableOutputStream.java      |  165 -
 .../processors/portable/GridPortableStream.java |   53 -
 .../processors/portable/package-info.java       |   22 -
 .../messages/GridQueryCancelRequest.java        |    2 +-
 .../twostep/messages/GridQueryFailResponse.java |    2 +-
 .../messages/GridQueryNextPageRequest.java      |    2 +-
 .../messages/GridQueryNextPageResponse.java     |    3 +-
 .../h2/twostep/messages/GridQueryRequest.java   |    5 +-
 .../handlers/task/GridTaskResultRequest.java    |    2 +-
 .../handlers/task/GridTaskResultResponse.java   |    2 +-
 .../service/GridServiceProcessor.java           |    5 +
 .../ignite/internal/util/GridArgumentCheck.java |   17 +
 .../ignite/internal/util/GridByteArrayList.java |    2 +-
 .../ignite/internal/util/GridLongList.java      |    2 +-
 .../ignite/internal/util/IgniteUtils.java       |   10 +-
 .../ignite/internal/util/lang/GridFunc.java     |   14 +
 .../internal/util/nio/GridDirectParser.java     |    2 +-
 .../util/nio/ssl/BlockingSslHandler.java        |    2 +-
 .../visor/cache/VisorCacheClearTask.java        |   11 +-
 .../marshaller/portable/PortableMarshaller.java |  347 ++
 .../marshaller/portable/package-info.java       |   22 +
 .../communication/MessageFormatter.java         |    3 +-
 .../extensions/communication/MessageReader.java |   13 +
 .../apache/ignite/portable/PortableBuilder.java |  138 +
 .../ignite/portable/PortableException.java      |   58 +
 .../ignite/portable/PortableIdMapper.java       |   56 +
 .../portable/PortableInvalidClassException.java |   58 +
 .../ignite/portable/PortableMarshalAware.java   |   48 +
 .../ignite/portable/PortableMetadata.java       |   63 +
 .../apache/ignite/portable/PortableObject.java  |  153 +
 .../portable/PortableProtocolVersion.java       |   41 +
 .../ignite/portable/PortableRawReader.java      |  233 ++
 .../ignite/portable/PortableRawWriter.java      |  218 ++
 .../apache/ignite/portable/PortableReader.java  |  283 ++
 .../ignite/portable/PortableSerializer.java     |   49 +
 .../portable/PortableTypeConfiguration.java     |  197 +
 .../apache/ignite/portable/PortableWriter.java  |  265 ++
 .../apache/ignite/portable/package-info.java    |   22 +
 .../org/apache/ignite/spi/IgniteSpiAdapter.java |    2 +-
 .../jobstealing/JobStealingRequest.java         |    2 +-
 .../communication/tcp/TcpCommunicationSpi.java  |    8 +-
 .../ignite/spi/discovery/tcp/ServerImpl.java    |   85 +-
 .../spi/discovery/tcp/TcpDiscoveryImpl.java     |    4 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |   58 +-
 .../tcp/internal/TcpDiscoveryNode.java          |   18 +-
 .../tcp/internal/TcpDiscoveryNodesRing.java     |   23 +
 .../TcpDiscoveryMulticastIpFinder.java          |   38 +
 .../resources/META-INF/classnames.properties    |  287 +-
 .../config/store/jdbc/ignite-type-metadata.xml  |    8 +
 .../store/jdbc/CacheJdbcPojoStoreTest.java      |   33 +-
 ...eJdbcStoreAbstractMultithreadedSelfTest.java |   16 +-
 .../ignite/cache/store/jdbc/model/Person.java   |   26 +-
 .../GridPortableAffinityKeySelfTest.java        |  215 +
 .../GridPortableBuilderAdditionalSelfTest.java  | 1001 +++++
 .../portable/GridPortableBuilderSelfTest.java   | 1007 +++++
 ...eBuilderStringAsCharsAdditionalSelfTest.java |   28 +
 ...ridPortableBuilderStringAsCharsSelfTest.java |   28 +
 ...idPortableMarshallerCtxDisabledSelfTest.java |  128 +
 .../GridPortableMarshallerSelfTest.java         | 3691 ++++++++++++++++++
 .../GridPortableMetaDataDisabledSelfTest.java   |  218 ++
 .../portable/GridPortableMetaDataSelfTest.java  |  343 ++
 .../portable/GridPortableWildcardsSelfTest.java |  480 +++
 .../GridPortableMarshalerAwareTestClass.java    |   62 +
 .../mutabletest/GridPortableTestClasses.java    |  425 ++
 .../portable/mutabletest/package-info.java      |   22 +
 .../ignite/internal/portable/package-info.java  |   22 +
 .../portable/test/GridPortableTestClass1.java   |   28 +
 .../portable/test/GridPortableTestClass2.java   |   24 +
 .../internal/portable/test/package-info.java    |   22 +
 .../test/subpackage/GridPortableTestClass3.java |   24 +
 .../portable/test/subpackage/package-info.java  |   22 +
 ...cheDhtLocalPartitionAfterRemoveSelfTest.java |   33 +-
 .../cache/CrossCacheTxRandomOperationsTest.java |  534 +++
 .../cache/GridCacheAbstractFullApiSelfTest.java |    1 -
 .../GridCacheDaemonNodeAbstractSelfTest.java    |    9 +-
 ...teAtomicCacheEntryProcessorNodeJoinTest.java |   32 +
 .../IgniteCacheEntryProcessorNodeJoinTest.java  |  225 ++
 .../IgniteCacheTopologySafeGetSelfTest.java     |  218 ++
 .../GridCacheMultiNodeLockAbstractTest.java     |   41 +-
 .../IgniteCacheSizeFailoverTest.java            |  115 +
 .../IgniteCacheCrossCacheTxFailoverTest.java    |  433 ++
 .../IgniteCachePutRetryAbstractSelfTest.java    |  121 +-
 ...gniteCachePutRetryTransactionalSelfTest.java |  187 +
 ...PutRetryAtomicPrimaryWriteOrderSelfTest.java |   32 +
 .../near/GridCacheNearOnlyTopologySelfTest.java |    4 +-
 .../near/GridCacheNearTxForceKeyTest.java       |   76 +
 ...idCachePartitionedHitsAndMissesSelfTest.java |   20 +-
 ...idCachePartitionedMultiNodeLockSelfTest.java |    8 +-
 .../near/IgniteCacheNearOnlyTxTest.java         |   82 +-
 ...ridCacheReplicatedMultiNodeLockSelfTest.java |    8 +-
 .../lru/LruNearEvictionPolicySelfTest.java      |   29 +-
 .../LruNearOnlyNearEvictionPolicySelfTest.java  |   55 +-
 .../local/GridCacheDaemonNodeLocalSelfTest.java |   30 -
 ...ClientNodePortableMetadataMultinodeTest.java |  277 ++
 ...GridCacheClientNodePortableMetadataTest.java |  280 ++
 ...ableObjectsAbstractDataStreamerSelfTest.java |  183 +
 ...bleObjectsAbstractMultiThreadedSelfTest.java |  222 ++
 ...ridCachePortableObjectsAbstractSelfTest.java |  958 +++++
 .../GridCachePortableStoreAbstractSelfTest.java |  294 ++
 .../GridCachePortableStoreObjectsSelfTest.java  |   55 +
 ...GridCachePortableStorePortablesSelfTest.java |   67 +
 ...ridPortableCacheEntryMemorySizeSelfTest.java |   52 +
 ...leDuplicateIndexObjectsAbstractSelfTest.java |  153 +
 .../DataStreamProcessorPortableSelfTest.java    |   67 +
 .../GridDataStreamerImplSelfTest.java           |  338 ++
 ...ridCacheAffinityRoutingPortableSelfTest.java |   48 +
 ...lyPortableDataStreamerMultiNodeSelfTest.java |   29 +
 ...rtableDataStreamerMultithreadedSelfTest.java |   46 +
 ...artitionedOnlyPortableMultiNodeSelfTest.java |   28 +
 ...tionedOnlyPortableMultithreadedSelfTest.java |   46 +
 .../GridCacheMemoryModePortableSelfTest.java    |   36 +
 ...acheOffHeapTieredAtomicPortableSelfTest.java |   48 +
 ...eapTieredEvictionAtomicPortableSelfTest.java |   96 +
 ...heOffHeapTieredEvictionPortableSelfTest.java |   96 +
 .../GridCacheOffHeapTieredPortableSelfTest.java |   48 +
 ...ateIndexObjectPartitionedAtomicSelfTest.java |   37 +
 ...xObjectPartitionedTransactionalSelfTest.java |   40 +
 ...AtomicNearDisabledOffheapTieredSelfTest.java |   29 +
 ...rtableObjectsAtomicNearDisabledSelfTest.java |   50 +
 ...tableObjectsAtomicOffheapTieredSelfTest.java |   29 +
 .../GridCachePortableObjectsAtomicSelfTest.java |   50 +
 ...tionedNearDisabledOffheapTieredSelfTest.java |   30 +
 ...eObjectsPartitionedNearDisabledSelfTest.java |   50 +
 ...ObjectsPartitionedOffheapTieredSelfTest.java |   30 +
 ...CachePortableObjectsPartitionedSelfTest.java |   50 +
 ...sNearPartitionedByteArrayValuesSelfTest.java |   41 +
 ...sPartitionedOnlyByteArrayValuesSelfTest.java |   42 +
 ...dCachePortableObjectsReplicatedSelfTest.java |   50 +
 ...CachePortableObjectsAtomicLocalSelfTest.java |   32 +
 ...rtableObjectsLocalOffheapTieredSelfTest.java |   29 +
 .../GridCachePortableObjectsLocalSelfTest.java  |   50 +
 .../OptimizedMarshallerNodeFailoverTest.java    |   97 +-
 .../tcp/IgniteCacheSslStartStopSelfTest.java    |    1 +
 .../spi/discovery/tcp/TcpDiscoverySelfTest.java |  152 +-
 .../TcpDiscoverySpiFailureTimeoutSelfTest.java  |    8 +-
 .../tcp/TcpDiscoverySpiStartStopSelfTest.java   |    2 +-
 .../testframework/GridSpiTestContext.java       |    2 +-
 .../ignite/testframework/GridTestUtils.java     |    2 +-
 .../ignite/testframework/junits/IgniteMock.java |    5 +
 .../multijvm/IgniteCacheProcessProxy.java       |    5 +
 .../junits/multijvm/IgniteProcessProxy.java     |    5 +
 .../IgniteCacheFailoverTestSuite.java           |    5 +
 .../IgniteCacheFailoverTestSuite2.java          |    2 +
 .../testsuites/IgniteCacheTestSuite2.java       |    6 +
 .../IgnitePortableCacheFullApiTestSuite.java    |   38 +
 .../IgnitePortableCacheTestSuite.java           |   86 +
 .../IgnitePortableObjectsTestSuite.java         |   74 +
 .../ignite/portable/test1/1.1/test1-1.1.jar     |  Bin 0 -> 2548 bytes
 .../ignite/portable/test1/1.1/test1-1.1.pom     |    9 +
 .../portable/test1/maven-metadata-local.xml     |   12 +
 .../ignite/portable/test2/1.1/test2-1.1.jar     |  Bin 0 -> 1361 bytes
 .../ignite/portable/test2/1.1/test2-1.1.pom     |    9 +
 .../portable/test2/maven-metadata-local.xml     |   12 +
 .../query/h2/sql/GridSqlQuerySplitter.java      |    3 +
 .../query/h2/twostep/GridMergeTable.java        |    7 +-
 .../query/h2/twostep/GridThreadLocalTable.java  |   22 +-
 ...CacheScanPartitionQueryFallbackSelfTest.java |   96 +
 .../query/IgniteSqlSplitterSelfTest.java        |  215 +
 .../IgniteCacheQuerySelfTestSuite.java          |    2 +
 .../IgnitePortableCacheQueryTestSuite.java      |   95 +
 modules/jms11/pom.xml                           |   98 +
 .../apache/ignite/stream/jms11/JmsStreamer.java |  524 +++
 .../ignite/stream/jms11/MessageTransformer.java |   43 +
 .../stream/jms11/IgniteJmsStreamerTest.java     |  551 +++
 .../jms11/IgniteJmsStreamerTestSuite.java       |   34 +
 .../ignite/stream/jms11/TestTransformers.java   |  123 +
 .../apache/ignite/logger/log4j/Log4JLogger.java |    4 +
 modules/platform/pom.xml                        |   65 +
 .../Apache.Ignite.Core.csproj                   |   72 +
 .../main/dotnet/Apache.Ignite.Core/Ignition.cs  |   23 +
 .../Impl/Memory/IPlatformMemory.cs              |   62 +
 .../Memory/PlatformBigEndianMemoryStream.cs     |  483 +++
 .../Impl/Memory/PlatformMemory.cs               |   77 +
 .../Impl/Memory/PlatformMemoryManager.cs        |  106 +
 .../Impl/Memory/PlatformMemoryPool.cs           |  105 +
 .../Impl/Memory/PlatformMemoryStream.cs         |  676 ++++
 .../Impl/Memory/PlatformMemoryUtils.cs          |  462 +++
 .../Impl/Memory/PlatformPooledMemory.cs         |   70 +
 .../Impl/Memory/PlatformRawMemory.cs            |   88 +
 .../Impl/Memory/PlatformUnpooledMemory.cs       |   52 +
 .../Impl/Portable/Io/IPortableStream.cs         |  320 ++
 .../Properties/AssemblyInfo.cs                  |   45 +
 .../platform/src/main/dotnet/Apache.Ignite.sln  |   35 +
 .../main/dotnet/Apache.Ignite.sln.DotSettings   |    4 +
 .../internal/platform/PlatformBootstrap.java    |   36 +
 .../platform/PlatformBootstrapFactory.java      |   37 +
 .../internal/platform/PlatformException.java    |   71 +
 .../internal/platform/PlatformIgnition.java     |  187 +
 .../platform/PlatformNoCallbackException.java   |   50 +
 .../callback/PlatformCallbackGateway.java       |  869 +++++
 .../callback/PlatformCallbackUtils.java         |  468 +++
 .../platform/memory/PlatformAbstractMemory.java |  121 +
 .../PlatformBigEndianInputStreamImpl.java       |  126 +
 .../PlatformBigEndianOutputStreamImpl.java      |  162 +
 .../platform/memory/PlatformExternalMemory.java |   55 +
 .../platform/memory/PlatformInputStream.java    |   30 +
 .../memory/PlatformInputStreamImpl.java         |  323 ++
 .../platform/memory/PlatformMemory.java         |   77 +
 .../platform/memory/PlatformMemoryManager.java  |   46 +
 .../memory/PlatformMemoryManagerImpl.java       |   83 +
 .../platform/memory/PlatformMemoryPool.java     |  133 +
 .../platform/memory/PlatformMemoryUtils.java    |  468 +++
 .../platform/memory/PlatformOutputStream.java   |   30 +
 .../memory/PlatformOutputStreamImpl.java        |  259 ++
 .../platform/memory/PlatformPooledMemory.java   |   63 +
 .../platform/memory/PlatformUnpooledMemory.java |   51 +
 .../Apache.Ignite.Core.Tests.csproj             |   65 +
 .../Apache.Ignite.Core.Tests/IgnitionTest.cs    |   30 +
 .../Memory/InteropMemoryTest.cs                 |  213 +
 .../Properties/AssemblyInfo.cs                  |   35 +
 .../Apache.Ignite.Core.Tests/TestRunner.cs      |   70 +
 .../ignite/schema/model/PojoDescriptor.java     |    4 +-
 .../ignite/schema/model/SchemaDescriptor.java   |   61 +
 .../schema/parser/DatabaseMetadataParser.java   |   54 +-
 .../parser/dialect/DB2MetadataDialect.java      |    3 +-
 .../parser/dialect/DatabaseMetadataDialect.java |   13 +-
 .../parser/dialect/JdbcMetadataDialect.java     |  129 +-
 .../parser/dialect/MySQLMetadataDialect.java    |   57 +
 .../parser/dialect/OracleMetadataDialect.java   |  212 +-
 .../org/apache/ignite/schema/ui/Controls.java   |   25 +-
 .../ignite/schema/ui/SchemaImportApp.java       |  157 +-
 .../schema/test/AbstractSchemaImportTest.java   |   10 +-
 .../org/apache/ignite/IgniteSpringBean.java     |    7 +
 .../util/spring/IgniteSpringHelperImpl.java     |    4 +-
 .../jdbc/CacheJdbcPojoStoreFactorySelfTest.java |   14 +-
 modules/zookeeper/pom.xml                       |   89 +
 .../zk/TcpDiscoveryZookeeperIpFinder.java       |  350 ++
 .../tcp/ipfinder/zk/ZookeeperIpFinderTest.java  |  390 ++
 parent/pom.xml                                  |   12 +
 pom.xml                                         |    9 +-
 scripts/apply-pull-request.sh                   |  141 +
 470 files changed, 46160 insertions(+), 1982 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheEntry.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java
----------------------------------------------------------------------

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

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

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

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
index 79f8dc0,110501b..5418dd1
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
@@@ -266,9 -297,17 +266,9 @@@ public class GridNearLockResponse exten
  
                  reader.incrementState();
  
 -            case 15:
 -                pending = reader.readCollection("pending", MessageCollectionItemType.MSG);
 -
 -                if (!reader.isLastRead())
 -                    return false;
 -
 -                reader.incrementState();
 -
          }
  
-         return true;
+         return reader.afterMessageRead(GridNearLockResponse.class);
      }
  
      /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTransactionalCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearUnlockRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java
index 3f0afc2,4e43d97..c572575
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java
@@@ -302,9 -302,17 +302,9 @@@ public interface IgniteInternalTx exten
      /**
       * @return Invalid partitions.
       */
-     public Set<Integer> invalidPartitions();
+     public Map<Integer, Set<Integer>> invalidPartitions();
  
      /**
 -     * Gets owned version for near remote transaction.
 -     *
 -     * @param key Key to get version for.
 -     * @return Owned version, if any.
 -     */
 -    @Nullable public GridCacheVersion ownedVersion(IgniteTxKey key);
 -
 -    /**
       * Gets ID of additional node involved. For example, in DHT case, other node is
       * near node ID.
       *

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
index 2606a5e,b8beb15..badcd46
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
@@@ -162,8 -162,7 +162,8 @@@ public abstract class IgniteTxAdapter e
      private AtomicBoolean preparing = new AtomicBoolean();
  
      /** */
 +    @GridToStringInclude
-     private Set<Integer> invalidParts = new GridLeanSet<>();
+     private Map<Integer, Set<Integer>> invalidParts = new HashMap<>(3);
  
      /**
       * Transaction state. Note that state is not protected, as we want to

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index 9e927a9,227cb34..6b5d850
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@@ -1145,16 -1150,10 +1144,16 @@@ public class IgniteTxHandler 
              // in prepare phase will get properly ordered as well.
              tx.prepare();
  
 -            if (req.last())
 +            if (req.last()) {
 +                assert !F.isEmpty(req.transactionNodes()) :
 +                    "Received last prepare request with empty transaction nodes: " + req;
 +
 +                tx.transactionNodes(req.transactionNodes());
 +
                  tx.state(PREPARED);
 +            }
  
-             res.invalidPartitions(tx.invalidPartitions());
+             res.invalidPartitionsByCacheId(tx.invalidPartitions());
  
              if (tx.empty() && req.last()) {
                  tx.rollback();

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d97a340c/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
----------------------------------------------------------------------


[12/50] [abbrv] ignite git commit: Merge branch master into ignite-264

Posted by ag...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
index 0000000,234121b..95e1847
mode 000000,100644..100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
@@@ -1,0 -1,817 +1,820 @@@
+ /*
+  * 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.near;
+ 
+ import org.apache.ignite.*;
+ import org.apache.ignite.cluster.*;
+ import org.apache.ignite.internal.*;
+ import org.apache.ignite.internal.cluster.*;
+ import org.apache.ignite.internal.processors.affinity.*;
+ import org.apache.ignite.internal.processors.cache.*;
+ import org.apache.ignite.internal.processors.cache.distributed.*;
+ import org.apache.ignite.internal.processors.cache.distributed.dht.*;
+ import org.apache.ignite.internal.processors.cache.transactions.*;
+ import org.apache.ignite.internal.transactions.*;
+ import org.apache.ignite.internal.util.*;
+ import org.apache.ignite.internal.util.future.*;
+ import org.apache.ignite.internal.util.lang.*;
+ import org.apache.ignite.internal.util.tostring.*;
+ import org.apache.ignite.internal.util.typedef.*;
+ import org.apache.ignite.internal.util.typedef.internal.*;
+ import org.apache.ignite.lang.*;
+ import org.apache.ignite.transactions.*;
+ import org.jetbrains.annotations.*;
+ import org.jsr166.*;
+ 
+ import java.util.*;
+ import java.util.concurrent.atomic.*;
+ 
+ import static org.apache.ignite.internal.processors.cache.GridCacheOperation.*;
+ import static org.apache.ignite.transactions.TransactionState.*;
+ 
+ /**
+  *
+  */
+ public class GridNearOptimisticTxPrepareFuture extends GridNearTxPrepareFutureAdapter
+     implements GridCacheMvccFuture<IgniteInternalTx> {
+     /** */
+     @GridToStringInclude
+     private Collection<IgniteTxKey> lockKeys = new GridConcurrentHashSet<>();
+ 
+     /**
+      * @param cctx Context.
+      * @param tx Transaction.
+      */
+     public GridNearOptimisticTxPrepareFuture(GridCacheSharedContext cctx, GridNearTxLocal tx) {
+         super(cctx, tx);
+ 
+         assert tx.optimistic() : tx;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public boolean onOwnerChanged(GridCacheEntryEx entry, GridCacheMvccCandidate owner) {
+         if (log.isDebugEnabled())
+             log.debug("Transaction future received owner changed callback: " + entry);
+ 
+         if ((entry.context().isNear() || entry.context().isLocal()) && owner != null && tx.hasWriteKey(entry.txKey())) {
+             lockKeys.remove(entry.txKey());
+ 
+             // This will check for locks.
+             onDone();
+ 
+             return true;
+         }
+ 
+         return false;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public Collection<? extends ClusterNode> nodes() {
+         return F.viewReadOnly(futures(), new IgniteClosure<IgniteInternalFuture<?>, ClusterNode>() {
+             @Nullable @Override public ClusterNode apply(IgniteInternalFuture<?> f) {
+                 if (isMini(f))
+                     return ((MiniFuture)f).node();
+ 
+                 return cctx.discovery().localNode();
+             }
+         });
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public boolean onNodeLeft(UUID nodeId) {
+         boolean found = false;
+ 
+         for (IgniteInternalFuture<?> fut : futures()) {
+             if (isMini(fut)) {
+                 MiniFuture f = (MiniFuture) fut;
+ 
+                 if (f.node().id().equals(nodeId)) {
+                     f.onResult(new ClusterTopologyCheckedException("Remote node left grid: " + nodeId));
+ 
+                     found = true;
+                 }
+             }
+         }
+ 
+         return found;
+     }
+ 
+     /**
+      * @param nodeId Failed node ID.
+      * @param mappings Remaining mappings.
+      * @param e Error.
+      */
+     void onError(@Nullable UUID nodeId, @Nullable Iterable<GridDistributedTxMapping> mappings, Throwable e) {
++        if (X.hasCause(e, ClusterTopologyCheckedException.class) || X.hasCause(e, ClusterTopologyException.class)) {
++            if (tx.onePhaseCommit())
++                tx.markForBackupCheck();
++        }
++
+         if (err.compareAndSet(null, e)) {
+             boolean marked = tx.setRollbackOnly();
+ 
+             if (e instanceof IgniteTxOptimisticCheckedException) {
+                 assert nodeId != null : "Missing node ID for optimistic failure exception: " + e;
+ 
+                 tx.removeKeysMapping(nodeId, mappings);
+             }
+ 
+             if (e instanceof IgniteTxRollbackCheckedException) {
+                 if (marked) {
+                     try {
+                         tx.rollback();
+                     }
+                     catch (IgniteCheckedException ex) {
+                         U.error(log, "Failed to automatically rollback transaction: " + tx, ex);
+                     }
+                 }
+             }
+ 
+             onComplete();
+         }
+     }
+ 
+     /**
+      * @return {@code True} if all locks are owned.
+      */
+     private boolean checkLocks() {
+         boolean locked = lockKeys.isEmpty();
+ 
+         if (locked) {
+             if (log.isDebugEnabled())
+                 log.debug("All locks are acquired for near prepare future: " + this);
+         }
+         else {
+             if (log.isDebugEnabled())
+                 log.debug("Still waiting for locks [fut=" + this + ", keys=" + lockKeys + ']');
+         }
+ 
+         return locked;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public void onResult(UUID nodeId, GridNearTxPrepareResponse res) {
+         if (!isDone()) {
+             for (IgniteInternalFuture<IgniteInternalTx> fut : pending()) {
+                 if (isMini(fut)) {
+                     MiniFuture f = (MiniFuture)fut;
+ 
+                     if (f.futureId().equals(res.miniId())) {
+                         assert f.node().id().equals(nodeId);
+ 
+                         f.onResult(nodeId, res);
+                     }
+                 }
+             }
+         }
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public boolean onDone(IgniteInternalTx t, Throwable err) {
+         // If locks were not acquired yet, delay completion.
+         if (isDone() || (err == null && !checkLocks()))
+             return false;
+ 
+         this.err.compareAndSet(null, err);
+ 
+         if (err == null)
+             tx.state(PREPARED);
+ 
+         if (super.onDone(tx, err)) {
+             // Don't forget to clean up.
+             cctx.mvcc().removeFuture(this);
+ 
+             return true;
+         }
+ 
+         return false;
+     }
+ 
+     /**
+      * @param f Future.
+      * @return {@code True} if mini-future.
+      */
+     private boolean isMini(IgniteInternalFuture<?> f) {
+         return f.getClass().equals(MiniFuture.class);
+     }
+ 
+     /**
+      * Completeness callback.
+      */
+     private void onComplete() {
+         if (super.onDone(tx, err.get()))
+             // Don't forget to clean up.
+             cctx.mvcc().removeFuture(this);
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public void prepare() {
+         // Obtain the topology version to use.
+         AffinityTopologyVersion topVer = cctx.mvcc().lastExplicitLockTopologyVersion(Thread.currentThread().getId());
+ 
+         if (topVer != null) {
+             tx.topologyVersion(topVer);
+ 
+             prepare0(false);
+ 
+             return;
+         }
+ 
+         prepareOnTopology(false, null);
+     }
+ 
+     /**
+      * @param remap Remap flag.
+      * @param c Optional closure to run after map.
+      */
+     private void prepareOnTopology(final boolean remap, @Nullable final Runnable c) {
+         GridDhtTopologyFuture topFut = topologyReadLock();
+ 
+         try {
+             if (topFut == null) {
+                 assert isDone();
+ 
+                 return;
+             }
+ 
+             if (topFut.isDone()) {
+                 StringBuilder invalidCaches = new StringBuilder();
+ 
+                 boolean cacheInvalid = false;
+ 
+                 for (GridCacheContext ctx : cctx.cacheContexts()) {
+                     if (tx.activeCacheIds().contains(ctx.cacheId()) && !topFut.isCacheTopologyValid(ctx)) {
+                         if (cacheInvalid)
+                             invalidCaches.append(", ");
+ 
+                         invalidCaches.append(U.maskName(ctx.name()));
+ 
+                         cacheInvalid = true;
+                     }
+                 }
+ 
+                 if (cacheInvalid) {
+                     onDone(new IgniteCheckedException("Failed to perform cache operation (cache topology is not valid): " +
+                         invalidCaches.toString()));
+ 
+                     return;
+                 }
+ 
+                 if (remap)
+                     tx.onRemap(topFut.topologyVersion());
+                 else
+                     tx.topologyVersion(topFut.topologyVersion());
+ 
+                 prepare0(remap);
+ 
+                 if (c != null)
+                     c.run();
+             }
+             else {
+                 topFut.listen(new CI1<IgniteInternalFuture<AffinityTopologyVersion>>() {
+                     @Override public void apply(IgniteInternalFuture<AffinityTopologyVersion> t) {
+                         cctx.kernalContext().closure().runLocalSafe(new GridPlainRunnable() {
+                             @Override public void run() {
+                                 prepareOnTopology(remap, c);
+                             }
+                         });
+                     }
+                 });
+             }
+         }
+         finally {
+             topologyReadUnlock();
+         }
+     }
+ 
+     /**
+      * Acquires topology read lock.
+      *
+      * @return Topology ready future.
+      */
+     private GridDhtTopologyFuture topologyReadLock() {
+         if (tx.activeCacheIds().isEmpty())
+             return cctx.exchange().lastTopologyFuture();
+ 
+         GridCacheContext<?, ?> nonLocCtx = null;
+ 
+         for (int cacheId : tx.activeCacheIds()) {
+             GridCacheContext<?, ?> cacheCtx = cctx.cacheContext(cacheId);
+ 
+             if (!cacheCtx.isLocal()) {
+                 nonLocCtx = cacheCtx;
+ 
+                 break;
+             }
+         }
+ 
+         if (nonLocCtx == null)
+             return cctx.exchange().lastTopologyFuture();
+ 
+         nonLocCtx.topology().readLock();
+ 
+         if (nonLocCtx.topology().stopping()) {
+             onDone(new IgniteCheckedException("Failed to perform cache operation (cache is stopped): " +
+                 nonLocCtx.name()));
+ 
+             return null;
+         }
+ 
+         return nonLocCtx.topology().topologyVersionFuture();
+     }
+ 
+     /**
+      * Releases topology read lock.
+      */
+     private void topologyReadUnlock() {
+         if (!tx.activeCacheIds().isEmpty()) {
+             GridCacheContext<?, ?> nonLocCtx = null;
+ 
+             for (int cacheId : tx.activeCacheIds()) {
+                 GridCacheContext<?, ?> cacheCtx = cctx.cacheContext(cacheId);
+ 
+                 if (!cacheCtx.isLocal()) {
+                     nonLocCtx = cacheCtx;
+ 
+                     break;
+                 }
+             }
+ 
+             if (nonLocCtx != null)
+                 nonLocCtx.topology().readUnlock();
+         }
+     }
+ 
+     /**
+      * Initializes future.
+      *
+      * @param remap Remap flag.
+      */
+     private void prepare0(boolean remap) {
+         try {
+             boolean txStateCheck = remap ? tx.state() == PREPARING : tx.state(PREPARING);
+ 
+             if (!txStateCheck) {
+                 if (tx.setRollbackOnly()) {
+                     if (tx.timedOut())
+                         onError(null, null, new IgniteTxTimeoutCheckedException("Transaction timed out and " +
+                             "was rolled back: " + this));
+                     else
+                         onError(null, null, new IgniteCheckedException("Invalid transaction state for prepare " +
+                             "[state=" + tx.state() + ", tx=" + this + ']'));
+                 }
+                 else
+                     onError(null, null, new IgniteTxRollbackCheckedException("Invalid transaction state for " +
+                         "prepare [state=" + tx.state() + ", tx=" + this + ']'));
+ 
+                 return;
+             }
+ 
+             // Make sure to add future before calling prepare.
+             if (!remap)
+                 cctx.mvcc().addFuture(this);
+ 
+             prepare(
+                 tx.optimistic() && tx.serializable() ? tx.readEntries() : Collections.<IgniteTxEntry>emptyList(),
+                 tx.writeEntries());
+ 
+             markInitialized();
+         }
+         catch (TransactionTimeoutException | TransactionOptimisticException e) {
+             onError(cctx.localNodeId(), null, e);
+         }
+         catch (IgniteCheckedException e) {
+             onDone(e);
+         }
+     }
+ 
+     /**
+      * @param reads Read entries.
+      * @param writes Write entries.
 -     * @throws IgniteCheckedException If transaction is group-lock and some key was mapped to to the local node.
+      */
+     private void prepare(
+         Iterable<IgniteTxEntry> reads,
+         Iterable<IgniteTxEntry> writes
+     ) throws IgniteCheckedException {
+         AffinityTopologyVersion topVer = tx.topologyVersion();
+ 
+         assert topVer.topologyVersion() > 0;
+ 
+         txMapping = new GridDhtTxMapping();
+ 
+         ConcurrentLinkedDeque8<GridDistributedTxMapping> mappings = new ConcurrentLinkedDeque8<>();
+ 
+         if (!F.isEmpty(reads) || !F.isEmpty(writes)) {
+             for (int cacheId : tx.activeCacheIds()) {
+                 GridCacheContext<?, ?> cacheCtx = cctx.cacheContext(cacheId);
+ 
+                 if (CU.affinityNodes(cacheCtx, topVer).isEmpty()) {
+                     onDone(new ClusterTopologyCheckedException("Failed to map keys for cache (all " +
+                         "partition nodes left the grid): " + cacheCtx.name()));
+ 
+                     return;
+                 }
+             }
+         }
+ 
+         // Assign keys to primary nodes.
+         GridDistributedTxMapping cur = null;
+ 
+         for (IgniteTxEntry read : reads) {
+             GridDistributedTxMapping updated = map(read, topVer, cur, false);
+ 
+             if (cur != updated) {
+                 mappings.offer(updated);
+ 
+                 if (updated.node().isLocal()) {
+                     if (read.context().isNear())
+                         tx.nearLocallyMapped(true);
+                     else if (read.context().isColocated())
+                         tx.colocatedLocallyMapped(true);
+                 }
+ 
+                 cur = updated;
+             }
+         }
+ 
+         for (IgniteTxEntry write : writes) {
+             GridDistributedTxMapping updated = map(write, topVer, cur, true);
+ 
+             if (cur != updated) {
+                 mappings.offer(updated);
+ 
+                 if (updated.node().isLocal()) {
+                     if (write.context().isNear())
+                         tx.nearLocallyMapped(true);
+                     else if (write.context().isColocated())
+                         tx.colocatedLocallyMapped(true);
+                 }
+ 
+                 cur = updated;
+             }
+         }
+ 
+         if (isDone()) {
+             if (log.isDebugEnabled())
+                 log.debug("Abandoning (re)map because future is done: " + this);
+ 
+             return;
+         }
+ 
+         tx.addEntryMapping(mappings);
+ 
+         cctx.mvcc().recheckPendingLocks();
+ 
+         txMapping.initLast(mappings);
+ 
+         tx.transactionNodes(txMapping.transactionNodes());
+ 
+         checkOnePhase();
+ 
+         proceedPrepare(mappings);
+     }
+ 
+     /**
+      * Continues prepare after previous mapping successfully finished.
+      *
+      * @param mappings Queue of mappings.
+      */
+     private void proceedPrepare(final ConcurrentLinkedDeque8<GridDistributedTxMapping> mappings) {
+         if (isDone())
+             return;
+ 
+         final GridDistributedTxMapping m = mappings.poll();
+ 
+         if (m == null)
+             return;
+ 
+         assert !m.empty();
+ 
+         final ClusterNode n = m.node();
+ 
+         GridNearTxPrepareRequest req = new GridNearTxPrepareRequest(
+             futId,
+             tx.topologyVersion(),
+             tx,
+             tx.optimistic() && tx.serializable() ? m.reads() : null,
+             m.writes(),
+             m.near(),
+             txMapping.transactionNodes(),
+             m.last(),
+             m.lastBackups(),
+             tx.onePhaseCommit(),
+             tx.needReturnValue() && tx.implicit(),
+             tx.implicitSingle(),
+             m.explicitLock(),
+             tx.subjectId(),
+             tx.taskNameHash(),
+             m.clientFirst());
+ 
+         for (IgniteTxEntry txEntry : m.writes()) {
+             if (txEntry.op() == TRANSFORM)
+                 req.addDhtVersion(txEntry.txKey(), null);
+         }
+ 
+         // Must lock near entries separately.
+         if (m.near()) {
+             try {
+                 tx.optimisticLockEntries(req.writes());
+ 
+                 tx.userPrepare();
+             }
+             catch (IgniteCheckedException e) {
+                 onError(null, null, e);
+             }
+         }
+ 
+         final MiniFuture fut = new MiniFuture(m, mappings);
+ 
+         req.miniId(fut.futureId());
+ 
+         add(fut); // Append new future.
+ 
+         // If this is the primary node for the keys.
+         if (n.isLocal()) {
+             // At this point, if any new node joined, then it is
+             // waiting for this transaction to complete, so
+             // partition reassignments are not possible here.
+             IgniteInternalFuture<GridNearTxPrepareResponse> prepFut = cctx.tm().txHandler().prepareTx(n.id(), tx, req);
+ 
+             prepFut.listen(new CI1<IgniteInternalFuture<GridNearTxPrepareResponse>>() {
+                 @Override public void apply(IgniteInternalFuture<GridNearTxPrepareResponse> prepFut) {
+                     try {
+                         fut.onResult(n.id(), prepFut.get());
+                     }
+                     catch (IgniteCheckedException e) {
+                         fut.onResult(e);
+                     }
+                 }
+             });
+         }
+         else {
+             try {
+                 cctx.io().send(n, req, tx.ioPolicy());
+             }
+             catch (IgniteCheckedException e) {
+                 // Fail the whole thing.
+                 fut.onResult(e);
+             }
+         }
+     }
+ 
+     /**
+      * @param entry Transaction entry.
+      * @param topVer Topology version.
+      * @param cur Current mapping.
+      * @param waitLock Wait lock flag.
 -     * @throws IgniteCheckedException If transaction is group-lock and local node is not primary for key.
+      * @return Mapping.
+      */
+     private GridDistributedTxMapping map(
+         IgniteTxEntry entry,
+         AffinityTopologyVersion topVer,
+         @Nullable GridDistributedTxMapping cur,
+         boolean waitLock
 -    ) throws IgniteCheckedException {
++    ) {
+         GridCacheContext cacheCtx = entry.context();
+ 
+         List<ClusterNode> nodes = cacheCtx.affinity().nodes(entry.key(), topVer);
+ 
+         txMapping.addMapping(nodes);
+ 
+         ClusterNode primary = F.first(nodes);
+ 
+         assert primary != null;
+ 
+         if (log.isDebugEnabled()) {
+             log.debug("Mapped key to primary node [key=" + entry.key() +
+                 ", part=" + cacheCtx.affinity().partition(entry.key()) +
+                 ", primary=" + U.toShortString(primary) + ", topVer=" + topVer + ']');
+         }
+ 
+         // Must re-initialize cached entry while holding topology lock.
+         if (cacheCtx.isNear())
+             entry.cached(cacheCtx.nearTx().entryExx(entry.key(), topVer));
+         else if (!cacheCtx.isLocal())
+             entry.cached(cacheCtx.colocated().entryExx(entry.key(), topVer, true));
+         else
+             entry.cached(cacheCtx.local().entryEx(entry.key(), topVer));
+ 
+         if (cacheCtx.isNear() || cacheCtx.isLocal()) {
+             if (waitLock && entry.explicitVersion() == null)
+                 lockKeys.add(entry.txKey());
+         }
+ 
+         if (cur == null || !cur.node().id().equals(primary.id()) || cur.near() != cacheCtx.isNear()) {
+             boolean clientFirst = cur == null && cctx.kernalContext().clientNode();
+ 
+             cur = new GridDistributedTxMapping(primary);
+ 
+             // Initialize near flag right away.
+             cur.near(cacheCtx.isNear());
+ 
+             cur.clientFirst(clientFirst);
+         }
+ 
+         cur.add(entry);
+ 
+         if (entry.explicitVersion() != null) {
+             tx.markExplicit(primary.id());
+ 
+             cur.markExplicitLock();
+         }
+ 
+         entry.nodeId(primary.id());
+ 
+         if (cacheCtx.isNear()) {
+             while (true) {
+                 try {
+                     GridNearCacheEntry cached = (GridNearCacheEntry)entry.cached();
+ 
+                     cached.dhtNodeId(tx.xidVersion(), primary.id());
+ 
+                     break;
+                 }
+                 catch (GridCacheEntryRemovedException ignore) {
+                     entry.cached(cacheCtx.near().entryEx(entry.key()));
+                 }
+             }
+         }
+ 
+         return cur;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public String toString() {
+         Collection<String> futs = F.viewReadOnly(futures(), new C1<IgniteInternalFuture<?>, String>() {
+             @Override public String apply(IgniteInternalFuture<?> f) {
+                 return "[node=" + ((MiniFuture)f).node().id() +
+                     ", loc=" + ((MiniFuture)f).node().isLocal() +
+                     ", done=" + f.isDone() + "]";
+             }
+         });
+ 
+         return S.toString(GridNearOptimisticTxPrepareFuture.class, this,
+             "innerFuts", futs,
+             "tx", tx,
+             "super", super.toString());
+     }
+ 
+     /**
+      *
+      */
+     private class MiniFuture extends GridFutureAdapter<IgniteInternalTx> {
+         /** */
+         private static final long serialVersionUID = 0L;
+ 
+         /** */
+         private final IgniteUuid futId = IgniteUuid.randomUuid();
+ 
+         /** Keys. */
+         @GridToStringInclude
+         private GridDistributedTxMapping m;
+ 
+         /** Flag to signal some result being processed. */
+         private AtomicBoolean rcvRes = new AtomicBoolean(false);
+ 
+         /** Mappings to proceed prepare. */
+         private ConcurrentLinkedDeque8<GridDistributedTxMapping> mappings;
+ 
+         /**
+          * @param m Mapping.
+          * @param mappings Queue of mappings to proceed with.
+          */
+         MiniFuture(
+             GridDistributedTxMapping m,
+             ConcurrentLinkedDeque8<GridDistributedTxMapping> mappings
+         ) {
+             this.m = m;
+             this.mappings = mappings;
+         }
+ 
+         /**
+          * @return Future ID.
+          */
+         IgniteUuid futureId() {
+             return futId;
+         }
+ 
+         /**
+          * @return Node ID.
+          */
+         public ClusterNode node() {
+             return m.node();
+         }
+ 
+         /**
+          * @return Keys.
+          */
+         public GridDistributedTxMapping mapping() {
+             return m;
+         }
+ 
+         /**
+          * @param e Error.
+          */
+         void onResult(Throwable e) {
+             if (rcvRes.compareAndSet(false, true)) {
+                 if (log.isDebugEnabled())
+                     log.debug("Failed to get future result [fut=" + this + ", err=" + e + ']');
+ 
+                 // Fail.
+                 onDone(e);
+             }
+             else
+                 U.warn(log, "Received error after another result has been processed [fut=" +
+                     GridNearOptimisticTxPrepareFuture.this + ", mini=" + this + ']', e);
+         }
+ 
+         /**
+          * @param e Node failure.
+          */
+         void onResult(ClusterTopologyCheckedException e) {
+             if (isDone())
+                 return;
+ 
+             if (rcvRes.compareAndSet(false, true)) {
+                 if (log.isDebugEnabled())
+                     log.debug("Remote node left grid while sending or waiting for reply (will not retry): " + this);
+ 
+                 // Fail the whole future (make sure not to remap on different primary node
+                 // to prevent multiple lock coordinators).
+                 onError(null, null, e);
+             }
+         }
+ 
+         /**
+          * @param nodeId Failed node ID.
+          * @param res Result callback.
+          */
+         void onResult(UUID nodeId, GridNearTxPrepareResponse res) {
+             if (isDone())
+                 return;
+ 
+             if (rcvRes.compareAndSet(false, true)) {
+                 if (res.error() != null) {
+                     // Fail the whole compound future.
+                     onError(nodeId, mappings, res.error());
+                 }
+                 else {
+                     if (res.clientRemapVersion() != null) {
+                         assert cctx.kernalContext().clientNode();
+                         assert m.clientFirst();
+ 
+                         IgniteInternalFuture<?> affFut = cctx.exchange().affinityReadyFuture(res.clientRemapVersion());
+ 
+                         if (affFut != null && !affFut.isDone()) {
+                             affFut.listen(new CI1<IgniteInternalFuture<?>>() {
+                                 @Override public void apply(IgniteInternalFuture<?> fut) {
+                                     remap();
+                                 }
+                             });
+                         }
+                         else
+                             remap();
+                     }
+                     else {
+                         onPrepareResponse(m, res);
+ 
+                         // Proceed prepare before finishing mini future.
+                         if (mappings != null)
+                             proceedPrepare(mappings);
+ 
+                         // Finish this mini future.
+                         onDone(tx);
+                     }
+                 }
+             }
+         }
+ 
+         /**
+          *
+          */
+         private void remap() {
+             prepareOnTopology(true, new Runnable() {
+                 @Override public void run() {
+                     onDone(tx);
+                 }
+             });
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public String toString() {
+             return S.toString(MiniFuture.class, this, "done", isDone(), "cancelled", isCancelled(), "err", error());
+         }
+     }
+ }

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTransactionalCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index b411b99,cb391e4..c40ac5e
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@@ -83,8 -82,8 +82,11 @@@ public class GridNearTxLocal extends Gr
      private Map<IgniteTxKey, IgniteCacheExpiryPolicy> accessMap;
  
      /** */
 +    private boolean needCheckBackup;
 +
++    /** */
+     private boolean hasRemoteLocks;
+ 
      /**
       * Empty constructor required for {@link Externalizable}.
       */
@@@ -131,9 -130,8 +133,9 @@@
              concurrency,
              isolation,
              timeout,
-             invalidate,
+             false,
              storeEnabled,
 +            false,
              txSize,
              subjId,
              taskNameHash);

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
index ded5409,b418500..7b5cbf0
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
@@@ -336,7 -393,13 +370,7 @@@ public class GridNearTxPrepareResponse 
  
                  writer.incrementState();
  
-             case 18:
+             case 16:
 -                if (!writer.writeCollection("pending", pending, MessageCollectionItemType.MSG))
 -                    return false;
 -
 -                writer.incrementState();
 -
 -            case 17:
                  if (!writer.writeMessage("retVal", retVal))
                      return false;
  
@@@ -414,7 -491,15 +462,7 @@@
  
                  reader.incrementState();
  
-             case 18:
 -            case 16:
 -                pending = reader.readCollection("pending", MessageCollectionItemType.MSG);
 -
 -                if (!reader.isLastRead())
 -                    return false;
 -
 -                reader.incrementState();
 -
+             case 17:
                  retVal = reader.readMessage("retVal");
  
                  if (!reader.isLastRead())

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxRemote.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxRemote.java
index c3a5b1d,4ac81f8..d5d0205
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxRemote.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxRemote.java
@@@ -210,6 -178,11 +206,12 @@@ public class GridNearTxRemote extends G
          return false; // Serializable will be enforced on primary mode.
      }
  
+     /** {@inheritDoc} */
 -    @Override public GridCacheVersion ownedVersion(IgniteTxKey key) {
++    public GridCacheVersion ownedVersion(IgniteTxKey key) {
++        // TODO ignite-264 do we need this method?
+         return owned == null ? null : owned.get(key);
+     }
+ 
      /**
       * @return Near transaction ID.
       */

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index 1f175f6,e481e25..6b4ef82
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@@ -195,19 -195,16 +195,17 @@@ public class IgniteTxHandler 
                      return fut;
                  }
              },
-             new C2<IgniteInternalTx, Exception, IgniteInternalTx>() {
-                 @Nullable @Override public IgniteInternalTx apply(IgniteInternalTx tx, Exception e) {
+             new C2<GridNearTxPrepareResponse, Exception, GridNearTxPrepareResponse>() {
+                 @Nullable @Override public GridNearTxPrepareResponse apply(GridNearTxPrepareResponse res, Exception e) {
                      if (e != null) {
-                         // tx can be null of exception occurred.
-                         if (tx != null)
-                             tx.setRollbackOnly(); // Just in case.
+                         locTx.setRollbackOnly(); // Just in case.
  
 -                        if (!(e instanceof IgniteTxOptimisticCheckedException))
 -                            U.error(log, "Failed to prepare transaction: " + locTx, e);
 +                        if (!X.hasCause(e, IgniteTxOptimisticCheckedException.class) &&
 +                            !X.hasCause(e, IgniteFutureCancelledException.class))
-                             U.error(log, "Failed to prepare DHT transaction: " + tx, e);
++                            U.error(log, "Failed to prepare DHT transaction: " + locTx, e);
                      }
  
-                     return tx;
+                     return res;
                  }
              }
          );
@@@ -755,15 -887,36 +857,38 @@@
          if (nearTx != null)
              finish(nodeId, nearTx, req);
  
-         if (dhtTx != null && !dhtTx.done()) {
-             dhtTx.finishFuture().listen(new CI1<IgniteInternalFuture<IgniteInternalTx>>() {
-                 @Override public void apply(IgniteInternalFuture<IgniteInternalTx> igniteTxIgniteFuture) {
-                     sendReply(nodeId, req, true);
-                 }
-             });
+         if (req.replyRequired()) {
+             IgniteInternalFuture completeFut;
+ 
+             IgniteInternalFuture<IgniteInternalTx> dhtFin = dhtTx == null ? null : dhtTx.done() ? null : dhtTx.finishFuture();
+             IgniteInternalFuture<IgniteInternalTx> nearFin = nearTx == null ? null : nearTx.done() ? null : nearTx.finishFuture();
+ 
+             if (dhtFin != null && nearFin != null) {
+                 GridCompoundFuture fut = new GridCompoundFuture();
+ 
+                 fut.add(dhtFin);
+                 fut.add(nearFin);
+ 
+                 fut.markInitialized();
+ 
+                 completeFut = fut;
+             }
+             else
+                 completeFut = dhtFin != null ? dhtFin : nearFin;
+ 
+             if (completeFut != null) {
+                 completeFut.listen(new CI1<IgniteInternalFuture<IgniteInternalTx>>() {
+                     @Override
+                     public void apply(IgniteInternalFuture<IgniteInternalTx> igniteTxIgniteFuture) {
+                         sendReply(nodeId, req);
+                     }
+                 });
+             }
+             else
+                 sendReply(nodeId, req);
          }
 +        else
-             sendReply(nodeId, req, true);
++            sendReply(nodeId, req);
      }
  
      /**
@@@ -870,30 -1030,23 +1001,33 @@@
       * @param nodeId Node id that originated finish request.
       * @param req Request.
       */
 -    protected void sendReply(UUID nodeId, GridDhtTxFinishRequest req) {
 -        GridCacheMessage res = new GridDhtTxFinishResponse(req.version(), req.futureId(), req.miniId());
 +    protected void sendReply(UUID nodeId, GridDhtTxFinishRequest req, boolean committed) {
 +        if (req.replyRequired()) {
 +            GridDhtTxFinishResponse res = new GridDhtTxFinishResponse(req.version(), req.futureId(), req.miniId());
  
 -        try {
 -            ctx.io().send(nodeId, res, req.system() ? UTILITY_CACHE_POOL : SYSTEM_POOL);
 -        }
 -        catch (Throwable e) {
 -            // Double-check.
 -            if (ctx.discovery().node(nodeId) == null) {
 -                if (log.isDebugEnabled())
 -                    log.debug("Node left while sending finish response [nodeId=" + nodeId + ", res=" + res + ']');
 +            if (req.checkCommitted()) {
 +                res.checkCommitted(true);
 +
 +                if (!committed)
 +                    res.checkCommittedError(new IgniteTxRollbackCheckedException("Failed to commit transaction " +
 +                        "(transaction has been rolled back on backup node): " + req.version()));
              }
 -            else
 -                U.error(log, "Failed to send finish response to node [nodeId=" + nodeId + ", res=" + res + ']', e);
  
 -            if (e instanceof Error)
 -                throw (Error)e;
 +            try {
 +                ctx.io().send(nodeId, res, req.system() ? UTILITY_CACHE_POOL : SYSTEM_POOL);
 +            }
 +            catch (Throwable e) {
 +                // Double-check.
 +                if (ctx.discovery().node(nodeId) == null) {
 +                    if (log.isDebugEnabled())
 +                        log.debug("Node left while sending finish response [nodeId=" + nodeId + ", res=" + res + ']');
 +                }
 +                else
 +                    U.error(log, "Failed to send finish response to node [nodeId=" + nodeId + ", res=" + res + ']', e);
++
++                if (e instanceof Error)
++                    throw (Error)e;
 +            }
          }
      }
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
index 55952c8,0a61b1a..9e4473b
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
@@@ -1237,8 -1320,10 +1289,9 @@@ public abstract class IgniteTxLocalAdap
                                  true,
                                  -1L,
                                  -1L,
-                                 null);
+                                 null,
+                                 skipStore);
  
 -
                              // As optimization, mark as checked immediately
                              // for non-pessimistic if value is not null.
                              if (val != null && !pessimistic())

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
index 5c12912,630330e..f3bca17
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
@@@ -359,12 -367,10 +366,11 @@@ public class IgniteTxManager extends Gr
          TransactionConcurrency concurrency,
          TransactionIsolation isolation,
          long timeout,
-         boolean invalidate,
          boolean storeEnabled,
 -        int txSize) {
 +        int txSize
 +    ) {
-         assert sysCacheCtx == null || sysCacheCtx.system();
-         
+         assert sysCacheCtx == null || sysCacheCtx.systemTx();
+ 
          UUID subjId = null; // TODO GG-9141 how to get subj ID?
  
          int taskNameHash = cctx.kernalContext().job().currentTaskNameHash();
@@@ -1099,9 -1222,15 +1126,6 @@@
          ConcurrentMap<GridCacheVersion, IgniteInternalTx> txIdMap = transactionMap(tx);
  
          if (txIdMap.remove(tx.xidVersion(), tx)) {
-             // 3.1 Call dataStructures manager.
-             cctx.kernalContext().dataStructures().onTxCommitted(tx);
 -            // 2. Must process completed entries before unlocking!
 -            processCompletedEntries(tx);
 -
 -            if (tx instanceof GridDhtTxLocal) {
 -                GridDhtTxLocal dhtTxLoc = (GridDhtTxLocal)tx;
 -
 -                collectPendingVersions(dhtTxLoc);
 -            }
--
              // 4. Unlock write resources.
              unlockMultiple(tx, tx.writeEntries());
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridTransactionalCacheQueueImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
----------------------------------------------------------------------


[18/50] [abbrv] ignite git commit: IGNITE-264 - Fixing tests WIP.

Posted by ag...@apache.org.
IGNITE-264 - Fixing tests WIP.


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

Branch: refs/heads/ignite-264
Commit: e7fa1b324dd569fa37d5bfc31a76c321fb5e80d3
Parents: 4bc5d50
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Mon Aug 10 17:19:49 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Mon Aug 10 17:19:49 2015 -0700

----------------------------------------------------------------------
 .../distributed/dht/GridDhtTxLocalAdapter.java  | 15 +++++++++++++-
 .../distributed/dht/GridDhtTxPrepareFuture.java | 15 ++++----------
 .../GridNearPessimisticTxPrepareFuture.java     |  3 +++
 .../cache/transactions/IgniteTxHandler.java     |  7 +++++--
 .../cache/IgniteOnePhaseCommitNearSelfTest.java |  6 ++++--
 .../dht/GridCacheTxNodeFailureSelfTest.java     | 21 ++++++++++++++++++--
 6 files changed, 49 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/e7fa1b32/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
index d9e85a5..30cee9d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
@@ -65,6 +65,9 @@ public abstract class GridDhtTxLocalAdapter extends IgniteTxLocalAdapter {
     /** */
     protected boolean explicitLock;
 
+    /** Flag indicating that originating node has near cache. */
+    private boolean nearOnOriginatingNode;
+
     /** Nodes where transactions were started on lock step. */
     private Set<ClusterNode> lockTxNodes;
 
@@ -144,6 +147,15 @@ public abstract class GridDhtTxLocalAdapter extends IgniteTxLocalAdapter {
     }
 
     /**
+     * Sets flag that indicates that originating node has a near cache that participates in this transaction.
+     *
+     * @param hasNear Has near cache flag.
+     */
+    public void nearOnOriginatingNode(boolean hasNear) {
+        nearOnOriginatingNode = hasNear;
+    }
+
+    /**
      * @return {@code True} if explicit lock transaction.
      */
     public boolean explicitLock() {
@@ -803,13 +815,14 @@ public abstract class GridDhtTxLocalAdapter extends IgniteTxLocalAdapter {
      * @return {@code True} if transaction is finished on prepare step.
      */
     protected final boolean commitOnPrepare() {
-        return onePhaseCommit() && !near();
+        return onePhaseCommit() && !near() && !nearOnOriginatingNode;
     }
 
     /**
      * @param prepFut Prepare future.
      * @return If transaction if finished on prepare step returns future which is completed after transaction finish.
      */
+    @SuppressWarnings("TypeMayBeWeakened")
     protected final IgniteInternalFuture<GridNearTxPrepareResponse> chainOnePhasePrepare(
         final GridDhtTxPrepareFuture prepFut) {
         if (commitOnPrepare()) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/e7fa1b32/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
index 34f9b2a..dae49a1 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
@@ -487,11 +487,8 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
         if (tx.optimistic())
             tx.clearPrepareFuture(this);
 
-        // Check if originating node has a near cache participating in transaction.
-        boolean hasNearCache = originatingNodeHasNearCache();
-
         // Do not commit one-phase commit transaction if originating node has near cache enabled.
-        if (tx.onePhaseCommit() && !hasNearCache) {
+        if (tx.onePhaseCommit() && tx.commitOnPrepare()) {
             assert last;
 
             // Must create prepare response before transaction is committed to grab correct return value.
@@ -620,13 +617,9 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
         if (node == null)
             return false;
 
-        GridCacheAttributes[] attrs = node.attribute(IgniteNodeAttributes.ATTR_CACHE);
-
-        for (GridCacheAttributes attr : attrs) {
-            if (attr.nearCacheEnabled()) {
-                if (tx.activeCacheIds().contains(CU.cacheId(attr.cacheName())))
-                    return true;
-            }
+        for (int cacheId : tx.activeCacheIds()) {
+            if (cctx.discovery().cacheNearNode(node, cctx.cacheContext(cacheId).name()))
+                return true;
         }
 
         return false;

http://git-wip-us.apache.org/repos/asf/ignite/blob/e7fa1b32/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
index f51b4b8..6de46f4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
@@ -320,6 +320,9 @@ public class GridNearPessimisticTxPrepareFuture extends GridNearTxPrepareFutureA
          * @param e Error.
          */
         void onNodeLeft(ClusterTopologyCheckedException e) {
+            if (tx.onePhaseCommit())
+                tx.markForBackupCheck();
+
             onError(e);
         }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/e7fa1b32/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index 42e806c..643bbde 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@ -266,7 +266,7 @@ public class IgniteTxHandler {
             GridDhtPartitionTopology top = null;
 
             if (req.firstClientRequest()) {
-                assert req.concurrency().equals(OPTIMISTIC) : req;
+                assert req.concurrency() == OPTIMISTIC : req;
                 assert CU.clientNode(nearNode) : nearNode;
 
                 top = firstEntry.context().topology();
@@ -297,7 +297,7 @@ public class IgniteTxHandler {
                     try {
                         ctx.io().send(nearNode, res, req.policy());
                     }
-                    catch (ClusterTopologyCheckedException e) {
+                    catch (ClusterTopologyCheckedException ignored) {
                         if (log.isDebugEnabled())
                             log.debug("Failed to send client tx remap response, client node failed " +
                                 "[node=" + nearNode + ", req=" + req + ']');
@@ -334,6 +334,9 @@ public class IgniteTxHandler {
                     req.taskNameHash()
                 );
 
+                if (req.near())
+                    tx.nearOnOriginatingNode(true);
+
                 tx = ctx.tm().onCreated(null, tx);
 
                 if (tx != null)

http://git-wip-us.apache.org/repos/asf/ignite/blob/e7fa1b32/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOnePhaseCommitNearSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOnePhaseCommitNearSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOnePhaseCommitNearSelfTest.java
index 295d37b..87c160f 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOnePhaseCommitNearSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOnePhaseCommitNearSelfTest.java
@@ -28,6 +28,7 @@ import org.apache.ignite.internal.processors.cache.distributed.dht.*;
 import org.apache.ignite.internal.processors.cache.distributed.near.*;
 import org.apache.ignite.internal.util.lang.*;
 import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.lang.*;
 import org.apache.ignite.plugin.extensions.communication.*;
 import org.apache.ignite.spi.*;
 import org.apache.ignite.spi.communication.tcp.*;
@@ -221,7 +222,8 @@ public class IgniteOnePhaseCommitNearSelfTest extends GridCommonAbstractTest {
      */
     private static class MessageCountingCommunicationSpi extends TcpCommunicationSpi {
         /** {@inheritDoc} */
-        @Override public void sendMessage(ClusterNode node, Message msg) throws IgniteSpiException {
+        @Override public void sendMessage(ClusterNode node, Message msg, IgniteInClosure<IgniteException> ackClosure)
+            throws IgniteSpiException {
             if (msg instanceof GridIoMessage) {
                 GridIoMessage ioMsg = (GridIoMessage)msg;
 
@@ -235,7 +237,7 @@ public class IgniteOnePhaseCommitNearSelfTest extends GridCommonAbstractTest {
                 cntr.incrementAndGet();
             }
 
-            super.sendMessage(node, msg);
+            super.sendMessage(node, msg, ackClosure);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/e7fa1b32/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
index ddb4316..43e2348 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
@@ -33,6 +33,9 @@ import org.apache.ignite.transactions.*;
 import java.util.*;
 import java.util.concurrent.*;
 
+import static org.apache.ignite.transactions.TransactionConcurrency.*;
+import static org.apache.ignite.transactions.TransactionIsolation.*;
+
 /**
  * Tests one-phase commit transactions when some of the nodes fail in the middle of the transaction.
  */
@@ -64,7 +67,21 @@ public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
     /**
      * @throws Exception If failed.
      */
-    public void testPrimaryNodeFailureBackupCommit() throws Exception {
+    public void testPrimaryNodeFailureBackipCommitPessimistic() throws Exception {
+        checkPrimaryNodeFailureBackupCommit(PESSIMISTIC);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testPrimaryNodeFailureBackupCommitOptimistic() throws Exception {
+        checkPrimaryNodeFailureBackupCommit(OPTIMISTIC);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    private void checkPrimaryNodeFailureBackupCommit(final TransactionConcurrency conc) throws Exception {
         startGrids(gridCount());
         awaitPartitionMapExchange();
 
@@ -82,7 +99,7 @@ public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
 
             IgniteInternalFuture<Object> fut = GridTestUtils.runAsync(new Callable<Object>() {
                 @Override public Object call() throws Exception {
-                    try (Transaction tx = ignite.transactions().txStart()) {
+                    try (Transaction tx = ignite.transactions().txStart(conc, REPEATABLE_READ)) {
                         cache.put(key, key);
 
                         Transaction asyncTx = (Transaction)tx.withAsync();


[10/50] [abbrv] ignite git commit: Fixing tests.

Posted by ag...@apache.org.
Fixing tests.


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

Branch: refs/heads/ignite-264
Commit: a7b37493808cf76e6ee9e4ff94bc2f3dd92af172
Parents: 905a139
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Wed Mar 25 14:08:55 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Wed Mar 25 14:08:55 2015 -0700

----------------------------------------------------------------------
 .../cache/distributed/dht/GridDhtTxFinishRequest.java    |  7 -------
 .../cache/distributed/dht/GridDhtTxFinishResponse.java   |  4 ++--
 .../cache/distributed/dht/GridDhtTxLocalAdapter.java     |  3 +--
 .../cache/distributed/near/GridNearLockRequest.java      |  8 +-------
 .../cache/distributed/near/GridNearTxFinishFuture.java   | 11 +++++------
 .../processors/cache/transactions/IgniteTxEntry.java     |  9 +--------
 .../processors/cache/transactions/IgniteTxHandler.java   |  4 ++--
 .../processors/cache/transactions/IgniteTxManager.java   |  6 +++---
 8 files changed, 15 insertions(+), 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/a7b37493/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
index 0e9bdff..1a6883b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
@@ -224,13 +224,6 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
         this.checkCommitted = checkCommitted;
     }
 
-    /**
-     * @return Topology version.
-     */
-    @Override public long topologyVersion() {
-        return topVer;
-    }
-
     /** {@inheritDoc} */
     @Override public String toString() {
         return S.toString(GridDhtTxFinishRequest.class, this, super.toString());

http://git-wip-us.apache.org/repos/asf/ignite/blob/a7b37493/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
index 6480413..eb46c2e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
@@ -105,7 +105,7 @@ public class GridDhtTxFinishResponse extends GridDistributedTxFinishResponse {
     }
 
     /** {@inheritDoc} */
-    @Override public void prepareMarshal(GridCacheSharedContext<K, V> ctx) throws IgniteCheckedException {
+    @Override public void prepareMarshal(GridCacheSharedContext ctx) throws IgniteCheckedException {
         super.prepareMarshal(ctx);
 
         if (checkCommittedErr != null)
@@ -113,7 +113,7 @@ public class GridDhtTxFinishResponse extends GridDistributedTxFinishResponse {
     }
 
     /** {@inheritDoc} */
-    @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, ClassLoader ldr)
+    @Override public void finishUnmarshal(GridCacheSharedContext ctx, ClassLoader ldr)
         throws IgniteCheckedException {
         super.finishUnmarshal(ctx, ldr);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/a7b37493/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
index cc15429..1d8f2b8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
@@ -635,8 +635,7 @@ public abstract class GridDhtTxLocalAdapter extends IgniteTxLocalAdapter {
 
                     return ret;
                 }
-            },
-            cctx.kernalContext());
+            });
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/a7b37493/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
index c86e773..1e68d5e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
@@ -341,7 +341,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 writer.incrementState();
 
-            case 24:
+            case 20:
                 if (!writer.writeObjectArray("filter", filter, MessageCollectionItemType.MSG))
                     return false;
 
@@ -371,12 +371,6 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 writer.incrementState();
 
-            case 29:
-                if (!writer.writeBoolean("onePhaseCommit", onePhaseCommit))
-                    return false;
-
-                writer.incrementState();
-
             case 30:
                 if (!writer.writeBoolean("retVal", retVal))
                     return false;

http://git-wip-us.apache.org/repos/asf/ignite/blob/a7b37493/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
index a995d47..5ba1846 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
@@ -211,7 +211,7 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
      * @param nodeId Sender.
      * @param res Result.
      */
-    public void onResult(UUID nodeId, GridDhtTxFinishResponse<K, V> res) {
+    public void onResult(UUID nodeId, GridDhtTxFinishResponse res) {
         if (!isDone())
             for (IgniteInternalFuture<IgniteInternalTx> fut : futures()) {
                 if (isMini(fut)) {
@@ -363,7 +363,7 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
 
                 UUID backupId = F.first(backups);
 
-                ClusterNode backup = ctx.discovery().node(backupId);
+                ClusterNode backup = cctx.discovery().node(backupId);
 
                 // Nothing to do if backup has left the grid.
                 if (backup == null)
@@ -373,7 +373,7 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
 
                 add(mini);
 
-                GridDhtTxFinishRequest<K, V> finishReq = new GridDhtTxFinishRequest<>(
+                GridDhtTxFinishRequest finishReq = new GridDhtTxFinishRequest(
                     cctx.localNodeId(),
                     futureId(),
                     mini.futureId(),
@@ -385,6 +385,7 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
                     true,
                     false,
                     tx.system(),
+                    tx.ioPolicy(),
                     false,
                     true,
                     true,
@@ -547,8 +548,6 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
          * @param backup Backup to check.
          */
         MiniFuture(ClusterNode backup) {
-            super(cctx.kernalContext());
-
             this.backup = backup;
         }
 
@@ -612,7 +611,7 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
         /**
          * @param res Response.
          */
-        void onResult(GridDhtTxFinishResponse<K, V> res) {
+        void onResult(GridDhtTxFinishResponse res) {
             assert backup != null;
 
             if (res.checkCommittedError() != null)

http://git-wip-us.apache.org/repos/asf/ignite/blob/a7b37493/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
index c3e734c..6432581 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
@@ -79,7 +79,7 @@ public class IgniteTxEntry implements GridPeerDeployAware, Message {
     private Collection<T2<EntryProcessor<Object, Object, Object>, Object[]>> entryProcessorsCol;
 
     /** Transient field for calculated entry processor value. */
-    private V entryProcessorCalcVal;
+    private CacheObject entryProcessorCalcVal;
 
     /** Transform closure bytes. */
     @GridToStringExclude
@@ -881,13 +881,6 @@ public class IgniteTxEntry implements GridPeerDeployAware, Message {
                 reader.incrementState();
 
             case 6:
-                grpLock = reader.readBoolean("grpLock");
-
-                if (!reader.isLastRead())
-                    return false;
-
-                reader.incrementState();
-
             case 7:
                 key = reader.readMessage("key");
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/a7b37493/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index 8e0380c..1f175f6 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@ -1108,7 +1108,7 @@ public class IgniteTxHandler {
                         boolean prepared = f.get();
 
                         sendCheckPrepareTxResponse(nodeId,
-                            new GridCacheOptimisticCheckPreparedTxResponse<K, V>(
+                            new GridCacheOptimisticCheckPreparedTxResponse(
                                 req.version(),
                                 req.futureId(),
                                 req.miniId(),
@@ -1121,7 +1121,7 @@ public class IgniteTxHandler {
                             "(will send rolled back response): " + req.nearXidVersion(), e);
 
                         sendCheckPrepareTxResponse(nodeId,
-                            new GridCacheOptimisticCheckPreparedTxResponse<K, V>(
+                            new GridCacheOptimisticCheckPreparedTxResponse(
                                 req.version(),
                                 req.futureId(),
                                 req.miniId(),

http://git-wip-us.apache.org/repos/asf/ignite/blob/a7b37493/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
index 14e1db2..5c12912 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
@@ -1711,10 +1711,10 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
      * @return Future.
      */
     public IgniteInternalFuture<Boolean> nearTxCommitted(GridCacheVersion nearVer) {
-        for (final IgniteInternalTx<K, V> tx : txs()) {
+        for (final IgniteInternalTx tx : txs()) {
             if (tx.near() && tx.xidVersion().equals(nearVer)) {
                 return tx.done() ?
-                    new GridFinishedFutureEx<>(tx.state() == COMMITTED) :
+                    new GridFinishedFuture<>(tx.state() == COMMITTED) :
                     tx.finishFuture().chain(new C1<IgniteInternalFuture<IgniteInternalTx>, Boolean>() {
                         @Override public Boolean apply(IgniteInternalFuture<IgniteInternalTx> f) {
                             return tx.state() == COMMITTED;
@@ -1726,7 +1726,7 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
         // Transaction was not found. Check committed versions buffer.
         Boolean res = completedVers.get(nearVer);
 
-        return new GridFinishedFutureEx<>(res != null && res);
+        return new GridFinishedFuture<>(res != null && res);
     }
 
     /**


[22/50] [abbrv] ignite git commit: IGNITE-264 - Fixing tests WIP.

Posted by ag...@apache.org.
IGNITE-264 - Fixing tests WIP.


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

Branch: refs/heads/ignite-264
Commit: 3d3a15fa72c2b882afa81aa1ea87a24579f2bdff
Parents: b0e6f29
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Tue Aug 11 16:41:38 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Tue Aug 11 16:41:38 2015 -0700

----------------------------------------------------------------------
 .../cache/CacheStoreUsageMultinodeAbstractTest.java     | 12 +++++++++---
 .../distributed/GridCacheTransformEventSelfTest.java    |  3 +++
 2 files changed, 12 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/3d3a15fa/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java
index 79a0293..7eef248 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java
@@ -212,10 +212,16 @@ public abstract class CacheStoreUsageMultinodeAbstractTest extends GridCommonAbs
 
         Transaction tx = tc != null ? ignite.transactions().txStart(tc, REPEATABLE_READ) : null;
 
-        cache.put(key, key);
+        try {
+            cache.put(key, key);
 
-        if (tx != null)
-            tx.commit();
+            if (tx != null)
+                tx.commit();
+        }
+        finally {
+            if (tx != null)
+                tx.close();
+        }
 
         boolean wait = GridTestUtils.waitForCondition(new GridAbsPredicate() {
             @Override

http://git-wip-us.apache.org/repos/asf/ignite/blob/3d3a15fa/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTransformEventSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTransformEventSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTransformEventSelfTest.java
index 459e015..bec43d9 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTransformEventSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTransformEventSelfTest.java
@@ -165,6 +165,9 @@ public class GridCacheTransformEventSelfTest extends GridCommonAbstractTest {
 
         startGrids(GRID_CNT);
 
+        if (cacheMode == REPLICATED)
+            awaitPartitionMapExchange();
+
         ignites = new Ignite[GRID_CNT];
         ids = new UUID[GRID_CNT];
         caches = new IgniteCache[GRID_CNT];


[14/50] [abbrv] ignite git commit: Merge branch master into ignite-264

Posted by ag...@apache.org.
Merge branch master into ignite-264


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

Branch: refs/heads/ignite-264
Commit: c31ad7e35a16e5b1a2a21d96740829729404eb17
Parents: 03923c9 d9acbd1
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Fri Aug 7 18:30:58 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Fri Aug 7 18:30:58 2015 -0700

----------------------------------------------------------------------
 .gitignore                                      |    3 +-
 DEVNOTES.txt                                    |  124 +-
 LICENSE                                         |  238 +
 LICENSE.txt                                     |  238 -
 NOTICE                                          |   12 +
 NOTICE.txt                                      |   12 -
 RELEASE_NOTES.txt                               |   71 +-
 assembly/LICENSE_FABRIC                         |  306 +
 assembly/LICENSE_HADOOP                         |  259 +
 assembly/NOTICE_FABRIC                          |   13 +
 assembly/NOTICE_HADOOP                          |   12 +
 assembly/dependencies-fabric.xml                |   65 +
 assembly/dependencies-hadoop.xml                |   13 +-
 assembly/dependencies-optional-fabric.xml       |   82 -
 assembly/dependencies-optional-hadoop.xml       |   83 -
 assembly/dependencies-visor-console.xml         |   28 +-
 assembly/libs/README.txt                        |    1 -
 assembly/release-base.xml                       |   26 +-
 assembly/release-fabric.xml                     |   22 +-
 assembly/release-hadoop.xml                     |   17 +-
 assembly/release-schema-import.xml              |   50 +
 bin/ignite-schema-import.bat                    |    2 +-
 bin/ignite-schema-import.sh                     |    2 +-
 bin/ignite.bat                                  |   12 +-
 bin/ignite.sh                                   |   10 +-
 bin/ignitevisorcmd.bat                          |   41 +-
 bin/ignitevisorcmd.sh                           |    2 +-
 bin/include/build-classpath.bat                 |   46 +
 bin/include/build-classpath.sh                  |   71 +
 bin/include/functions.sh                        |    2 +-
 bin/include/parseargs.bat                       |    1 +
 bin/include/parseargs.sh                        |    3 +
 bin/include/service.sh                          |    8 +-
 bin/include/target-classpath.bat                |   46 -
 bin/include/target-classpath.sh                 |   71 -
 config/hadoop/default-config.xml                |   15 +-
 config/ignite-log4j2.xml                        |   81 +
 config/ignite-log4j2.xml~                       |   65 +
 dev-tools/.gitignore                            |    2 +
 dev-tools/build.gradle                          |   54 +
 .../gradle/wrapper/gradle-wrapper.properties    |   20 +
 dev-tools/gradlew                               |  233 +
 dev-tools/slurp.sh                              |   76 +
 dev-tools/src/main/groovy/jiraslurp.groovy      |  544 ++
 examples/README.txt                             |   11 +-
 examples/config/example-cache.xml               |    2 +
 examples/pom-standalone.xml                     |   17 +-
 examples/pom.xml                                |  139 +-
 examples/schema-import/bin/db-init.sql          |   17 +
 examples/schema-import/pom.xml                  |   11 +-
 .../examples/datagrid/CacheAffinityExample.java |    9 +-
 .../examples/datagrid/CacheApiExample.java      |    9 +-
 .../examples/datagrid/CacheAsyncApiExample.java |    9 +-
 .../datagrid/CacheContinuousQueryExample.java   |    8 +-
 .../datagrid/CacheDataStreamerExample.java      |    9 +-
 .../examples/datagrid/CacheEventsExample.java   |    9 +-
 .../examples/datagrid/CachePutGetExample.java   |   10 +-
 .../examples/datagrid/CacheQueryExample.java    |   24 +-
 .../datagrid/CacheTransactionExample.java       |   14 +-
 .../hibernate/HibernateL2CacheExample.java      |    5 +-
 .../starschema/CacheStarSchemaExample.java      |   10 +-
 .../store/auto/CacheAutoStoreExample.java       |    8 +-
 .../auto/CacheAutoStoreLoadDataExample.java     |    5 +-
 .../datagrid/store/auto/CacheConfig.java        |    4 +-
 .../store/dummy/CacheDummyStoreExample.java     |    5 +-
 .../hibernate/CacheHibernatePersonStore.java    |  202 +-
 .../hibernate/CacheHibernateStoreExample.java   |   25 +-
 .../store/jdbc/CacheJdbcPersonStore.java        |  180 +-
 .../store/jdbc/CacheJdbcStoreExample.java       |   21 +-
 .../store/spring/CacheSpringPersonStore.java    |  128 +
 .../store/spring/CacheSpringStoreExample.java   |  143 +
 .../datagrid/store/spring/package-info.java     |   22 +
 .../datastructures/IgniteQueueExample.java      |   28 +-
 .../datastructures/IgniteSetExample.java        |   30 +-
 .../client/memcache/MemcacheRestExample.java    |   32 +-
 .../streaming/StreamTransformerExample.java     |   98 +
 .../streaming/StreamVisitorExample.java         |  166 +
 .../streaming/marketdata/CacheConfig.java       |   44 -
 .../streaming/marketdata/Instrument.java        |  106 -
 .../marketdata/QueryTopInstruments.java         |   73 -
 .../streaming/marketdata/StreamMarketData.java  |  103 -
 .../examples/streaming/numbers/CacheConfig.java |   46 -
 .../streaming/numbers/QueryPopularNumbers.java  |   74 -
 .../streaming/numbers/StreamRandomNumbers.java  |   78 -
 .../ignite/examples/streaming/package-info.java |    1 -
 .../streaming/wordcount/CacheConfig.java        |   48 +
 .../streaming/wordcount/QueryWords.java         |   83 +
 .../streaming/wordcount/StreamWords.java        |   72 +
 .../streaming/wordcount/alice-in-wonderland.txt | 3735 +++++++++
 .../streaming/wordcount/package-info.java       |   21 +
 .../socket/WordsSocketStreamerClient.java       |   82 +
 .../socket/WordsSocketStreamerServer.java       |  124 +
 .../wordcount/socket/package-info.java          |   21 +
 .../streaming/StreamTransformerExample.java     |   97 +
 .../java8/streaming/StreamVisitorExample.java   |  168 +
 .../java8/streaming/marketdata/CacheConfig.java |   44 -
 .../java8/streaming/marketdata/Instrument.java  |  106 -
 .../marketdata/QueryTopInstruments.java         |   73 -
 .../streaming/marketdata/StreamMarketData.java  |  101 -
 .../java8/streaming/numbers/CacheConfig.java    |   46 -
 .../streaming/numbers/QueryPopularNumbers.java  |   74 -
 .../streaming/numbers/StreamRandomNumbers.java  |   74 -
 .../examples/ScalarCacheAffinityExample.scala   |    2 +-
 .../scalar/examples/ScalarCacheExample.scala    |    2 +-
 .../ScalarCachePopularNumbersExample.scala      |    2 +-
 .../examples/ScalarCacheQueryExample.scala      |    2 +-
 .../examples/ScalarContinuationExample.scala    |   10 +-
 .../examples/ScalarSnowflakeSchemaExample.scala |    4 +-
 .../examples/MessagingExamplesSelfTest.java     |    2 +-
 .../java8/examples/BasicExamplesSelfTest.java   |    3 +
 .../java8/examples/CacheExamplesSelfTest.java   |    4 +
 .../examples/CheckpointExamplesSelfTest.java    |    3 +
 .../examples/ClusterGroupExampleSelfTest.java   |    3 +-
 .../examples/ContinuationExamplesSelfTest.java  |    3 +
 .../ContinuousMapperExamplesSelfTest.java       |    4 +-
 .../DeploymentExamplesMultiNodeSelfTest.java    |    2 +
 .../examples/DeploymentExamplesSelfTest.java    |    2 +
 .../HibernateL2CacheExampleSelfTest.java        |    3 +
 .../java8/examples/IgfsExamplesSelfTest.java    |    3 +
 .../examples/LifecycleExamplesSelfTest.java     |    3 +
 .../MemcacheRestExamplesMultiNodeSelfTest.java  |    2 +
 .../examples/MemcacheRestExamplesSelfTest.java  |    2 +
 .../examples/MessagingExamplesSelfTest.java     |    4 +-
 .../examples/MonteCarloExamplesSelfTest.java    |    3 +
 .../examples/SpringBeanExamplesSelfTest.java    |    3 +
 .../java8/examples/TaskExamplesSelfTest.java    |    2 +
 idea/ignite_codeStyle.xml                       |  147 +
 ipc/shmem/README.txt                            |    2 +-
 modules/aop/licenses/aspectj-epl-license.txt    |   69 -
 modules/aop/pom.xml                             |   25 +-
 .../aop/aspectj/GridifyAspectJAspect.java       |    2 +-
 .../aspectj/GridifySetToSetAspectJAspect.java   |    2 +-
 .../aspectj/GridifySetToValueAspectJAspect.java |    2 +-
 .../aop/spring/GridifySetToSetSpringAspect.java |    2 +-
 .../spring/GridifySetToValueSpringAspect.java   |    2 +-
 .../gridify/aop/spring/GridifySpringAspect.java |    2 +-
 modules/apache-license-gen/pom.xml              |   35 +
 .../src/main/resources/META-INF/licenses.txt.vm |   42 +
 modules/aws/pom.xml                             |   43 +-
 .../spi/checkpoint/s3/S3CheckpointSpi.java      |    2 +-
 .../s3/S3CheckpointManagerSelfTest.java         |    2 +-
 .../checkpoint/s3/S3CheckpointSpiSelfTest.java  |   16 +-
 .../s3/S3CheckpointSpiStartStopSelfTest.java    |    2 +-
 .../s3/S3SessionCheckpointSelfTest.java         |    2 +-
 .../s3/TcpDiscoveryS3IpFinderSelfTest.java      |    2 +-
 modules/clients/README.txt                      |   16 +
 .../config/grid-client-config.properties        |   50 +-
 modules/clients/pom.xml                         |   43 +-
 modules/clients/readme.md                       |   34 -
 modules/clients/readme.pdf                      |  Bin 47887 -> 0 bytes
 .../client/ClientReconnectionSelfTest.java      |   69 +-
 .../client/impl/ClientCacheFlagsCodecTest.java  |   18 +-
 .../ClientPropertiesConfigurationSelfTest.java  |   12 +-
 .../ClientAbstractConnectivitySelfTest.java     |   18 +-
 .../ClientAbstractMultiNodeSelfTest.java        |    4 +-
 .../client/router/TcpSslRouterSelfTest.java     |    5 +
 .../client/suite/IgniteClientTestSuite.java     |    3 +-
 .../rest/AbstractRestProcessorSelfTest.java     |   12 +-
 .../JettyRestProcessorAbstractSelfTest.java     |  654 +-
 .../rest/protocols/tcp/MockNioSession.java      |   15 -
 .../clients/src/test/resources/spring-cache.xml |    4 +-
 .../src/test/resources/spring-server-node.xml   |    4 +-
 .../test/resources/spring-server-ssl-node.xml   |    4 +-
 modules/cloud/README.txt                        |   32 +
 modules/cloud/licenses/apache-2.0.txt           |  202 +
 modules/cloud/pom.xml                           |  106 +
 .../cloud/TcpDiscoveryCloudIpFinder.java        |  442 ++
 .../tcp/ipfinder/cloud/package-info.java        |   21 +
 .../TcpDiscoveryCloudIpFinderSelfTest.java      |  121 +
 .../tcp/ipfinder/cloud/package-info.java        |   22 +
 .../ignite/testsuites/IgniteCloudTestSuite.java |  112 +
 modules/codegen/pom.xml                         |   27 +-
 .../ignite/codegen/MessageCodeGenerator.java    |   31 +-
 modules/core/licenses/jsr166-license.txt        |    3 +
 modules/core/licenses/snaptree-bsd-license.txt  |    2 +-
 modules/core/pom.xml                            |  100 +-
 modules/core/src/main/java/META-INF/LICENSE     |  238 +
 modules/core/src/main/java/META-INF/NOTICE      |   12 +
 .../src/main/java/org/apache/ignite/Ignite.java |  110 +-
 .../java/org/apache/ignite/IgniteCache.java     |  155 +-
 .../IgniteClientDisconnectedException.java      |   61 +
 .../java/org/apache/ignite/IgniteCluster.java   |   23 +-
 .../java/org/apache/ignite/IgniteCompute.java   |  161 +-
 .../java/org/apache/ignite/IgniteEvents.java    |   60 +-
 .../org/apache/ignite/IgniteJdbcDriver.java     |   81 +-
 .../java/org/apache/ignite/IgniteLogger.java    |    8 +-
 .../java/org/apache/ignite/IgniteMessaging.java |   56 +-
 .../java/org/apache/ignite/IgniteServices.java  |   47 +-
 .../java/org/apache/ignite/IgniteState.java     |    2 +-
 .../apache/ignite/IgniteSystemProperties.java   |   32 +-
 .../org/apache/ignite/IgniteTransactions.java   |   26 +-
 .../main/java/org/apache/ignite/Ignition.java   |   64 +-
 .../apache/ignite/cache/CacheInterceptor.java   |   12 +-
 .../org/apache/ignite/cache/CacheManager.java   |   13 +-
 .../org/apache/ignite/cache/CacheMetrics.java   |  187 +-
 .../cache/CacheServerNotFoundException.java     |   12 +-
 .../apache/ignite/cache/CacheTypeMetadata.java  |   57 +-
 .../apache/ignite/cache/CachingProvider.java    |    5 +-
 .../apache/ignite/cache/affinity/Affinity.java  |   49 +-
 .../AffinityNodeAddressHashResolver.java        |    8 +-
 .../affinity/AffinityNodeHashResolver.java      |    5 +
 .../affinity/AffinityNodeIdHashResolver.java    |    6 +
 .../ignite/cache/affinity/AffinityUuid.java     |   50 +
 .../affinity/fair/FairAffinityFunction.java     |    5 +-
 .../rendezvous/RendezvousAffinityFunction.java  |   22 +-
 .../ignite/cache/eviction/EvictableEntry.java   |    7 +
 .../ignite/cache/eviction/EvictionPolicy.java   |    2 +
 .../cache/eviction/fifo/FifoEvictionPolicy.java |  143 +-
 .../eviction/fifo/FifoEvictionPolicyMBean.java  |   38 +
 .../igfs/IgfsPerBlockLruEvictionPolicy.java     |    3 +-
 .../cache/eviction/lru/LruEvictionPolicy.java   |  131 +-
 .../eviction/lru/LruEvictionPolicyMBean.java    |   38 +
 .../eviction/random/RandomEvictionPolicy.java   |   10 +-
 .../eviction/sorted/SortedEvictionPolicy.java   |  511 ++
 .../sorted/SortedEvictionPolicyMBean.java       |   88 +
 .../cache/eviction/sorted/package-info.java     |   21 +
 .../apache/ignite/cache/query/QueryMetrics.java |    6 +-
 .../apache/ignite/cache/query/ScanQuery.java    |   50 +-
 .../ignite/cache/query/SqlFieldsQuery.java      |   55 +-
 .../apache/ignite/cache/store/CacheStore.java   |    2 +
 .../ignite/cache/store/CacheStoreSession.java   |   22 +
 .../cache/store/CacheStoreSessionListener.java  |  133 +
 .../store/jdbc/CacheAbstractJdbcStore.java      |  125 +-
 .../cache/store/jdbc/CacheJdbcBlobStore.java    |   31 +-
 .../store/jdbc/CacheJdbcBlobStoreFactory.java   |  290 +
 .../cache/store/jdbc/CacheJdbcPojoStore.java    |    6 +-
 .../store/jdbc/CacheJdbcPojoStoreFactory.java   |  148 +
 .../jdbc/CacheJdbcStoreSessionListener.java     |  141 +
 .../org/apache/ignite/cluster/ClusterGroup.java |  198 +-
 .../org/apache/ignite/cluster/ClusterNode.java  |   75 +-
 .../ignite/cluster/ClusterStartNodeResult.java  |   46 +
 .../cluster/ClusterTopologyException.java       |    2 +-
 .../ignite/compute/ComputeJobContinuation.java  |    2 +
 .../ignite/compute/ComputeJobResultPolicy.java  |    3 +-
 .../configuration/CacheConfiguration.java       |  443 +-
 .../configuration/CollectionConfiguration.java  |  114 +-
 .../configuration/ConnectorConfiguration.java   |   34 +-
 .../configuration/FileSystemConfiguration.java  |    6 +
 .../configuration/IgniteConfiguration.java      |  643 +-
 .../configuration/IgniteReflectionFactory.java  |   81 +-
 .../configuration/NearCacheConfiguration.java   |   10 +-
 .../ignite/configuration/TopologyValidator.java |   35 +
 .../configuration/TransactionConfiguration.java |   23 +
 .../org/apache/ignite/events/CacheEvent.java    |   25 +-
 .../ignite/events/CacheQueryExecutedEvent.java  |   12 +-
 .../ignite/events/CacheQueryReadEvent.java      |   12 +-
 .../ignite/events/CacheRebalancingEvent.java    |   26 +-
 .../org/apache/ignite/events/EventType.java     |  135 +-
 .../org/apache/ignite/igfs/IgfsUserContext.java |  119 +
 .../igfs/secondary/IgfsSecondaryFileSystem.java |    7 +
 .../ignite/internal/ClusterMetricsSnapshot.java |  399 +-
 .../internal/ComputeTaskInternalFuture.java     |    2 +-
 .../ignite/internal/GridCachePluginContext.java |   78 +
 .../apache/ignite/internal/GridComponent.java   |   25 +-
 .../ignite/internal/GridDirectCollection.java   |    3 +
 .../internal/GridEventConsumeHandler.java       |  126 +-
 .../ignite/internal/GridJobContextImpl.java     |   99 +-
 .../ignite/internal/GridJobExecuteRequest.java  |   10 +-
 .../ignite/internal/GridJobExecuteResponse.java |    4 +-
 .../ignite/internal/GridJobSiblingImpl.java     |    2 +-
 .../ignite/internal/GridKernalContext.java      |   10 +
 .../ignite/internal/GridKernalContextImpl.java  |   62 +-
 .../ignite/internal/GridKernalGateway.java      |   46 +-
 .../ignite/internal/GridKernalGatewayImpl.java  |   85 +-
 .../apache/ignite/internal/GridKernalState.java |    3 +
 .../ignite/internal/GridPluginComponent.java    |   20 +-
 .../ignite/internal/GridPluginContext.java      |   21 +-
 .../apache/ignite/internal/GridTaskMessage.java |   30 -
 .../ignite/internal/GridTaskSessionRequest.java |    6 +-
 .../ignite/internal/GridUpdateNotifier.java     |   66 +-
 ...gniteClientDisconnectedCheckedException.java |   49 +
 .../ignite/internal/IgniteComponentType.java    |   43 +-
 .../org/apache/ignite/internal/IgniteEx.java    |   19 +-
 .../apache/ignite/internal/IgniteKernal.java    |  632 +-
 .../ignite/internal/IgniteNodeAttributes.java   |   11 +-
 .../org/apache/ignite/internal/IgnitionEx.java  |  444 +-
 .../internal/MarshallerContextAdapter.java      |   93 +-
 .../ignite/internal/MarshallerContextImpl.java  |  172 +-
 .../internal/client/GridClientCacheFlag.java    |   13 -
 .../client/GridClientConfiguration.java         |   18 +-
 .../impl/connection/GridClientConnection.java   |    9 -
 .../GridClientConnectionManagerAdapter.java     |    4 +-
 .../connection/GridClientNioTcpConnection.java  |    9 +-
 .../GridClientOptimizedMarshaller.java          |   26 +
 .../router/GridTcpRouterConfiguration.java      |    6 +-
 .../client/router/impl/GridTcpRouterImpl.java   |    2 +-
 .../impl/GridTcpRouterNioListenerAdapter.java   |    2 +-
 .../client/ssl/GridSslBasicContextFactory.java  |    3 +
 .../client/ssl/GridSslContextFactory.java       |    5 +-
 .../internal/cluster/ClusterGroupAdapter.java   |  213 +-
 .../cluster/ClusterStartNodeResultImpl.java     |   87 +
 .../ClusterTopologyServerNotFoundException.java |   12 +-
 .../cluster/IgniteClusterAsyncImpl.java         |   22 +-
 .../internal/cluster/IgniteClusterImpl.java     |   55 +-
 .../internal/direct/DirectByteBufferStream.java |    4 +-
 .../internal/events/DiscoveryCustomEvent.java   |   18 +-
 .../internal/igfs/common/IgfsMarshaller.java    |   35 +-
 .../igfs/common/IgfsPathControlRequest.java     |   22 +
 .../interop/InteropAwareEventFilter.java        |   37 +
 .../internal/interop/InteropBootstrap.java      |   35 +
 .../interop/InteropBootstrapFactory.java        |   39 +
 .../internal/interop/InteropException.java      |   71 +
 .../internal/interop/InteropIgnition.java       |  241 +
 .../interop/InteropLocalEventListener.java      |   28 +
 .../interop/InteropNoCallbackException.java     |   50 +
 .../internal/interop/InteropProcessor.java      |   51 +
 .../internal/managers/GridManagerAdapter.java   |  145 +-
 .../checkpoint/GridCheckpointManager.java       |   52 +-
 .../managers/communication/GridIoManager.java   |  541 +-
 .../managers/communication/GridIoMessage.java   |   15 +-
 .../communication/GridIoMessageFactory.java     |   12 +-
 .../managers/communication/GridIoPolicy.java    |   32 +-
 .../GridLifecycleAwareMessageFilter.java        |   38 +
 .../deployment/GridDeploymentClassLoader.java   |    2 +-
 .../deployment/GridDeploymentCommunication.java |    2 +-
 .../deployment/GridDeploymentManager.java       |   97 +-
 .../GridDeploymentPerVersionStore.java          |    3 +-
 .../managers/discovery/CustomEventListener.java |   31 +
 .../discovery/CustomMessageWrapper.java         |   63 +
 .../discovery/DiscoveryCustomMessage.java       |   54 +
 .../discovery/GridDiscoveryManager.java         |  642 +-
 .../eventstorage/GridEventStorageManager.java   |   41 +-
 .../failover/GridFailoverContextImpl.java       |   28 +-
 .../managers/failover/GridFailoverManager.java  |   13 +-
 .../managers/indexing/GridIndexingManager.java  |   18 +-
 .../swapspace/GridSwapSpaceManager.java         |    6 +-
 .../processors/GridProcessorAdapter.java        |   18 +-
 .../affinity/AffinityTopologyVersion.java       |    7 -
 .../affinity/GridAffinityAssignment.java        |   12 +
 .../affinity/GridAffinityAssignmentCache.java   |   73 +-
 .../affinity/GridAffinityProcessor.java         |   28 +-
 .../cache/CacheConflictResolutionManager.java   |   30 +
 .../processors/cache/CacheDistributionMode.java |   67 -
 .../processors/cache/CacheEntryImpl.java        |   29 +-
 .../cache/CacheEvictableEntryImpl.java          |   44 +-
 .../internal/processors/cache/CacheFlag.java    |  108 -
 .../processors/cache/CacheFlagException.java    |   67 -
 .../processors/cache/CacheInvokeResult.java     |   24 +-
 .../processors/cache/CacheLazyEntry.java        |   10 +-
 .../processors/cache/CacheLockImpl.java         |   20 +-
 .../processors/cache/CacheMetricsImpl.java      |  375 +-
 .../cache/CacheMetricsMXBeanImpl.java           |  100 +
 .../processors/cache/CacheMetricsSnapshot.java  |  533 +-
 .../cache/CacheObjectByteArrayImpl.java         |    2 +-
 .../processors/cache/CacheObjectContext.java    |   14 +-
 .../processors/cache/CacheObjectImpl.java       |   13 +-
 .../processors/cache/CacheOperationContext.java |  204 +
 .../cache/CacheOsConflictResolutionManager.java |   64 +
 .../processors/cache/CacheProjection.java       | 1859 -----
 .../cache/CacheStoreBalancingWrapper.java       |    6 +
 .../cache/CacheStorePartialUpdateException.java |    2 +-
 .../internal/processors/cache/CacheType.java    |   75 +
 .../cache/CacheVersionedEntryImpl.java          |   29 +-
 .../cache/DynamicCacheChangeBatch.java          |   46 +-
 .../cache/DynamicCacheChangeRequest.java        |   65 +-
 .../cache/DynamicCacheDescriptor.java           |   65 +-
 .../internal/processors/cache/GridCache.java    |  227 -
 .../processors/cache/GridCacheAdapter.java      | 2098 ++---
 .../cache/GridCacheAffinityManager.java         |   47 +-
 .../processors/cache/GridCacheAtomicFuture.java |   19 +-
 .../processors/cache/GridCacheAttributes.java   |   19 +-
 .../cache/GridCacheConcurrentMap.java           |  136 +-
 .../processors/cache/GridCacheContext.java      |  503 +-
 .../cache/GridCacheDeploymentManager.java       |   17 +-
 .../processors/cache/GridCacheEntryEx.java      |  101 +-
 .../processors/cache/GridCacheEventManager.java |    4 +-
 .../cache/GridCacheEvictionManager.java         |   31 +-
 .../cache/GridCacheExplicitLockSpan.java        |    2 +-
 .../processors/cache/GridCacheGateway.java      |  229 +-
 .../processors/cache/GridCacheIoManager.java    |  485 +-
 .../processors/cache/GridCacheManager.java      |    6 +
 .../cache/GridCacheManagerAdapter.java          |    6 +
 .../processors/cache/GridCacheMapAdapter.java   |  238 -
 .../processors/cache/GridCacheMapEntry.java     |  761 +-
 .../cache/GridCacheMapEntryFactory.java         |    2 -
 .../processors/cache/GridCacheMessage.java      |   66 +-
 .../processors/cache/GridCacheMvcc.java         |    2 +-
 .../cache/GridCacheMvccCandidate.java           |   50 +-
 .../processors/cache/GridCacheMvccManager.java  |  218 +-
 .../GridCachePartitionExchangeManager.java      |  454 +-
 .../processors/cache/GridCachePeekMode.java     |   81 -
 .../processors/cache/GridCachePreloader.java    |   11 +-
 .../cache/GridCachePreloaderAdapter.java        |   16 +-
 .../processors/cache/GridCacheProcessor.java    | 1497 +++-
 .../processors/cache/GridCacheProjectionEx.java |  509 --
 .../cache/GridCacheProjectionImpl.java          | 1198 ---
 .../processors/cache/GridCacheProxy.java        |   27 -
 .../processors/cache/GridCacheProxyImpl.java    |  916 +--
 .../processors/cache/GridCacheReturn.java       |    5 +-
 .../cache/GridCacheSharedContext.java           |  189 +-
 .../cache/GridCacheSharedManager.java           |   11 +-
 .../cache/GridCacheSharedManagerAdapter.java    |   20 +-
 .../processors/cache/GridCacheStoreManager.java | 1202 ---
 .../processors/cache/GridCacheSwapManager.java  |  610 +-
 .../processors/cache/GridCacheTtlManager.java   |  165 +-
 .../processors/cache/GridCacheUtils.java        |  505 +-
 .../cache/GridCacheWriteBehindStore.java        | 1015 ---
 .../cache/GridLoadCacheCloseablePredicate.java  |   30 +
 .../processors/cache/IgniteCacheFutureImpl.java |   53 +
 .../processors/cache/IgniteCacheProxy.java      |  871 ++-
 .../processors/cache/IgniteInternalCache.java   | 1794 +++++
 .../processors/cache/KeyCacheObjectImpl.java    |   24 +-
 .../processors/cache/QueryCursorImpl.java       |   23 +-
 .../cache/affinity/GridCacheAffinityImpl.java   |   12 +-
 .../cache/affinity/GridCacheAffinityProxy.java  |   30 +-
 .../CacheDataStructuresManager.java             |   51 +-
 ...ridCacheOptimisticCheckPreparedTxFuture.java |  415 -
 ...idCacheOptimisticCheckPreparedTxRequest.java |  262 -
 ...dCacheOptimisticCheckPreparedTxResponse.java |  179 -
 .../distributed/GridCacheTxFinishSync.java      |   46 +
 .../distributed/GridCacheTxRecoveryFuture.java  |  530 ++
 .../distributed/GridCacheTxRecoveryRequest.java |  268 +
 .../GridCacheTxRecoveryResponse.java            |  182 +
 .../distributed/GridDistributedBaseMessage.java |   73 +-
 .../GridDistributedCacheAdapter.java            |  225 +-
 .../distributed/GridDistributedCacheEntry.java  |    9 +-
 .../distributed/GridDistributedLockRequest.java |   95 +-
 .../GridDistributedLockResponse.java            |   14 +-
 .../GridDistributedTxFinishRequest.java         |   58 +-
 .../distributed/GridDistributedTxMapping.java   |   22 +-
 .../GridDistributedTxPrepareRequest.java        |   81 +-
 .../GridDistributedTxPrepareResponse.java       |   58 -
 .../GridDistributedTxRemoteAdapter.java         |   36 +-
 .../GridDistributedUnlockRequest.java           |    6 +-
 .../GridFutureRemapTimeoutObject.java           |   73 +
 .../dht/GridClientPartitionTopology.java        |   26 +-
 .../dht/GridDhtAffinityAssignmentRequest.java   |    5 +
 .../dht/GridDhtAffinityAssignmentResponse.java  |   26 +-
 .../dht/GridDhtAssignmentFetchFuture.java       |    4 +-
 .../distributed/dht/GridDhtCacheAdapter.java    |  145 +-
 .../distributed/dht/GridDhtCacheEntry.java      |   50 +-
 .../cache/distributed/dht/GridDhtGetFuture.java |   20 +-
 .../distributed/dht/GridDhtLocalPartition.java  |  173 +-
 .../distributed/dht/GridDhtLockFuture.java      |   69 +-
 .../distributed/dht/GridDhtLockRequest.java     |   15 +-
 .../distributed/dht/GridDhtLockResponse.java    |    8 +-
 .../dht/GridDhtOffHeapCacheEntry.java           |   63 +
 .../dht/GridDhtPartitionTopology.java           |    4 +-
 .../dht/GridDhtPartitionTopologyImpl.java       |   92 +-
 .../dht/GridDhtPartitionsReservation.java       |  292 +
 .../distributed/dht/GridDhtTopologyFuture.java  |   22 +-
 .../dht/GridDhtTransactionalCacheAdapter.java   |  268 +-
 .../distributed/dht/GridDhtTxFinishFuture.java  |  136 +-
 .../distributed/dht/GridDhtTxFinishRequest.java |   35 +-
 .../cache/distributed/dht/GridDhtTxLocal.java   |   44 +-
 .../distributed/dht/GridDhtTxLocalAdapter.java  |  157 +-
 .../cache/distributed/dht/GridDhtTxMapping.java |    2 +-
 .../distributed/dht/GridDhtTxPrepareFuture.java |  130 +-
 .../dht/GridDhtTxPrepareRequest.java            |   52 +-
 .../dht/GridDhtTxPrepareResponse.java           |    8 +-
 .../cache/distributed/dht/GridDhtTxRemote.java  |   19 +-
 .../distributed/dht/GridDhtUnlockRequest.java   |    4 +-
 .../distributed/dht/GridNoStorageCacheMap.java  |   13 +-
 .../dht/GridPartitionedGetFuture.java           |   76 +-
 .../cache/distributed/dht/GridReservable.java   |   35 +
 .../dht/atomic/GridDhtAtomicCache.java          |  370 +-
 .../dht/atomic/GridDhtAtomicCacheEntry.java     |    4 +-
 .../atomic/GridDhtAtomicOffHeapCacheEntry.java  |   63 +
 .../dht/atomic/GridDhtAtomicUpdateFuture.java   |   42 +-
 .../dht/atomic/GridDhtAtomicUpdateResponse.java |    8 +
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |  362 +-
 .../dht/atomic/GridNearAtomicUpdateRequest.java |  143 +-
 .../atomic/GridNearAtomicUpdateResponse.java    |   18 +-
 .../dht/colocated/GridDhtColocatedCache.java    |  153 +-
 .../colocated/GridDhtColocatedCacheEntry.java   |    4 +-
 .../colocated/GridDhtColocatedLockFuture.java   |  290 +-
 .../GridDhtColocatedOffHeapCacheEntry.java      |   63 +
 .../colocated/GridDhtDetachedCacheEntry.java    |   11 +-
 .../dht/preloader/GridDhtForceKeysFuture.java   |   50 +-
 .../dht/preloader/GridDhtForceKeysResponse.java |   54 +-
 .../preloader/GridDhtPartitionDemandPool.java   |   44 +-
 .../dht/preloader/GridDhtPartitionMap.java      |   28 +-
 .../preloader/GridDhtPartitionSupplyPool.java   |   31 +-
 .../GridDhtPartitionsAbstractMessage.java       |   15 +-
 .../GridDhtPartitionsExchangeFuture.java        |  600 +-
 .../preloader/GridDhtPartitionsFullMessage.java |    4 +-
 .../GridDhtPartitionsSingleMessage.java         |   33 +-
 .../dht/preloader/GridDhtPreloader.java         |   57 +-
 .../preloader/GridDhtPreloaderAssignments.java  |    3 +-
 .../distributed/near/GridNearAtomicCache.java   |  153 +-
 .../distributed/near/GridNearCacheAdapter.java  |  175 +-
 .../distributed/near/GridNearCacheEntry.java    |   64 +-
 .../distributed/near/GridNearGetFuture.java     |  152 +-
 .../distributed/near/GridNearGetResponse.java   |    8 +-
 .../distributed/near/GridNearLockFuture.java    |  323 +-
 .../distributed/near/GridNearLockRequest.java   |   65 +-
 .../distributed/near/GridNearLockResponse.java  |   34 +-
 .../near/GridNearOffHeapCacheEntry.java         |   60 +
 .../near/GridNearOptimisticTxPrepareFuture.java |  820 ++
 .../GridNearPessimisticTxPrepareFuture.java     |  350 +
 .../near/GridNearTransactionalCache.java        |   66 +-
 .../near/GridNearTxFinishFuture.java            |   28 +-
 .../near/GridNearTxFinishRequest.java           |   29 +-
 .../cache/distributed/near/GridNearTxLocal.java |  157 +-
 .../near/GridNearTxPrepareFuture.java           |  987 ---
 .../near/GridNearTxPrepareFutureAdapter.java    |  231 +
 .../near/GridNearTxPrepareRequest.java          |  102 +-
 .../near/GridNearTxPrepareResponse.java         |   86 +-
 .../distributed/near/GridNearTxRemote.java      |   29 +-
 .../processors/cache/dr/GridCacheDrManager.java |    5 -
 .../cache/dr/GridOsCacheDrManager.java          |  111 +
 .../cache/dr/os/GridOsCacheDrManager.java       |  111 -
 .../extras/GridCacheAttributesEntryExtras.java  |   37 +-
 .../GridCacheAttributesMvccEntryExtras.java     |   35 +-
 ...dCacheAttributesMvccObsoleteEntryExtras.java |   35 +-
 ...cheAttributesMvccObsoleteTtlEntryExtras.java |   35 +-
 .../GridCacheAttributesMvccTtlEntryExtras.java  |   35 +-
 .../GridCacheAttributesObsoleteEntryExtras.java |   36 +-
 ...idCacheAttributesObsoleteTtlEntryExtras.java |   36 +-
 .../GridCacheAttributesTtlEntryExtras.java      |   36 +-
 .../cache/extras/GridCacheEntryExtras.java      |   14 -
 .../extras/GridCacheEntryExtrasAdapter.java     |    8 -
 .../cache/extras/GridCacheMvccEntryExtras.java  |    8 -
 .../GridCacheMvccObsoleteEntryExtras.java       |    8 -
 .../GridCacheMvccObsoleteTtlEntryExtras.java    |    9 -
 .../extras/GridCacheMvccTtlEntryExtras.java     |    8 -
 .../extras/GridCacheObsoleteEntryExtras.java    |    8 -
 .../extras/GridCacheObsoleteTtlEntryExtras.java |    9 -
 .../cache/extras/GridCacheTtlEntryExtras.java   |    8 -
 .../cache/jta/CacheJtaManagerAdapter.java       |   17 +-
 .../cache/jta/CacheNoopJtaManager.java          |    2 +-
 .../processors/cache/local/GridLocalCache.java  |   33 +-
 .../cache/local/GridLocalCacheEntry.java        |   22 +-
 .../cache/local/GridLocalLockFuture.java        |    2 +
 .../local/atomic/GridLocalAtomicCache.java      |  343 +-
 .../processors/cache/query/CacheQueries.java    |  143 -
 .../processors/cache/query/CacheQuery.java      |   14 +-
 .../CacheQueryCloseableScanBiPredicate.java     |   30 +
 .../query/GridCacheDistributedQueryManager.java |   28 +
 .../cache/query/GridCacheLocalQueryFuture.java  |    3 +
 .../cache/query/GridCacheQueriesEx.java         |   68 -
 .../cache/query/GridCacheQueriesImpl.java       |  238 -
 .../cache/query/GridCacheQueriesProxy.java      |  285 -
 .../cache/query/GridCacheQueryAdapter.java      |  207 +-
 .../cache/query/GridCacheQueryErrorFuture.java  |    2 +
 .../query/GridCacheQueryFutureAdapter.java      |    5 +-
 .../cache/query/GridCacheQueryManager.java      |  446 +-
 .../cache/query/GridCacheQueryRequest.java      |   47 +-
 .../cache/query/GridCacheSqlQuery.java          |  158 +-
 .../cache/query/GridCacheTwoStepQuery.java      |   77 +-
 .../processors/cache/query/QueryCursorEx.java   |    8 +
 .../continuous/CacheContinuousQueryHandler.java |   26 +-
 .../CacheContinuousQueryListener.java           |    3 +
 .../continuous/CacheContinuousQueryManager.java |   32 +-
 .../jdbc/GridCacheQueryJdbcMetadataTask.java    |    7 +-
 .../cache/store/CacheOsStoreManager.java        |   58 +
 .../cache/store/CacheStoreManager.java          |  187 +
 .../store/GridCacheStoreManagerAdapter.java     | 1237 +++
 .../cache/store/GridCacheWriteBehindStore.java  | 1015 +++
 .../cache/transactions/IgniteInternalTx.java    |   36 +-
 .../transactions/IgniteTransactionsImpl.java    |   77 +-
 .../cache/transactions/IgniteTxAdapter.java     |   93 +-
 .../cache/transactions/IgniteTxEntry.java       |   55 +-
 .../cache/transactions/IgniteTxHandler.java     |  400 +-
 .../transactions/IgniteTxLocalAdapter.java      |  435 +-
 .../cache/transactions/IgniteTxLocalEx.java     |    6 +-
 .../cache/transactions/IgniteTxManager.java     |  383 +-
 .../transactions/TransactionProxyImpl.java      |    2 +-
 .../version/CacheVersionConflictResolver.java   |   40 +
 ...ridCacheVersionAbstractConflictResolver.java |   56 -
 .../GridCacheVersionConflictResolver.java       |   59 -
 .../cache/version/GridCacheVersionEx.java       |    2 +-
 .../cache/version/GridCacheVersionManager.java  |    9 +-
 .../cacheobject/IgniteCacheObjectProcessor.java |   28 +-
 .../IgniteCacheObjectProcessorImpl.java         |  227 +-
 .../processors/clock/GridClockServer.java       |   21 +-
 .../clock/GridClockSyncProcessor.java           |    6 +-
 .../processors/closure/AffinityTask.java        |   35 +
 .../closure/GridClosureProcessor.java           |   79 +-
 .../processors/cluster/ClusterProcessor.java    |   11 +
 .../continuous/AbstractContinuousMessage.java   |   63 +
 .../continuous/GridContinuousHandler.java       |    9 +-
 .../continuous/GridContinuousMessageType.java   |   12 -
 .../continuous/GridContinuousProcessor.java     |  934 +--
 .../processors/continuous/StartRequestData.java |  267 +
 .../StartRoutineAckDiscoveryMessage.java        |   63 +
 .../StartRoutineDiscoveryMessage.java           |   85 +
 .../StopRoutineAckDiscoveryMessage.java         |   49 +
 .../continuous/StopRoutineDiscoveryMessage.java |   49 +
 .../datastreamer/DataStreamProcessor.java       |   55 +-
 .../datastreamer/DataStreamerCacheUpdaters.java |   17 +-
 .../datastreamer/DataStreamerImpl.java          |  293 +-
 .../datastreamer/DataStreamerRequest.java       |   38 +-
 .../datastreamer/DataStreamerUpdateJob.java     |   34 +-
 .../CacheDataStructuresCacheKey.java            |   62 +
 .../CacheDataStructuresConfigurationKey.java    |    2 +-
 .../datastructures/DataStructuresProcessor.java |  575 +-
 .../GridAtomicCacheQueueImpl.java               |   12 +-
 .../datastructures/GridCacheAtomicLongImpl.java |   64 +-
 .../GridCacheAtomicReferenceImpl.java           |   40 +-
 .../GridCacheAtomicReferenceValue.java          |   15 +-
 .../GridCacheAtomicSequenceImpl.java            |   48 +-
 .../GridCacheAtomicStampedImpl.java             |   60 +-
 .../GridCacheAtomicStampedValue.java            |   15 +-
 .../GridCacheCountDownLatchImpl.java            |   86 +-
 .../datastructures/GridCacheQueueAdapter.java   |    2 +-
 .../datastructures/GridCacheRemovable.java      |    6 +-
 .../datastructures/GridCacheSetImpl.java        |   25 +-
 .../datastructures/GridCacheSetProxy.java       |   47 +-
 .../GridTransactionalCacheQueueImpl.java        |    8 +-
 .../dr/IgniteDrDataStreamerCacheUpdater.java    |    9 +-
 .../internal/processors/hadoop/HadoopJob.java   |    2 +-
 .../processors/hadoop/HadoopJobInfo.java        |    4 +-
 .../processors/hadoop/HadoopTaskContext.java    |   14 +-
 .../hadoop/counter/HadoopCounterWriter.java     |    5 +-
 .../internal/processors/igfs/IgfsAsyncImpl.java |    4 +-
 .../internal/processors/igfs/IgfsContext.java   |    5 +-
 .../processors/igfs/IgfsDataManager.java        |   26 +-
 .../processors/igfs/IgfsDeleteWorker.java       |    4 +
 .../ignite/internal/processors/igfs/IgfsEx.java |   12 +-
 .../processors/igfs/IgfsFileAffinityRange.java  |   23 +-
 .../processors/igfs/IgfsFileWorker.java         |  180 -
 .../processors/igfs/IgfsFileWorkerBatch.java    |  228 +-
 .../processors/igfs/IgfsFileWorkerTask.java     |   32 -
 .../processors/igfs/IgfsHelperImpl.java         |    3 +-
 .../internal/processors/igfs/IgfsImpl.java      |  148 +-
 .../processors/igfs/IgfsInputStreamImpl.java    |    2 +-
 .../processors/igfs/IgfsIpcHandler.java         |  184 +-
 .../processors/igfs/IgfsMetaManager.java        |   51 +-
 .../processors/igfs/IgfsOutputStreamImpl.java   |    6 +-
 .../internal/processors/igfs/IgfsProcessor.java |    2 +-
 .../igfs/IgfsSecondaryFileSystemImpl.java       |    9 +-
 .../internal/processors/igfs/IgfsServer.java    |    4 +-
 .../internal/processors/igfs/IgfsThread.java    |    8 +-
 .../internal/processors/igfs/IgfsUtils.java     |   27 +-
 .../processors/job/GridJobHoldListener.java     |    6 +-
 .../processors/job/GridJobProcessor.java        |   30 +-
 .../internal/processors/job/GridJobWorker.java  |   34 +-
 .../DiscoveryNodeValidationProcessor.java       |   27 +
 .../OsDiscoveryNodeValidationProcessor.java     |   72 +
 .../offheap/GridOffHeapProcessor.java           |   36 +-
 .../processors/plugin/CachePluginManager.java   |  148 +
 .../plugin/IgnitePluginProcessor.java           |   70 +-
 .../portable/GridPortableInputStream.java       |   36 +-
 .../query/GridQueryFieldMetadata.java           |    2 +-
 .../processors/query/GridQueryIndexing.java     |   49 +-
 .../processors/query/GridQueryProcessor.java    |  719 +-
 .../messages/GridQueryNextPageResponse.java     |  123 +-
 .../h2/twostep/messages/GridQueryRequest.java   |  126 +-
 .../processors/resource/GridResourceField.java  |   16 +-
 .../processors/resource/GridResourceIoc.java    |  389 +-
 .../processors/resource/GridResourceMethod.java |   13 +
 .../resource/GridResourceProcessor.java         |   20 +-
 .../processors/rest/GridRestCommand.java        |   52 +-
 .../processors/rest/GridRestProcessor.java      |   73 +-
 .../message/GridClientCacheQueryRequest.java    |  366 -
 .../rest/client/message/GridRouterRequest.java  |   18 +
 .../rest/client/message/GridRouterResponse.java |   18 +
 .../cache/GridCacheClientQueryResult.java       |   97 -
 .../handlers/cache/GridCacheCommandHandler.java |  513 +-
 .../cache/GridCacheQueryCommandHandler.java     |  480 --
 .../query/CacheQueryFieldsMetaResult.java       |  133 +
 .../rest/handlers/query/CacheQueryResult.java   |  120 +
 .../handlers/query/QueryCommandHandler.java     |  292 +
 .../handlers/task/GridTaskCommandHandler.java   |   12 +-
 .../top/GridTopologyCommandHandler.java         |    3 +-
 .../version/GridVersionCommandHandler.java      |   14 +-
 .../protocols/tcp/GridTcpRestNioListener.java   |   24 -
 .../rest/protocols/tcp/GridTcpRestProtocol.java |   23 +-
 .../rest/request/GridRestCacheQueryRequest.java |  143 -
 .../rest/request/RestSqlQueryRequest.java       |  125 +
 .../security/GridSecurityProcessor.java         |   13 +-
 .../processors/security/SecurityContext.java    |    8 +-
 .../security/os/GridOsSecurityProcessor.java    |   11 +-
 .../service/GridServiceProcessor.java           |  198 +-
 .../processors/service/GridServiceProxy.java    |   13 +-
 .../processors/task/GridTaskProcessor.java      |  121 +-
 .../processors/task/GridTaskWorker.java         |   99 +-
 .../timeout/GridSpiTimeoutObject.java           |   73 +
 .../timeout/GridTimeoutProcessor.java           |  108 +-
 .../IgniteTxRollbackCheckedException.java       |    9 +
 .../internal/util/GridConfigurationFinder.java  |   55 +-
 .../apache/ignite/internal/util/GridDebug.java  |   48 +-
 .../ignite/internal/util/GridJavaProcess.java   |   64 +-
 .../ignite/internal/util/GridLogThrottle.java   |   63 +-
 .../ignite/internal/util/IgniteUtils.java       |  201 +-
 .../util/future/GridCompoundFuture.java         |    9 +-
 .../internal/util/future/GridFutureAdapter.java |   24 +-
 .../util/future/GridFutureChainListener.java    |    4 -
 .../internal/util/future/IgniteFutureImpl.java  |   30 +-
 .../util/ipc/loopback/IpcServerTcpEndpoint.java |    2 +-
 .../shmem/IpcSharedMemoryClientEndpoint.java    |    7 +-
 .../ipc/shmem/IpcSharedMemoryNativeLoader.java  |  197 +-
 .../shmem/IpcSharedMemoryServerEndpoint.java    |   16 +-
 .../util/ipc/shmem/IpcSharedMemoryUtils.java    |    4 +-
 .../util/lang/GridComputeJobWrapper.java        |   96 -
 .../util/lang/GridFilteredIterator.java         |    2 +-
 .../ignite/internal/util/lang/GridFunc.java     | 7285 +++++-------------
 .../util/lang/GridMetadataAwareAdapter.java     |  298 +-
 .../internal/util/nio/GridBufferedParser.java   |    4 -
 .../util/nio/GridCommunicationClient.java       |   33 +-
 .../internal/util/nio/GridDelimitedParser.java  |   91 +
 .../util/nio/GridNioDelimitedBuffer.java        |  106 +
 .../util/nio/GridNioFinishedFuture.java         |   12 +
 .../ignite/internal/util/nio/GridNioFuture.java |   14 +
 .../internal/util/nio/GridNioFutureImpl.java    |   15 +
 .../util/nio/GridNioMessageTracker.java         |   23 +-
 .../util/nio/GridNioRecoveryDescriptor.java     |   26 +-
 .../ignite/internal/util/nio/GridNioServer.java |  112 +-
 .../util/nio/GridNioSessionMetaKey.java         |    8 +-
 .../util/nio/GridSelectorNioSessionImpl.java    |    8 +
 .../util/nio/GridShmemCommunicationClient.java  |  151 +
 .../util/nio/GridTcpCommunicationClient.java    |  554 --
 .../util/nio/GridTcpNioCommunicationClient.java |   22 +-
 .../util/nio/ssl/BlockingSslHandler.java        |  519 ++
 .../internal/util/nio/ssl/GridNioSslFilter.java |   53 +-
 .../util/nio/ssl/GridNioSslHandler.java         |   79 +-
 .../util/nodestart/IgniteNodeCallable.java      |   30 -
 .../util/nodestart/IgniteSshHelper.java         |    2 +-
 .../util/nodestart/StartNodeCallable.java       |   30 +
 .../util/offheap/GridOffHeapPartitionedMap.java |    9 +
 .../unsafe/GridUnsafePartitionedMap.java        |  155 +-
 .../util/spring/IgniteSpringHelper.java         |   66 +-
 .../util/tostring/GridToStringBuilder.java      |    2 +-
 .../apache/ignite/internal/util/typedef/X.java  |    2 +-
 .../ignite/internal/util/worker/GridWorker.java |    9 +-
 .../apache/ignite/internal/visor/VisorJob.java  |    2 +
 .../internal/visor/VisorMultiNodeTask.java      |    2 +-
 .../ignite/internal/visor/cache/VisorCache.java |  109 +-
 .../cache/VisorCacheAggregatedMetrics.java      |   38 +-
 .../visor/cache/VisorCacheClearTask.java        |    3 +
 .../visor/cache/VisorCacheConfiguration.java    |  110 +-
 .../VisorCacheConfigurationCollectorJob.java    |   76 +
 .../VisorCacheConfigurationCollectorTask.java   |   39 +
 .../cache/VisorCacheDefaultConfiguration.java   |   21 -
 .../visor/cache/VisorCacheMetadataTask.java     |    9 +-
 .../internal/visor/cache/VisorCacheMetrics.java |  107 +-
 .../cache/VisorCacheMetricsCollectorTask.java   |   61 +-
 .../cache/VisorCacheNearConfiguration.java      |   15 +-
 .../visor/cache/VisorCacheNodesTask.java        |   74 +
 .../cache/VisorCacheQueryConfiguration.java     |    9 -
 .../visor/cache/VisorCacheRebalanceTask.java    |    4 +-
 .../visor/cache/VisorCacheResetMetricsTask.java |    2 +-
 .../visor/cache/VisorCacheStartTask.java        |  155 +
 .../visor/cache/VisorCacheStopTask.java         |   69 +
 .../cache/VisorCacheStoreConfiguration.java     |   44 +-
 .../visor/cache/VisorCacheSwapBackupsTask.java  |    2 +-
 .../cache/VisorCacheTypeFieldMetadata.java      |   36 +-
 .../visor/cache/VisorCacheTypeMetadata.java     |   99 +-
 .../visor/event/VisorGridEventsLost.java        |    7 +-
 .../event/VisorGridSecuritySessionEvent.java    |   91 -
 .../internal/visor/igfs/VisorIgfsMetrics.java   |  128 +-
 .../VisorIgfsProfilerUniformityCounters.java    |    6 +-
 .../internal/visor/log/VisorLogSearchTask.java  |   17 +-
 .../visor/misc/VisorResolveHostNameTask.java    |    2 +-
 .../visor/node/VisorBasicConfiguration.java     |   11 +
 .../visor/node/VisorGridConfiguration.java      |   12 -
 .../visor/node/VisorIgfsConfiguration.java      |    2 +-
 .../visor/node/VisorNodeDataCollectorJob.java   |   12 +-
 .../visor/node/VisorNodeDataCollectorTask.java  |   10 +-
 .../node/VisorNodeDataCollectorTaskResult.java  |   17 +-
 .../node/VisorNodeEventsCollectorTask.java      |   61 +-
 .../node/VisorNodeSuppressedErrorsTask.java     |   12 +-
 .../visor/node/VisorRestConfiguration.java      |    1 +
 .../node/VisorSegmentationConfiguration.java    |    4 +-
 .../internal/visor/query/VisorQueryArg.java     |   81 +
 .../visor/query/VisorQueryCleanupTask.java      |   24 +-
 .../internal/visor/query/VisorQueryCursor.java  |   95 +
 .../internal/visor/query/VisorQueryField.java   |   66 +-
 .../internal/visor/query/VisorQueryJob.java     |  178 +
 .../visor/query/VisorQueryNextPageTask.java     |   80 +-
 .../internal/visor/query/VisorQueryResult.java  |    6 +-
 .../visor/query/VisorQueryResultEx.java         |   16 +-
 .../internal/visor/query/VisorQueryTask.java    |  273 +-
 .../internal/visor/query/VisorQueryUtils.java   |   55 +-
 .../util/VisorClusterGroupEmptyException.java   |   37 +
 .../internal/visor/util/VisorEventMapper.java   |   13 +
 .../visor/util/VisorExceptionWrapper.java       |   81 +
 .../internal/visor/util/VisorMimeTypes.java     |    4 +-
 .../internal/visor/util/VisorTaskUtils.java     |   42 +-
 .../apache/ignite/lang/IgniteAsyncSupport.java  |    4 +-
 .../org/apache/ignite/lang/IgniteImmutable.java |   49 -
 .../org/apache/ignite/lang/IgnitePredicate.java |    3 +-
 .../ignite/lang/IgniteProductVersion.java       |    2 +-
 .../apache/ignite/logger/java/JavaLogger.java   |   12 +-
 .../apache/ignite/marshaller/Marshaller.java    |   14 +-
 .../ignite/marshaller/MarshallerContext.java    |   16 +-
 .../ignite/marshaller/jdk/JdkMarshaller.java    |   10 +-
 .../optimized/OptimizedMarshaller.java          |    8 +-
 .../optimized/OptimizedMarshallerUtils.java     |   11 +-
 .../ignite/messaging/MessagingListenActor.java  |    3 +
 .../ignite/mxbean/CacheMetricsMXBean.java       |   80 +
 .../ignite/plugin/CachePluginConfiguration.java |   36 +
 .../ignite/plugin/CachePluginContext.java       |   65 +
 .../ignite/plugin/CachePluginProvider.java      |   84 +
 .../org/apache/ignite/plugin/IgnitePlugin.java  |    3 -
 .../ignite/plugin/PluginConfiguration.java      |   10 +-
 .../org/apache/ignite/plugin/PluginContext.java |   22 +-
 .../apache/ignite/plugin/PluginProvider.java    |   33 +-
 .../plugin/extensions/communication/IoPool.java |   42 +
 .../plugin/security/AuthenticationContext.java  |   12 +-
 .../security/GridSecurityCredentials.java       |  184 -
 .../GridSecurityCredentialsBasicProvider.java   |   44 -
 .../GridSecurityCredentialsProvider.java        |   44 -
 .../plugin/security/GridSecurityException.java  |   58 -
 .../plugin/security/GridSecurityPermission.java |   69 -
 .../security/GridSecurityPermissionSet.java     |   66 -
 .../plugin/security/GridSecuritySubject.java    |   62 -
 .../security/GridSecuritySubjectType.java       |   48 -
 .../plugin/security/SecurityCredentials.java    |  191 +
 .../SecurityCredentialsBasicProvider.java       |   44 +
 .../security/SecurityCredentialsProvider.java   |   44 +
 .../plugin/security/SecurityException.java      |   61 +
 .../plugin/security/SecurityPermission.java     |   72 +
 .../plugin/security/SecurityPermissionSet.java  |   66 +
 .../ignite/plugin/security/SecuritySubject.java |   62 +
 .../plugin/security/SecuritySubjectType.java    |   49 +
 .../segmentation/GridSegmentationPolicy.java    |   47 -
 .../segmentation/GridSegmentationResolver.java  |   64 -
 .../plugin/segmentation/SegmentationPolicy.java |   49 +
 .../segmentation/SegmentationResolver.java      |   65 +
 .../apache/ignite/resources/LoggerResource.java |    2 +-
 .../SpringApplicationContextResource.java       |    4 +-
 .../apache/ignite/resources/SpringResource.java |    8 +-
 .../org/apache/ignite/services/Service.java     |    7 +-
 .../ignite/services/ServiceConfiguration.java   |    2 +-
 .../ignite/spi/IgniteNodeValidationResult.java  |   66 +
 .../java/org/apache/ignite/spi/IgniteSpi.java   |   15 +
 .../org/apache/ignite/spi/IgniteSpiAdapter.java |  253 +-
 .../org/apache/ignite/spi/IgniteSpiContext.java |   81 +-
 .../spi/IgniteSpiNodeValidationResult.java      |   66 -
 .../spi/IgniteSpiOperationTimeoutException.java |   43 +
 .../spi/IgniteSpiOperationTimeoutHelper.java    |  102 +
 .../org/apache/ignite/spi/IgniteSpiThread.java  |    3 +
 .../ignite/spi/IgniteSpiTimeoutObject.java      |   44 +
 .../checkpoint/cache/CacheCheckpointSpi.java    |    2 +-
 .../spi/checkpoint/jdbc/JdbcCheckpointSpi.java  |    2 +-
 .../spi/checkpoint/noop/NoopCheckpointSpi.java  |    3 +-
 .../sharedfs/SharedFsCheckpointSpi.java         |    4 +-
 .../fifoqueue/FifoQueueCollisionSpi.java        |   10 +-
 .../jobstealing/JobStealingCollisionSpi.java    |   14 +-
 .../PriorityQueueCollisionSpi.java              |    6 +-
 .../communication/tcp/TcpCommunicationSpi.java  | 1682 ++--
 .../tcp/TcpCommunicationSpiMBean.java           |   38 +-
 .../spi/discovery/DiscoveryMetricsProvider.java |   10 +
 .../ignite/spi/discovery/DiscoverySpi.java      |   28 +-
 .../discovery/DiscoverySpiCustomMessage.java    |   40 +
 .../spi/discovery/DiscoverySpiDataExchange.java |    8 +-
 .../spi/discovery/DiscoverySpiListener.java     |    5 +-
 .../DiscoverySpiNodeAuthenticator.java          |    2 +-
 .../ignite/spi/discovery/tcp/ClientImpl.java    | 2013 +++++
 .../ignite/spi/discovery/tcp/ServerImpl.java    | 5116 ++++++++++++
 .../discovery/tcp/TcpClientDiscoverySpi.java    | 1236 ---
 .../tcp/TcpClientDiscoverySpiMBean.java         |  164 -
 .../spi/discovery/tcp/TcpDiscoveryImpl.java     |  308 +
 .../spi/discovery/tcp/TcpDiscoverySpi.java      | 5866 +++-----------
 .../discovery/tcp/TcpDiscoverySpiAdapter.java   | 1127 ---
 .../spi/discovery/tcp/TcpDiscoverySpiMBean.java |    9 +
 .../tcp/internal/TcpDiscoveryNode.java          |  165 +-
 .../tcp/internal/TcpDiscoveryNodesRing.java     |   10 +-
 .../tcp/internal/TcpDiscoveryStatistics.java    |   10 +-
 .../tcp/ipfinder/TcpDiscoveryIpFinder.java      |   10 +-
 .../ipfinder/TcpDiscoveryIpFinderAdapter.java   |   34 +-
 .../TcpDiscoveryMulticastIpFinder.java          |  115 +-
 .../messages/TcpDiscoveryAbstractMessage.java   |   55 +-
 .../messages/TcpDiscoveryAuthFailedMessage.java |   25 +-
 .../TcpDiscoveryCheckFailedMessage.java         |   24 +-
 .../messages/TcpDiscoveryClientAckResponse.java |   64 +
 .../TcpDiscoveryClientHeartbeatMessage.java     |   67 +
 .../messages/TcpDiscoveryClientPingRequest.java |   56 +
 .../TcpDiscoveryClientPingResponse.java         |   67 +
 .../TcpDiscoveryClientReconnectMessage.java     |   30 +-
 .../TcpDiscoveryConnectionCheckMessage.java     |   64 +
 .../TcpDiscoveryCustomEventMessage.java         |   59 +-
 .../messages/TcpDiscoveryDiscardMessage.java    |   24 +-
 .../TcpDiscoveryDuplicateIdMessage.java         |   24 +-
 .../messages/TcpDiscoveryHandshakeRequest.java  |    8 -
 .../messages/TcpDiscoveryHandshakeResponse.java |   28 +-
 .../messages/TcpDiscoveryHeartbeatMessage.java  |  115 +-
 .../TcpDiscoveryJoinRequestMessage.java         |   32 +-
 .../TcpDiscoveryLoopbackProblemMessage.java     |   28 +-
 .../TcpDiscoveryNodeAddFinishedMessage.java     |   49 +-
 .../messages/TcpDiscoveryNodeAddedMessage.java  |   78 +-
 .../messages/TcpDiscoveryNodeFailedMessage.java |   44 +-
 .../messages/TcpDiscoveryNodeLeftMessage.java   |    8 -
 .../tcp/messages/TcpDiscoveryPingRequest.java   |   23 +-
 .../tcp/messages/TcpDiscoveryPingResponse.java  |   23 +-
 .../TcpDiscoveryStatusCheckMessage.java         |   30 +-
 .../memory/MemoryEventStorageSpi.java           |   10 +-
 .../ignite/spi/failover/FailoverContext.java    |   18 +
 .../spi/failover/always/AlwaysFailoverSpi.java  |   35 +-
 .../jobstealing/JobStealingFailoverSpi.java     |    6 +-
 .../spi/failover/never/NeverFailoverSpi.java    |    8 +-
 .../apache/ignite/spi/indexing/IndexingSpi.java |    4 +-
 .../adaptive/AdaptiveLoadBalancingSpi.java      |   12 +-
 .../RoundRobinGlobalLoadBalancer.java           |    2 +-
 .../roundrobin/RoundRobinLoadBalancingSpi.java  |   10 +-
 .../WeightedRandomLoadBalancingSpi.java         |   10 +-
 .../spi/swapspace/SwapSpaceSpiListener.java     |    3 +-
 .../spi/swapspace/file/FileSwapSpaceSpi.java    |   22 +-
 .../apache/ignite/ssl/SslContextFactory.java    |  458 ++
 .../org/apache/ignite/ssl/package-info.java     |   22 +
 .../ignite/startup/BasicWarmupClosure.java      |   39 +-
 .../startup/cmdline/CommandLineStartup.java     |   13 +-
 .../startup/cmdline/CommandLineTransformer.java |   12 +
 .../org/apache/ignite/stream/StreamAdapter.java |  111 +
 .../ignite/stream/StreamTupleExtractor.java     |   33 +
 .../org/apache/ignite/stream/StreamVisitor.java |    2 +-
 .../stream/socket/SocketMessageConverter.java   |   31 +
 .../ignite/stream/socket/SocketStreamer.java    |  218 +
 .../ignite/stream/socket/package-info.java      |   21 +
 .../apache/ignite/transactions/Transaction.java |    8 +-
 .../TransactionSynchronization.java             |   45 -
 .../java/org/jsr166/ConcurrentHashMap8.java     |    8 +-
 .../java/org/jsr166/ConcurrentLinkedDeque8.java |  586 +-
 .../org/jsr166/ConcurrentLinkedHashMap.java     |   10 +-
 .../src/main/java/org/jsr166/LongAdder8.java    |   35 +-
 .../core/src/main/java/org/jsr166/README.txt    |   11 +
 .../src/main/java/org/jsr166/Striped64_8.java   |   22 +-
 .../java/org/jsr166/ThreadLocalRandom8.java     |   19 +-
 .../src/main/java/org/jsr166/package-info.java  |   12 +-
 .../META-INF/classnames-jdk.properties          |    3 +
 .../resources/META-INF/classnames.properties    |  198 +-
 .../core/src/main/resources/ignite.properties   |    2 +-
 .../src/test/config/io-manager-benchmark.xml    |    3 +-
 .../src/test/config/load/merge-sort-base.xml    |    2 +-
 modules/core/src/test/config/log4j2-test.xml    |   57 +
 modules/core/src/test/config/log4j2-test.xml~   |   63 +
 .../src/test/config/log4j2-verbose-test.xml     |   48 +
 .../core/src/test/config/spark/spark-config.xml |   46 +
 modules/core/src/test/config/tests.properties   |    8 +-
 .../GridCacheAffinityBackupsSelfTest.java       |   15 +-
 .../ignite/GridSuppressedExceptionSelfTest.java |    4 +-
 .../ignite/IgniteCacheAffinitySelfTest.java     |   52 +-
 .../cache/IgniteWarmupClosureSelfTest.java      |   82 +
 .../affinity/IgniteClientNodeAffinityTest.java  |  192 +
 .../fair/GridFairAffinityFunctionSelfTest.java  |    2 -
 .../IgniteFairAffinityDynamicCacheSelfTest.java |   96 +
 ...cheStoreSessionListenerAbstractSelfTest.java |  333 +
 ...heStoreSessionListenerLifecycleSelfTest.java |  395 +
 ...eJdbcStoreAbstractMultithreadedSelfTest.java |   11 +-
 .../CacheJdbcStoreSessionListenerSelfTest.java  |  175 +
 .../ignite/igfs/IgfsFragmentizerSelfTest.java   |    3 +-
 .../internal/ClusterGroupAbstractTest.java      |  777 ++
 .../internal/ClusterGroupHostsSelfTest.java     |  141 +
 .../ignite/internal/ClusterGroupSelfTest.java   |  251 +
 .../ignite/internal/GridAffinitySelfTest.java   |    1 +
 .../internal/GridCacheProjectionRemoveTest.java |   41 -
 .../internal/GridContinuousTaskSelfTest.java    |  114 +
 .../internal/GridDiscoveryEventSelfTest.java    |   41 +-
 ...ridFailFastNodeFailureDetectionSelfTest.java |  133 +
 .../GridFailoverTaskWithPredicateSelfTest.java  |    3 -
 .../GridJobMasterLeaveAwareSelfTest.java        |   12 +-
 .../internal/GridJobStealingSelfTest.java       |    3 -
 .../internal/GridLifecycleAwareSelfTest.java    |    2 +-
 .../internal/GridLifecycleBeanSelfTest.java     |   36 +
 .../internal/GridProjectionAbstractTest.java    |  768 --
 .../GridProjectionForCachesSelfTest.java        |   25 +-
 ...ectionLocalJobMultipleArgumentsSelfTest.java |    2 -
 .../ignite/internal/GridProjectionSelfTest.java |  169 -
 .../internal/GridReleaseTypeSelfTest.java       |   77 +-
 .../apache/ignite/internal/GridSelfTest.java    |   30 +-
 .../ignite/internal/GridStartStopSelfTest.java  |    8 +-
 .../GridTaskExecutionContextSelfTest.java       |    9 -
 .../GridTaskFailoverAffinityRunTest.java        |  170 +
 .../internal/GridUpdateNotifierSelfTest.java    |   45 +-
 .../IgniteClientReconnectAbstractTest.java      |  364 +
 .../IgniteClientReconnectApiExceptionTest.java  |  846 ++
 .../IgniteClientReconnectAtomicsTest.java       |  672 ++
 .../IgniteClientReconnectCacheTest.java         | 1203 +++
 .../IgniteClientReconnectCollectionsTest.java   |  443 ++
 .../IgniteClientReconnectComputeTest.java       |  192 +
 ...eClientReconnectContinuousProcessorTest.java |  372 +
 ...IgniteClientReconnectDiscoveryStateTest.java |  123 +
 ...niteClientReconnectFailoverAbstractTest.java |  231 +
 .../IgniteClientReconnectFailoverTest.java      |  227 +
 .../IgniteClientReconnectServicesTest.java      |  260 +
 .../internal/IgniteClientReconnectStopTest.java |  106 +
 .../IgniteClientReconnectStreamerTest.java      |  233 +
 .../IgniteComputeEmptyClusterGroupTest.java     |    3 -
 .../IgniteComputeTopologyExceptionTest.java     |    9 -
 .../internal/IgniteInternalCacheRemoveTest.java |   41 +
 .../IgniteSlowClientDetectionSelfTest.java      |  188 +
 .../managers/GridNoopManagerSelfTest.java       |    2 +-
 .../communication/GridIoManagerSelfTest.java    |   11 +-
 .../GridDeploymentManagerStopSelfTest.java      |    7 +
 .../GridDeploymentMessageCountSelfTest.java     |    5 +-
 .../GridDiscoveryManagerAliveCacheSelfTest.java |   86 +-
 .../GridDiscoveryManagerAttributesSelfTest.java |  122 +-
 .../discovery/GridDiscoveryManagerSelfTest.java |   46 +-
 .../IgniteTopologyPrintFormatSelfTest.java      |  289 +
 .../GridCacheTxLoadFromStoreOnLockSelfTest.java |   34 +-
 .../GridAffinityProcessorAbstractSelfTest.java  |    1 +
 .../cache/CacheAffinityCallSelfTest.java        |  174 +
 .../cache/CacheClientStoreSelfTest.java         |  228 +
 ...cheDhtLocalPartitionAfterRemoveSelfTest.java |  107 +
 .../cache/CacheFutureExceptionSelfTest.java     |  158 +
 .../processors/cache/CacheGetFromJobTest.java   |  110 +
 .../CacheMetricsForClusterGroupSelfTest.java    |  252 +
 .../cache/CacheOffheapMapEntrySelfTest.java     |  173 +
 .../CacheReadThroughAtomicRestartSelfTest.java  |   32 +
 ...heReadThroughLocalAtomicRestartSelfTest.java |   32 +
 .../CacheReadThroughLocalRestartSelfTest.java   |   32 +
 ...dThroughReplicatedAtomicRestartSelfTest.java |   32 +
 ...cheReadThroughReplicatedRestartSelfTest.java |   32 +
 .../cache/CacheReadThroughRestartSelfTest.java  |  133 +
 .../cache/CacheRemoveAllSelfTest.java           |   81 +
 .../cache/CacheStopAndDestroySelfTest.java      |  859 +++
 .../CacheStoreUsageMultinodeAbstractTest.java   |  305 +
 ...eUsageMultinodeDynamicStartAbstractTest.java |  169 +
 ...oreUsageMultinodeDynamicStartAtomicTest.java |   32 +
 ...heStoreUsageMultinodeDynamicStartTxTest.java |   32 +
 ...reUsageMultinodeStaticStartAbstractTest.java |  158 +
 ...toreUsageMultinodeStaticStartAtomicTest.java |   32 +
 ...cheStoreUsageMultinodeStaticStartTxTest.java |   32 +
 .../GridCacheAbstractFailoverSelfTest.java      |  194 +-
 .../GridCacheAbstractFailoverTxSelfTest.java    |  110 +
 .../cache/GridCacheAbstractFlagsTest.java       |   97 -
 .../cache/GridCacheAbstractFullApiSelfTest.java | 1379 +++-
 .../GridCacheAbstractIteratorsSelfTest.java     |    3 +-
 .../cache/GridCacheAbstractMetricsSelfTest.java |   52 +-
 .../GridCacheAbstractRemoveFailureTest.java     |   23 +
 .../cache/GridCacheAbstractSelfTest.java        |  136 +-
 .../cache/GridCacheAffinityRoutingSelfTest.java |  161 +-
 .../GridCacheAtomicMessageCountSelfTest.java    |    7 +-
 .../cache/GridCacheBasicApiAbstractTest.java    |    4 +-
 .../cache/GridCacheClearAllSelfTest.java        |    2 +-
 .../cache/GridCacheClearLocallySelfTest.java    |   81 +-
 .../GridCacheConcurrentTxMultiNodeTest.java     |   38 +-
 ...idCacheConfigurationConsistencySelfTest.java |   17 +-
 .../cache/GridCacheDeploymentSelfTest.java      |   12 +-
 .../cache/GridCacheEntryMemorySizeSelfTest.java |   91 +-
 .../cache/GridCacheEntryVersionSelfTest.java    |    4 +-
 .../GridCacheExAbstractFullApiSelfTest.java     |  103 -
 ...CacheFullTextQueryMultithreadedSelfTest.java |    8 +-
 .../GridCacheInterceptorAbstractSelfTest.java   |    2 +
 .../cache/GridCacheLuceneQueryIndexTest.java    |   20 +-
 .../cache/GridCacheMemoryModeSelfTest.java      |   61 +-
 ...GridCacheMixedPartitionExchangeSelfTest.java |    2 +-
 ...ridCacheMultinodeUpdateAbstractSelfTest.java |    9 +
 ...inodeUpdateNearEnabledNoBackupsSelfTest.java |    2 +-
 ...CacheMultinodeUpdateNearEnabledSelfTest.java |    2 +-
 .../processors/cache/GridCacheMvccSelfTest.java |    1 -
 ...CacheOffHeapMultiThreadedUpdateSelfTest.java |   47 +-
 .../cache/GridCacheOffHeapSelfTest.java         |  662 --
 .../processors/cache/GridCacheOffHeapTest.java  |   41 +-
 .../GridCacheOffHeapTieredAbstractSelfTest.java |    8 +-
 .../GridCacheOnCopyFlagAbstractSelfTest.java    |  130 +-
 .../cache/GridCachePartitionedWritesTest.java   |    3 +-
 .../GridCachePreloadingEvictionsSelfTest.java   |   31 +-
 .../cache/GridCachePutAllFailoverSelfTest.java  |   44 +-
 .../processors/cache/GridCachePutAllTask.java   |   56 +-
 .../GridCacheQueryIndexingDisabledSelfTest.java |   19 +-
 .../GridCacheQueryInternalKeysSelfTest.java     |    4 +-
 .../GridCacheReferenceCleanupSelfTest.java      |    3 -
 .../cache/GridCacheReloadSelfTest.java          |    9 +-
 ...ridCacheReplicatedSynchronousCommitTest.java |    5 +-
 .../GridCacheReturnValueTransferSelfTest.java   |   49 +-
 .../processors/cache/GridCacheStopSelfTest.java |    5 +
 .../cache/GridCacheSwapPreloadSelfTest.java     |   21 +-
 .../cache/GridCacheSwapReloadSelfTest.java      |   20 +-
 ...acheTcpClientDiscoveryMultiThreadedTest.java |  190 +
 .../processors/cache/GridCacheTestEntryEx.java  |   49 +-
 ...idCacheValueConsistencyAbstractSelfTest.java |  104 +-
 ...heValueConsistencyTransactionalSelfTest.java |    2 +-
 .../GridCacheVariableTopologySelfTest.java      |   12 +-
 .../cache/GridCacheVersionMultinodeTest.java    |    6 +-
 ...idCacheWriteBehindStoreAbstractSelfTest.java |  189 -
 .../GridCacheWriteBehindStoreAbstractTest.java  |  349 -
 .../GridCacheWriteBehindStoreLocalTest.java     |   30 -
 ...heWriteBehindStoreMultithreadedSelfTest.java |  163 -
 ...BehindStorePartitionedMultiNodeSelfTest.java |  215 -
 ...ridCacheWriteBehindStorePartitionedTest.java |   30 -
 ...GridCacheWriteBehindStoreReplicatedTest.java |   30 -
 .../GridCacheWriteBehindStoreSelfTest.java      |  267 -
 ...ProjectionForCachesOnDaemonNodeSelfTest.java |  147 +
 .../IgniteCacheAbstractStopBusySelfTest.java    |   44 +-
 .../cache/IgniteCacheAbstractTest.java          |    5 +-
 .../IgniteCacheAtomicLocalStoreValueTest.java   |   49 +
 ...iteCacheAtomicNearEnabledStoreValueTest.java |   30 +
 ...maryWriteOrderNearEnabledStoreValueTest.java |   31 +
 ...heAtomicPrimaryWriteOrderStoreValueTest.java |   32 +
 ...IgniteCacheAtomicPutAllFailoverSelfTest.java |   32 +
 .../IgniteCacheAtomicStopBusySelfTest.java      |    8 +-
 .../cache/IgniteCacheAtomicStoreValueTest.java  |   55 +
 ...teCacheConfigurationDefaultTemplateTest.java |  111 +
 .../IgniteCacheConfigurationTemplateTest.java   |  428 +
 .../IgniteCacheContainsKeyAbstractSelfTest.java |   15 +-
 .../cache/IgniteCacheDynamicStopSelfTest.java   |   25 +-
 .../IgniteCacheEntryListenerAbstractTest.java   |   18 +-
 .../IgniteCacheInterceptorSelfTestSuite.java    |    2 +-
 .../cache/IgniteCacheInvokeAbstractTest.java    |   11 -
 .../cache/IgniteCacheInvokeReadThroughTest.java |    5 +
 .../cache/IgniteCacheNearLockValueSelfTest.java |  152 +
 .../IgniteCacheP2pUnmarshallingErrorTest.java   |  200 +
 ...gniteCacheP2pUnmarshallingNearErrorTest.java |   59 +
 ...CacheP2pUnmarshallingRebalanceErrorTest.java |   77 +
 .../IgniteCacheP2pUnmarshallingTxErrorTest.java |  116 +
 .../IgniteCachePartitionMapUpdateTest.java      |  226 +
 .../cache/IgniteCachePeekModesAbstractTest.java |   60 +-
 .../cache/IgniteCachePutAllRestartTest.java     |  203 +
 .../IgniteCacheStoreValueAbstractTest.java      |  495 ++
 ...gniteCacheTransactionalStopBusySelfTest.java |   13 +-
 .../cache/IgniteCacheTxLocalStoreValueTest.java |   49 +
 .../IgniteCacheTxNearEnabledStoreValueTest.java |   30 +
 .../cache/IgniteCacheTxPreloadNoWriteTest.java  |   29 +-
 .../cache/IgniteCacheTxStoreValueTest.java      |   49 +
 .../IgniteClientAffinityAssignmentSelfTest.java |  103 +-
 .../IgniteDaemonNodeMarshallerCacheTest.java    |  192 +
 ...eDynamicCacheStartNoExchangeTimeoutTest.java |  466 ++
 .../cache/IgniteDynamicCacheStartSelfTest.java  |  359 +-
 ...niteDynamicCacheWithConfigStartSelfTest.java |   97 +
 .../IgniteDynamicClientCacheStartSelfTest.java  |  284 +
 .../cache/IgniteExchangeFutureHistoryTest.java  |   77 +
 .../cache/IgniteInternalCacheTypesTest.java     |  158 +
 .../cache/IgnitePutAllLargeBatchSelfTest.java   |   16 +-
 ...tAllUpdateNonPreloadedPartitionSelfTest.java |    5 +-
 ...teStartCacheInTransactionAtomicSelfTest.java |   32 +
 .../IgniteStartCacheInTransactionSelfTest.java  |  254 +
 .../cache/IgniteSystemCacheOnClientTest.java    |   97 +
 ...gniteTopologyValidatorAbstractCacheTest.java |  183 +
 ...iteTopologyValidatorAbstractTxCacheTest.java |  125 +
 ...ValidatorNearPartitionedAtomicCacheTest.java |   30 +
 ...logyValidatorNearPartitionedTxCacheTest.java |   30 +
 ...logyValidatorPartitionedAtomicCacheTest.java |   49 +
 ...TopologyValidatorPartitionedTxCacheTest.java |   30 +
 ...ologyValidatorReplicatedAtomicCacheTest.java |   49 +
 ...eTopologyValidatorReplicatedTxCacheTest.java |   30 +
 .../IgniteTxExceptionAbstractSelfTest.java      |    1 +
 .../cache/IgniteTxMultiNodeAbstractTest.java    |   53 +-
 .../IgniteTxMultiThreadedAbstractTest.java      |    5 +-
 .../cache/IgniteTxReentryAbstractSelfTest.java  |    5 +-
 .../cache/OffHeapTieredTransactionSelfTest.java |  127 +
 ...actQueueFailoverDataConsistencySelfTest.java |    4 +-
 ...cheAtomicReferenceMultiNodeAbstractTest.java |   11 -
 .../GridCacheQueueApiSelfAbstractTest.java      |   80 +
 .../GridCacheQueueCleanupSelfTest.java          |   11 +-
 ...GridCacheQueueMultiNodeAbstractSelfTest.java |    7 +-
 ...dCacheQueueMultiNodeConsistencySelfTest.java |   16 +-
 ...CacheQueueRotativeMultiNodeAbstractTest.java |   10 -
 .../GridCacheSequenceApiSelfAbstractTest.java   |    2 +-
 .../GridCacheSetAbstractSelfTest.java           |   40 +-
 .../GridCacheSetFailoverAbstractSelfTest.java   |    8 +-
 .../IgniteClientDataStructuresAbstractTest.java |  340 +
 .../IgniteClientDataStructuresTest.java         |   28 +
 ...IgniteClientDiscoveryDataStructuresTest.java |   28 +
 .../IgniteCollectionAbstractTest.java           |  181 +-
 .../IgniteCountDownLatchAbstractSelfTest.java   |  114 +-
 .../IgniteDataStructureUniqueNameTest.java      |   47 +-
 .../IgniteDataStructureWithJobTest.java         |  111 +
 .../GridCacheLocalAtomicOffheapSetSelfTest.java |   32 +
 .../GridCacheLocalAtomicQueueApiSelfTest.java   |    6 +
 .../local/GridCacheLocalAtomicSetSelfTest.java  |    6 +
 .../GridCacheLocalOffheapQueueApiSelfTest.java  |   31 +
 .../local/GridCacheLocalQueueApiSelfTest.java   |    6 +
 .../local/GridCacheLocalSetSelfTest.java        |    6 +
 ...artitionedAtomicOffheapQueueApiSelfTest.java |   32 +
 ...omicOffheapQueueCreateMultiNodeSelfTest.java |   37 +
 ...onedAtomicOffheapQueueMultiNodeSelfTest.java |   32 +
 ...dCachePartitionedAtomicQueueApiSelfTest.java |    6 +
 ...ionedAtomicQueueCreateMultiNodeSelfTest.java |   11 +
 ...micQueueFailoverDataConsistencySelfTest.java |    6 +
 ...PartitionedAtomicQueueMultiNodeSelfTest.java |    6 +
 ...itionedAtomicQueueRotativeMultiNodeTest.java |    6 +
 ...chePartitionedAtomicSetFailoverSelfTest.java |    6 +
 ...rtitionedDataStructuresFailoverSelfTest.java |   11 +
 ...GridCachePartitionedNodeRestartSelfTest.java |   67 -
 ...artitionedOffHeapValuesQueueApiSelfTest.java |   31 +
 ...achePartitionedOffHeapValuesSetSelfTest.java |   32 +
 ...edOffheapDataStructuresFailoverSelfTest.java |   39 +
 ...hePartitionedOffheapSetFailoverSelfTest.java |   32 +
 .../GridCachePartitionedQueueApiSelfTest.java   |    6 +
 ...PartitionedQueueCreateMultiNodeSelfTest.java |   17 +-
 ...dCachePartitionedQueueEntryMoveSelfTest.java |   15 +-
 ...nedQueueFailoverDataConsistencySelfTest.java |   11 +
 ...CachePartitionedQueueJoinedNodeSelfTest.java |    6 +
 ...dCachePartitionedQueueMultiNodeSelfTest.java |    6 +
 ...hePartitionedQueueRotativeMultiNodeTest.java |    6 +
 ...GridCachePartitionedSetFailoverSelfTest.java |    6 +
 .../GridCachePartitionedSetSelfTest.java        |    6 +
 .../IgnitePartitionedSetNoBackupsSelfTest.java  |    5 +-
 ...eplicatedDataStructuresFailoverSelfTest.java |   11 +
 .../GridCacheReplicatedQueueApiSelfTest.java    |   11 +
 ...idCacheReplicatedQueueMultiNodeSelfTest.java |    6 +
 ...cheReplicatedQueueRotativeMultiNodeTest.java |    6 +
 .../GridCacheReplicatedSetSelfTest.java         |    6 +
 .../CacheGetFutureHangsSelfTest.java            |  214 +
 ...CacheLoadingConcurrentGridStartSelfTest.java |  168 +
 .../CacheNoValueClassOnServerNodeTest.java      |  129 +
 .../GridCacheAbstractJobExecutionTest.java      |    3 -
 .../GridCacheAbstractNodeRestartSelfTest.java   |  143 +-
 .../GridCacheAtomicTimeoutSelfTest.java         |  314 -
 .../GridCacheClientModesAbstractSelfTest.java   |  100 +-
 ...ientModesTcpClientDiscoveryAbstractTest.java |  168 +
 .../distributed/GridCacheEventAbstractTest.java |  295 +-
 ...GridCacheLoadingConcurrentGridStartTest.java |  154 -
 .../distributed/GridCacheLockAbstractTest.java  |   73 +
 .../distributed/GridCacheMixedModeSelfTest.java |    3 +
 .../GridCacheMultiNodeAbstractTest.java         |   13 +-
 .../GridCacheMultiNodeLockAbstractTest.java     |   14 +-
 .../GridCacheNodeFailureAbstractTest.java       |   23 +-
 ...ridCachePartitionNotLoadedEventSelfTest.java |  248 +
 .../GridCachePreloadLifecycleAbstractTest.java  |    2 -
 ...GridCachePreloadRestartAbstractSelfTest.java |    9 -
 .../distributed/IgniteCache150ClientsTest.java  |  190 +
 .../IgniteCacheAtomicMessageRecoveryTest.java   |   32 +
 .../IgniteCacheAtomicNodeJoinTest.java          |   44 +
 .../IgniteCacheAtomicNodeRestartTest.java       |   33 +
 ...niteCacheClientNodeChangingTopologyTest.java | 1805 +++++
 .../IgniteCacheClientNodeConcurrentStart.java   |  113 +
 ...teCacheClientNodePartitionsExchangeTest.java |  656 ++
 .../IgniteCacheClientReconnectTest.java         |  175 +
 .../distributed/IgniteCacheManyClientsTest.java |  318 +
 .../IgniteCacheMessageRecoveryAbstractTest.java |  176 +
 .../IgniteCacheNearOffheapGetSelfTest.java      |  131 +
 .../IgniteCacheNodeJoinAbstractTest.java        |  109 +
 .../IgniteCachePutGetRestartAbstractTest.java   |  234 +
 .../IgniteCacheServerNodeConcurrentStart.java   |   96 +
 .../IgniteCacheSystemTransactionsSelfTest.java  |   43 +-
 .../IgniteCacheTxFairAffinityNodeJoinTest.java  |   35 +
 .../IgniteCacheTxMessageRecoveryTest.java       |   37 +
 ...arDisabledFairAffinityPutGetRestartTest.java |   35 +
 ...iteCacheTxNearDisabledPutGetRestartTest.java |   30 +
 .../distributed/IgniteCacheTxNodeJoinTest.java  |   38 +
 .../IgniteCrossCacheTxStoreSelfTest.java        |  147 +-
 .../distributed/IgniteTxGetAfterStopTest.java   |  131 +
 ...xOriginatingNodeFailureAbstractSelfTest.java |   18 +-
 ...cOriginatingNodeFailureAbstractSelfTest.java |   17 +-
 .../IgniteTxTimeoutAbstractTest.java            |    8 -
 ...heAbstractTransformWriteThroughSelfTest.java |    5 +-
 .../dht/GridCacheClientOnlySelfTest.java        |   60 +-
 .../dht/GridCacheColocatedFailoverSelfTest.java |    2 +-
 .../GridCacheColocatedTxExceptionSelfTest.java  |    5 +
 .../GridCacheDhtClientRemoveFailureTest.java    |   28 +
 .../dht/GridCacheDhtEntrySelfTest.java          |   12 +-
 ...GridCacheDhtEvictionNearReadersSelfTest.java |   29 +-
 .../dht/GridCacheDhtEvictionSelfTest.java       |   39 +-
 .../GridCacheDhtEvictionsDisabledSelfTest.java  |   14 +-
 .../dht/GridCacheDhtMappingSelfTest.java        |    2 +-
 .../GridCacheDhtPreloadMessageCountTest.java    |    5 +-
 .../dht/GridCacheDhtPreloadPutGetSelfTest.java  |    8 +-
 .../dht/GridCacheDhtPreloadSelfTest.java        |   14 +-
 .../dht/GridCacheDhtPreloadUnloadSelfTest.java  |    2 +-
 .../distributed/dht/GridCacheDhtTestUtils.java  |   12 +-
 .../GridCacheExColocatedFullApiSelfTest.java    |   33 -
 ...icOffHeapTieredMultiNodeFullApiSelfTest.java |   43 +
 ...ledFairAffinityMultiNodeFullApiSelfTest.java |   36 +
 ...achePartitionedNearDisabledLockSelfTest.java |   47 +
 ...ePartitionedNearDisabledMetricsSelfTest.java |    4 +-
 ...ionedNearDisabledOffHeapFullApiSelfTest.java |    8 +-
 ...DisabledOffHeapMultiNodeFullApiSelfTest.java |    8 +-
 ...abledOffHeapTieredAtomicFullApiSelfTest.java |   56 +
 ...earDisabledOffHeapTieredFullApiSelfTest.java |   33 +
 ...edOffHeapTieredMultiNodeFullApiSelfTest.java |   33 +
 ...NearDisabledOptimisticTxNodeRestartTest.java |   31 +
 ...dCachePartitionedTopologyChangeSelfTest.java |    5 +
 ...itionedTxOriginatingNodeFailureSelfTest.java |   19 +-
 .../dht/IgniteCacheLockFailoverSelfTest.java    |  156 +
 .../dht/IgniteCacheMultiTxLockSelfTest.java     |  256 +
 ...rDisabledPrimaryNodeFailureRecoveryTest.java |   31 +
 ...rtitionedPrimaryNodeFailureRecoveryTest.java |   31 +
 ...woBackupsPrimaryNodeFailureRecoveryTest.java |   37 +
 ...ePrimaryNodeFailureRecoveryAbstractTest.java |  535 ++
 .../IgniteCachePutRetryAbstractSelfTest.java    |  161 +
 .../dht/IgniteCachePutRetryAtomicSelfTest.java  |   34 +
 ...gniteCachePutRetryTransactionalSelfTest.java |   79 +
 ...cClientInvalidPartitionHandlingSelfTest.java |   29 +
 .../GridCacheAtomicClientRemoveFailureTest.java |   28 +
 .../atomic/GridCacheAtomicFailoverSelfTest.java |   52 +
 ...eAtomicInvalidPartitionHandlingSelfTest.java |   54 +-
 ...AtomicPrimaryWriteOrderFailoverSelfTest.java |   36 +
 ...idCacheAtomicReplicatedFailoverSelfTest.java |   38 +
 ...sistencyAtomicPrimaryWriteOrderSelfTest.java |   32 +
 ...GridCacheValueConsistencyAtomicSelfTest.java |  103 +-
 ...unctionExcludeNeighborsAbstractSelfTest.java |    3 +-
 ...nlyFairAffinityMultiNodeFullApiSelfTest.java |   36 +
 ...micFairAffinityMultiNodeFullApiSelfTest.java |   35 +
 ...ledFairAffinityMultiNodeFullApiSelfTest.java |   36 +
 ...eAtomicNearOnlyMultiNodeFullApiSelfTest.java |    3 +
 .../near/GridCacheAtomicNearOnlySelfTest.java   |   32 -
 ...CacheAtomicOffHeapTieredFullApiSelfTest.java |   32 +
 ...icOffHeapTieredMultiNodeFullApiSelfTest.java |   33 +
 ...derFairAffinityMultiNodeFullApiSelfTest.java |   36 +
 ...yWriteOrderOffHeapTieredFullApiSelfTest.java |   33 +
 ...erOffHeapTieredMultiNodeFullApiSelfTest.java |   33 +
 .../near/GridCacheExNearFullApiSelfTest.java    |   39 -
 .../near/GridCacheNearEvictionSelfTest.java     |    7 +-
 .../near/GridCacheNearMetricsSelfTest.java      |    2 +-
 .../near/GridCacheNearMultiNodeSelfTest.java    |  131 +-
 .../near/GridCacheNearOneNodeSelfTest.java      |   35 +-
 ...nlyFairAffinityMultiNodeFullApiSelfTest.java |   35 +
 ...idCacheNearOnlyMultiNodeFullApiSelfTest.java |   41 +-
 .../near/GridCacheNearOnlySelfTest.java         |   63 +-
 .../near/GridCacheNearOnlyTopologySelfTest.java |    1 +
 .../near/GridCacheNearReadersSelfTest.java      |  154 +-
 .../near/GridCacheNearTxExceptionSelfTest.java  |    5 +
 .../near/GridCacheNearTxMultiNodeSelfTest.java  |   10 +-
 ...ePartitionedBasicStoreMultiNodeSelfTest.java |  118 +-
 ...ionedClientOnlyNoPrimaryFullApiSelfTest.java |    5 +-
 .../GridCachePartitionedEvictionSelfTest.java   |   11 +-
 .../GridCachePartitionedFailoverSelfTest.java   |    2 +-
 ...GridCachePartitionedFilteredPutSelfTest.java |    5 +-
 .../near/GridCachePartitionedFlagsTest.java     |   41 -
 ...PartitionedFullApiMultithreadedSelfTest.java |    5 +
 .../GridCachePartitionedFullApiSelfTest.java    |   34 +-
 ...idCachePartitionedHitsAndMissesSelfTest.java |    3 -
 .../GridCachePartitionedLoadCacheSelfTest.java  |    2 +-
 ...achePartitionedMultiNodeCounterSelfTest.java |    8 -
 ...achePartitionedMultiNodeFullApiSelfTest.java |  166 +-
 ...ePartitionedMultiThreadedPutGetSelfTest.java |   10 +-
 ...NearDisabledBasicStoreMultiNodeSelfTest.java |    8 +-
 .../GridCachePartitionedNodeRestartTest.java    |    5 +-
 ...dCachePartitionedOffHeapFullApiSelfTest.java |    8 +-
 ...titionedOffHeapMultiNodeFullApiSelfTest.java |    8 +-
 ...PartitionedOffHeapTieredFullApiSelfTest.java |   32 +
 ...edOffHeapTieredMultiNodeFullApiSelfTest.java |   72 +
 ...ePartitionedOptimisticTxNodeRestartTest.java |   19 +-
 ...achePartitionedPreloadLifecycleSelfTest.java |    4 +-
 ...CachePartitionedTxMultiThreadedSelfTest.java |    5 +
 .../GridCachePartitionedTxSalvageSelfTest.java  |   58 +-
 ...idCacheRendezvousAffinityClientSelfTest.java |    4 +
 .../near/GridPartitionedBackupLoadSelfTest.java |    2 +-
 .../near/IgniteCacheNearOnlyTxTest.java         |  190 +
 .../near/IgniteCacheNearReadCommittedTest.java  |    4 +-
 .../near/IgniteCacheNearTxRollbackTest.java     |  135 +
 .../near/NoneRebalanceModeSelfTest.java         |   67 +
 .../GridCacheExReplicatedFullApiSelfTest.java   |   33 -
 ...nedFairAffinityMultiNodeFullApiSelfTest.java |   37 +
 .../GridCacheReplicatedClientOnlySelfTest.java  |   43 -
 .../GridCacheReplicatedEvictionSelfTest.java    |    8 +-
 .../GridCacheReplicatedFailoverSelfTest.java    |    8 +-
 .../GridCacheReplicatedFlagsTest.java           |   28 -
 ...eReplicatedFullApiMultithreadedSelfTest.java |    5 +
 .../GridCacheReplicatedInvalidateSelfTest.java  |   26 +-
 .../GridCacheReplicatedLockSelfTest.java        |    5 +
 ...ridCacheReplicatedMultiNodeLockSelfTest.java |    5 +
 .../GridCacheReplicatedMultiNodeSelfTest.java   |    5 +
 ...licatedNearOnlyMultiNodeFullApiSelfTest.java |    2 +-
 .../GridCacheReplicatedNearOnlySelfTest.java    |   43 -
 .../GridCacheReplicatedNodeRestartSelfTest.java |   84 +
 ...idCacheReplicatedOffHeapFullApiSelfTest.java |    8 +-
 ...plicatedOffHeapMultiNodeFullApiSelfTest.java |    8 +-
 ...eReplicatedOffHeapTieredFullApiSelfTest.java |   33 +
 ...edOffHeapTieredMultiNodeFullApiSelfTest.java |   33 +
 ...dezvousAffinityMultiNodeFullApiSelfTest.java |   35 -
 .../GridCacheReplicatedTxExceptionSelfTest.java |    5 +
 .../GridCacheSyncReplicatedPreloadSelfTest.java |    1 -
 .../replicated/GridReplicatedTxPreloadTest.java |    2 +
 ...acheAtomicReplicatedNodeRestartSelfTest.java |   37 +
 ...CacheReplicatedPreloadLifecycleSelfTest.java |   13 +-
 .../GridCacheReplicatedPreloadSelfTest.java     |   38 +-
 .../cache/eviction/EvictionAbstractTest.java    | 1056 +++
 .../GridCacheBatchEvictUnswapSelfTest.java      |    5 +-
 ...heConcurrentEvictionConsistencySelfTest.java |   97 +-
 .../GridCacheConcurrentEvictionsSelfTest.java   |   29 +-
 .../GridCacheDistributedEvictionsSelfTest.java  |    5 +-
 .../GridCacheEmptyEntriesAbstractSelfTest.java  |   11 +-
 .../eviction/GridCacheEvictionAbstractTest.java |  481 --
 .../GridCacheEvictionFilterSelfTest.java        |    2 +-
 .../GridCacheEvictionTouchSelfTest.java         |   22 +-
 .../cache/eviction/GridCacheMockEntry.java      |   17 +-
 ...cheSynchronousEvictionsFailoverSelfTest.java |    5 +
 .../fifo/FifoEvictionPolicySelfTest.java        |  262 +
 .../GridCacheFifoEvictionPolicySelfTest.java    |  372 -
 .../lru/GridCacheLruEvictionPolicySelfTest.java |  417 -
 .../GridCacheLruNearEvictionPolicySelfTest.java |  136 -
 ...heNearOnlyLruNearEvictionPolicySelfTest.java |  171 -
 .../eviction/lru/LruEvictionPolicySelfTest.java |  353 +
 .../lru/LruNearEvictionPolicySelfTest.java      |  140 +
 .../LruNearOnlyNearEvictionPolicySelfTest.java  |  172 +
 .../GridCacheRandomEvictionPolicySelfTest.java  |  258 -
 .../RandomEvictionPolicyCacheSizeSelfTest.java  |   78 +
 .../random/RandomEvictionPolicySelfTest.java    |  357 +
 .../SortedEvictionPolicyPerformanceTest.java    |  134 +
 .../sorted/SortedEvictionPolicySelfTest.java    |  266 +
 .../IgniteCacheClientNearCacheExpiryTest.java   |  103 +
 .../IgniteCacheExpiryPolicyAbstractTest.java    |   22 +-
 .../IgniteCacheExpiryPolicyTestSuite.java       |    4 +
 ...eCacheExpiryPolicyWithStoreAbstractTest.java |    8 +-
 .../expiry/IgniteCacheTtlCleanupSelfTest.java   |   85 +
 ...IgniteCacheJdbcBlobStoreNodeRestartTest.java |   52 +
 ...IgniteCacheStoreNodeRestartAbstractTest.java |  116 +
 .../IgniteCacheTxStoreSessionTest.java          |    4 +
 ...CacheLocalOffHeapAndSwapMetricsSelfTest.java |  412 +
 .../local/GridCacheExLocalFullApiSelfTest.java  |   30 -
 ...LocalAtomicOffHeapTieredFullApiSelfTest.java |   32 +
 ...dCacheLocalFullApiMultithreadedSelfTest.java |    5 +
 .../GridCacheLocalIsolatedNodesSelfTest.java    |  118 +
 .../GridCacheLocalOffHeapFullApiSelfTest.java   |    6 +-
 ...dCacheLocalOffHeapTieredFullApiSelfTest.java |   32 +
 .../GridCacheLocalTxExceptionSelfTest.java      |    5 +
 ...OnlyFairAffinityMultiJvmFullApiSelfTest.java |   31 +
 ...AtomicClientOnlyMultiJvmFullApiSelfTest.java |   31 +
 ...tOnlyMultiJvmP2PDisabledFullApiSelfTest.java |   31 +
 ...pyOnReadDisabledMultiJvmFullApiSelfTest.java |   31 +
 ...omicFairAffinityMultiJvmFullApiSelfTest.java |   31 +
 .../GridCacheAtomicMultiJvmFullApiSelfTest.java |   30 +
 ...tomicMultiJvmP2PDisabledFullApiSelfTest.java |   31 +
 ...bledFairAffinityMultiJvmFullApiSelfTest.java |   31 +
 ...tomicNearEnabledMultiJvmFullApiSelfTest.java |   31 +
 ...rimaryWriteOrderMultiJvmFullApiSelfTest.java |   31 +
 ...heAtomicNearOnlyMultiJvmFullApiSelfTest.java |   31 +
 ...rOnlyMultiJvmP2PDisabledFullApiSelfTest.java |   31 +
 ...cheAtomicOffHeapMultiJvmFullApiSelfTest.java |   31 +
 ...micOffHeapTieredMultiJvmFullApiSelfTest.java |   36 +
 ...rderFairAffinityMultiJvmFullApiSelfTest.java |   31 +
 ...rimaryWriteOrderMultiJvmFullApiSelfTest.java |   31 +
 ...OrderMultiJvmP2PDisabledFullApiSelfTest.java |   31 +
 ...rityOrderOffHeapMultiJvmFullApiSelfTest.java |   31 +
 ...derOffHeapTieredMultiJvmFullApiSelfTest.java |   36 +
 ...OnlyFairAffinityMultiJvmFullApiSelfTest.java |   31 +
 ...ridCacheNearOnlyMultiJvmFullApiSelfTest.java |   30 +
 ...rOnlyMultiJvmP2PDisabledFullApiSelfTest.java |   31 +
 ...pyOnReadDisabledMultiJvmFullApiSelfTest.java |   31 +
 ...onedFairAffinityMultiJvmFullApiSelfTest.java |   31 +
 ...CachePartitionedMultiJvmFullApiSelfTest.java |   30 +
 ...ionedMultiJvmP2PDisabledFullApiSelfTest.java |   31 +
 ...micOffHeapTieredMultiJvmFullApiSelfTest.java |   36 +
 ...bledFairAffinityMultiJvmFullApiSelfTest.java |   31 +
 ...onedNearDisabledMultiJvmFullApiSelfTest.java |   31 +
 ...abledMultiJvmP2PDisabledFullApiSelfTest.java |   31 +
 ...rDisabledOffHeapMultiJvmFullApiSelfTest.java |   31 +
 ...ledOffHeapTieredMultiJvmFullApiSelfTest.java |   36 +
 ...rtitionedOffHeapMultiJvmFullApiSelfTest.java |   31 +
 ...nedOffHeapTieredMultiJvmFullApiSelfTest.java |   36 +
 ...ReplicatedAtomicMultiJvmFullApiSelfTest.java |   31 +
 ...rimaryWriteOrderMultiJvmFullApiSelfTest.java |   31 +
 ...dCacheReplicatedMultiJvmFullApiSelfTest.java |   30 +
 ...catedMultiJvmP2PDisabledFullApiSelfTest.java |   31 +
 ...plicatedNearOnlyMultiJvmFullApiSelfTest.java |   37 +
 ...eplicatedOffHeapMultiJvmFullApiSelfTest.java |   31 +
 ...tedOffHeapTieredMultiJvmFullApiSelfTest.java |   36 +
 .../GridCacheSwapScanQueryAbstractSelfTest.java |  149 +-
 ...ridCacheContinuousQueryAbstractSelfTest.java |   34 +-
 ...idCacheWriteBehindStoreAbstractSelfTest.java |  191 +
 .../GridCacheWriteBehindStoreAbstractTest.java  |  350 +
 .../GridCacheWriteBehindStoreLocalTest.java     |   30 +
 ...heWriteBehindStoreMultithreadedSelfTest.java |  163 +
 ...BehindStorePartitionedMultiNodeSelfTest.java |  216 +
 ...ridCacheWriteBehindStorePartitionedTest.java |   30 +
 ...GridCacheWriteBehindStoreReplicatedTest.java |   30 +
 .../GridCacheWriteBehindStoreSelfTest.java      |  268 +
 ...CacheClientWriteBehindStoreAbstractTest.java |  104 +
 ...teCacheClientWriteBehindStoreAtomicTest.java |   38 +
 .../IgnteCacheClientWriteBehindStoreTxTest.java |   32 +
 .../closure/GridClosureProcessorSelfTest.java   |   29 +-
 .../continuous/GridEventConsumeSelfTest.java    |  108 +-
 .../DataStreamProcessorSelfTest.java            |   56 +-
 .../DataStreamerMultiThreadedSelfTest.java      |  142 +
 .../DataStreamerMultinodeCreateCacheTest.java   |   99 +
 .../processors/igfs/IgfsAbstractSelfTest.java   |   26 +-
 .../igfs/IgfsClientCacheSelfTest.java           |  136 +
 .../processors/igfs/IgfsCommonAbstractTest.java |   10 -
 .../igfs/IgfsDataManagerSelfTest.java           |    6 +-
 .../igfs/IgfsDualAbstractSelfTest.java          |    2 +-
 .../processors/igfs/IgfsModesSelfTest.java      |    4 +-
 .../processors/igfs/IgfsOneClientNodeTest.java  |  131 +
 .../processors/igfs/IgfsProcessorSelfTest.java  |   11 +-
 .../processors/igfs/IgfsSizeSelfTest.java       |   56 +-
 .../processors/igfs/IgfsStartCacheTest.java     |  158 +
 .../processors/igfs/IgfsStreamsSelfTest.java    |    7 +-
 .../cache/GridCacheCommandHandlerSelfTest.java  |   12 +-
 .../service/ClosureServiceClientsNodesTest.java |  251 +
 .../service/GridServiceClientNodeTest.java      |   81 +
 .../GridServiceReassignmentSelfTest.java        |    5 +-
 .../internal/util/IgniteUtilsSelfTest.java      |   24 +-
 .../ipc/shmem/IgfsSharedMemoryTestServer.java   |    2 +
 .../IpcSharedMemoryCrashDetectionSelfTest.java  |    2 +-
 .../ipc/shmem/IpcSharedMemorySpaceSelfTest.java |    2 +-
 .../ipc/shmem/IpcSharedMemoryUtilsSelfTest.java |    2 +-
 .../LoadWithCorruptedLibFileTestRunner.java     |    2 +-
 .../IpcSharedMemoryBenchmarkReader.java         |    2 +-
 .../IpcSharedMemoryBenchmarkWriter.java         |    2 +-
 .../nio/GridNioDelimitedBufferSelfTest.java     |  112 +
 .../internal/util/nio/GridNioSelfTest.java      |  103 +-
 .../internal/util/nio/GridNioSslSelfTest.java   |   18 +-
 .../nio/impl/GridNioFilterChainSelfTest.java    |   15 -
 .../unsafe/GridUnsafeMemorySelfTest.java        |    4 +-
 .../tostring/GridToStringBuilderSelfTest.java   |    5 +-
 .../GridMetadataAwareAdapterLoadSelfTest.java   |  135 +
 .../lang/GridMetadataAwareAdapterSelfTest.java  |   58 +-
 .../GridConcurrentLinkedHashMapSelfTest.java    |    1 -
 ...idFileSwapSpaceSpiMultithreadedLoadTest.java |    4 +-
 .../loadtests/GridCacheMultiNodeLoadTest.java   |    5 +-
 .../communication/GridIoManagerBenchmark0.java  |    1 +
 .../GridContinuousOperationsLoadTest.java       |    3 +-
 .../GridCachePartitionedAtomicLongLoadTest.java |    6 +-
 .../loadtests/hashmap/GridCacheTestContext.java |   21 +-
 .../loadtests/hashmap/GridHashMapLoadTest.java  |    2 +-
 .../swap/GridSwapEvictAllBenchmark.java         |    6 +-
 .../logger/java/IgniteJavaLoggerTest.java       |   65 -
 .../ignite/logger/java/JavaLoggerTest.java      |   65 +
 .../marshaller/MarshallerContextTestImpl.java   |   29 +-
 .../OptimizedMarshallerNodeFailoverTest.java    |   73 +-
 .../OptimizedObjectStreamSelfTest.java          |    4 -
 ...GridMessagingNoPeerClassLoadingSelfTest.java |    7 +-
 .../ignite/messaging/GridMessagingSelfTest.java |   79 +-
 .../IgniteMessagingWithClientTest.java          |  166 +
 .../p2p/GridP2PLocalDeploymentSelfTest.java     |    6 +-
 .../GridP2PMissedResourceCacheSizeSelfTest.java |    2 +-
 .../p2p/GridP2PRemoteClassLoadersSelfTest.java  |   31 +-
 .../spi/GridSpiLocalHostInjectionTest.java      |    2 +-
 .../spi/GridTcpSpiForwardingSelfTest.java       |    4 +-
 .../GridPriorityQueueCollisionSpiSelfTest.java  |    2 +-
 .../GridAbstractCommunicationSelfTest.java      |   16 +-
 .../GridTcpCommunicationSpiAbstractTest.java    |   24 +-
 ...mmunicationSpiConcurrentConnectSelfTest.java |    9 +-
 .../GridTcpCommunicationSpiConfigSelfTest.java  |    4 -
 ...cpCommunicationSpiMultithreadedSelfTest.java |   26 +-
 ...pCommunicationSpiMultithreadedShmemTest.java |   28 +
 ...dTcpCommunicationSpiRecoveryAckSelfTest.java |    7 +-
 ...tionSpiRecoveryFailureDetectionSelfTest.java |   54 +
 ...GridTcpCommunicationSpiRecoverySelfTest.java |   26 +-
 .../GridTcpCommunicationSpiShmemSelfTest.java   |   38 +
 .../tcp/GridTcpCommunicationSpiSslSelfTest.java |   38 +
 ...unicationSpiTcpFailureDetectionSelfTest.java |   75 +
 .../tcp/GridTcpCommunicationSpiTcpSelfTest.java |    7 +
 .../tcp/IgniteCacheSslStartStopSelfTest.java    |   46 +
 ...CommunicationRecoveryAckClosureSelfTest.java |  464 ++
 .../discovery/AbstractDiscoverySelfTest.java    |   55 +-
 ...ClusterMetricsSnapshotSerializeSelfTest.java |   28 +
 ...pClientDiscoveryMarshallerCheckSelfTest.java |   76 +
 .../tcp/TcpClientDiscoverySelfTest.java         |  691 --
 ...lientDiscoverySpiFailureTimeoutSelfTest.java |  205 +
 .../tcp/TcpClientDiscoverySpiMulticastTest.java |  129 +
 .../tcp/TcpClientDiscoverySpiSelfTest.java      | 2224 ++++++
 .../tcp/TcpDiscoveryConcurrentStartTest.java    |   61 +-
 .../tcp/TcpDiscoveryMultiThreadedTest.java      |  140 +-
 ...DiscoveryNodeConfigConsistentIdSelfTest.java |   76 +
 .../TcpDiscoveryNodeConsistentIdSelfTest.java   |   80 +
 .../discovery/tcp/TcpDiscoveryRestartTest.java  |  199 +
 .../spi/discovery/tcp/TcpDiscoverySelfTest.java |  116 +-
 .../tcp/TcpDiscoverySpiConfigSelfTest.java      |    1 +
 .../TcpDiscoverySpiFailureTimeoutSelfTest.java  |  402 +
 .../tcp/TcpDiscoverySpiSslSelfTest.java         |   28 +
 .../tcp/TcpDiscoverySpiStartStopSelfTest.java   |    5 +-
 .../discovery/tcp/TcpDiscoverySslSelfTest.java  |   42 +
 .../TcpDiscoveryIpFinderAbstractSelfTest.java   |    2 +-
 .../spi/failover/GridFailoverTestContext.java   |   10 +
 ...RobinLoadBalancingSpiNotPerTaskSelfTest.java |    2 +-
 .../GridSwapSpaceSpiAbstractSelfTest.java       |   11 +-
 .../inmemory/GridTestSwapSpaceSpi.java          |    5 +-
 .../GridCommandLineTransformerSelfTest.java     |   12 +-
 .../stream/socket/SocketStreamerSelfTest.java   |  310 +
 .../ignite/stream/socket/package-info.java      |   21 +
 .../testframework/GridSpiTestContext.java       |   69 +-
 .../ignite/testframework/GridTestUtils.java     |   65 +-
 .../config/GridTestProperties.java              |   14 +-
 .../testframework/junits/GridAbstractTest.java  |  467 +-
 .../junits/GridTestKernalContext.java           |    5 +-
 .../ignite/testframework/junits/IgniteMock.java |   28 +
 .../junits/IgniteTestResources.java             |   24 +-
 .../junits/cache/TestCacheSession.java          |   18 +
 .../cache/TestThreadLocalCacheSession.java      |   15 +
 .../junits/common/GridCommonAbstractTest.java   |  318 +-
 .../junits/logger/GridTestLog4jLogger.java      |   10 +-
 .../junits/multijvm/AffinityProcessProxy.java   |  195 +
 .../multijvm/IgniteCacheProcessProxy.java       |  602 ++
 .../multijvm/IgniteClusterProcessProxy.java     |  325 +
 .../multijvm/IgniteEventsProcessProxy.java      |  148 +
 .../junits/multijvm/IgniteNodeRunner.java       |  184 +
 .../junits/multijvm/IgniteProcessProxy.java     |  571 ++
 .../junits/spi/GridSpiAbstractTest.java         |   89 +-
 .../ignite/testsuites/IgniteBasicTestSuite.java |   40 +-
 .../IgniteCacheDataStructuresSelfTestSuite.java |   34 +-
 .../IgniteCacheEvictionSelfTestSuite.java       |   16 +-
 .../IgniteCacheFailoverTestSuite.java           |   42 +-
 .../IgniteCacheFailoverTestSuite2.java          |   51 +
 ...IgniteCacheFullApiMultiJvmSelfTestSuite.java |   89 +
 .../IgniteCacheFullApiSelfTestSuite.java        |   41 +-
 .../IgniteCacheMetricsSelfTestSuite.java        |    5 +
 .../IgniteCacheNearOnlySelfTestSuite.java       |   16 +-
 ...niteCacheP2pUnmarshallingErrorTestSuite.java |   53 +
 .../testsuites/IgniteCacheRestartTestSuite.java |   21 +-
 .../IgniteCacheTcpClientDiscoveryTestSuite.java |   47 +
 .../ignite/testsuites/IgniteCacheTestSuite.java |  327 +-
 .../testsuites/IgniteCacheTestSuite2.java       |  144 +
 .../testsuites/IgniteCacheTestSuite3.java       |  138 +
 .../testsuites/IgniteCacheTestSuite4.java       |  158 +
 .../IgniteCacheTxRecoverySelfTestSuite.java     |    4 +
 .../IgniteCacheWriteBehindTestSuite.java        |    5 +-
 .../testsuites/IgniteClientNodesTestSuite.java  |   42 +
 .../IgniteClientReconnectTestSuite.java         |   48 +
 .../testsuites/IgniteClientTestSuite.java       |   38 +
 .../testsuites/IgniteComputeGridTestSuite.java  |    1 +
 .../ignite/testsuites/IgniteIgfsTestSuite.java  |    5 +
 .../testsuites/IgniteKernalSelfTestSuite.java   |   24 +-
 .../testsuites/IgniteLoggingSelfTestSuite.java  |    2 +-
 .../IgniteMarshallerSelfTestSuite.java          |   28 +-
 .../IgniteSpiCommunicationSelfTestSuite.java    |    6 +
 .../IgniteSpiDiscoverySelfTestSuite.java        |   15 +
 .../testsuites/IgniteStreamSelfTestSuite.java   |   39 +
 .../IgniteTopologyValidatorTestSuit.java        |   43 +
 .../testsuites/IgniteUtilSelfTestSuite.java     |   19 +-
 ...rrentLinkedHashMapMultiThreadedSelfTest.java |    4 +-
 .../apache/ignite/util/GridRandomSelfTest.java  |    4 +-
 .../ignite/util/TestTcpCommunicationSpi.java    |   77 +
 modules/core/src/test/resources/helloworld.gar  |  Bin 6092 -> 0 bytes
 modules/core/src/test/resources/helloworld1.gar |  Bin 6092 -> 0 bytes
 modules/core/src/test/resources/readme.txt      |    6 -
 modules/docker/Dockerfile                       |   55 +
 modules/docker/README.txt                       |   11 +
 modules/docker/build_users_libs.sh              |   39 +
 modules/docker/download_ignite.sh               |   49 +
 modules/docker/execute.sh                       |   62 +
 modules/docker/run.sh                           |   34 +
 modules/extdata/p2p/pom.xml                     |   23 +-
 .../p2p/GridP2PContinuousDeploymentTask1.java   |    2 +-
 .../tests/p2p/P2PTestTaskExternalPath1.java     |   10 +-
 .../tests/p2p/P2PTestTaskExternalPath2.java     |    8 +-
 .../CacheNoValueClassOnServerTestClient.java    |   88 +
 .../apache/ignite/tests/p2p/cache/Person.java   |   42 +
 .../p2p/startcache/CacheAllNodesFilter.java     |   31 +
 .../CacheConfigurationP2PTestClient.java        |  117 +
 .../tests/p2p/startcache/Organization1.java     |   52 +
 .../tests/p2p/startcache/Organization2.java     |   52 +
 modules/extdata/uri/META-INF/ignite.xml         |   38 +
 .../extdata/uri/modules/uri-dependency/pom.xml  |   40 +
 .../deployment/uri/tasks/GarHelloWorldBean.java |   60 +
 .../src/main/resources/gar-example.properties   |   18 +
 modules/extdata/uri/pom.xml                     |   71 +-
 .../deployment/uri/tasks/GarHelloWorldTask.java |   81 +
 .../deployment/uri/tasks/gar-spring-bean.xml    |   29 +
 modules/gce/README.txt                          |   32 +
 modules/gce/licenses/apache-2.0.txt             |  202 +
 modules/gce/pom.xml                             |   92 +
 .../gce/TcpDiscoveryGoogleStorageIpFinder.java  |  401 +
 .../tcp/ipfinder/gce/package-info.java          |   22 +
 ...pDiscoveryGoogleStorageIpFinderSelfTest.java |  100 +
 .../tcp/ipfinder/gce/package-info.java          |   22 +
 .../ignite/testsuites/IgniteGCETestSuite.java   |   71 +
 modules/geospatial/README.txt                   |   15 +
 .../geospatial/licenses/jts-lgpl-license.txt    |  165 -
 modules/geospatial/pom.xml                      |   43 +-
 .../query/h2/GridH2IndexingGeoSelfTest.java     |   90 +-
 modules/hadoop/docs/HADOOP_README.txt           |  122 +
 modules/hadoop/docs/hadoop_readme.md            |  135 -
 modules/hadoop/docs/hadoop_readme.pdf           |  Bin 82297 -> 0 bytes
 modules/hadoop/pom.xml                          |   93 +-
 .../fs/IgniteHadoopFileSystemCounterWriter.java |   21 +-
 .../fs/IgniteHadoopIgfsSecondaryFileSystem.java |  168 +-
 .../hadoop/fs/v1/IgniteHadoopFileSystem.java    |  137 +-
 .../hadoop/fs/v2/IgniteHadoopFileSystem.java    |   32 +-
 .../processors/hadoop/HadoopClassLoader.java    |   50 +-
 .../processors/hadoop/HadoopDefaultJobInfo.java |   30 +-
 .../processors/hadoop/HadoopProcessor.java      |    2 +-
 .../internal/processors/hadoop/HadoopUtils.java |   51 +-
 .../hadoop/SecondaryFileSystemProvider.java     |   58 +-
 .../hadoop/fs/HadoopDistributedFileSystem.java  |   91 -
 .../hadoop/fs/HadoopFileSystemCacheUtils.java   |  241 +
 .../hadoop/fs/HadoopFileSystemsUtils.java       |   26 +-
 .../hadoop/fs/HadoopLazyConcurrentMap.java      |  209 +
 .../processors/hadoop/igfs/HadoopIgfsEx.java    |    6 +
 .../hadoop/igfs/HadoopIgfsInProc.java           |  170 +-
 .../processors/hadoop/igfs/HadoopIgfsIpcIo.java |    5 +-
 .../hadoop/igfs/HadoopIgfsOutProc.java          |   33 +-
 .../hadoop/igfs/HadoopIgfsWrapper.java          |   19 +-
 .../hadoop/jobtracker/HadoopJobTracker.java     |   57 +-
 .../hadoop/taskexecutor/HadoopRunnableTask.java |   23 +-
 .../external/HadoopExternalTaskExecutor.java    |    3 +
 .../child/HadoopChildProcessRunner.java         |    3 +-
 .../processors/hadoop/v2/HadoopDaemon.java      |  125 +
 .../processors/hadoop/v2/HadoopV2Context.java   |   10 +-
 .../processors/hadoop/v2/HadoopV2Job.java       |  168 +-
 .../hadoop/v2/HadoopV2JobResourceManager.java   |   40 +-
 .../hadoop/v2/HadoopV2TaskContext.java          |   94 +-
 .../hadoop/HadoopClientProtocolSelfTest.java    |    6 +-
 .../HadoopIgfs20FileSystemAbstractSelfTest.java |   73 +-
 .../igfs/HadoopIgfsDualAbstractSelfTest.java    |    3 +-
 ...oopSecondaryFileSystemConfigurationTest.java |   18 +-
 .../apache/ignite/igfs/IgfsEventsTestSuite.java |    5 +-
 .../igfs/IgfsNearOnlyMultiNodeSelfTest.java     |    5 +-
 .../IgniteHadoopFileSystemAbstractSelfTest.java |   65 +-
 .../IgniteHadoopFileSystemClientSelfTest.java   |    2 +-
 ...IgniteHadoopFileSystemHandshakeSelfTest.java |    7 +
 .../IgniteHadoopFileSystemIpcCacheSelfTest.java |    9 +
 .../hadoop/HadoopAbstractSelfTest.java          |   19 +-
 .../hadoop/HadoopClassLoaderTest.java           |    2 +-
 .../hadoop/HadoopCommandLineTest.java           |   14 +-
 .../HadoopDefaultMapReducePlannerSelfTest.java  |   16 +-
 .../hadoop/HadoopFileSystemsTest.java           |   23 +-
 .../processors/hadoop/HadoopMapReduceTest.java  |  185 +-
 .../hadoop/HadoopTaskExecutionSelfTest.java     |    2 +-
 .../hadoop/HadoopTasksAllVersionsTest.java      |   15 +-
 .../processors/hadoop/HadoopTasksV1Test.java    |    8 +-
 .../processors/hadoop/HadoopTasksV2Test.java    |    8 +-
 .../processors/hadoop/HadoopV2JobSelfTest.java  |    8 +-
 .../collections/HadoopAbstractMapTest.java      |   15 +-
 .../collections/HadoopHashMapSelfTest.java      |    4 +-
 .../collections/HadoopSkipListSelfTest.java     |    4 +-
 .../HadoopExternalTaskExecutionSelfTest.java    |    2 +
 .../HadoopExternalCommunicationSelfTest.java    |    5 +
 .../testsuites/IgniteHadoopTestSuite.java       |   11 +-
 .../IgniteIgfsLinuxAndMacOSTestSuite.java       |    3 +-
 modules/hibernate/README.txt                    |   15 +
 .../licenses/hibernate-lgpl-2.1-license.txt     |  174 -
 modules/hibernate/pom.xml                       |   46 +-
 .../HibernateAccessStrategyAdapter.java         |   14 +-
 .../hibernate/HibernateCollectionRegion.java    |    2 +-
 .../cache/hibernate/HibernateEntityRegion.java  |    2 +-
 .../hibernate/HibernateGeneralDataRegion.java   |    4 +-
 .../hibernate/HibernateNaturalIdRegion.java     |    2 +-
 .../HibernateNonStrictAccessStrategy.java       |    6 +-
 .../hibernate/HibernateQueryResultsRegion.java  |    2 +-
 .../HibernateReadOnlyAccessStrategy.java        |    4 +-
 .../HibernateReadWriteAccessStrategy.java       |   10 +-
 .../ignite/cache/hibernate/HibernateRegion.java |    6 +-
 .../cache/hibernate/HibernateRegionFactory.java |   10 +-
 .../hibernate/HibernateTimestampsRegion.java    |    2 +-
 .../HibernateTransactionalAccessStrategy.java   |   12 +-
 .../HibernateTransactionalDataRegion.java       |   14 +-
 .../hibernate/CacheHibernateBlobStore.java      |   96 +-
 .../CacheHibernateBlobStoreFactory.java         |  235 +
 .../CacheHibernateStoreSessionListener.java     |  216 +
 .../hibernate/src/test/config/factory-cache.xml |   59 +
 .../src/test/config/factory-cache1.xml          |   61 +
 .../config/factory-incorrect-store-cache.xml    |   56 +
 .../HibernateL2CacheConfigurationSelfTest.java  |    2 +-
 .../hibernate/HibernateL2CacheSelfTest.java     |    4 +-
 .../CacheHibernateBlobStoreNodeRestartTest.java |   52 +
 .../CacheHibernateStoreFactorySelfTest.java     |  273 +
 ...heHibernateStoreSessionListenerSelfTest.java |  228 +
 .../testsuites/IgniteHibernateTestSuite.java    |   10 +-
 modules/indexing/licenses/h2-epl-license.txt    |   69 -
 modules/indexing/pom.xml                        |   59 +-
 .../processors/query/h2/IgniteH2Indexing.java   |  399 +-
 .../query/h2/opt/GridH2AbstractKeyValueRow.java |  189 +-
 .../query/h2/opt/GridH2KeyValueRowOffheap.java  |   65 +-
 .../query/h2/opt/GridH2KeyValueRowOnheap.java   |    6 +-
 .../query/h2/opt/GridH2RowDescriptor.java       |   14 +-
 .../processors/query/h2/opt/GridH2Table.java    |   39 +-
 .../query/h2/opt/GridH2TreeIndex.java           |    4 +-
 .../query/h2/opt/GridH2ValueCacheObject.java    |  191 +
 .../query/h2/opt/GridLuceneIndex.java           |   84 +-
 .../processors/query/h2/sql/GridSqlAlias.java   |    4 +
 .../processors/query/h2/sql/GridSqlColumn.java  |    4 +
 .../processors/query/h2/sql/GridSqlConst.java   |    4 +
 .../processors/query/h2/sql/GridSqlElement.java |   66 +-
 .../query/h2/sql/GridSqlFunction.java           |   25 +-
 .../processors/query/h2/sql/GridSqlJoin.java    |    4 +
 .../query/h2/sql/GridSqlOperation.java          |   21 +-
 .../query/h2/sql/GridSqlOperationType.java      |    4 +-
 .../query/h2/sql/GridSqlParameter.java          |    4 +
 .../query/h2/sql/GridSqlPlaceholder.java        |   55 +
 .../processors/query/h2/sql/GridSqlQuery.java   |  184 +
 .../query/h2/sql/GridSqlQueryParser.java        |  216 +-
 .../query/h2/sql/GridSqlQuerySplitter.java      |  549 +-
 .../processors/query/h2/sql/GridSqlSelect.java  |  274 +-
 .../query/h2/sql/GridSqlSubquery.java           |   12 +-
 .../processors/query/h2/sql/GridSqlTable.java   |    4 +
 .../processors/query/h2/sql/GridSqlType.java    |   34 +-
 .../processors/query/h2/sql/GridSqlUnion.java   |  123 +
 .../query/h2/twostep/GridMapQueryExecutor.java  |  457 +-
 .../query/h2/twostep/GridMergeIndex.java        |   80 +-
 .../h2/twostep/GridMergeIndexUnsorted.java      |   26 +-
 .../query/h2/twostep/GridMergeTable.java        |   52 +-
 .../h2/twostep/GridReduceQueryExecutor.java     |  979 ++-
 .../query/h2/twostep/GridResultPage.java        |   96 +-
 .../query/h2/twostep/GridThreadLocalTable.java  |  262 +
 .../query/h2/twostep/msg/GridH2Array.java       |  124 +
 .../query/h2/twostep/msg/GridH2Boolean.java     |  112 +
 .../query/h2/twostep/msg/GridH2Byte.java        |  113 +
 .../query/h2/twostep/msg/GridH2Bytes.java       |  113 +
 .../query/h2/twostep/msg/GridH2CacheObject.java |  148 +
 .../query/h2/twostep/msg/GridH2Date.java        |  115 +
 .../query/h2/twostep/msg/GridH2Decimal.java     |  134 +
 .../query/h2/twostep/msg/GridH2Double.java      |  113 +
 .../query/h2/twostep/msg/GridH2Float.java       |  113 +
 .../query/h2/twostep/msg/GridH2Geometry.java    |  134 +
 .../query/h2/twostep/msg/GridH2Integer.java     |  113 +
 .../query/h2/twostep/msg/GridH2JavaObject.java  |  113 +
 .../query/h2/twostep/msg/GridH2Long.java        |  113 +
 .../query/h2/twostep/msg/GridH2Null.java        |   78 +
 .../query/h2/twostep/msg/GridH2Short.java       |  113 +
 .../query/h2/twostep/msg/GridH2String.java      |  115 +
 .../query/h2/twostep/msg/GridH2Time.java        |  116 +
 .../query/h2/twostep/msg/GridH2Timestamp.java   |  133 +
 .../query/h2/twostep/msg/GridH2Uuid.java        |  133 +
 .../h2/twostep/msg/GridH2ValueMessage.java      |   49 +
 .../twostep/msg/GridH2ValueMessageFactory.java  |  201 +
 .../CacheAbstractQueryMetricsSelfTest.java      |  358 +
 .../cache/CacheConfigurationP2PTest.java        |  179 +
 .../cache/CacheConfigurationP2PTestServer.java  |   49 +
 .../cache/CacheLocalQueryMetricsSelfTest.java   |   33 +
 ...titionedQueryMetricsDistributedSelfTest.java |   33 +
 ...chePartitionedQueryMetricsLocalSelfTest.java |   33 +
 ...plicatedQueryMetricsDistributedSelfTest.java |   33 +
 ...acheReplicatedQueryMetricsLocalSelfTest.java |   33 +
 ...CacheScanPartitionQueryFallbackSelfTest.java |  411 +
 .../GridCacheAbstractFieldsQuerySelfTest.java   | 1274 ---
 .../cache/GridCacheCrossCacheQuerySelfTest.java |  182 +-
 .../cache/GridCacheOffHeapAndSwapSelfTest.java  |  140 +-
 .../cache/GridCacheOffHeapSelfTest.java         |  632 ++
 .../GridCacheOffheapIndexEntryEvictTest.java    |  200 +
 .../cache/GridCacheOffheapIndexGetSelfTest.java |  183 +
 .../cache/GridCacheQueryMetricsSelfTest.java    |  156 -
 .../GridCacheQuerySerializationSelfTest.java    |  144 +
 ...idCacheReduceQueryMultithreadedSelfTest.java |   34 +-
 .../processors/cache/GridCacheSwapSelfTest.java |  146 +-
 .../cache/GridIndexingWithNoopSwapSelfTest.java |   25 +-
 .../IgniteCacheAbstractFieldsQuerySelfTest.java |  263 +-
 .../cache/IgniteCacheAbstractQuerySelfTest.java |  115 +-
 .../IgniteCacheCollocatedQuerySelfTest.java     |  209 +
 ...acheConfigurationPrimitiveTypesSelfTest.java |  104 +
 .../cache/IgniteCacheLargeResultSelfTest.java   |  104 +
 .../cache/IgniteCacheOffheapEvictQueryTest.java |  196 +
 ...CacheOffheapTieredMultithreadedSelfTest.java |  319 +
 ...niteCacheP2pUnmarshallingQueryErrorTest.java |   57 +
 ...hePartitionedQueryMultiThreadedSelfTest.java |   42 +-
 .../cache/IgniteCacheQueryIndexSelfTest.java    |    3 +-
 .../cache/IgniteCacheQueryLoadSelfTest.java     |   26 +-
 ...QueryMultiThreadedOffHeapTieredSelfTest.java |   37 +
 .../IgniteCacheQueryMultiThreadedSelfTest.java  |  135 +-
 ...QueryOffheapEvictsMultiThreadedSelfTest.java |    5 +
 ...ClientReconnectCacheQueriesFailoverTest.java |  225 +
 .../cache/IgniteClientReconnectQueriesTest.java |  427 +
 ...artitionedFieldsQueryP2PEnabledSelfTest.java |   34 -
 ...GridCachePartitionedFieldsQuerySelfTest.java |  110 -
 ...niteCacheAtomicNearEnabledQuerySelfTest.java |    7 +-
 .../near/IgniteCacheAtomicQuerySelfTest.java    |    7 +-
 ...lientQueryReplicatedNodeRestartSelfTest.java |  419 +
 ...rtitionedFieldsQueryP2PDisabledSelfTest.java |   34 -
 ...artitionedFieldsQueryP2PEnabledSelfTest.java |   34 +
 .../IgniteCachePartitionedQuerySelfTest.java    |    5 +-
 .../IgniteCacheQueryNodeRestartSelfTest.java    |   36 +-
 .../IgniteCacheQueryNodeRestartSelfTest2.java   |  388 +
 ...eReplicatedFieldsQueryP2PEnableSelfTest.java |   34 -
 .../GridCacheReplicatedFieldsQuerySelfTest.java |  157 -
 ...eplicatedFieldsQueryP2PDisabledSelfTest.java |   34 -
 ...ReplicatedFieldsQueryP2PEnabledSelfTest.java |   34 +
 .../IgniteCacheReplicatedQuerySelfTest.java     |   18 +-
 .../local/IgniteCacheLocalQuerySelfTest.java    |    6 +
 ...dCacheAbstractReduceFieldsQuerySelfTest.java |   32 +-
 ...cheReduceFieldsQueryPartitionedSelfTest.java |    5 +-
 .../cache/ttl/CacheTtlAbstractSelfTest.java     |  372 +
 .../ttl/CacheTtlOffheapAbstractSelfTest.java    |   29 +
 .../CacheTtlOffheapAtomicAbstractSelfTest.java  |   29 +
 .../ttl/CacheTtlOffheapAtomicLocalSelfTest.java |   34 +
 ...acheTtlOffheapAtomicPartitionedSelfTest.java |   34 +
 ...TtlOffheapTransactionalAbstractSelfTest.java |   29 +
 ...cheTtlOffheapTransactionalLocalSelfTest.java |   34 +
 ...OffheapTransactionalPartitionedSelfTest.java |   34 +
 .../ttl/CacheTtlOnheapAbstractSelfTest.java     |   29 +
 .../CacheTtlOnheapAtomicAbstractSelfTest.java   |   29 +
 .../ttl/CacheTtlOnheapAtomicLocalSelfTest.java  |   34 +
 ...CacheTtlOnheapAtomicPartitionedSelfTest.java |   34 +
 ...eTtlOnheapTransactionalAbstractSelfTest.java |   29 +
 ...acheTtlOnheapTransactionalLocalSelfTest.java |   34 +
 ...lOnheapTransactionalPartitionedSelfTest.java |   34 +
 .../query/h2/GridH2IndexRebuildTest.java        |   74 +-
 .../h2/GridIndexingSpiAbstractSelfTest.java     |  136 +-
 .../h2/sql/AbstractH2CompareQueryTest.java      |  375 +
 .../query/h2/sql/BaseH2CompareQueryTest.java    |  874 +++
 .../query/h2/sql/GridQueryParsingTest.java      |   41 +-
 .../query/h2/sql/H2CompareBigQueryTest.java     |  677 ++
 .../IgniteCacheQuerySelfTestSuite.java          |   33 +-
 .../IgniteCacheWithIndexingTestSuite.java       |   59 +
 .../IgniteH2IndexingSpiTestSuite.java           |    7 -
 .../processors/query/h2/sql/bigQuery.sql        |   55 +
 modules/jcl/pom.xml                             |   16 +-
 .../ignite/logger/jcl/IgniteJclLogger.java      |  167 -
 .../org/apache/ignite/logger/jcl/JclLogger.java |  167 +
 .../ignite/logger/jcl/IgniteJclLoggerTest.java  |   48 -
 .../apache/ignite/logger/jcl/JclLoggerTest.java |   48 +
 .../ignite/testsuites/IgniteJclTestSuite.java   |    2 +-
 modules/jta/licenses/jta-license.txt            |    2 +
 modules/jta/pom.xml                             |   30 +-
 .../apache/ignite/cache/jta/CacheTmLookup.java  |    3 +-
 .../processors/cache/jta/CacheJtaManager.java   |   73 +-
 .../cache/jta/GridCacheXAResource.java          |   34 +-
 .../processors/cache/GridCacheJtaSelfTest.java  |   50 +-
 .../GridTmLookupLifecycleAwareSelfTest.java     |   29 +-
 modules/kafka/licenses/apache-2.0.txt           |  202 +
 modules/kafka/pom.xml                           |  105 +
 .../ignite/stream/kafka/KafkaStreamer.java      |  220 +
 .../kafka/IgniteKafkaStreamerSelfTestSuite.java |   37 +
 .../stream/kafka/KafkaEmbeddedBroker.java       |  378 +
 .../kafka/KafkaIgniteStreamerSelfTest.java      |  227 +
 .../ignite/stream/kafka/SimplePartitioner.java  |   53 +
 modules/log4j/README.txt                        |    2 +-
 modules/log4j/pom.xml                           |   16 +-
 .../apache/ignite/logger/log4j/Log4JLogger.java |   10 +-
 modules/log4j2/README.txt                       |   45 +
 modules/log4j2/licenses/apache-2.0.txt          |  202 +
 modules/log4j2/pom.xml                          |   63 +
 modules/log4j2/pom.xml~                         |   45 +
 .../ignite/logger/log4j2/Log4J2Logger.java      |  486 ++
 .../ignite/logger/log4j2/Log4J2Logger.java~     |  542 ++
 .../ignite/logger/log4j2/Log4j2FileAware.java~  |   33 +
 .../ignite/logger/log4j2/Log4jFileAware.java~   |   13 +
 .../ignite/logger/log4j2/package-info.java      |   22 +
 .../log4j2/GridLog4j2CorrectFileNameTest.java   |   95 +
 .../log4j2/GridLog4j2CorrectFileNameTest.java~  |   95 +
 .../log4j2/GridLog4j2InitializedTest.java       |   79 +
 .../log4j2/GridLog4j2InitializedTest.java~      |   79 +
 .../log4j2/GridLog4j2LoggingFileTest.java       |   72 +
 .../log4j2/GridLog4j2LoggingFileTest.java~      |   74 +
 .../logger/log4j2/Log4j2LoggerSelfTest.java     |  174 +
 .../log4j2/Log4j2LoggerVerboseModeSelfTest.java |  117 +
 .../ignite/logger/log4j2/package-info.java      |   22 +
 .../testsuites/IgniteLog4j2TestSuite.java       |   38 +
 modules/mesos/README.txt                        |   28 +
 modules/mesos/licenses/apache-2.0.txt           |  202 +
 modules/mesos/pom.xml                           |  101 +
 .../apache/ignite/mesos/ClusterProperties.java  |  548 ++
 .../apache/ignite/mesos/IgniteFramework.java    |  119 +
 .../apache/ignite/mesos/IgniteScheduler.java    |  379 +
 .../org/apache/ignite/mesos/IgniteTask.java     |   86 +
 .../org/apache/ignite/mesos/package-info.java   |   22 +
 .../ignite/mesos/resource/IgniteProvider.java   |  234 +
 .../ignite/mesos/resource/JettyServer.java      |   61 +
 .../ignite/mesos/resource/ResourceHandler.java  |  142 +
 .../ignite/mesos/resource/ResourceProvider.java |  120 +
 .../ignite/mesos/resource/package-info.java     |   22 +
 .../main/resources/ignite-default-config.xml    |   35 +
 .../org/apache/ignite/IgniteMesosTestSuite.java |   38 +
 .../ignite/mesos/IgniteSchedulerSelfTest.java   |  464 ++
 modules/rest-http/pom.xml                       |   32 +-
 .../http/jetty/GridJettyRestHandler.java        |   90 +-
 modules/scalar-2.10/README.txt                  |    4 +
 modules/scalar-2.10/licenses/apache-2.0.txt     |  202 +
 modules/scalar-2.10/pom.xml                     |  197 +
 modules/scalar/licenses/scala-bsd-license.txt   |   18 -
 modules/scalar/pom.xml                          |   51 +-
 .../ignite/scalar/ScalarConversions.scala       |    8 -
 .../ignite/scalar/pimps/ScalarCachePimp.scala   |   36 -
 .../scalar/tests/ScalarCacheQueriesSpec.scala   |  154 +-
 .../ignite/scalar/tests/ScalarCacheSpec.scala   |   23 +-
 .../scalar/tests/ScalarConversionsSpec.scala    |   43 +-
 .../scalar/tests/ScalarProjectionSpec.scala     |  128 +-
 .../scalar/tests/ScalarReturnableSpec.scala     |   41 +-
 modules/schedule/README.txt                     |   15 +
 .../licenses/cron4j-lgpl-2.1-license.txt        |  174 -
 modules/schedule/pom.xml                        |   36 +-
 modules/schema-import/pom.xml                   |   20 +-
 .../ignite/schema/generator/CodeGenerator.java  |  105 +-
 .../ignite/schema/model/PojoDescriptor.java     |    2 +
 .../apache/ignite/schema/model/PojoField.java   |    1 +
 .../parser/dialect/OracleMetadataDialect.java   |    6 +-
 .../ignite/schema/ui/SchemaImportApp.java       |   44 +-
 modules/slf4j/licenses/sl4j-mit-license.txt     |   21 -
 modules/slf4j/pom.xml                           |   14 +-
 .../ignite/logger/slf4j/GridSlf4jLogger.java    |  138 -
 .../apache/ignite/logger/slf4j/Slf4jLogger.java |  138 +
 modules/spark-2.10/README.txt                   |    4 +
 modules/spark-2.10/licenses/apache-2.0.txt      |  202 +
 modules/spark-2.10/pom.xml                      |  120 +
 modules/spark/README.txt                        |    8 +
 modules/spark/licenses/apache-2.0.txt           |  202 +
 modules/spark/pom.xml                           |  110 +
 .../org/apache/ignite/spark/IgniteContext.scala |  190 +
 .../org/apache/ignite/spark/IgniteRDD.scala     |  244 +
 .../apache/ignite/spark/JavaIgniteContext.scala |   63 +
 .../org/apache/ignite/spark/JavaIgniteRDD.scala |   99 +
 .../ignite/spark/impl/IgniteAbstractRDD.scala   |   39 +
 .../ignite/spark/impl/IgnitePartition.scala     |   24 +
 .../ignite/spark/impl/IgniteQueryIterator.scala |   27 +
 .../apache/ignite/spark/impl/IgniteSqlRDD.scala |   41 +
 .../spark/impl/JavaIgniteAbstractRDD.scala      |   34 +
 .../ignite/spark/JavaIgniteRDDSelfTest.java     |  298 +
 .../scala/org/apache/ignite/spark/Entity.scala  |   28 +
 .../org/apache/ignite/spark/IgniteRddSpec.scala |  249 +
 modules/spring/pom.xml                          |   41 +-
 .../org/apache/ignite/IgniteSpringBean.java     |   21 +
 .../apache/ignite/cache/spring/SpringCache.java |    2 +-
 .../ignite/cache/spring/SpringCacheManager.java |   22 +-
 .../spring/CacheSpringStoreSessionListener.java |  207 +
 .../GridResourceSpringBeanInjector.java         |    2 +-
 .../util/spring/IgniteSpringHelperImpl.java     |  266 +-
 .../src/test/config/incorrect-store-cache.xml   |   57 +
 modules/spring/src/test/config/node.xml         |   43 +
 modules/spring/src/test/config/node1.xml        |   45 +
 .../test/config/pojo-incorrect-store-cache.xml  |   56 +
 modules/spring/src/test/config/store-cache.xml  |   59 +
 modules/spring/src/test/config/store-cache1.xml |   62 +
 .../src/test/java/config/ignite-test-config.xml |   43 +
 .../jdbc/CacheJdbcBlobStoreFactorySelfTest.java |  172 +
 .../jdbc/CacheJdbcPojoStoreFactorySelfTest.java |  193 +
 ...CacheSpringStoreSessionListenerSelfTest.java |  197 +
 .../ignite/internal/GridFactorySelfTest.java    |   12 +-
 .../p2p/GridP2PUserVersionChangeSelfTest.java   |    8 +-
 .../IgniteExcludeInConfigurationTest.java       |   81 +
 .../IgniteStartFromStreamConfigurationTest.java |   50 +
 .../org/apache/ignite/spring/sprint-exclude.xml |   76 +
 .../testsuites/IgniteSpringTestSuite.java       |   12 +
 modules/ssh/licenses/jcraft-revised-bsd.txt     |   28 -
 modules/ssh/pom.xml                             |   20 +-
 .../util/nodestart/IgniteNodeCallableImpl.java  |  308 -
 .../util/nodestart/IgniteSshHelperImpl.java     |    4 +-
 .../util/nodestart/StartNodeCallableImpl.java   |  309 +
 ...gniteProjectionStartStopRestartSelfTest.java |  287 +-
 .../IgniteStartStopRestartTestSuite.java        |    1 +
 modules/tools/licenses/jodd-revised-bsd.txt     |   21 -
 modules/tools/pom.xml                           |   11 +-
 .../ant/beautifier/GridJavadocAntTask.java      |   10 +-
 .../ignite/tools/classgen/ClassesGenerator.java |   32 +-
 .../ignite/tools/javadoc/IgniteLinkTaglet.java  |   20 +-
 modules/urideploy/README.txt                    |    2 +-
 modules/urideploy/licenses/edtftp-license.pdf   |  Bin 58355 -> 0 bytes
 modules/urideploy/licenses/jtidy-license.txt    |   50 -
 modules/urideploy/pom.xml                       |   64 +-
 .../uri/GridUriDeploymentClassLoader.java       |    4 +-
 .../GridUriDeploymentFileResourceLoader.java    |    2 +-
 .../spi/deployment/uri/UriDeploymentSpi.java    |  184 +-
 .../uri/scanners/GridUriDeploymentScanner.java  |  286 -
 .../GridUriDeploymentScannerListener.java       |    2 +-
 .../uri/scanners/UriDeploymentScanner.java      |   47 +
 .../scanners/UriDeploymentScannerContext.java   |   92 +
 .../scanners/UriDeploymentScannerManager.java   |  221 +
 .../file/GridUriDeploymentFileScanner.java      |  311 -
 .../scanners/file/UriDeploymentFileScanner.java |  327 +
 .../ftp/GridUriDeploymentFtpClient.java         |  199 -
 .../ftp/GridUriDeploymentFtpConfiguration.java  |  115 -
 .../ftp/GridUriDeploymentFtpException.java      |   43 -
 .../scanners/ftp/GridUriDeploymentFtpFile.java  |  119 -
 .../ftp/GridUriDeploymentFtpScanner.java        |  234 -
 .../uri/scanners/ftp/package-info.java          |   22 -
 .../http/GridUriDeploymentHttpScanner.java      |  423 -
 .../scanners/http/UriDeploymentHttpScanner.java |  478 ++
 .../GridTaskUriDeploymentDeadlockSelfTest.java  |   13 +-
 .../ignite/p2p/GridP2PDisabledSelfTest.java     |    2 +-
 ...loymentMultiScannersErrorThrottlingTest.java |    3 -
 .../GridUriDeploymentMultiScannersSelfTest.java |    3 +-
 .../GridFileDeploymentUndeploySelfTest.java     |    4 +-
 .../uri/scanners/ftp/GridFtpDeploymentTest.java |   46 -
 .../uri/scanners/ftp/package-info.java          |   22 -
 modules/visor-console-2.10/README.txt           |    4 +
 modules/visor-console-2.10/pom.xml              |  174 +
 .../licenses/jcraft-revised-bsd.txt             |   28 -
 .../licenses/jline-bsd-license.txt              |   18 -
 .../licenses/scala-bsd-license.txt              |   18 -
 modules/visor-console/pom.xml                   |   30 +-
 .../ignite/visor/commands/VisorConsole.scala    |  304 +-
 .../visor/commands/VisorConsoleCommand.scala    |   77 -
 .../ignite/visor/commands/VisorTextTable.scala  |  539 --
 .../visor/commands/ack/VisorAckCommand.scala    |   42 +-
 .../commands/alert/VisorAlertCommand.scala      |   35 +-
 .../commands/cache/VisorCacheClearCommand.scala |   54 +-
 .../commands/cache/VisorCacheCommand.scala      |  458 +-
 .../commands/cache/VisorCacheScanCommand.scala  |   69 +-
 .../commands/cache/VisorCacheStopCommand.scala  |  135 +
 .../commands/cache/VisorCacheSwapCommand.scala  |   66 +-
 .../commands/common/VisorConsoleCommand.scala   |   90 +
 .../visor/commands/common/VisorTextTable.scala  |  543 ++
 .../config/VisorConfigurationCommand.scala      |  437 +-
 .../commands/deploy/VisorDeployCommand.scala    |  151 +-
 .../commands/disco/VisorDiscoveryCommand.scala  |   66 +-
 .../commands/events/VisorEventsCommand.scala    |  358 +-
 .../visor/commands/gc/VisorGcCommand.scala      |  127 +-
 .../visor/commands/kill/VisorKillCommand.scala  |   55 +-
 .../visor/commands/node/VisorNodeCommand.scala  |   49 +-
 .../visor/commands/open/VisorOpenCommand.scala  |  316 +
 .../visor/commands/ping/VisorPingCommand.scala  |   41 +-
 .../commands/start/VisorStartCommand.scala      |   53 +-
 .../commands/tasks/VisorTasksCommand.scala      |   92 +-
 .../commands/top/VisorTopologyCommand.scala     |   36 +-
 .../visor/commands/vvm/VisorVvmCommand.scala    |   32 +-
 .../scala/org/apache/ignite/visor/visor.scala   |  575 +-
 .../ignite/visor/VisorRuntimeBaseSpec.scala     |    4 +-
 .../ignite/visor/VisorTextTableSpec.scala       |    3 +-
 .../visor/commands/VisorArgListSpec.scala       |   60 +-
 .../commands/VisorFileNameCompleterSpec.scala   |   34 +-
 .../commands/ack/VisorAckCommandSpec.scala      |   20 +-
 .../commands/alert/VisorAlertCommandSpec.scala  |   68 +-
 .../cache/VisorCacheClearCommandSpec.scala      |   48 +-
 .../commands/cache/VisorCacheCommandSpec.scala  |   66 +-
 .../config/VisorConfigurationCommandSpec.scala  |    8 +-
 .../cswap/VisorCacheSwapCommandSpec.scala       |   24 +-
 .../deploy/VisorDeployCommandSpec.scala         |   10 +-
 .../disco/VisorDiscoveryCommandSpec.scala       |   46 +-
 .../events/VisorEventsCommandSpec.scala         |   28 +-
 .../visor/commands/gc/VisorGcCommandSpec.scala  |   30 +-
 .../commands/help/VisorHelpCommandSpec.scala    |   57 +-
 .../commands/kill/VisorKillCommandSpec.scala    |   59 +-
 .../commands/log/VisorLogCommandSpec.scala      |   10 +-
 .../commands/mem/VisorMemoryCommandSpec.scala   |   77 +-
 .../commands/node/VisorNodeCommandSpec.scala    |   22 +-
 .../commands/open/VisorOpenCommandSpec.scala    |   16 +-
 .../commands/ping/VisorPingCommandSpec.scala    |   16 +-
 .../commands/start/VisorStartCommandSpec.scala  |  127 +-
 .../commands/tasks/VisorTasksCommandSpec.scala  |  113 +-
 .../commands/top/VisorTopologyCommandSpec.scala |   52 +-
 .../commands/vvm/VisorVvmCommandSpec.scala      |   31 +-
 .../licenses/slf4j-mit-license.txt              |   21 -
 modules/visor-plugins/pom.xml                   |   14 +-
 modules/web/pom.xml                             |   36 +-
 .../IgniteWebSessionSelfTestSuite.java          |    2 +-
 modules/yardstick/README.md                     |   84 -
 modules/yardstick/README.txt                    |   93 +
 .../config/benchmark-client-mode.properties     |   89 +
 .../config/benchmark-multicast.properties       |    1 +
 .../config/benchmark-put-indexed-val.properties |   64 +
 .../yardstick/config/benchmark-query.properties |    3 +-
 .../yardstick/config/benchmark-store.properties |    5 +-
 modules/yardstick/config/benchmark.properties   |    6 +-
 modules/yardstick/config/ignite-base-config.xml |   25 +-
 modules/yardstick/pom.xml                       |   22 +-
 .../yardstick/IgniteAbstractBenchmark.java      |    5 +-
 .../yardstick/IgniteBenchmarkArguments.java     |   55 +-
 .../org/apache/ignite/yardstick/IgniteNode.java |   11 +-
 .../cache/IgniteCacheAbstractBenchmark.java     |    2 +-
 .../cache/IgniteJdbcSqlQueryBenchmark.java      |  134 +
 .../yardstick/cache/IgnitePutAllBenchmark.java  |   67 +
 .../cache/IgnitePutAllTxBenchmark.java          |   68 +
 .../cache/IgnitePutIndexedValue1Benchmark.java  |   42 +
 .../cache/IgnitePutIndexedValue2Benchmark.java  |   42 +
 .../cache/IgnitePutIndexedValue8Benchmark.java  |   42 +
 .../ignite/yardstick/cache/model/Person1.java   |   55 +
 .../ignite/yardstick/cache/model/Person2.java   |   67 +
 .../ignite/yardstick/cache/model/Person8.java   |  109 +
 .../jdbc/IgniteJdbcStoreAbstractBenchmark.java  |    4 +-
 modules/yarn/README.txt                         |   28 +
 modules/yarn/licenses/apache-2.0.txt            |  202 +
 modules/yarn/pom.xml                            |  101 +
 .../apache/ignite/yarn/ApplicationMaster.java   |  400 +
 .../apache/ignite/yarn/ClusterProperties.java   |  432 ++
 .../org/apache/ignite/yarn/IgniteContainer.java |   84 +
 .../org/apache/ignite/yarn/IgniteProvider.java  |  339 +
 .../apache/ignite/yarn/IgniteYarnClient.java    |  178 +
 .../org/apache/ignite/yarn/package-info.java    |   22 +
 .../ignite/yarn/utils/IgniteYarnUtils.java      |   81 +
 .../main/resources/ignite-default-config.xml    |   35 +
 .../org/apache/ignite/IgniteYarnTestSuite.java  |   38 +
 .../yarn/IgniteApplicationMasterSelfTest.java   |  532 ++
 parent/pom.xml                                  |  820 ++
 pom.xml                                         | 1493 ++--
 scripts/git-format-patch.sh                     |   91 +
 scripts/git-patch-functions.sh                  |  131 +
 scripts/git-patch-prop.sh                       |   24 +
 2119 files changed, 154485 insertions(+), 67621 deletions(-)
----------------------------------------------------------------------



[30/50] [abbrv] ignite git commit: Reverted committed versions for txs.

Posted by ag...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
index e2046de..067366a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
@@ -214,7 +214,8 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
                 if (tx instanceof IgniteTxRemoteEx) {
                     IgniteTxRemoteEx rmtTx = (IgniteTxRemoteEx)tx;
 
-                    rmtTx.doneRemote(tx.xidVersion());
+                    rmtTx.doneRemote(tx.xidVersion(), Collections.<GridCacheVersion>emptyList(),
+                        Collections.<GridCacheVersion>emptyList(), Collections.<GridCacheVersion>emptyList());
                 }
 
                 tx.commit();
@@ -347,7 +348,7 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
      *      {@code false} otherwise.
      */
     public boolean isCompleted(IgniteInternalTx tx) {
-        return completedVers.containsKey(tx.writeVersion());
+        return completedVers.containsKey(tx.xidVersion());
     }
 
     /**
@@ -983,10 +984,36 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
     }
 
     /**
+     * Gets committed transactions starting from the given version (inclusive). // TODO: GG-4011: why inclusive?
+     *
+     * @param min Start (or minimum) version.
+     * @return Committed transactions starting from the given version (non-inclusive).
+     */
+    public Collection<GridCacheVersion> committedVersions(GridCacheVersion min) {
+        ConcurrentNavigableMap<GridCacheVersion, Boolean> tail
+            = completedVers.tailMap(min, true);
+
+        return F.isEmpty(tail) ? Collections.<GridCacheVersion>emptyList() : copyOf(tail, true);
+    }
+
+    /**
+     * Gets rolledback transactions starting from the given version (inclusive). // TODO: GG-4011: why inclusive?
+     *
+     * @param min Start (or minimum) version.
+     * @return Committed transactions starting from the given version (non-inclusive).
+     */
+    public Collection<GridCacheVersion> rolledbackVersions(GridCacheVersion min) {
+        ConcurrentNavigableMap<GridCacheVersion, Boolean> tail
+            = completedVers.tailMap(min, true);
+
+        return F.isEmpty(tail) ? Collections.<GridCacheVersion>emptyList() : copyOf(tail, false);
+    }
+
+    /**
      * @param tx Tx to remove.
      */
     public void removeCommittedTx(IgniteInternalTx tx) {
-        completedVers.remove(tx.writeVersion(), true);
+        completedVers.remove(tx.xidVersion(), true);
     }
 
     /**
@@ -994,7 +1021,7 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
      * @return If transaction was not already present in committed set.
      */
     public boolean addCommittedTx(IgniteInternalTx tx) {
-        return addCommittedTx(tx.writeVersion(), tx.nearXidVersion());
+        return addCommittedTx(tx.xidVersion(), tx.nearXidVersion());
     }
 
     /**
@@ -1059,6 +1086,76 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
     }
 
     /**
+     * @param tx Transaction.
+     */
+    private void processCompletedEntries(IgniteInternalTx tx) {
+        if (tx.needsCompletedVersions()) {
+            GridCacheVersion min = minVersion(tx.readEntries(), tx.xidVersion(), tx);
+
+            min = minVersion(tx.writeEntries(), min, tx);
+
+            assert min != null;
+
+            tx.completedVersions(min, committedVersions(min), rolledbackVersions(min));
+        }
+    }
+
+    /**
+     * Collects versions for all pending locks for all entries within transaction
+     *
+     * @param dhtTxLoc Transaction being committed.
+     */
+    private void collectPendingVersions(GridDhtTxLocal dhtTxLoc) {
+        if (dhtTxLoc.needsCompletedVersions()) {
+            if (log.isDebugEnabled())
+                log.debug("Checking for pending locks with version less then tx version: " + dhtTxLoc);
+
+            Set<GridCacheVersion> vers = new LinkedHashSet<>();
+
+            collectPendingVersions(dhtTxLoc.readEntries(), dhtTxLoc.xidVersion(), vers);
+            collectPendingVersions(dhtTxLoc.writeEntries(), dhtTxLoc.xidVersion(), vers);
+
+            if (!vers.isEmpty())
+                dhtTxLoc.pendingVersions(vers);
+        }
+    }
+
+    /**
+     * Gets versions of all not acquired locks for collection of tx entries that are less then base version.
+     *
+     * @param entries Tx entries to process.
+     * @param baseVer Base version to compare with.
+     * @param vers Collection of versions that will be populated.
+     */
+    @SuppressWarnings("TypeMayBeWeakened")
+    private void collectPendingVersions(Iterable<IgniteTxEntry> entries,
+        GridCacheVersion baseVer, Set<GridCacheVersion> vers) {
+
+        // The locks are not released yet, so we can safely list pending candidates versions.
+        for (IgniteTxEntry txEntry : entries) {
+            GridCacheEntryEx cached = txEntry.cached();
+
+            try {
+                // If check should be faster then exception handling.
+                if (!cached.obsolete()) {
+                    for (GridCacheMvccCandidate cand : cached.localCandidates()) {
+                        if (!cand.owner() && cand.version().compareTo(baseVer) < 0) {
+                            if (log.isDebugEnabled())
+                                log.debug("Adding candidate version to pending set: " + cand);
+
+                            vers.add(cand.version());
+                        }
+                    }
+                }
+            }
+            catch (GridCacheEntryRemovedException ignored) {
+                if (log.isDebugEnabled())
+                    log.debug("There are no pending locks for entry (entry was deleted in transaction): " + txEntry);
+            }
+        }
+    }
+
+    /**
      * Go through all candidates for entries involved in transaction and find their min
      * version. We know that these candidates will commit after this transaction, and
      * therefore we can grab the min version so we can send all committed and rolled
@@ -1112,7 +1209,7 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
          * so we don't do it here.
          */
 
-        Boolean committed = completedVers.get(tx.writeVersion());
+        Boolean committed = completedVers.get(tx.xidVersion());
 
         // 1. Make sure that committed version has been recorded.
         if (!((committed != null && committed) || tx.writeSet().isEmpty() || tx.isSystemInvalidate())) {
@@ -1129,6 +1226,15 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
         ConcurrentMap<GridCacheVersion, IgniteInternalTx> txIdMap = transactionMap(tx);
 
         if (txIdMap.remove(tx.xidVersion(), tx)) {
+            // 2. Must process completed entries before unlocking!
+            processCompletedEntries(tx);
+
+            if (tx instanceof GridDhtTxLocal) {
+                GridDhtTxLocal dhtTxLoc = (GridDhtTxLocal)tx;
+
+                collectPendingVersions(dhtTxLoc);
+            }
+
             // 4. Unlock write resources.
             unlockMultiple(tx, tx.writeEntries());
 
@@ -1868,7 +1974,8 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
         if (tx instanceof GridDistributedTxRemoteAdapter) {
             IgniteTxRemoteEx rmtTx = (IgniteTxRemoteEx)tx;
 
-            rmtTx.doneRemote(tx.xidVersion());
+            rmtTx.doneRemote(tx.xidVersion(), Collections.<GridCacheVersion>emptyList(), Collections.<GridCacheVersion>emptyList(),
+                Collections.<GridCacheVersion>emptyList());
         }
 
         if (commit)

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteEx.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteEx.java
index 77dc330..9e9e5bf 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteEx.java
@@ -32,8 +32,12 @@ public interface IgniteTxRemoteEx extends IgniteInternalTx {
 
     /**
      * @param baseVer Base version.
+     * @param committedVers Committed version.
+     * @param rolledbackVers Rolled back version.
+     * @param pendingVers Pending versions.
      */
-    public void doneRemote(GridCacheVersion baseVer);
+    public void doneRemote(GridCacheVersion baseVer, Collection<GridCacheVersion> committedVers,
+        Collection<GridCacheVersion> rolledbackVers, Collection<GridCacheVersion> pendingVers);
 
     /**
      * @param e Sets write value for pessimistic transactions.

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java
index d93937b..d06e118 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java
@@ -187,13 +187,13 @@ public class GridQueryNextPageResponse implements Message {
                 writer.incrementState();
 
             case 5:
-                if (!writer.writeMessage("retry", retry))
+                if (!writer.writeCollection("vals", vals, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
             case 6:
-                if (!writer.writeCollection("vals", vals, MessageCollectionItemType.MSG))
+                if (!writer.writeMessage("retry", retry))
                     return false;
 
                 writer.incrementState();
@@ -252,7 +252,7 @@ public class GridQueryNextPageResponse implements Message {
                 reader.incrementState();
 
             case 5:
-                retry = reader.readMessage("retry");
+                vals = reader.readCollection("vals", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
@@ -260,7 +260,7 @@ public class GridQueryNextPageResponse implements Message {
                 reader.incrementState();
 
             case 6:
-                vals = reader.readCollection("vals", MessageCollectionItemType.MSG);
+                retry = reader.readMessage("retry");
 
                 if (!reader.isLastRead())
                     return false;

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryRequest.java
index f97b6d0..2b04c52 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryRequest.java
@@ -183,43 +183,43 @@ public class GridQueryRequest implements Message {
 
         switch (writer.state()) {
             case 0:
-                if (!writer.writeCollection("extraSpaces", extraSpaces, MessageCollectionItemType.STRING))
+                if (!writer.writeInt("pageSize", pageSize))
                     return false;
 
                 writer.incrementState();
 
             case 1:
-                if (!writer.writeInt("pageSize", pageSize))
+                if (!writer.writeCollection("qrys", qrys, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
             case 2:
-                if (!writer.writeIntArray("parts", parts))
+                if (!writer.writeLong("reqId", reqId))
                     return false;
 
                 writer.incrementState();
 
             case 3:
-                if (!writer.writeCollection("qrys", qrys, MessageCollectionItemType.MSG))
+                if (!writer.writeString("space", space))
                     return false;
 
                 writer.incrementState();
 
             case 4:
-                if (!writer.writeLong("reqId", reqId))
+                if (!writer.writeMessage("topVer", topVer))
                     return false;
 
                 writer.incrementState();
 
             case 5:
-                if (!writer.writeString("space", space))
+                if (!writer.writeCollection("extraSpaces", extraSpaces, MessageCollectionItemType.STRING))
                     return false;
 
                 writer.incrementState();
 
             case 6:
-                if (!writer.writeMessage("topVer", topVer))
+                if (!writer.writeIntArray("parts", parts))
                     return false;
 
                 writer.incrementState();
@@ -238,7 +238,7 @@ public class GridQueryRequest implements Message {
 
         switch (reader.state()) {
             case 0:
-                extraSpaces = reader.readCollection("extraSpaces", MessageCollectionItemType.STRING);
+                pageSize = reader.readInt("pageSize");
 
                 if (!reader.isLastRead())
                     return false;
@@ -246,7 +246,7 @@ public class GridQueryRequest implements Message {
                 reader.incrementState();
 
             case 1:
-                pageSize = reader.readInt("pageSize");
+                qrys = reader.readCollection("qrys", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
@@ -254,7 +254,7 @@ public class GridQueryRequest implements Message {
                 reader.incrementState();
 
             case 2:
-                parts = reader.readIntArray("parts");
+                reqId = reader.readLong("reqId");
 
                 if (!reader.isLastRead())
                     return false;
@@ -262,7 +262,7 @@ public class GridQueryRequest implements Message {
                 reader.incrementState();
 
             case 3:
-                qrys = reader.readCollection("qrys", MessageCollectionItemType.MSG);
+                space = reader.readString("space");
 
                 if (!reader.isLastRead())
                     return false;
@@ -270,7 +270,7 @@ public class GridQueryRequest implements Message {
                 reader.incrementState();
 
             case 4:
-                reqId = reader.readLong("reqId");
+                topVer = reader.readMessage("topVer");
 
                 if (!reader.isLastRead())
                     return false;
@@ -278,7 +278,7 @@ public class GridQueryRequest implements Message {
                 reader.incrementState();
 
             case 5:
-                space = reader.readString("space");
+                extraSpaces = reader.readCollection("extraSpaces", MessageCollectionItemType.STRING);
 
                 if (!reader.isLastRead())
                     return false;
@@ -286,7 +286,7 @@ public class GridQueryRequest implements Message {
                 reader.incrementState();
 
             case 6:
-                topVer = reader.readMessage("topVer");
+                parts = reader.readIntArray("parts");
 
                 if (!reader.isLastRead())
                     return false;

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccPartitionedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccPartitionedSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccPartitionedSelfTest.java
index 5b7ebef..c0054ac 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccPartitionedSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccPartitionedSelfTest.java
@@ -103,24 +103,79 @@ public class GridCacheMvccPartitionedSelfTest extends GridCommonAbstractTest {
         assertEquals(1, rmtCands.size());
         assertEquals(ver1, rmtCands.iterator().next().version());
 
-        entry.readyNearLocal(ver2, ver2);
+        entry.readyNearLocal(ver2, ver2, empty(), empty(), Arrays.asList(ver1));
 
-        checkLocal(c2, ver2, true, false, false);
+        checkLocalOwner(c2, ver2, false);
         checkRemote(c1, ver1, false, false);
 
-        entry.doneRemote(ver1);
+        assertNotNull(entry.anyOwner());
+        assertEquals(ver2, entry.anyOwner().version());
+    }
 
-        checkLocal(c2, ver2, true, false, false);
-        checkRemote(c1, ver1, true, true);
+    /**
+     * Tests remote candidates.
+     */
+    public void testNearLocalsWithCommitted() {
+        GridCacheAdapter<String, String> cache = grid.internalCache();
 
-        entry.removeLock(ver1);
+        GridCacheTestEntryEx entry = new GridCacheTestEntryEx(cache.context(), "1");
 
-        assertTrue(entry.remoteMvccSnapshot().isEmpty());
+        UUID node1 = UUID.randomUUID();
 
-        checkLocal(c2, ver2, true, true, false);
+        GridCacheVersion ver1 = version(1);
+        GridCacheVersion ver2 = version(2);
 
-        assertNotNull(entry.anyOwner());
-        assertEquals(ver2, entry.anyOwner().version());
+        GridCacheMvccCandidate c1 = entry.addNearLocal(node1, 1, ver1, 0, true);
+        GridCacheMvccCandidate c2 = entry.addRemote(node1, 1, ver2, 0, false, true);
+
+        Collection<GridCacheMvccCandidate> rmtCands = entry.remoteMvccSnapshot();
+        Collection<GridCacheMvccCandidate> nearLocCands = entry.localCandidates();
+
+        assertEquals(1, nearLocCands.size());
+        assertEquals(ver1, nearLocCands.iterator().next().version());
+
+        assertEquals(1, rmtCands.size());
+        assertEquals(ver2, rmtCands.iterator().next().version());
+
+        entry.readyNearLocal(ver1, ver1, Arrays.asList(ver2), empty(), empty());
+
+        checkLocal(c1, ver1, true, false, false);
+        checkRemote(c2, ver2, true, false);
+
+        assertNull(entry.anyOwner());
+    }
+
+    /**
+     * Tests remote candidates.
+     */
+    public void testNearLocalsWithRolledback() {
+        GridCacheAdapter<String, String> cache = grid.internalCache();
+
+        GridCacheTestEntryEx entry = new GridCacheTestEntryEx(cache.context(), "1");
+
+        UUID node1 = UUID.randomUUID();
+
+        GridCacheVersion ver1 = version(1);
+        GridCacheVersion ver2 = version(2);
+
+        GridCacheMvccCandidate c1 = entry.addNearLocal(node1, 1, ver1, 0, true);
+        GridCacheMvccCandidate c2 = entry.addRemote(node1, 1, ver2, 0, false, true);
+
+        Collection<GridCacheMvccCandidate> rmtCands = entry.remoteMvccSnapshot();
+        Collection<GridCacheMvccCandidate> nearLocCands = entry.localCandidates();
+
+        assertEquals(1, nearLocCands.size());
+        assertEquals(ver1, nearLocCands.iterator().next().version());
+
+        assertEquals(1, rmtCands.size());
+        assertEquals(ver2, rmtCands.iterator().next().version());
+
+        entry.readyNearLocal(ver1, ver1, empty(), Arrays.asList(ver2), empty());
+
+        checkLocal(c1, ver1, true, false, false);
+        checkRemote(c2, ver2, true, false);
+
+        assertNull(entry.anyOwner());
     }
 
     /**
@@ -139,7 +194,7 @@ public class GridCacheMvccPartitionedSelfTest extends GridCommonAbstractTest {
         GridCacheMvccCandidate c1 = entry.addNearLocal(node1, 1, ver1, 0, true);
         GridCacheMvccCandidate c2 = entry.addNearLocal(node1, 1, ver2, 0, true);
 
-        entry.readyNearLocal(ver2, ver2);
+        entry.readyNearLocal(ver2, ver2,  empty(), empty(), empty());
 
         checkLocalOwner(c2, ver2, false);
         checkLocal(c1, ver1, false, false, false);
@@ -154,6 +209,164 @@ public class GridCacheMvccPartitionedSelfTest extends GridCommonAbstractTest {
     }
 
     /**
+     * Tests remote candidates.
+     */
+    public void testNearLocalsWithOwned() {
+        GridCacheAdapter<String, String> cache = grid.internalCache();
+
+        GridCacheTestEntryEx entry = new GridCacheTestEntryEx(cache.context(), "1");
+
+        UUID node1 = UUID.randomUUID();
+
+        GridCacheVersion ver1 = version(1);
+        GridCacheVersion ver2 = version(2);
+
+        GridCacheMvccCandidate c1 = entry.addRemote(node1, 1, ver1, 0, false, true);
+        GridCacheMvccCandidate c2 = entry.addNearLocal(node1, 1, ver2, 0, true);
+
+        Collection<GridCacheMvccCandidate> rmtCands = entry.remoteMvccSnapshot();
+        Collection<GridCacheMvccCandidate> nearLocCands = entry.localCandidates();
+
+        assertEquals(1, nearLocCands.size());
+        assertEquals(ver2, nearLocCands.iterator().next().version());
+
+        assertEquals(1, rmtCands.size());
+        assertEquals(ver1, rmtCands.iterator().next().version());
+
+        entry.orderOwned(ver1, ver2);
+
+        entry.readyNearLocal(ver2, ver2,  empty(), empty(), empty());
+
+        checkRemote(c1, ver1, false, false);
+
+        assertFalse(c1.owner());
+
+        checkLocalOwner(c2, ver2, false);
+
+        assertNotNull(entry.anyOwner());
+        assertEquals(ver2, entry.anyOwner().version());
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testAddPendingRemote0() throws Exception {
+        GridCacheAdapter<String, String> cache = grid.internalCache();
+
+        GridCacheTestEntryEx entry = new GridCacheTestEntryEx(cache.context(), "1");
+
+        UUID node1 = UUID.randomUUID();
+
+        GridCacheVersion ver0 = version(0);
+        GridCacheVersion ver1 = version(1);
+
+        entry.addNearLocal(node1, 1, ver1, 0, true);
+
+        entry.readyNearLocal(ver1, ver1, empty(), empty(), Collections.singletonList(ver0));
+
+        entry.addRemote(node1, 1, ver0, 0, false, true);
+
+        Collection<GridCacheMvccCandidate> rmtCands = entry.remoteMvccSnapshot();
+        Collection<GridCacheMvccCandidate> nearLocCands = entry.localCandidates();
+
+        assertEquals(1, nearLocCands.size());
+        assertEquals(ver1, nearLocCands.iterator().next().version());
+
+        assertEquals(1, rmtCands.size());
+        assertEquals(ver0, rmtCands.iterator().next().version());
+
+        assertNotNull(entry.anyOwner());
+        assertEquals(ver1, entry.anyOwner().version());
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testAddPendingRemote1() throws Exception {
+        GridCacheAdapter<String, String> cache = grid.internalCache();
+
+        GridCacheTestEntryEx entry = new GridCacheTestEntryEx(cache.context(), "1");
+
+        UUID node1 = UUID.randomUUID();
+
+        GridCacheVersion ver0 = version(0);
+        GridCacheVersion ver1 = version(1);
+        GridCacheVersion ver2 = version(2);
+        GridCacheVersion ver3 = version(3);
+
+        GridCacheMvccCandidate c3 = entry.addNearLocal(node1, 1, ver3, 0, true);
+
+        entry.readyNearLocal(ver3, ver3, empty(), empty(), Arrays.asList(ver0, ver1, ver2));
+
+        GridCacheMvccCandidate c2 = entry.addRemote(node1, 1, ver2, 0, false, true);
+        GridCacheMvccCandidate c1 = entry.addRemote(node1, 1, ver1, 0, false, true);
+        GridCacheMvccCandidate c0 = entry.addRemote(node1, 1, ver0, 0, false, true);
+
+        Collection<GridCacheMvccCandidate> rmtCands = entry.remoteMvccSnapshot();
+
+        assert rmtCands.size() == 3;
+
+        // DHT remote candidates are not reordered and sorted.
+        GridCacheMvccCandidate[] candArr = new GridCacheMvccCandidate[] {c2, c1, c0};
+
+        rmtCands = entry.remoteMvccSnapshot();
+
+        int i = 0;
+
+        for (GridCacheMvccCandidate cand : rmtCands) {
+            assert cand == candArr[i] : "Invalid candidate in position " + i;
+
+            i++;
+        }
+
+        assertEquals(c3, entry.anyOwner());
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testAddPendingRemote2() throws Exception {
+        GridCacheAdapter<String, String> cache = grid.internalCache();
+
+        GridCacheTestEntryEx entry = new GridCacheTestEntryEx(cache.context(), "1");
+
+        UUID node1 = UUID.randomUUID();
+
+        GridCacheVersion ver0 = version(0);
+        GridCacheVersion ver1 = version(1);
+        GridCacheVersion ver2 = version(2);
+        GridCacheVersion ver3 = version(3);
+
+        GridCacheMvccCandidate c3 = entry.addNearLocal(node1, 1, ver3, 0, true);
+        entry.addNearLocal(node1, 1, ver2, 0, true);
+
+        entry.readyNearLocal(ver3, ver3, empty(), empty(), Arrays.asList(ver0, ver1, ver2));
+
+        GridCacheMvccCandidate c1 = entry.addRemote(node1, 1, ver1, 0, false, true);
+        GridCacheMvccCandidate c0 = entry.addRemote(node1, 1, ver0, 0, false, true);
+
+        Collection<GridCacheMvccCandidate> rmtCands = entry.remoteMvccSnapshot();
+
+        assertEquals(2, rmtCands.size());
+
+        Collection<GridCacheMvccCandidate> nearLocCands = entry.localCandidates();
+
+        assertEquals(2, nearLocCands.size());
+
+        GridCacheMvccCandidate[] candArr = new GridCacheMvccCandidate[] {c1, c0};
+
+        int i = 0;
+
+        for (GridCacheMvccCandidate cand : rmtCands) {
+            assert cand == candArr[i] : "Invalid candidate in position " + i;
+
+            i++;
+        }
+
+        assertEquals(c3, entry.anyOwner());
+    }
+
+    /**
      * Tests salvageRemote method
      */
     public void testSalvageRemote() {
@@ -239,12 +452,10 @@ public class GridCacheMvccPartitionedSelfTest extends GridCommonAbstractTest {
         assertEquals(2, rmtCands.size());
         assertEquals(ver1, rmtCands.iterator().next().version());
 
-        entry.readyNearLocal(nearVer2, ver2);
+        entry.readyNearLocal(nearVer2, ver2, empty(), empty(), empty());
 
         assertNull(entry.anyOwner());
 
-        entry.doneRemote(ver1);
-
         rmtCands = entry.remoteMvccSnapshot();
 
         assertEquals(ver1, rmtCands.iterator().next().version());
@@ -279,16 +490,14 @@ public class GridCacheMvccPartitionedSelfTest extends GridCommonAbstractTest {
         assertEquals(2, rmtCands.size());
         assertEquals(ver1, rmtCands.iterator().next().version());
 
-        entry.readyNearLocal(nearVer2, ver2);
+        entry.orderCompleted(nearVer2, Arrays.asList(ver3), empty());
+        entry.readyNearLocal(nearVer2, ver2, empty(), empty(), Arrays.asList(ver1));
 
         nearLocCands = entry.localCandidates();
         rmtCands = entry.remoteMvccSnapshot();
 
         assertNull(entry.anyOwner());
-
-        entry.doneRemote(ver1);
-
-        assertEquals(ver1, rmtCands.iterator().next().version());
+        assertEquals(ver3, rmtCands.iterator().next().version());
         assertTrue(rmtCands.iterator().next().owner());
 
         GridCacheMvccCandidate cand = nearLocCands.iterator().next();
@@ -326,14 +535,15 @@ public class GridCacheMvccPartitionedSelfTest extends GridCommonAbstractTest {
         assertEquals(2, rmtCands.size());
         assertEquals(ver1, rmtCands.iterator().next().version());
 
-        entry.readyNearLocal(nearVer2, ver2);
+        entry.orderCompleted(nearVer2, empty(), empty());
+        entry.readyNearLocal(nearVer2, ver2, empty(), empty(), empty());
 
         nearLocCands = entry.localCandidates();
         rmtCands = entry.remoteMvccSnapshot();
 
         assertNull(entry.anyOwner());
         assertEquals(ver1, rmtCands.iterator().next().version());
-        assertFalse(rmtCands.iterator().next().owner());
+        assertTrue(rmtCands.iterator().next().owner());
 
         GridCacheMvccCandidate cand = nearLocCands.iterator().next();
 
@@ -370,12 +580,13 @@ public class GridCacheMvccPartitionedSelfTest extends GridCommonAbstractTest {
         assertEquals(2, rmtCands.size());
         assertEquals(ver1, rmtCands.iterator().next().version());
 
-        entry.readyNearLocal(nearVer2, ver2);
+        entry.orderCompleted(nearVer2, empty(), empty());
+        entry.readyNearLocal(nearVer2, ver2, empty(), empty(), Arrays.asList(ver1));
 
         rmtCands = entry.remoteMvccSnapshot();
 
-        assertNull(entry.anyOwner());
-        checkLocal(entry.candidate(nearVer2), nearVer2, true, false, false);
+        assertNotNull(entry.anyOwner());
+        checkLocalOwner(entry.anyOwner(), nearVer2, false);
 
         assertEquals(ver1, rmtCands.iterator().next().version());
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java
index 0e855ed..8038604 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java
@@ -168,6 +168,12 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
         // Check order.
         checkOrder(cands, ver1, ver5, ver3, ver2);
 
+        entry.orderCompleted(
+            new GridCacheVersion(1, 0, 2, 0, 0),
+            Arrays.asList(new GridCacheVersion(1, 0, 3, 4, 0), ver2, new GridCacheVersion(1, 0, 5, 6, 0)),
+            Collections.<GridCacheVersion>emptyList()
+        );
+
         cands = entry.remoteMvccSnapshot();
 
         info(cands);
@@ -175,16 +181,16 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
         assert cands.size() == 4;
 
         // Done ver 2.
-        checkOrder(cands, ver1, ver5, ver3, ver2);
+        checkOrder(cands, ver1, ver2, ver5, ver3);
 
         checkRemote(entry.candidate(ver1), ver1, false, false);
-        checkRemote(entry.candidate(ver2), ver2, false, false);
+        checkRemote(entry.candidate(ver2), ver2, true, false);
         checkRemote(entry.candidate(ver3), ver3, true, true);
         checkRemote(entry.candidate(ver5), ver5, false, false);
 
-        entry.doneRemote(ver2);
+        entry.doneRemote(ver5);
 
-        checkDone(entry.candidate(ver2));
+        checkDone(entry.candidate(ver5));
 
         entry.addRemote(node1, 4, ver4, 0, false, true);
 
@@ -195,7 +201,9 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
         assert cands.size() == 5;
 
         // Check order.
-        checkOrder(cands, ver1, ver5, ver3, ver2, ver4);
+        checkOrder(cands, ver1, ver2, ver5, ver3, ver4);
+
+        entry.orderCompleted(ver3, Arrays.asList(ver2, ver5), Collections.<GridCacheVersion>emptyList());
 
         cands = entry.remoteMvccSnapshot();
 
@@ -203,7 +211,7 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
 
         assert cands.size() == 5;
 
-        checkOrder(cands, ver1, ver5, ver3, ver2, ver4);
+        checkOrder(cands, ver1, ver2, ver5, ver3, ver4);
 
         assert entry.anyOwner() == null;
 
@@ -215,29 +223,25 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
 
         assert entry.remoteMvccSnapshot().size() == 4;
 
-        cands = entry.remoteMvccSnapshot();
-
-        checkOrder(cands, ver5, ver3, ver2, ver4);
-
-        assertNull(entry.anyOwner());
+        assert entry.anyOwner() == null;
 
-        entry.doneRemote(ver5);
+        entry.doneRemote(ver2);
 
-        checkRemoteOwner(entry.anyOwner(), ver5);
+        checkRemoteOwner(entry.anyOwner(), ver2);
 
-        entry.removeLock(ver5);
+        entry.removeLock(ver2);
 
         assert entry.remoteMvccSnapshot().size() == 3;
 
-        checkRemoteOwner(entry.anyOwner(), ver3);
+        checkRemoteOwner(entry.anyOwner(), ver5);
 
         entry.removeLock(ver3);
 
         assert entry.remoteMvccSnapshot().size() == 2;
 
-        checkRemoteOwner(entry.anyOwner(), ver2);
+        checkRemoteOwner(entry.anyOwner(), ver5);
 
-        entry.removeLock(ver2);
+        entry.removeLock(ver5);
 
         assert entry.remoteMvccSnapshot().size() == 1;
 
@@ -255,6 +259,142 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
     }
 
     /**
+     * Tests that orderOwned does not reorder owned locks.
+     */
+    public void testNearRemoteWithOwned() {
+        GridCacheAdapter<String, String> cache = grid.internalCache();
+
+        GridCacheTestEntryEx entry = new GridCacheTestEntryEx(cache.context(), "1");
+
+        UUID node1 = UUID.randomUUID();
+
+        GridCacheVersion ver1 = version(1);
+        GridCacheVersion ver2 = version(2);
+        GridCacheVersion ver3 = version(3);
+        GridCacheVersion ver4 = version(4);
+
+        GridCacheMvccCandidate c1 = entry.addRemote(node1, 1, ver1, 0, false, true);
+        GridCacheMvccCandidate c2 = entry.addRemote(node1, 1, ver2, 0, false, true);
+        GridCacheMvccCandidate c3 = entry.addRemote(node1, 1, ver3, 0, false, true);
+        GridCacheMvccCandidate c4 = entry.addRemote(node1, 1, ver4, 0, false, true);
+
+        GridCacheMvccCandidate[] candArr = new GridCacheMvccCandidate[] {c1, c2, c3, c4};
+
+        Collection<GridCacheMvccCandidate> rmtCands = entry.remoteMvccSnapshot();
+
+        assert rmtCands.size() == 4;
+        assert rmtCands.iterator().next().version().equals(ver1);
+
+        entry.orderOwned(ver1, ver2);
+
+        rmtCands = entry.remoteMvccSnapshot();
+
+        int i = 0;
+
+        for (GridCacheMvccCandidate cand : rmtCands) {
+            assertTrue(cand == candArr[i]);
+
+            assertTrue(ver2.equals(cand.ownerVersion()) || cand != c1);
+
+            i++;
+        }
+    }
+
+    /**
+     * Tests that orderOwned does not reorder owned locks.
+     */
+    public void testNearRemoteWithOwned1() {
+        GridCacheAdapter<String, String> cache = grid.internalCache();
+
+        GridCacheTestEntryEx entry = new GridCacheTestEntryEx(cache.context(), "1");
+
+        UUID node1 = UUID.randomUUID();
+
+        GridCacheVersion ver1 = version(1);
+        GridCacheVersion ver2 = version(2);
+        GridCacheVersion ver3 = version(3);
+        GridCacheVersion ver4 = version(4);
+        GridCacheVersion ver5 = version(5);
+        GridCacheVersion ver6 = version(6);
+
+        GridCacheMvccCandidate c1 = entry.addRemote(node1, 1, ver1, 0, false, true);
+        GridCacheMvccCandidate c2 = entry.addRemote(node1, 1, ver2, 0, false, true);
+        GridCacheMvccCandidate c3 = entry.addRemote(node1, 1, ver3, 0, false, true);
+        GridCacheMvccCandidate c4 = entry.addRemote(node1, 1, ver4, 0, false, true);
+        GridCacheMvccCandidate c5 = entry.addRemote(node1, 1, ver5, 0, false, true);
+        GridCacheMvccCandidate c6 = entry.addRemote(node1, 1, ver6, 0, false, true);
+
+        GridCacheMvccCandidate[] candArr = new GridCacheMvccCandidate[] {c1, c2, c3, c4, c5, c6};
+
+        Collection<GridCacheMvccCandidate> cands = entry.remoteMvccSnapshot();
+
+        assert cands.size() == 6;
+        assert cands.iterator().next().version().equals(ver1);
+
+        entry.orderOwned(ver1, ver3);
+
+        cands = entry.remoteMvccSnapshot();
+
+        int i = 0;
+
+        for (GridCacheMvccCandidate cand : cands) {
+            assert cand == candArr[i];
+
+            assertTrue(ver3.equals(cand.ownerVersion()) || cand != c1);
+
+            i++;
+        }
+    }
+
+    /**
+     * Tests that orderOwned does not reorder owned locks.
+     */
+    public void testNearRemoteWithOwned2() {
+        GridCacheAdapter<String, String> cache = grid.internalCache();
+
+        GridCacheTestEntryEx entry = new GridCacheTestEntryEx(cache.context(), "1");
+
+        UUID node1 = UUID.randomUUID();
+
+        GridCacheVersion ver0 = version(0);
+        GridCacheVersion ver1 = version(1);
+        GridCacheVersion ver2 = version(2);
+        GridCacheVersion ver3 = version(3);
+        GridCacheVersion ver4 = version(4);
+        GridCacheVersion ver5 = version(5);
+        GridCacheVersion ver6 = version(6);
+
+        GridCacheMvccCandidate c0 = entry.addRemote(node1, 1, ver0, 0, false, true);
+        GridCacheMvccCandidate c1 = entry.addRemote(node1, 1, ver1, 0, false, true);
+        GridCacheMvccCandidate c2 = entry.addRemote(node1, 1, ver2, 0, false, true);
+        GridCacheMvccCandidate c3 = entry.addRemote(node1, 1, ver3, 0, false, true);
+        GridCacheMvccCandidate c4 = entry.addRemote(node1, 1, ver4, 0, false, true);
+        GridCacheMvccCandidate c5 = entry.addRemote(node1, 1, ver5, 0, false, true);
+        GridCacheMvccCandidate c6 = entry.addRemote(node1, 1, ver6, 0, false, true);
+
+        GridCacheMvccCandidate[] candArr = new GridCacheMvccCandidate[] {c0, c1, c2, c3, c4, c5, c6};
+
+        Collection<GridCacheMvccCandidate> cands = entry.remoteMvccSnapshot();
+
+        assert cands.size() == 7;
+        assert cands.iterator().next().version().equals(ver0);
+
+        entry.orderOwned(ver1, ver2);
+
+        cands = entry.remoteMvccSnapshot();
+
+        int i = 0;
+
+        for (GridCacheMvccCandidate cand : cands) {
+            assert cand == candArr[i];
+
+            assertTrue(ver2.equals(cand.ownerVersion()) || cand != c1);
+
+            i++;
+        }
+    }
+
+    /**
      * Tests remote candidates.
      */
     public void testLocal() {
@@ -394,24 +534,27 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
 
         GridCacheMvccCandidate doomed = entry.addRemote(node2, 6, ver6, 0, false, true);
 
-        entry.doneRemote(ver6);
-
         // No reordering happens.
         checkOrder(entry.remoteMvccSnapshot(), ver1, ver2, ver3, ver4, ver5, ver7, ver8, ver6);
 
+        List<GridCacheVersion> committed = Arrays.asList(ver4, ver7);
+        List<GridCacheVersion> rolledback = Arrays.asList(ver6);
+
+        entry.orderCompleted(ver2, committed, rolledback);
+
         assert !entry.lockedBy(ver6);
 
-        checkOrder(entry.remoteMvccSnapshot(), ver1, ver2, ver3, ver4, ver5, ver7, ver8, ver6);
+        checkOrder(entry.remoteMvccSnapshot(), ver1, ver4, ver7, ver2, ver3, ver5, ver8);
 
         checkRemote(entry.candidate(ver1), ver1, false, false);
         checkRemote(entry.candidate(ver2), ver2, false, false);
         checkRemote(entry.candidate(ver3), ver3, false, false);
-        checkRemote(entry.candidate(ver4), ver4, false, false);
+        checkRemote(entry.candidate(ver4), ver4, true, false);
         checkRemote(entry.candidate(ver5), ver5, false, false);
-        checkRemote(entry.candidate(ver7), ver7, false, false);
+        checkRemote(entry.candidate(ver7), ver7, true, false);
         checkRemote(entry.candidate(ver8), ver8, false, false);
 
-        checkRemote(doomed, ver6, true, true);
+        checkRemote(doomed, ver6, false, true);
     }
 
     /**
@@ -441,43 +584,65 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
         entry.addRemote(node2, 6, ver6, 0, false, true);
         entry.addRemote(node2, 7, ver7, 0, false, true);
 
-        checkOrder(entry.remoteMvccSnapshot(), ver1, ver2, ver3, ver4, ver5, ver6, ver7);
+        List<GridCacheVersion> committed = Arrays.asList(ver4, ver6, ver2);
+
+        entry.orderCompleted(ver2, committed, Collections.<GridCacheVersion>emptyList());
+
+        checkOrder(entry.remoteMvccSnapshot(), ver1, ver4, ver6, ver2, ver3, ver5, ver7);
 
         checkRemote(entry.candidate(ver1), ver1, false, false);
-        checkRemote(entry.candidate(ver2), ver2, false, false);
+        checkRemote(entry.candidate(ver2), ver2, true, false);
         checkRemote(entry.candidate(ver3), ver3, false, false);
-        checkRemote(entry.candidate(ver4), ver4, false, false);
+        checkRemote(entry.candidate(ver4), ver4, true, false);
         checkRemote(entry.candidate(ver5), ver5, false, false);
-        checkRemote(entry.candidate(ver6), ver6, false, false);
+        checkRemote(entry.candidate(ver6), ver6, true, false);
         checkRemote(entry.candidate(ver7), ver7, false, false);
+    }
 
-        entry.doneRemote(ver2);
+    /**
+     *
+     */
+    public void testCompletedTwiceWithBaseInTheMiddle() {
+        GridCacheAdapter<String, String> cache = grid.internalCache();
 
-        checkOrder(entry.remoteMvccSnapshot(), ver1, ver2, ver3, ver4, ver5, ver6, ver7);
+        GridCacheTestEntryEx entry = new GridCacheTestEntryEx(cache.context(), "1");
 
-        checkRemote(entry.candidate(ver1), ver1, false, false);
-        checkRemote(entry.candidate(ver2), ver2, true, true);
-        checkRemote(entry.candidate(ver3), ver3, false, false);
-        checkRemote(entry.candidate(ver4), ver4, false, false);
-        checkRemote(entry.candidate(ver5), ver5, false, false);
-        checkRemote(entry.candidate(ver6), ver6, false, false);
-        checkRemote(entry.candidate(ver7), ver7, false, false);
+        UUID node1 = UUID.randomUUID();
+        UUID node2 = UUID.randomUUID();
 
-        assertNull(entry.anyOwner());
+        GridCacheVersion ver1 = version(1);
+        GridCacheVersion ver2 = version(2);
+        GridCacheVersion ver3 = version(3);
+        GridCacheVersion ver4 = version(4);
+        GridCacheVersion ver5 = version(5);
+        GridCacheVersion ver6 = version(6);
+        GridCacheVersion ver7 = version(7);
 
-        entry.doneRemote(ver1);
+        entry.addRemote(node1, 1, ver1, 0, false, true);
+        entry.addRemote(node2, 2, ver2, 0, false, true);
+        entry.addRemote(node1, 3, ver3, 0, false, true);
+        entry.addRemote(node2, 4, ver4, 0, false, true);
+        entry.addRemote(node1, 5, ver5, 0, false, true);
+        entry.addRemote(node2, 6, ver6, 0, false, true);
+        entry.addRemote(node2, 7, ver7, 0, false, true);
 
-        checkOrder(entry.remoteMvccSnapshot(), ver1, ver2, ver3, ver4, ver5, ver6, ver7);
+        List<GridCacheVersion> completed = Arrays.asList(ver4, ver6);
 
-        checkRemote(entry.candidate(ver1), ver1, true, true);
-        checkRemote(entry.candidate(ver2), ver2, true, true);
+        entry.orderCompleted(ver2, completed, Collections.<GridCacheVersion>emptyList());
+
+        checkOrder(entry.remoteMvccSnapshot(), ver1, ver4, ver6, ver2, ver3, ver5, ver7);
+
+        entry.orderCompleted(ver4, completed, Collections.<GridCacheVersion>emptyList());
+
+        checkOrder(entry.remoteMvccSnapshot(), ver1, ver6, ver4, ver2, ver3, ver5, ver7);
+
+        checkRemote(entry.candidate(ver1), ver1, false, false);
+        checkRemote(entry.candidate(ver2), ver2, false, false);
         checkRemote(entry.candidate(ver3), ver3, false, false);
-        checkRemote(entry.candidate(ver4), ver4, false, false);
+        checkRemote(entry.candidate(ver4), ver4, true, false);
         checkRemote(entry.candidate(ver5), ver5, false, false);
-        checkRemote(entry.candidate(ver6), ver6, false, false);
+        checkRemote(entry.candidate(ver6), ver6, true, false);
         checkRemote(entry.candidate(ver7), ver7, false, false);
-
-        assertEquals(ver1, entry.anyOwner().version());
     }
 
     /**
@@ -496,6 +661,8 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
         GridCacheVersion ver3 = version(3);
         GridCacheVersion ver4 = version(4);
         GridCacheVersion ver5 = version(5);
+        GridCacheVersion ver6 = version(6);
+        GridCacheVersion ver7 = version(7);
 
         entry.addRemote(node1, 1, ver1, 0, false, false);
         entry.addRemote(node2, 2, ver2, 0, false, false);
@@ -503,6 +670,10 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
         entry.addRemote(node2, 4, ver4, 0, false, false);
         entry.addRemote(node1, 5, ver5, 0, false, false);
 
+        List<GridCacheVersion> committed = Arrays.asList(ver6, ver7);
+
+        entry.orderCompleted(ver4, committed, Collections.<GridCacheVersion>emptyList());
+
         checkOrder(entry.remoteMvccSnapshot(), ver1, ver2, ver3, ver4, ver5);
 
         // Nothing set to owner since there is no change.
@@ -514,6 +685,48 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
     }
 
     /**
+     *
+     */
+    public void testCompletedWithBaseInTheBeginning() {
+        GridCacheAdapter<String, String> cache = grid.internalCache();
+
+        GridCacheTestEntryEx entry = new GridCacheTestEntryEx(cache.context(), "1");
+
+        UUID node1 = UUID.randomUUID();
+        UUID node2 = UUID.randomUUID();
+
+        GridCacheVersion ver1 = version(1);
+        GridCacheVersion ver2 = version(2);
+        GridCacheVersion ver3 = version(3);
+        GridCacheVersion ver4 = version(4);
+        GridCacheVersion ver5 = version(5);
+        GridCacheVersion ver6 = version(6);
+        GridCacheVersion ver7 = version(7);
+
+        entry.addRemote(node1, 1, ver1, 0, false, false);
+        entry.addRemote(node2, 2, ver2, 0, false, false);
+        entry.addRemote(node1, 3, ver3, 0, false, false);
+        entry.addRemote(node2, 4, ver4, 0, false, false);
+        entry.addRemote(node1, 5, ver5, 0, false, false);
+        entry.addRemote(node2, 6, ver6, 0, false, false);
+        entry.addRemote(node2, 7, ver7, 0, false, false);
+
+        List<GridCacheVersion> committed = Arrays.asList(ver4, ver6, ver3);
+
+        entry.orderCompleted(ver1, committed, Collections.<GridCacheVersion>emptyList());
+
+        checkOrder(entry.remoteMvccSnapshot(), ver3, ver4, ver6, ver1, ver2, ver5, ver7);
+
+        checkRemote(entry.candidate(ver1), ver1, false, false);
+        checkRemote(entry.candidate(ver2), ver2, false, false);
+        checkRemote(entry.candidate(ver3), ver3, true, false);
+        checkRemote(entry.candidate(ver4), ver4, true, false);
+        checkRemote(entry.candidate(ver5), ver5, false, false);
+        checkRemote(entry.candidate(ver6), ver6, true, false);
+        checkRemote(entry.candidate(ver7), ver7, false, false);
+    }
+
+    /**
      * This case should never happen, nevertheless we need to test for it.
      */
     public void testCompletedWithBaseInTheBeginningNoChange() {
@@ -529,6 +742,8 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
         GridCacheVersion ver3 = version(3);
         GridCacheVersion ver4 = version(4);
         GridCacheVersion ver5 = version(5);
+        GridCacheVersion ver6 = version(6);
+        GridCacheVersion ver7 = version(7);
 
         entry.addRemote(node1, 1, ver1, 0, false, false);
         entry.addRemote(node2, 2, ver2, 0, false, false);
@@ -536,6 +751,10 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
         entry.addRemote(node2, 4, ver4, 0, false, false);
         entry.addRemote(node1, 5, ver5, 0, false, false);
 
+        List<GridCacheVersion> committed = Arrays.asList(ver6, ver7);
+
+        entry.orderCompleted(ver1, committed, Collections.<GridCacheVersion>emptyList());
+
         checkOrder(entry.remoteMvccSnapshot(), ver1, ver2, ver3, ver4, ver5);
 
         // Nothing set to owner since there is no change.
@@ -562,6 +781,8 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
         GridCacheVersion ver3 = version(3);
         GridCacheVersion ver4 = version(4);
         GridCacheVersion ver5 = version(5);
+        GridCacheVersion ver6 = version(6);
+        GridCacheVersion ver7 = version(7);
 
         entry.addRemote(node1, 1, ver1, 0, false, false);
         entry.addRemote(node2, 2, ver2, 0, false, false);
@@ -569,6 +790,10 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
         entry.addRemote(node2, 4, ver4, 0, false, false);
         entry.addRemote(node1, 5, ver5, 0, false, false);
 
+        List<GridCacheVersion> committed = Arrays.asList(ver6, ver7);
+
+        entry.orderCompleted(ver5, committed, Collections.<GridCacheVersion>emptyList());
+
         checkOrder(entry.remoteMvccSnapshot(), ver1, ver2, ver3, ver4, ver5);
 
         // Nothing set to owner since there is no change.
@@ -582,7 +807,7 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
     /**
      *
      */
-    public void testNoReordering() {
+    public void testCompletedWithBaseNotPresentInTheMiddle() {
         GridCacheAdapter<String, String> cache = grid.internalCache();
 
         GridCacheTestEntryEx entry = new GridCacheTestEntryEx(cache.context(), "1");
@@ -598,49 +823,141 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
         GridCacheVersion ver6 = version(6);
         GridCacheVersion ver7 = version(7);
 
-        entry.addRemote(node1, 2, ver2, 0, false, true);
-        entry.addRemote(node1, 3, ver3, 0, false, true);
+        // Don't add version 2.
         entry.addRemote(node1, 1, ver1, 0, false, true);
-        entry.addRemote(node1, 5, ver5, 0, false, true);
+        entry.addRemote(node1, 3, ver3, 0, false, true);
         entry.addRemote(node2, 4, ver4, 0, false, true);
+        entry.addRemote(node1, 5, ver5, 0, false, true);
         entry.addRemote(node2, 6, ver6, 0, false, true);
         entry.addRemote(node2, 7, ver7, 0, false, true);
 
-        checkOrder(entry.remoteMvccSnapshot(), ver2, ver3, ver1, ver5, ver4, ver6, ver7);
+        List<GridCacheVersion> committed = Arrays.asList(ver6, ver4);
+
+        entry.orderCompleted(ver2, committed, Collections.<GridCacheVersion>emptyList());
+
+        checkOrder(entry.remoteMvccSnapshot(), ver1, ver4, ver6, ver3, ver5, ver7);
 
-        checkRemote(entry.candidate(ver2), ver2, false, false);
-        checkRemote(entry.candidate(ver3), ver3, false, false);
         checkRemote(entry.candidate(ver1), ver1, false, false);
+        checkRemote(entry.candidate(ver3), ver3, false, false);
+        checkRemote(entry.candidate(ver4), ver4, true, false);
         checkRemote(entry.candidate(ver5), ver5, false, false);
-        checkRemote(entry.candidate(ver4), ver4, false, false);
-        checkRemote(entry.candidate(ver6), ver6, false, false);
+        checkRemote(entry.candidate(ver6), ver6, true, false);
         checkRemote(entry.candidate(ver7), ver7, false, false);
+    }
 
-        entry.doneRemote(ver3);
+    /**
+     *
+     */
+    public void testCompletedWithBaseNotPresentInTheMiddleNoChange() {
+        GridCacheAdapter<String, String> cache = grid.internalCache();
 
-        checkOrder(entry.remoteMvccSnapshot(), ver2, ver3, ver1, ver5, ver4, ver6, ver7);
+        GridCacheTestEntryEx entry = new GridCacheTestEntryEx(cache.context(), "1");
 
-        assertNull(entry.anyOwner());
+        UUID node1 = UUID.randomUUID();
+        UUID node2 = UUID.randomUUID();
+
+        GridCacheVersion ver1 = version(1);
+        GridCacheVersion ver2 = version(2);
+        GridCacheVersion ver3 = version(3);
+        GridCacheVersion ver4 = version(4);
+        GridCacheVersion ver5 = version(5);
+        GridCacheVersion ver6 = version(6);
+        GridCacheVersion ver7 = version(7);
+
+        // Don't add versions 2, 5, 6, 7.
+        entry.addRemote(node1, 1, ver1, 0, false, true);
+        entry.addRemote(node1, 3, ver3, 0, false, true);
+        entry.addRemote(node2, 4, ver4, 0, false, true);
+
+        List<GridCacheVersion> committed = Arrays.asList(ver6, ver5, ver7);
+
+        entry.orderCompleted(ver2, committed, Collections.<GridCacheVersion>emptyList());
+
+        checkOrder(entry.remoteMvccSnapshot(), ver1, ver3, ver4);
 
-        checkRemote(entry.candidate(ver2), ver2, false, false);
-        checkRemote(entry.candidate(ver3), ver3, true, true);
         checkRemote(entry.candidate(ver1), ver1, false, false);
-        checkRemote(entry.candidate(ver5), ver5, false, false);
+        checkRemote(entry.candidate(ver3), ver3, false, false);
         checkRemote(entry.candidate(ver4), ver4, false, false);
-        checkRemote(entry.candidate(ver6), ver6, false, false);
-        checkRemote(entry.candidate(ver7), ver7, false, false);
+    }
 
-        entry.doneRemote(ver2);
+    /**
+     *
+     */
+    public void testCompletedWithBaseNotPresentInTheBeginning() {
+        GridCacheAdapter<String, String> cache = grid.internalCache();
 
-        checkOrder(entry.remoteMvccSnapshot(), ver2, ver3, ver1, ver5, ver4, ver6, ver7);
+        GridCacheTestEntryEx entry = new GridCacheTestEntryEx(cache.context(), "1");
 
-        assertEquals(ver2, entry.anyOwner().version());
+        UUID node1 = UUID.randomUUID();
+        UUID node2 = UUID.randomUUID();
 
-        checkRemote(entry.candidate(ver2), ver2, true, true);
-        checkRemote(entry.candidate(ver3), ver3, true, true);
-        checkRemote(entry.candidate(ver1), ver1, false, false);
+        GridCacheVersion ver1 = version(1);
+        GridCacheVersion ver2 = version(2);
+        GridCacheVersion ver3 = version(3);
+        GridCacheVersion ver4 = version(4);
+        GridCacheVersion ver5 = version(5);
+        GridCacheVersion ver6 = version(6);
+        GridCacheVersion ver7 = version(7);
+
+        // Don't add version 1.
+        entry.addRemote(node1, 2, ver2, 0, false, true);
+        entry.addRemote(node1, 3, ver3, 0, false, true);
+        entry.addRemote(node2, 4, ver4, 0, false, true);
+        entry.addRemote(node1, 5, ver5, 0, false, true);
+        entry.addRemote(node2, 6, ver6, 0, false, true);
+        entry.addRemote(node2, 7, ver7, 0, false, true);
+
+        List<GridCacheVersion> committed = Arrays.asList(ver4, ver6, ver3);
+
+        entry.orderCompleted(ver1, committed, Collections.<GridCacheVersion>emptyList());
+
+        checkOrder(entry.remoteMvccSnapshot(), ver3, ver4, ver6, ver2, ver5, ver7);
+
+        checkRemote(entry.candidate(ver2), ver2, false, false);
+        checkRemote(entry.candidate(ver3), ver3, true, false);
+        checkRemote(entry.candidate(ver4), ver4, true, false);
         checkRemote(entry.candidate(ver5), ver5, false, false);
+        checkRemote(entry.candidate(ver6), ver6, true, false);
+        checkRemote(entry.candidate(ver7), ver7, false, false);
+    }
+
+    /**
+     *
+     */
+    public void testCompletedWithBaseNotPresentInTheBeginningNoChange() {
+        GridCacheAdapter<String, String> cache = grid.internalCache();
+
+        GridCacheTestEntryEx entry = new GridCacheTestEntryEx(cache.context(), "1");
+
+        UUID node1 = UUID.randomUUID();
+        UUID node2 = UUID.randomUUID();
+
+        GridCacheVersion ver1 = version(1);
+        GridCacheVersion ver2 = version(2);
+        GridCacheVersion ver3 = version(3);
+        GridCacheVersion ver4 = version(4);
+        GridCacheVersion ver5 = version(5);
+        GridCacheVersion ver6 = version(6);
+        GridCacheVersion ver7 = version(7);
+
+        // Don't add version 6, 7
+        entry.addRemote(node1, 2, ver2, 0, false, true);
+        entry.addRemote(node1, 3, ver3, 0, false, true);
+        entry.addRemote(node2, 4, ver4, 0, false, true);
+        entry.addRemote(node1, 5, ver5, 0, false, true);
+        entry.addRemote(node1, 6, ver6, 0, false, true);
+        entry.addRemote(node1, 7, ver7, 0, false, true);
+
+        List<GridCacheVersion> committed = Arrays.asList(ver2, ver3);
+
+        entry.orderCompleted(ver1, committed, Collections.<GridCacheVersion>emptyList());
+
+        checkOrder(entry.remoteMvccSnapshot(), ver2, ver3, ver4, ver5, ver6, ver7);
+
+        checkRemote(entry.candidate(ver2), ver2, true, false);
+        checkRemote(entry.candidate(ver3), ver3, true, false);
         checkRemote(entry.candidate(ver4), ver4, false, false);
+        checkRemote(entry.candidate(ver5), ver5, false, false);
         checkRemote(entry.candidate(ver6), ver6, false, false);
         checkRemote(entry.candidate(ver7), ver7, false, false);
     }
@@ -660,6 +977,9 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
         GridCacheVersion ver2 = version(2);
         GridCacheVersion ver3 = version(3);
         GridCacheVersion ver4 = version(4);
+        GridCacheVersion ver5 = version(5);
+        GridCacheVersion ver6 = version(6);
+        GridCacheVersion ver7 = version(7);
 
         // Don't add version 5, 6, 7
         entry.addRemote(node1, 1, ver1, 0, false, true);
@@ -667,6 +987,10 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
         entry.addRemote(node1, 3, ver3, 0, false, true);
         entry.addRemote(node2, 4, ver4, 0, false, true);
 
+        List<GridCacheVersion> committed = Arrays.asList(ver6, ver7);
+
+        entry.orderCompleted(ver5, committed, Collections.<GridCacheVersion>emptyList());
+
         checkOrder(entry.remoteMvccSnapshot(), ver1, ver2, ver3, ver4);
 
         checkRemote(entry.candidate(ver1), ver1, false, false);
@@ -676,6 +1000,132 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
     }
 
     /**
+     * Test local and remote candidates together.
+     */
+    public void testLocalAndRemote() {
+        GridCacheAdapter<String, String> cache = grid.internalCache();
+
+        GridCacheTestEntryEx entry = new GridCacheTestEntryEx(cache.context(), "1");
+
+        UUID node1 = UUID.randomUUID();
+        UUID node2 = UUID.randomUUID();
+
+        GridCacheVersion ver1 = version(1);
+        GridCacheVersion ver2 = version(2);
+        GridCacheVersion ver3 = version(3);
+        GridCacheVersion ver4 = version(4);
+        GridCacheVersion ver5 = version(5);
+
+        entry.addRemote(node1, 1, ver1, 0, false, false);
+        entry.addLocal(2, ver2, 0, true, true);
+
+        Collection<GridCacheMvccCandidate> cands = entry.remoteMvccSnapshot();
+
+        assert cands.size() == 1;
+        assert cands.iterator().next().version().equals(ver1);
+
+        entry.addRemote(node2, 5, ver5, 0, false, false);
+
+        cands = entry.remoteMvccSnapshot();
+
+        assert cands.size() == 2;
+
+        info(cands);
+
+        checkOrder(cands, ver1, ver5);
+        checkOrder(entry.localCandidates(true), ver2);
+
+        entry.addRemote(node1, 3, ver3, 0, false, true);
+        entry.addLocal(4, ver4, 0, /*reenter*/true, false);
+
+        cands = entry.remoteMvccSnapshot();
+
+        assert cands.size() == 3;
+
+        // Check order.
+        checkOrder(entry.remoteMvccSnapshot(), ver1, ver5, ver3);
+        checkOrder(entry.localCandidates(), ver2, ver4);
+
+        entry.orderCompleted(
+            ver2 /*local version.*/,
+            Arrays.asList(new GridCacheVersion(1, 0, 1, 2, 0), ver3, new GridCacheVersion(1, 0, 5, 6, 0)),
+            Collections.<GridCacheVersion>emptyList()
+        );
+
+        // Done ver3.
+        checkOrder(entry.remoteMvccSnapshot(), ver1, ver3, ver5);
+        checkOrder(entry.localCandidates(), ver2, ver4);
+
+        checkRemote(entry.candidate(ver1), ver1, false, false);
+        checkRemote(entry.candidate(ver3), ver3, true, false);
+        checkRemote(entry.candidate(ver5), ver5, false, false);
+
+        checkLocal(entry.candidate(ver2), ver2, false, false, false);
+        checkLocal(entry.candidate(ver4), ver4, false, false, false);
+
+        entry.readyLocal(ver2);
+
+        checkLocal(entry.candidate(ver2), ver2, true, false, false);
+        checkLocal(entry.candidate(ver4), ver4, false, false, false);
+
+        assert entry.anyOwner() == null;
+
+        entry.doneRemote(ver1);
+
+        checkRemoteOwner(entry.anyOwner(), ver1);
+
+        entry.removeLock(ver1);
+
+        checkOrder(entry.remoteMvccSnapshot(), ver3, ver5);
+
+        assert entry.anyOwner() == null;
+
+        entry.doneRemote(ver3);
+
+        checkRemoteOwner(entry.anyOwner(), ver3);
+
+        entry.removeLock(ver3);
+
+        checkLocalOwner(entry.anyOwner(), ver2, false);
+
+        entry.removeLock(ver2);
+
+        assert !entry.lockedByAny(ver4, ver5);
+
+        checkOrder(entry.remoteMvccSnapshot(), ver5);
+        checkOrder(entry.localCandidates(), ver4);
+
+        assert entry.anyOwner() == null;
+
+        entry.readyLocal(ver4);
+
+        checkLocalOwner(entry.anyOwner(), ver4, false);
+
+        entry.removeLock(ver4);
+
+        assert entry.anyOwner() == null;
+
+        GridCacheMvccCandidate c5 = entry.candidate(ver5);
+
+        assert c5 != null;
+
+        c5.setOwner();
+
+        assert entry.anyOwner() == null;
+
+        entry.doneRemote(ver5);
+
+        checkRemoteOwner(entry.anyOwner(), ver5);
+
+        assert !entry.lockedByAny(ver5);
+
+        entry.removeLock(ver5);
+
+        assert !entry.lockedByAny();
+        assert entry.anyOwner() == null;
+    }
+
+    /**
      * @throws Exception If test failed.
      */
     public void testMultipleLocalAndRemoteLocks1() throws Exception {

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
index 68e0ea5..0055557 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
@@ -197,10 +197,34 @@ public class GridCacheTestEntryEx extends GridMetadataAwareAdapter implements Gr
     }
 
     /**
+     * Moves completed candidates right before the base one. Note that
+     * if base is not found, then nothing happens and {@code false} is
+     * returned.
+     *
+     * @param baseVer Base version.
+     * @param committedVers Committed versions relative to base.
+     * @param rolledbackVers Rolled back versions relative to base.
+     * @return Lock owner.
+     */
+    @Nullable public GridCacheMvccCandidate orderCompleted(GridCacheVersion baseVer,
+        Collection<GridCacheVersion> committedVers, Collection<GridCacheVersion> rolledbackVers) {
+        return mvcc.orderCompleted(baseVer, committedVers, rolledbackVers);
+    }
+
+    /**
      * @param ver Version.
      */
     public void doneRemote(GridCacheVersion ver) {
-        mvcc.doneRemote(ver);
+        mvcc.doneRemote(ver, Collections.<GridCacheVersion>emptyList(),
+            Collections.<GridCacheVersion>emptyList(), Collections.<GridCacheVersion>emptyList());
+    }
+
+    /**
+     * @param baseVer Base version.
+     * @param owned Owned.
+     */
+    public void orderOwned(GridCacheVersion baseVer, GridCacheVersion owned) {
+        mvcc.markOwned(baseVer, owned);
     }
 
     /**
@@ -214,10 +238,15 @@ public class GridCacheTestEntryEx extends GridMetadataAwareAdapter implements Gr
     /**
      * @param ver Ready near lock version.
      * @param mapped Mapped version.
+     * @param committedVers Committed versions.
+     * @param rolledbackVers Rolled back versions.
+     * @param pending Pending versions.
      * @return Lock owner.
      */
-    @Nullable public GridCacheMvccCandidate readyNearLocal(GridCacheVersion ver, GridCacheVersion mapped) {
-        return mvcc.readyNearLocal(ver, mapped);
+    @Nullable public GridCacheMvccCandidate readyNearLocal(GridCacheVersion ver, GridCacheVersion mapped,
+        Collection<GridCacheVersion> committedVers, Collection<GridCacheVersion> rolledbackVers,
+        Collection<GridCacheVersion> pending) {
+        return mvcc.readyNearLocal(ver, mapped, committedVers, rolledbackVers, pending);
     }
 
     /**


[49/50] [abbrv] ignite git commit: IGNITE-264 - Fixing compatibility

Posted by ag...@apache.org.
IGNITE-264 - Fixing compatibility


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

Branch: refs/heads/ignite-264
Commit: 7d5d9cd6b4c63f545f2f512db6b7e5cf62cbc531
Parents: da02efc
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Wed Sep 2 14:25:25 2015 -0700
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Wed Sep 2 14:25:25 2015 -0700

----------------------------------------------------------------------
 .../near/GridNearTxFinishFuture.java            | 20 +++++++++++++++++++-
 .../cache/transactions/IgniteTxHandler.java     |  4 +++-
 2 files changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/7d5d9cd6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
index 9b9fe86..ddc8be5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
@@ -50,6 +50,7 @@ import org.apache.ignite.internal.util.typedef.internal.CU;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteClosure;
+import org.apache.ignite.lang.IgniteProductVersion;
 import org.apache.ignite.lang.IgniteUuid;
 import org.apache.ignite.transactions.TransactionRollbackException;
 import org.jetbrains.annotations.Nullable;
@@ -63,6 +64,9 @@ import static org.apache.ignite.transactions.TransactionState.UNKNOWN;
 public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFuture<IgniteInternalTx>
     implements GridCacheFuture<IgniteInternalTx> {
     /** */
+    public static final IgniteProductVersion FINISH_NEAR_ONE_PHASE_SINCE = IgniteProductVersion.fromString("1.4.0");
+
+    /** */
     private static final long serialVersionUID = 0L;
 
     /** Logger reference. */
@@ -438,7 +442,12 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
                     finishReq.checkCommitted(true);
 
                     try {
-                        cctx.io().send(backup, finishReq, tx.ioPolicy());
+                        if (FINISH_NEAR_ONE_PHASE_SINCE.compareTo(backup.version()) <= 0)
+                            cctx.io().send(backup, finishReq, tx.ioPolicy());
+                        else
+                            mini.onDone(new IgniteTxHeuristicCheckedException("Failed to check for tx commit on " +
+                                "the backup node (node has an old Ignite version) [rmtNodeId=" + backup.id() +
+                                ", ver=" + backup.version() + ']'));
                     }
                     catch (ClusterTopologyCheckedException e) {
                         mini.onResult(e);
@@ -460,6 +469,8 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
         if (F.isEmpty(tx.mappings()))
             return false;
 
+        assert tx.mappings().size() == 1;
+
         boolean finish = false;
 
         for (Integer cacheId : tx.activeCacheIds()) {
@@ -472,6 +483,13 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
             }
         }
 
+        if (finish) {
+            GridDistributedTxMapping mapping = F.first(tx.mappings().values());
+
+            if (FINISH_NEAR_ONE_PHASE_SINCE.compareTo(mapping.node().version()) > 0)
+                finish = false;
+        }
+
         return finish;
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/7d5d9cd6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index 5627201..5ef5629 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@ -75,6 +75,7 @@ import org.jetbrains.annotations.Nullable;
 import static org.apache.ignite.internal.managers.communication.GridIoPolicy.SYSTEM_POOL;
 import static org.apache.ignite.internal.managers.communication.GridIoPolicy.UTILITY_CACHE_POOL;
 import static org.apache.ignite.internal.processors.cache.GridCacheUtils.isNearEnabled;
+import static org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxFinishFuture.FINISH_NEAR_ONE_PHASE_SINCE;
 import static org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx.FinalizationStatus.USER_FINISH;
 import static org.apache.ignite.transactions.TransactionConcurrency.OPTIMISTIC;
 import static org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC;
@@ -392,7 +393,8 @@ public class IgniteTxHandler {
 
             tx.transactionNodes(req.transactionNodes());
 
-            if (req.near())
+            // Set near on originating node flag only if the sender node has new version.
+            if (req.near() && FINISH_NEAR_ONE_PHASE_SINCE.compareTo(nearNode.version()) <= 0)
                 tx.nearOnOriginatingNode(true);
 
             if (req.onePhaseCommit()) {


[21/50] [abbrv] ignite git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-264

Posted by ag...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-264


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

Branch: refs/heads/ignite-264
Commit: b0e6f29d72f4dfdf446d0848743424e62845e18b
Parents: 3c09254 ae11e9b
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Tue Aug 11 15:46:25 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Tue Aug 11 15:46:25 2015 -0700

----------------------------------------------------------------------
 .../configuration/IgniteConfiguration.java      |  1 -
 .../GridCachePartitionExchangeManager.java      | 48 +++++++----
 .../dht/atomic/GridDhtAtomicCache.java          | 36 +++++---
 .../cache/CacheStopAndDestroySelfTest.java      | 87 --------------------
 4 files changed, 56 insertions(+), 116 deletions(-)
----------------------------------------------------------------------



[32/50] [abbrv] ignite git commit: Regenerated messages.

Posted by ag...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
index 12e5913..f018d18 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
@@ -284,73 +284,73 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
         }
 
         switch (writer.state()) {
-            case 20:
+            case 22:
                 if (!writer.writeBoolean("explicitLock", explicitLock))
                     return false;
 
                 writer.incrementState();
 
-            case 21:
+            case 23:
                 if (!writer.writeBoolean("firstClientReq", firstClientReq))
                     return false;
 
                 writer.incrementState();
 
-            case 22:
+            case 24:
                 if (!writer.writeIgniteUuid("futId", futId))
                     return false;
 
                 writer.incrementState();
 
-            case 23:
+            case 25:
                 if (!writer.writeBoolean("implicitSingle", implicitSingle))
                     return false;
 
                 writer.incrementState();
 
-            case 24:
+            case 26:
                 if (!writer.writeBoolean("last", last))
                     return false;
 
                 writer.incrementState();
 
-            case 25:
+            case 27:
                 if (!writer.writeCollection("lastBackups", lastBackups, MessageCollectionItemType.UUID))
                     return false;
 
                 writer.incrementState();
 
-            case 26:
+            case 28:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
-            case 27:
+            case 29:
                 if (!writer.writeBoolean("near", near))
                     return false;
 
                 writer.incrementState();
 
-            case 28:
+            case 30:
                 if (!writer.writeBoolean("retVal", retVal))
                     return false;
 
                 writer.incrementState();
 
-            case 29:
+            case 31:
                 if (!writer.writeUuid("subjId", subjId))
                     return false;
 
                 writer.incrementState();
 
-            case 30:
+            case 32:
                 if (!writer.writeInt("taskNameHash", taskNameHash))
                     return false;
 
                 writer.incrementState();
 
-            case 31:
+            case 33:
                 if (!writer.writeMessage("topVer", topVer))
                     return false;
 
@@ -372,7 +372,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
             return false;
 
         switch (reader.state()) {
-            case 20:
+            case 22:
                 explicitLock = reader.readBoolean("explicitLock");
 
                 if (!reader.isLastRead())
@@ -380,7 +380,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 21:
+            case 23:
                 firstClientReq = reader.readBoolean("firstClientReq");
 
                 if (!reader.isLastRead())
@@ -388,7 +388,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 22:
+            case 24:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
@@ -396,7 +396,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 23:
+            case 25:
                 implicitSingle = reader.readBoolean("implicitSingle");
 
                 if (!reader.isLastRead())
@@ -404,7 +404,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 24:
+            case 26:
                 last = reader.readBoolean("last");
 
                 if (!reader.isLastRead())
@@ -412,7 +412,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 25:
+            case 27:
                 lastBackups = reader.readCollection("lastBackups", MessageCollectionItemType.UUID);
 
                 if (!reader.isLastRead())
@@ -420,7 +420,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 26:
+            case 28:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -428,7 +428,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 27:
+            case 29:
                 near = reader.readBoolean("near");
 
                 if (!reader.isLastRead())
@@ -436,7 +436,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 28:
+            case 30:
                 retVal = reader.readBoolean("retVal");
 
                 if (!reader.isLastRead())
@@ -444,7 +444,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 29:
+            case 31:
                 subjId = reader.readUuid("subjId");
 
                 if (!reader.isLastRead())
@@ -452,7 +452,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 30:
+            case 32:
                 taskNameHash = reader.readInt("taskNameHash");
 
                 if (!reader.isLastRead())
@@ -460,7 +460,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 31:
+            case 33:
                 topVer = reader.readMessage("topVer");
 
                 if (!reader.isLastRead())
@@ -480,7 +480,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 32;
+        return 34;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
index ea5e97a..6f8e334 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
@@ -342,61 +342,67 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
         }
 
         switch (writer.state()) {
-            case 6:
+            case 8:
                 if (!writer.writeMessage("clientRemapVer", clientRemapVer))
                     return false;
 
                 writer.incrementState();
 
-            case 7:
+            case 9:
                 if (!writer.writeMessage("dhtVer", dhtVer))
                     return false;
 
                 writer.incrementState();
 
-            case 8:
+            case 10:
                 if (!writer.writeCollection("filterFailedKeys", filterFailedKeys, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 9:
+            case 11:
                 if (!writer.writeIgniteUuid("futId", futId))
                     return false;
 
                 writer.incrementState();
 
-            case 10:
+            case 12:
                 if (!writer.writeCollection("invalidParts", invalidParts, MessageCollectionItemType.INT))
                     return false;
 
                 writer.incrementState();
 
-            case 11:
+            case 13:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
-            case 12:
+            case 14:
                 if (!writer.writeCollection("ownedValKeys", ownedValKeys, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 13:
+            case 15:
                 if (!writer.writeCollection("ownedValVals", ownedValVals, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 14:
+            case 16:
+                if (!writer.writeCollection("pending", pending, MessageCollectionItemType.MSG))
+                    return false;
+
+                writer.incrementState();
+
+            case 17:
                 if (!writer.writeMessage("retVal", retVal))
                     return false;
 
                 writer.incrementState();
 
-            case 15:
+            case 18:
                 if (!writer.writeMessage("writeVer", writeVer))
                     return false;
 
@@ -418,7 +424,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
             return false;
 
         switch (reader.state()) {
-            case 6:
+            case 8:
                 clientRemapVer = reader.readMessage("clientRemapVer");
 
                 if (!reader.isLastRead())
@@ -426,7 +432,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
 
                 reader.incrementState();
 
-            case 7:
+            case 9:
                 dhtVer = reader.readMessage("dhtVer");
 
                 if (!reader.isLastRead())
@@ -434,7 +440,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
 
                 reader.incrementState();
 
-            case 8:
+            case 10:
                 filterFailedKeys = reader.readCollection("filterFailedKeys", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -442,7 +448,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
 
                 reader.incrementState();
 
-            case 9:
+            case 11:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
@@ -450,7 +456,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
 
                 reader.incrementState();
 
-            case 10:
+            case 12:
                 invalidParts = reader.readCollection("invalidParts", MessageCollectionItemType.INT);
 
                 if (!reader.isLastRead())
@@ -458,7 +464,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
 
                 reader.incrementState();
 
-            case 11:
+            case 13:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -466,7 +472,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
 
                 reader.incrementState();
 
-            case 12:
+            case 14:
                 ownedValKeys = reader.readCollection("ownedValKeys", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -474,7 +480,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
 
                 reader.incrementState();
 
-            case 13:
+            case 15:
                 ownedValVals = reader.readCollection("ownedValVals", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -482,7 +488,15 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
 
                 reader.incrementState();
 
-            case 14:
+            case 16:
+                pending = reader.readCollection("pending", MessageCollectionItemType.MSG);
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 17:
                 retVal = reader.readMessage("retVal");
 
                 if (!reader.isLastRead())
@@ -490,7 +504,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
 
                 reader.incrementState();
 
-            case 15:
+            case 18:
                 writeVer = reader.readMessage("writeVer");
 
                 if (!reader.isLastRead())
@@ -510,7 +524,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 16;
+        return 19;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearUnlockRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearUnlockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearUnlockRequest.java
index 29e836c..14f468f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearUnlockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearUnlockRequest.java
@@ -83,7 +83,7 @@ public class GridNearUnlockRequest extends GridDistributedUnlockRequest {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 6;
+        return 8;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFileAffinityRange.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFileAffinityRange.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFileAffinityRange.java
index d18ea82..5170451 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFileAffinityRange.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFileAffinityRange.java
@@ -267,7 +267,6 @@ public class IgfsFileAffinityRange implements Message, Externalizable {
                 writer.incrementState();
 
             case 1:
-                // The field 'done' was removed, but its writing preserved for compatibility reasons.
                 if (!writer.writeBoolean("done", done))
                     return false;
 
@@ -313,7 +312,6 @@ public class IgfsFileAffinityRange implements Message, Externalizable {
                 reader.incrementState();
 
             case 1:
-                // field 'done' was removed, but reading preserved for compatibility reasons.
                 done = reader.readBoolean("done");
 
                 if (!reader.isLastRead())


[05/50] [abbrv] ignite git commit: IGNITE-264 - Rebuilt message.

Posted by ag...@apache.org.
IGNITE-264 - Rebuilt message.


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

Branch: refs/heads/ignite-264
Commit: 37805a56c63e07e5c474c52e7383cd9a106dbb9a
Parents: bae01f8
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Thu Feb 26 16:21:03 2015 -0800
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Thu Feb 26 16:21:03 2015 -0800

----------------------------------------------------------------------
 .../processors/cache/distributed/GridDistributedBaseMessage.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/37805a56/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
index 25d3743..be31c56 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
@@ -232,7 +232,7 @@ public abstract class GridDistributedBaseMessage<K, V> extends GridCacheMessage<
 
                 writer.incrementState();
 
-            case 7:
+            case 5:
                 if (!writer.writeMessage("ver", ver))
                     return false;
 
@@ -270,7 +270,7 @@ public abstract class GridDistributedBaseMessage<K, V> extends GridCacheMessage<
 
                 reader.incrementState();
 
-            case 7:
+            case 5:
                 ver = reader.readMessage("ver");
 
                 if (!reader.isLastRead())


[42/50] [abbrv] ignite git commit: Merge branch master into ignite-264

Posted by ag...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvcc.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheEntry.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
----------------------------------------------------------------------

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

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

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

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
index 1a269ec,d696c05..ec0f234
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
@@@ -17,17 -17,14 +17,18 @@@
  
  package org.apache.ignite.internal.processors.cache.distributed.dht;
  
- import org.apache.ignite.*;
- import org.apache.ignite.internal.*;
- import org.apache.ignite.internal.processors.cache.*;
- import org.apache.ignite.internal.processors.cache.distributed.*;
- import org.apache.ignite.internal.processors.cache.version.*;
- import org.apache.ignite.internal.util.typedef.internal.*;
- import org.apache.ignite.lang.*;
- import org.apache.ignite.plugin.extensions.communication.*;
- 
- import java.io.*;
- import java.nio.*;
+ import java.io.Externalizable;
+ import java.nio.ByteBuffer;
++
++import org.apache.ignite.IgniteCheckedException;
++import org.apache.ignite.internal.GridDirectTransient;
++import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+ import org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxFinishResponse;
+ import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
+ import org.apache.ignite.internal.util.typedef.internal.S;
+ import org.apache.ignite.lang.IgniteUuid;
+ import org.apache.ignite.plugin.extensions.communication.MessageReader;
+ import org.apache.ignite.plugin.extensions.communication.MessageWriter;
  
  /**
   * DHT transaction finish response.
@@@ -211,6 -125,6 +212,6 @@@ public class GridDhtTxFinishResponse ex
  
      /** {@inheritDoc} */
      @Override public byte fieldsCount() {
 -        return 6;
 +        return 8;
      }
- }
+ }

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/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/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
index 7b164b8,f29bd28..d437909
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
@@@ -17,31 -17,39 +17,43 @@@
  
  package org.apache.ignite.internal.processors.cache.distributed.near;
  
- import org.apache.ignite.*;
- import org.apache.ignite.cluster.*;
- import org.apache.ignite.internal.*;
- import org.apache.ignite.internal.cluster.*;
- import org.apache.ignite.internal.processors.affinity.*;
- import org.apache.ignite.internal.processors.cache.*;
- import org.apache.ignite.internal.processors.cache.distributed.*;
- import org.apache.ignite.internal.processors.cache.distributed.dht.*;
- import org.apache.ignite.internal.processors.cache.transactions.*;
- import org.apache.ignite.internal.processors.cache.version.*;
- import org.apache.ignite.internal.transactions.*;
- import org.apache.ignite.internal.util.future.*;
- import org.apache.ignite.internal.util.tostring.*;
- import org.apache.ignite.internal.util.typedef.*;
- import org.apache.ignite.internal.util.typedef.internal.*;
- import org.apache.ignite.lang.*;
- import org.apache.ignite.transactions.*;
- import org.jetbrains.annotations.*;
- 
- import java.util.*;
- import java.util.concurrent.*;
- import java.util.concurrent.atomic.*;
- 
- import static org.apache.ignite.internal.processors.cache.GridCacheOperation.*;
- import static org.apache.ignite.transactions.TransactionState.*;
+ import java.util.Collection;
+ import java.util.UUID;
+ import java.util.concurrent.ConcurrentMap;
+ import java.util.concurrent.atomic.AtomicReference;
+ import org.apache.ignite.IgniteCheckedException;
+ import org.apache.ignite.IgniteLogger;
+ import org.apache.ignite.cluster.ClusterNode;
+ import org.apache.ignite.internal.IgniteInternalFuture;
+ import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
+ import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
+ import org.apache.ignite.internal.processors.cache.GridCacheContext;
+ import org.apache.ignite.internal.processors.cache.GridCacheEntryEx;
+ import org.apache.ignite.internal.processors.cache.GridCacheFuture;
+ import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+ import org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxMapping;
++import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxFinishRequest;
++import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxFinishResponse;
+ import org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
+ import org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry;
+ import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
+ import org.apache.ignite.internal.transactions.IgniteTxHeuristicCheckedException;
+ import org.apache.ignite.internal.transactions.IgniteTxRollbackCheckedException;
+ import org.apache.ignite.internal.util.future.GridCompoundIdentityFuture;
+ import org.apache.ignite.internal.util.future.GridFutureAdapter;
+ import org.apache.ignite.internal.util.tostring.GridToStringInclude;
+ import org.apache.ignite.internal.util.typedef.C1;
+ import org.apache.ignite.internal.util.typedef.F;
++import org.apache.ignite.internal.util.typedef.internal.CU;
+ import org.apache.ignite.internal.util.typedef.internal.S;
+ import org.apache.ignite.internal.util.typedef.internal.U;
+ import org.apache.ignite.lang.IgniteClosure;
+ import org.apache.ignite.lang.IgniteUuid;
++import org.apache.ignite.transactions.TransactionRollbackException;
+ import org.jetbrains.annotations.Nullable;
+ 
+ import static org.apache.ignite.internal.processors.cache.GridCacheOperation.NOOP;
 -import static org.apache.ignite.transactions.TransactionState.COMMITTING;
++import static org.apache.ignite.transactions.TransactionState.UNKNOWN;
  
  /**
   *

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxRemote.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index 7523af6,d64b26e..5627201
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@@ -17,31 -17,69 +17,70 @@@
  
  package org.apache.ignite.internal.processors.cache.transactions;
  
- import org.apache.ignite.*;
- import org.apache.ignite.cluster.*;
- import org.apache.ignite.internal.*;
- import org.apache.ignite.internal.cluster.*;
- import org.apache.ignite.internal.processors.affinity.*;
- import org.apache.ignite.internal.processors.cache.*;
- import org.apache.ignite.internal.processors.cache.distributed.*;
- import org.apache.ignite.internal.processors.cache.distributed.dht.*;
- import org.apache.ignite.internal.processors.cache.distributed.near.*;
- import org.apache.ignite.internal.processors.cache.version.*;
- import org.apache.ignite.internal.transactions.*;
- import org.apache.ignite.internal.util.future.*;
- import org.apache.ignite.internal.util.lang.*;
- import org.apache.ignite.internal.util.typedef.*;
- import org.apache.ignite.internal.util.typedef.internal.*;
- import org.apache.ignite.lang.*;
- import org.jetbrains.annotations.*;
- 
- import java.util.*;
- 
- import static org.apache.ignite.internal.managers.communication.GridIoPolicy.*;
- import static org.apache.ignite.internal.processors.cache.GridCacheUtils.*;
- import static org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx.FinalizationStatus.*;
- import static org.apache.ignite.transactions.TransactionConcurrency.*;
- import static org.apache.ignite.transactions.TransactionState.*;
+ import java.util.Collection;
+ import java.util.UUID;
+ import org.apache.ignite.IgniteCheckedException;
+ import org.apache.ignite.IgniteLogger;
+ import org.apache.ignite.cluster.ClusterNode;
+ import org.apache.ignite.internal.IgniteInternalFuture;
+ import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
+ import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
+ import org.apache.ignite.internal.processors.cache.GridCacheContext;
+ import org.apache.ignite.internal.processors.cache.GridCacheEntryEx;
+ import org.apache.ignite.internal.processors.cache.GridCacheEntryInfo;
+ import org.apache.ignite.internal.processors.cache.GridCacheMessage;
+ import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+ import org.apache.ignite.internal.processors.cache.KeyCacheObject;
+ import org.apache.ignite.internal.processors.cache.distributed.GridCacheTxRecoveryFuture;
+ import org.apache.ignite.internal.processors.cache.distributed.GridCacheTxRecoveryRequest;
+ import org.apache.ignite.internal.processors.cache.distributed.GridCacheTxRecoveryResponse;
+ import org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxRemoteAdapter;
+ import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtInvalidPartitionException;
+ import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionTopology;
+ import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxFinishFuture;
+ import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxFinishRequest;
+ import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxFinishResponse;
+ import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocal;
+ import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture;
+ import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareRequest;
+ import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareResponse;
+ import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxRemote;
+ import org.apache.ignite.internal.processors.cache.distributed.near.GridNearCacheAdapter;
+ import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxFinishFuture;
+ import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxFinishRequest;
+ import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxFinishResponse;
+ import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal;
+ import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxPrepareFutureAdapter;
+ import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxPrepareRequest;
+ import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxPrepareResponse;
+ import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxRemote;
+ import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
+ import org.apache.ignite.internal.transactions.IgniteTxHeuristicCheckedException;
+ import org.apache.ignite.internal.transactions.IgniteTxOptimisticCheckedException;
+ import org.apache.ignite.internal.transactions.IgniteTxRollbackCheckedException;
+ import org.apache.ignite.internal.util.future.GridCompoundFuture;
+ import org.apache.ignite.internal.util.future.GridEmbeddedFuture;
+ import org.apache.ignite.internal.util.future.GridFinishedFuture;
+ import org.apache.ignite.internal.util.lang.GridClosureException;
+ import org.apache.ignite.internal.util.typedef.C2;
+ import org.apache.ignite.internal.util.typedef.CI1;
+ import org.apache.ignite.internal.util.typedef.CI2;
+ import org.apache.ignite.internal.util.typedef.F;
++import org.apache.ignite.internal.util.typedef.X;
+ import org.apache.ignite.internal.util.typedef.internal.CU;
+ import org.apache.ignite.internal.util.typedef.internal.U;
++import org.apache.ignite.lang.IgniteFutureCancelledException;
+ import org.jetbrains.annotations.Nullable;
+ 
+ import static org.apache.ignite.internal.managers.communication.GridIoPolicy.SYSTEM_POOL;
+ import static org.apache.ignite.internal.managers.communication.GridIoPolicy.UTILITY_CACHE_POOL;
+ import static org.apache.ignite.internal.processors.cache.GridCacheUtils.isNearEnabled;
+ import static org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx.FinalizationStatus.USER_FINISH;
+ import static org.apache.ignite.transactions.TransactionConcurrency.OPTIMISTIC;
+ import static org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC;
 -import static org.apache.ignite.transactions.TransactionIsolation.READ_COMMITTED;
+ import static org.apache.ignite.transactions.TransactionState.PREPARED;
+ import static org.apache.ignite.transactions.TransactionState.ROLLED_BACK;
+ import static org.apache.ignite.transactions.TransactionState.ROLLING_BACK;
  
  /**
   * Isolated logic to process cache messages.

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridTransactionalCacheQueueImpl.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridTransactionalCacheQueueImpl.java
index 7dfd41e,94cbfbd..c7750a6
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridTransactionalCacheQueueImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridTransactionalCacheQueueImpl.java
@@@ -17,22 -17,24 +17,27 @@@
  
  package org.apache.ignite.internal.processors.datastructures;
  
- import org.apache.ignite.*;
- import org.apache.ignite.internal.cluster.*;
- import org.apache.ignite.internal.processors.cache.*;
- import org.apache.ignite.internal.processors.cache.transactions.*;
- import org.apache.ignite.internal.transactions.*;
- import org.apache.ignite.internal.util.typedef.internal.*;
- import org.apache.ignite.transactions.*;
- import org.jetbrains.annotations.*;
- 
- import java.util.*;
- 
- import static org.apache.ignite.transactions.TransactionConcurrency.*;
- import static org.apache.ignite.transactions.TransactionIsolation.*;
+ import java.util.Collection;
+ import java.util.HashMap;
+ import java.util.Map;
+ import org.apache.ignite.IgniteCheckedException;
+ import org.apache.ignite.IgniteException;
++import org.apache.ignite.IgniteQueue;
+ import org.apache.ignite.internal.cluster.ClusterGroupEmptyCheckedException;
+ import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
+ import org.apache.ignite.internal.processors.cache.GridCacheContext;
+ import org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
++import org.apache.ignite.internal.transactions.IgniteTxRollbackCheckedException;
+ import org.apache.ignite.internal.util.typedef.internal.A;
+ import org.apache.ignite.internal.util.typedef.internal.U;
++import org.apache.ignite.transactions.TransactionRollbackException;
+ import org.jetbrains.annotations.Nullable;
+ 
+ import static org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC;
+ import static org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_READ;
  
  /**
 - * {@link org.apache.ignite.IgniteQueue} implementation using transactional cache.
 + * {@link IgniteQueue} implementation using transactional cache.
   */
  public class GridTransactionalCacheQueueImpl<T> extends GridCacheQueueAdapter<T> {
      /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFileAffinityRange.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePutAllFailoverSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteInternalCacheTypesTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePartitionNotLoadedEventSelfTest.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePartitionNotLoadedEventSelfTest.java
index 3ef2641,9ef99f7..f0c0c20
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePartitionNotLoadedEventSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePartitionNotLoadedEventSelfTest.java
@@@ -17,25 -17,29 +17,30 @@@
  
  package org.apache.ignite.internal.processors.cache.distributed;
  
- import org.apache.ignite.*;
- import org.apache.ignite.cache.*;
- import org.apache.ignite.cache.affinity.*;
- import org.apache.ignite.configuration.*;
- import org.apache.ignite.events.*;
- import org.apache.ignite.internal.*;
- import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.*;
- import org.apache.ignite.internal.util.lang.*;
- import org.apache.ignite.lang.*;
- import org.apache.ignite.spi.discovery.tcp.*;
- import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
- import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
- import org.apache.ignite.testframework.*;
- import org.apache.ignite.testframework.junits.common.*;
- import org.apache.ignite.util.*;
- import org.eclipse.jetty.util.*;
- 
- import java.util.*;
- import java.util.concurrent.*;
+ import java.util.Collection;
+ import java.util.UUID;
+ import java.util.concurrent.Callable;
+ import java.util.concurrent.TimeUnit;
+ import org.apache.ignite.IgniteCache;
+ import org.apache.ignite.cache.CacheMode;
+ import org.apache.ignite.cache.affinity.Affinity;
+ import org.apache.ignite.configuration.CacheConfiguration;
+ import org.apache.ignite.configuration.IgniteConfiguration;
+ import org.apache.ignite.events.CacheRebalancingEvent;
+ import org.apache.ignite.events.Event;
+ import org.apache.ignite.events.EventType;
+ import org.apache.ignite.internal.IgniteFutureTimeoutCheckedException;
+ import org.apache.ignite.internal.IgniteInternalFuture;
+ import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsFullMessage;
++import org.apache.ignite.internal.util.lang.GridAbsPredicate;
+ import org.apache.ignite.lang.IgnitePredicate;
+ import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+ import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
+ import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+ import org.apache.ignite.testframework.GridTestUtils;
+ import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+ import org.apache.ignite.util.TestTcpCommunicationSpi;
+ import org.eclipse.jetty.util.ConcurrentHashSet;
  
  /**
   *

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTransformEventSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/22d15de3/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
----------------------------------------------------------------------


[04/50] [abbrv] ignite git commit: Merge branch 'sprint-2' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-264

Posted by ag...@apache.org.
Merge branch 'sprint-2' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-264


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

Branch: refs/heads/ignite-264
Commit: bae01f894dbacaf405e6f50ba35fd98d70c2ae4e
Parents: 541175b 47539d8
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Thu Feb 26 16:18:48 2015 -0800
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Thu Feb 26 16:18:48 2015 -0800

----------------------------------------------------------------------
 .../hibernate/example-hibernate-L2-cache.xml    |    2 +-
 .../ComputeFibonacciContinuationExample.java    |   17 +-
 .../datagrid/CacheContinuousQueryExample.java   |    6 +-
 .../IgniteCountDownLatchExample.java            |    3 +-
 .../MessagingPingPongListenActorExample.java    |    3 +-
 .../examples/ScalarContinuationExample.scala    |   20 +-
 .../checkpoint/s3/S3CheckpointSpiSelfTest.java  |   10 +-
 .../internal/client/ClientStartNodeTask.java    |    5 +-
 .../processors/rest/RestProcessorTest.java      |    8 +-
 .../processors/rest/TestBinaryClient.java       |    1 -
 .../processors/rest/TestMemcacheClient.java     |   13 +-
 .../protocols/tcp/TcpRestParserSelfTest.java    |    2 +-
 .../ignite/codegen/MessageCodeGenerator.java    |   28 +-
 .../java/org/apache/ignite/IgniteCache.java     |   69 +
 .../java/org/apache/ignite/IgniteCluster.java   |    3 +-
 .../main/java/org/apache/ignite/IgniteFs.java   |    2 +-
 .../apache/ignite/IgniteSystemProperties.java   |    5 +
 .../ignite/cache/IgniteEntryProcessor.java      |   28 +
 .../CacheRendezvousAffinityFunction.java        |    1 +
 .../cache/store/jdbc/CacheJdbcPojoStore.java    |   28 +-
 .../ignite/cluster/ClusterNodeLocalMap.java     |   60 -
 .../org/apache/ignite/events/EventType.java     |    8 +
 .../IgfsByteDelimiterRecordResolver.java        |    1 +
 .../java/org/apache/ignite/igfs/package.html    |    2 +-
 .../ignite/internal/ClusterMetricsSnapshot.java |    9 +-
 .../internal/GridEventConsumeHandler.java       |    1 +
 .../ignite/internal/GridKernalContext.java      |    8 +
 .../ignite/internal/GridKernalContextImpl.java  |   11 +
 .../internal/GridMessageListenHandler.java      |    1 +
 .../apache/ignite/internal/IgniteKernal.java    |    6 +
 .../cluster/ClusterNodeLocalMapImpl.java        |   27 +-
 .../cluster/IgniteClusterAsyncImpl.java         |    3 +-
 .../internal/cluster/IgniteClusterImpl.java     |    4 +-
 .../internal/events/DiscoveryCustomEvent.java   |   68 +
 .../igfs/common/IgfsControlResponse.java        |    1 +
 .../internal/igfs/common/IgfsMarshaller.java    |    1 +
 .../internal/managers/GridManagerAdapter.java   |    5 +
 .../discovery/GridDiscoveryManager.java         |   79 +-
 .../affinity/GridAffinityMessage.java           |    1 +
 .../processors/cache/GridCacheEntryInfo.java    |    5 +-
 .../processors/cache/GridCacheSwapManager.java  |    4 +-
 .../processors/cache/GridCacheUtils.java        |    4 +
 .../processors/cache/IgniteCacheProxy.java      |   63 +
 .../query/GridCacheDistributedQueryManager.java |    4 +-
 .../cache/query/GridCacheQueryManager.java      |    2 +-
 .../continuous/CacheContinuousQueryEntry.java   |    1 +
 .../continuous/CacheContinuousQueryHandler.java |    1 +
 .../cache/transactions/IgniteTxEntry.java       |    5 +-
 .../version/GridCacheRawVersionedEntry.java     |    1 +
 .../processors/clock/GridClockMessage.java      |    1 +
 .../dataload/GridDataLoaderProcessor.java       |    2 +-
 .../datastructures/DataStructuresProcessor.java |    2 +-
 .../processors/igfs/IgfsDataManager.java        |    4 +-
 .../internal/processors/igfs/IgfsImpl.java      |    6 +-
 .../processors/igfs/IgfsOutputStreamImpl.java   |    4 +-
 .../internal/processors/igfs/IgfsServer.java    |    1 +
 .../internal/processors/job/GridJobWorker.java  |    2 +-
 .../processors/rest/GridRestResponse.java       |    1 +
 .../message/GridClientAbstractMessage.java      |    1 +
 .../message/GridClientHandshakeRequest.java     |    1 +
 .../cache/GridCacheQueryCommandHandler.java     |    7 +-
 .../protocols/tcp/GridMemcachedMessage.java     |    3 +-
 .../rest/protocols/tcp/GridTcpRestParser.java   |   10 +-
 .../processors/task/GridTaskWorker.java         |    4 +-
 .../internal/util/IgniteExceptionRegistry.java  |  259 ++
 .../ignite/internal/util/IgniteUtils.java       | 2569 ++++++++----------
 .../nio/GridConnectionBytesVerifyFilter.java    |    1 +
 .../util/nio/GridTcpCommunicationClient.java    |    1 +
 .../apache/ignite/internal/util/typedef/X.java  |    3 +-
 .../cache/VisorCacheMetricsCollectorTask.java   |   10 +-
 .../VisorComputeToggleMonitoringTask.java       |    4 +-
 .../visor/node/VisorNodeDataCollectorJob.java   |    4 +-
 .../node/VisorNodeEventsCollectorTask.java      |   13 +-
 .../internal/visor/node/VisorNodeGcTask.java    |   10 +-
 .../internal/visor/node/VisorNodePingTask.java  |   10 +-
 .../visor/query/VisorQueryCleanupTask.java      |    4 +-
 .../visor/query/VisorQueryNextPageTask.java     |    6 +-
 .../internal/visor/query/VisorQueryTask.java    |    4 +-
 .../internal/visor/util/VisorTaskUtils.java     |   45 +-
 .../ignite/lang/IgniteProductVersion.java       |    1 +
 .../optimized/optimized-classnames.properties   |    2 +-
 .../org/apache/ignite/mxbean/IgniteMXBean.java  |    6 +
 .../org/apache/ignite/spi/IgniteSpiAdapter.java |   15 +
 .../org/apache/ignite/spi/IgniteSpiContext.java |    8 +
 .../ignite/spi/IgniteSpiThreadFactory.java      |    2 +-
 .../communication/tcp/TcpCommunicationSpi.java  |   54 +-
 .../ignite/spi/discovery/DiscoverySpi.java      |    7 +
 .../spi/discovery/DiscoverySpiListener.java     |   11 +-
 .../discovery/tcp/TcpClientDiscoverySpi.java    |    7 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |  141 +-
 .../discovery/tcp/TcpDiscoverySpiAdapter.java   |    3 +
 .../tcp/internal/TcpDiscoveryNode.java          |    1 +
 .../TcpDiscoveryMulticastIpFinder.java          |    1 +
 .../messages/TcpDiscoveryAuthFailedMessage.java |    1 +
 .../TcpDiscoveryCustomEventMessage.java         |   66 +
 .../messages/TcpDiscoveryHeartbeatMessage.java  |    1 +
 .../spi/swapspace/file/FileSwapSpaceSpi.java    |    2 +-
 .../internal/GridDiscoveryEventSelfTest.java    |   44 +
 .../internal/GridEventStorageSelfTest.java      |    3 +-
 .../GridJobMasterLeaveAwareSelfTest.java        |   24 +-
 .../internal/GridMultipleJobsSelfTest.java      |    2 +-
 .../ignite/internal/GridNodeLocalSelfTest.java  |    4 +-
 .../GridTaskContinuousMapperSelfTest.java       |    3 +-
 .../GridTaskExecutionContextSelfTest.java       |    2 +-
 .../GridCheckpointManagerAbstractSelfTest.java  |   20 +-
 .../cache/GridCacheAbstractFullApiSelfTest.java |  101 +-
 .../GridCacheConcurrentTxMultiNodeTest.java     |   13 +-
 .../cache/GridCachePutAllFailoverSelfTest.java  |    5 +-
 .../cache/IgniteTxMultiNodeAbstractTest.java    |   33 +-
 ...cheAtomicReferenceMultiNodeAbstractTest.java |   12 +-
 .../GridCacheMultiNodeDataStructureTest.java    |    3 +-
 ...dCacheSequenceMultiNodeAbstractSelfTest.java |    2 +-
 ...titionedAtomicSequenceMultiThreadedTest.java |   16 +-
 ...dCachePartitionedQueueEntryMoveSelfTest.java |    2 +-
 .../GridCacheAbstractJobExecutionTest.java      |    2 +-
 .../distributed/GridCacheEventAbstractTest.java |    4 +-
 .../dht/GridCacheDhtInternalEntrySelfTest.java  |    6 +-
 .../dht/GridCacheDhtMultiBackupTest.java        |    2 +-
 ...idCachePartitionedHitsAndMissesSelfTest.java |    3 +-
 ...ePartitionedMultiThreadedPutGetSelfTest.java |    2 +-
 .../GridCacheRandomEvictionPolicySelfTest.java  |    2 +-
 .../IgniteCacheLoaderWriterAbstractTest.java    |   47 +
 .../closure/GridClosureProcessorSelfTest.java   |   14 +-
 .../processors/igfs/IgfsAbstractSelfTest.java   |    5 +-
 .../igfs/IgfsDataManagerSelfTest.java           |    1 +
 .../processors/igfs/IgfsProcessorSelfTest.java  |    3 +-
 .../streamer/GridStreamerEvictionSelfTest.java  |    2 +-
 .../streamer/GridStreamerSelfTest.java          |    2 +-
 ...dStartupWithUndefinedIgniteHomeSelfTest.java |  103 +
 .../util/IgniteExceptionRegistrySelfTest.java   |   89 +
 .../internal/util/IgniteUtilsSelfTest.java      |    6 +-
 .../internal/util/nio/GridRoundTripTest.java    |    1 +
 .../offheap/GridOffHeapMapAbstractSelfTest.java |    1 +
 .../cache/GridCacheDataStructuresLoadTest.java  |   36 +-
 .../loadtests/cache/GridCacheLoadTest.java      |    6 +-
 .../loadtests/cache/GridCacheSwapLoadTest.java  |    5 +-
 .../loadtests/colocation/GridTestMain.java      |    3 +-
 .../communication/GridIoManagerBenchmark.java   |    3 +-
 .../GridMultiSplitsRedeployLoadTest.java        |    5 +-
 .../loadtests/discovery/GridGcTimeoutTest.java  |    3 +-
 .../ignite/loadtests/dsi/GridDsiPerfJob.java    |   16 +-
 .../job/GridJobExecutionSingleNodeLoadTest.java |    2 +-
 .../mapper/GridContinuousMapperLoadTest1.java   |    3 +-
 .../loadtests/mapper/GridNodeStartup.java       |    3 +-
 .../mergesort/GridMergeSortLoadTest.java        |    3 +-
 .../streamer/GridStreamerIndexLoadTest.java     |    4 +-
 .../swap/GridSwapEvictAllBenchmark.java         |    3 +-
 .../marshaller/GridMarshallerAbstractTest.java  |    6 +-
 ...idSessionFutureWaitJobAttributeSelfTest.java |    3 +-
 .../GridSessionSetTaskAttributeSelfTest.java    |    3 +-
 ...GridSessionTaskWaitJobAttributeSelfTest.java |    3 +-
 .../discovery/AbstractDiscoverySelfTest.java    |    7 +-
 .../roundrobin/GridRoundRobinTestUtils.java     |    6 +-
 .../file/GridFileSwapSpaceSpiSelfTest.java      |    1 +
 .../index/GridStreamerIndexSelfTest.java        |   17 +-
 .../window/GridStreamerWindowSelfTest.java      |    3 +-
 .../testframework/GridSpiTestContext.java       |    6 +
 .../junits/GridTestKernalContext.java           |    2 +
 .../cache/GridAbstractCacheStoreSelfTest.java   |    3 +-
 .../testsuites/IgniteKernalSelfTestSuite.java   |    1 +
 .../testsuites/IgniteUtilSelfTestSuite.java     |    1 +
 .../tests/p2p/GridP2PAwareTestUserResource.java |    5 +-
 .../tests/p2p/GridTestMessageListener.java      |    4 +-
 modules/hadoop/pom.xml                          |   10 -
 .../java/org/apache/ignite/igfs/package.html    |    2 +-
 .../internal/igfs/hadoop/IgfsHadoopWrapper.java |    2 +-
 .../processors/hadoop/GridHadoopSetup.java      |    3 +-
 .../GridHadoopDefaultMapReducePlanner.java      |    3 +-
 .../shuffle/GridHadoopShuffleMessage.java       |    1 +
 .../taskexecutor/GridHadoopExecutorService.java |    2 +-
 .../hadoop/v2/GridHadoopSplitWrapper.java       |    3 +-
 .../hadoop/GridHadoopGroupingTest.java          |   10 +-
 .../hadoop/GridHadoopJobTrackerSelfTest.java    |    2 +-
 .../hadoop/GridHadoopSortingTest.java           |    9 +-
 .../processors/hadoop/GridHadoopStartup.java    |    2 +-
 .../ignite/loadtests/igfs/IgfsNodeStartup.java  |    3 +-
 .../testsuites/IgniteHadoopTestSuite.java       |    7 +-
 ...idHibernateAbstractRegionAccessStrategy.java |   97 -
 .../GridHibernateAccessStrategyAdapter.java     |  369 ---
 .../GridHibernateCollectionRegion.java          |   99 -
 .../hibernate/GridHibernateEntityRegion.java    |  110 -
 .../GridHibernateGeneralDataRegion.java         |   69 -
 .../hibernate/GridHibernateNaturalIdRegion.java |   98 -
 .../GridHibernateNonStrictAccessStrategy.java   |  220 --
 .../GridHibernateQueryResultsRegion.java        |   71 -
 .../GridHibernateReadOnlyAccessStrategy.java    |  106 -
 .../GridHibernateReadWriteAccessStrategy.java   |  282 --
 .../cache/hibernate/GridHibernateRegion.java    |  101 -
 .../hibernate/GridHibernateRegionFactory.java   |  231 --
 .../GridHibernateTimestampsRegion.java          |   40 -
 ...ridHibernateTransactionalAccessStrategy.java |  139 -
 .../GridHibernateTransactionalDataRegion.java   |   96 -
 .../HibernateAbstractRegionAccessStrategy.java  |   97 +
 .../HibernateAccessStrategyAdapter.java         |  369 +++
 .../hibernate/HibernateCollectionRegion.java    |   99 +
 .../cache/hibernate/HibernateEntityRegion.java  |  110 +
 .../hibernate/HibernateGeneralDataRegion.java   |   69 +
 .../hibernate/HibernateNaturalIdRegion.java     |   98 +
 .../HibernateNonStrictAccessStrategy.java       |  220 ++
 .../hibernate/HibernateQueryResultsRegion.java  |   71 +
 .../HibernateReadOnlyAccessStrategy.java        |  106 +
 .../HibernateReadWriteAccessStrategy.java       |  282 ++
 .../ignite/cache/hibernate/HibernateRegion.java |  101 +
 .../cache/hibernate/HibernateRegionFactory.java |  231 ++
 .../hibernate/HibernateTimestampsRegion.java    |   40 +
 .../HibernateTransactionalAccessStrategy.java   |  139 +
 .../HibernateTransactionalDataRegion.java       |   96 +
 .../apache/ignite/cache/hibernate/package.html  |    2 +-
 ...idHibernateL2CacheConfigurationSelfTest.java |  393 ---
 .../hibernate/GridHibernateL2CacheSelfTest.java | 1923 -------------
 ...idHibernateL2CacheTransactionalSelfTest.java |  135 -
 .../HibernateL2CacheConfigurationSelfTest.java  |  393 +++
 .../hibernate/HibernateL2CacheSelfTest.java     | 1925 +++++++++++++
 .../HibernateL2CacheTransactionalSelfTest.java  |  135 +
 .../testsuites/IgniteHibernateTestSuite.java    |    6 +-
 .../cache/GridCacheCrossCacheQuerySelfTest.java |    2 +-
 .../GridCacheCrossCacheQuerySelfTestNewApi.java |    2 +-
 .../http/jetty/GridJettyRestHandler.java        |    1 +
 .../p2p/GridP2PUserVersionChangeSelfTest.java   |    4 +-
 ...gniteProjectionStartStopRestartSelfTest.java |    3 +-
 220 files changed, 7386 insertions(+), 6564 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/bae01f89/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/bae01f89/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/bae01f89/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/bae01f89/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
----------------------------------------------------------------------


[40/50] [abbrv] ignite git commit: IGNITE-264 - Corrected test.

Posted by ag...@apache.org.
IGNITE-264 - Corrected test.


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

Branch: refs/heads/ignite-264
Commit: c29fe34accf11dcc60058fb411b8dcf7962c5a01
Parents: 556514a
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Thu Aug 27 11:51:36 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Thu Aug 27 11:51:36 2015 -0700

----------------------------------------------------------------------
 ...ridCachePartitionNotLoadedEventSelfTest.java | 27 +++++++++++++++-----
 1 file changed, 20 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/c29fe34a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePartitionNotLoadedEventSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePartitionNotLoadedEventSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePartitionNotLoadedEventSelfTest.java
index baa6d89..3ef2641 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePartitionNotLoadedEventSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePartitionNotLoadedEventSelfTest.java
@@ -24,6 +24,7 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.events.*;
 import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.*;
+import org.apache.ignite.internal.util.lang.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.spi.discovery.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
@@ -93,7 +94,7 @@ public class GridCachePartitionNotLoadedEventSelfTest extends GridCommonAbstract
         startGrid(1);
         startGrid(2);
 
-        PartitionNotFullyLoadedListener lsnr = new PartitionNotFullyLoadedListener();
+        final PartitionNotFullyLoadedListener lsnr = new PartitionNotFullyLoadedListener();
 
         ignite(2).events().localListen(lsnr, EventType.EVT_CACHE_REBALANCE_PART_DATA_LOST);
 
@@ -122,7 +123,11 @@ public class GridCachePartitionNotLoadedEventSelfTest extends GridCommonAbstract
 
         assert !cache.containsKey(key);
 
-        assert !lsnr.lostParts.isEmpty();
+        GridTestUtils.waitForCondition(new GridAbsPredicate() {
+            @Override public boolean apply() {
+                return !lsnr.lostParts.isEmpty();
+            }
+        }, getTestTimeout());
     }
 
     /**
@@ -132,7 +137,7 @@ public class GridCachePartitionNotLoadedEventSelfTest extends GridCommonAbstract
         startGrid(0);
         startGrid(1);
 
-        PartitionNotFullyLoadedListener lsnr = new PartitionNotFullyLoadedListener();
+        final PartitionNotFullyLoadedListener lsnr = new PartitionNotFullyLoadedListener();
 
         ignite(1).events().localListen(lsnr, EventType.EVT_CACHE_REBALANCE_PART_DATA_LOST);
 
@@ -150,7 +155,11 @@ public class GridCachePartitionNotLoadedEventSelfTest extends GridCommonAbstract
 
         assert !jcache(1).containsKey(key);
 
-        assert !lsnr.lostParts.isEmpty();
+        GridTestUtils.waitForCondition(new GridAbsPredicate() {
+            @Override public boolean apply() {
+                return !lsnr.lostParts.isEmpty();
+            }
+        }, getTestTimeout());
     }
 
     /**
@@ -165,7 +174,7 @@ public class GridCachePartitionNotLoadedEventSelfTest extends GridCommonAbstract
 
         startGrid(0);
 
-        PartitionNotFullyLoadedListener lsnr = new PartitionNotFullyLoadedListener();
+        final PartitionNotFullyLoadedListener lsnr = new PartitionNotFullyLoadedListener();
 
         grid(1).events().localListen(lsnr, EventType.EVT_CACHE_REBALANCE_PART_DATA_LOST);
 
@@ -199,7 +208,7 @@ public class GridCachePartitionNotLoadedEventSelfTest extends GridCommonAbstract
 
         startGrid(1);
 
-        PartitionNotFullyLoadedListener lsnr = new PartitionNotFullyLoadedListener();
+        final PartitionNotFullyLoadedListener lsnr = new PartitionNotFullyLoadedListener();
 
         grid(1).events().localListen(lsnr, EventType.EVT_CACHE_REBALANCE_PART_DATA_LOST);
 
@@ -228,7 +237,11 @@ public class GridCachePartitionNotLoadedEventSelfTest extends GridCommonAbstract
 
         awaitPartitionMapExchange();
 
-        assert !lsnr.lostParts.isEmpty();
+        GridTestUtils.waitForCondition(new GridAbsPredicate() {
+            @Override public boolean apply() {
+                return !lsnr.lostParts.isEmpty();
+            }
+        }, getTestTimeout());
     }
 
     /**


[13/50] [abbrv] ignite git commit: Merge branch master into ignite-264

Posted by ag...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
----------------------------------------------------------------------
diff --cc modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
index de9d112,0540148..3fa39cc
--- a/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
+++ b/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
@@@ -141,12 -142,8 +142,12 @@@ public class MessageCodeGenerator 
  
          MessageCodeGenerator gen = new MessageCodeGenerator(srcDir);
  
-         gen.generateAndWrite(DataStreamerEntry.class);
+ //        gen.generateAndWrite(DataStreamerEntry.class);
  
 +//        gen.generateAndWrite(GridDistributedUnlockRequest.class);
 +//        gen.generateAndWrite(GridNearUnlockRequest.class);
 +//        gen.generateAndWrite(GridDhtUnlockRequest.class);
 +//
  //        gen.generateAndWrite(GridDistributedLockRequest.class);
  //        gen.generateAndWrite(GridDistributedLockResponse.class);
  //        gen.generateAndWrite(GridNearLockRequest.class);

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvcc.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java
index 0000000,663ed90..2978c77
mode 000000,100644..100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java
@@@ -1,0 -1,506 +1,530 @@@
+ /*
+  * 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;
+ 
+ import org.apache.ignite.*;
+ import org.apache.ignite.cluster.*;
+ import org.apache.ignite.internal.*;
+ import org.apache.ignite.internal.cluster.*;
+ import org.apache.ignite.internal.processors.cache.*;
++import org.apache.ignite.internal.processors.cache.distributed.dht.*;
+ import org.apache.ignite.internal.processors.cache.transactions.*;
+ import org.apache.ignite.internal.processors.cache.version.*;
+ import org.apache.ignite.internal.util.*;
+ import org.apache.ignite.internal.util.future.*;
+ import org.apache.ignite.internal.util.typedef.*;
+ import org.apache.ignite.internal.util.typedef.internal.*;
+ import org.apache.ignite.lang.*;
+ import org.jetbrains.annotations.*;
+ 
+ import java.util.*;
+ import java.util.concurrent.atomic.*;
+ 
+ /**
+  * Future verifying that all remote transactions related to transaction were prepared or committed.
+  */
+ public class GridCacheTxRecoveryFuture extends GridCompoundIdentityFuture<Boolean> implements GridCacheFuture<Boolean> {
+     /** */         
+     private static final long serialVersionUID = 0L;
+     
+     /** Logger reference. */
+     private static final AtomicReference<IgniteLogger> logRef = new AtomicReference<>();
+ 
+     /** Logger. */
+     private static IgniteLogger log;
+ 
+     /** Trackable flag. */
+     private boolean trackable = true;
+ 
+     /** Context. */
+     private final GridCacheSharedContext<?, ?> cctx;
+ 
+     /** Future ID. */
+     private final IgniteUuid futId = IgniteUuid.randomUuid();
+ 
+     /** Transaction. */
+     private final IgniteInternalTx tx;
+ 
+     /** All involved nodes. */
+     private final Map<UUID, ClusterNode> nodes;
+ 
+     /** ID of failed node started transaction. */
+     private final UUID failedNodeId;
+ 
+     /** Transaction nodes mapping. */
+     private final Map<UUID, Collection<UUID>> txNodes;
+ 
+     /** */
+     private final boolean nearTxCheck;
+ 
+     /**
+      * @param cctx Context.
+      * @param tx Transaction.
+      * @param failedNodeId ID of failed node started transaction.
+      * @param txNodes Transaction mapping.
+      */
+     @SuppressWarnings("ConstantConditions")
+     public GridCacheTxRecoveryFuture(GridCacheSharedContext<?, ?> cctx,
+         IgniteInternalTx tx,
+          UUID failedNodeId,
+         Map<UUID, Collection<UUID>> txNodes)
+     {
+         super(cctx.kernalContext(), CU.boolReducer());
+ 
+         this.cctx = cctx;
+         this.tx = tx;
+         this.txNodes = txNodes;
+         this.failedNodeId = failedNodeId;
+ 
+         if (log == null)
+             log = U.logger(cctx.kernalContext(), logRef, GridCacheTxRecoveryFuture.class);
+ 
+         nodes = new GridLeanMap<>();
+ 
+         UUID locNodeId = cctx.localNodeId();
+ 
+         for (Map.Entry<UUID, Collection<UUID>> e : tx.transactionNodes().entrySet()) {
+             if (!locNodeId.equals(e.getKey()) && !failedNodeId.equals(e.getKey()) && !nodes.containsKey(e.getKey())) {
+                 ClusterNode node = cctx.discovery().node(e.getKey());
+ 
+                 if (node != null)
+                     nodes.put(node.id(), node);
+                 else if (log.isDebugEnabled())
+                     log.debug("Transaction node left (will ignore) " + e.getKey());
+             }
+ 
+             for (UUID nodeId : e.getValue()) {
+                 if (!locNodeId.equals(nodeId) && !failedNodeId.equals(nodeId) && !nodes.containsKey(nodeId)) {
+                     ClusterNode node = cctx.discovery().node(nodeId);
+ 
+                     if (node != null)
+                         nodes.put(node.id(), node);
+                     else if (log.isDebugEnabled())
+                         log.debug("Transaction node left (will ignore) " + e.getKey());
+                 }
+             }
+         }
+ 
+         UUID nearNodeId = tx.eventNodeId();
+ 
+         nearTxCheck = !failedNodeId.equals(nearNodeId) && cctx.discovery().alive(nearNodeId);
+     }
+ 
+     /**
+      * Initializes future.
+      */
+     @SuppressWarnings("ConstantConditions")
+     public void prepare() {
+         if (nearTxCheck) {
+             UUID nearNodeId = tx.eventNodeId();
+ 
+             if (cctx.localNodeId().equals(nearNodeId)) {
+                 IgniteInternalFuture<Boolean> fut = cctx.tm().txCommitted(tx.nearXidVersion());
+ 
+                 fut.listen(new CI1<IgniteInternalFuture<Boolean>>() {
+                     @Override public void apply(IgniteInternalFuture<Boolean> fut) {
+                         try {
+                             onDone(fut.get());
+                         }
+                         catch (IgniteCheckedException e) {
+                             onDone(e);
+                         }
+                     }
+                 });
+             }
+             else {
+                 MiniFuture fut = new MiniFuture(tx.eventNodeId());
+ 
+                 add(fut);
+ 
+                 GridCacheTxRecoveryRequest req = new GridCacheTxRecoveryRequest(
+                     tx,
+                     0,
+                     true,
+                     futureId(),
+                     fut.futureId());
+ 
+                 try {
+                     cctx.io().send(nearNodeId, req, tx.ioPolicy());
+                 }
+                 catch (ClusterTopologyCheckedException e) {
+                     fut.onNodeLeft();
+                 }
+                 catch (IgniteCheckedException e) {
+                     fut.onError(e);
+                 }
+ 
+                 markInitialized();
+             }
+ 
+             return;
+         }
+ 
+         // First check transactions on local node.
+         int locTxNum = nodeTransactions(cctx.localNodeId());
+ 
+         if (locTxNum > 1) {
+             IgniteInternalFuture<Boolean> fut = cctx.tm().txsPreparedOrCommitted(tx.nearXidVersion(), locTxNum);
+ 
+             if (fut == null || fut.isDone()) {
+                 boolean prepared;
+ 
+                 try {
+                     prepared = fut == null ? true : fut.get();
+                 }
+                 catch (IgniteCheckedException e) {
+                     U.error(log, "Check prepared transaction future failed: " + e, e);
+ 
+                     prepared = false;
+                 }
+ 
+                 if (!prepared) {
+                     onDone(false);
+ 
+                     markInitialized();
+ 
+                     return;
+                 }
+             }
+             else {
+                 fut.listen(new CI1<IgniteInternalFuture<Boolean>>() {
+                     @Override public void apply(IgniteInternalFuture<Boolean> fut) {
+                         boolean prepared;
+ 
+                         try {
+                             prepared = fut.get();
+                         }
+                         catch (IgniteCheckedException e) {
+                             U.error(log, "Check prepared transaction future failed: " + e, e);
+ 
+                             prepared = false;
+                         }
+ 
+                         if (!prepared) {
+                             onDone(false);
+ 
+                             markInitialized();
+                         }
+                         else
+                             proceedPrepare();
+                     }
+                 });
+ 
+                 return;
+             }
+         }
+ 
+         proceedPrepare();
+     }
+ 
+     /**
+      * Process prepare after local check.
+      */
+     private void proceedPrepare() {
+         for (Map.Entry<UUID, Collection<UUID>> entry : txNodes.entrySet()) {
+             UUID nodeId = entry.getKey();
+ 
+             // Skip left nodes and local node.
+             if (!nodes.containsKey(nodeId) && nodeId.equals(cctx.localNodeId()))
+                 continue;
+ 
+             /*
+              * If primary node failed then send message to all backups, otherwise
+              * send message only to primary node.
+              */
+ 
+             if (nodeId.equals(failedNodeId)) {
+                 for (UUID id : entry.getValue()) {
+                     // Skip backup node if it is local node or if it is also was mapped as primary.
+                     if (txNodes.containsKey(id) || id.equals(cctx.localNodeId()))
+                         continue;
+ 
+                     MiniFuture fut = new MiniFuture(id);
+ 
+                     add(fut);
+ 
+                     GridCacheTxRecoveryRequest req = new GridCacheTxRecoveryRequest(tx,
+                         nodeTransactions(id),
+                         false,
+                         futureId(),
+                         fut.futureId());
+ 
+                     try {
+                         cctx.io().send(id, req, tx.ioPolicy());
+                     }
+                     catch (ClusterTopologyCheckedException ignored) {
+                         fut.onNodeLeft();
+                     }
+                     catch (IgniteCheckedException e) {
+                         fut.onError(e);
+ 
+                         break;
+                     }
+                 }
+             }
+             else {
+                 MiniFuture fut = new MiniFuture(nodeId);
+ 
+                 add(fut);
+ 
+                 GridCacheTxRecoveryRequest req = new GridCacheTxRecoveryRequest(
+                     tx,
+                     nodeTransactions(nodeId),
+                     false,
+                     futureId(),
+                     fut.futureId());
+ 
+                 try {
+                     cctx.io().send(nodeId, req, tx.ioPolicy());
+                 }
+                 catch (ClusterTopologyCheckedException ignored) {
+                     fut.onNodeLeft();
+                 }
+                 catch (IgniteCheckedException e) {
+                     fut.onError(e);
+ 
+                     break;
+                 }
+             }
+         }
+ 
++        // Specifically check originating near node.
++        if (tx instanceof GridDhtTxRemote) {
++            UUID nearNodeId = ((GridDhtTxRemote)tx).nearNodeId();
++
++            if (cctx.localNodeId().equals(nearNodeId))
++                add(cctx.tm().nearTxCommitted(tx.nearXidVersion()));
++            else {
++                MiniFuture fut = new MiniFuture(nearNodeId);
++
++                add(fut);
++
++                GridCacheOptimisticCheckPreparedTxRequest<K, V> req = new GridCacheOptimisticCheckPreparedTxRequest<>(
++                    tx, 1, futureId(), fut.futureId(), true);
++
++                try {
++                    cctx.io().send(nearNodeId, req, tx.ioPolicy());
++                }
++                catch (ClusterTopologyCheckedException ignored) {
++                    fut.onNodeLeft();
++                }
++                catch (IgniteCheckedException e) {
++                    fut.onError(e);
++                }
++            }
++        }
++
+         markInitialized();
+     }
+ 
+     /**
+      * @param nodeId Node ID.
+      * @return Number of transactions on node.
+      */
+     private int nodeTransactions(UUID nodeId) {
+         int cnt = txNodes.containsKey(nodeId) ? 1 : 0; // +1 if node is primary.
+ 
+         for (Collection<UUID> backups : txNodes.values()) {
+             for (UUID backup : backups) {
+                 if (backup.equals(nodeId)) {
+                     cnt++; // +1 if node is backup.
+ 
+                     break;
+                 }
+             }
+         }
+ 
+         return cnt;
+     }
+ 
+     /**
+      * @param nodeId Node ID.
+      * @param res Response.
+      */
+     public void onResult(UUID nodeId, GridCacheTxRecoveryResponse res) {
+         if (!isDone()) {
+             for (IgniteInternalFuture<Boolean> fut : pending()) {
+                 if (isMini(fut)) {
+                     MiniFuture f = (MiniFuture)fut;
+ 
+                     if (f.futureId().equals(res.miniId())) {
+                         assert f.nodeId().equals(nodeId);
+ 
+                         f.onResult(res);
+ 
+                         break;
+                     }
+                 }
+             }
+         }
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public IgniteUuid futureId() {
+         return futId;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public GridCacheVersion version() {
+         return tx.xidVersion();
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public Collection<? extends ClusterNode> nodes() {
+         return nodes.values();
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public boolean onNodeLeft(UUID nodeId) {
+         for (IgniteInternalFuture<?> fut : futures())
+             if (isMini(fut)) {
+                 MiniFuture f = (MiniFuture)fut;
+ 
 -                if (f.nodeId().equals(nodeId)) {
++                if (f.nodeId().equals(nodeId))
+                     f.onNodeLeft();
 -
 -                    return true;
 -                }
+             }
+ 
 -        return false;
++        return true;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public boolean trackable() {
+         return trackable;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public void markNotTrackable() {
+         trackable = false;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public boolean onDone(@Nullable Boolean res, @Nullable Throwable err) {
+         if (super.onDone(res, err)) {
+             cctx.mvcc().removeFuture(this);
+ 
+             if (err == null) {
+                 assert res != null;
+ 
+                 cctx.tm().finishTxOnRecovery(tx, res);
+             }
+             else {
+                 if (err instanceof ClusterTopologyCheckedException && nearTxCheck) {
+                     if (log.isDebugEnabled())
+                         log.debug("Failed to check transaction on near node, " +
+                             "ignoring [err=" + err + ", tx=" + tx + ']');
+                 }
+                 else {
+                     if (log.isDebugEnabled())
+                         log.debug("Failed to check prepared transactions, " +
+                             "invalidating transaction [err=" + err + ", tx=" + tx + ']');
+ 
+                     cctx.tm().salvageTx(tx);
+                 }
+             }
+         }
+ 
+         return false;
+     }
+ 
+     /**
+      * @param f Future.
+      * @return {@code True} if mini-future.
+      */
+     private boolean isMini(IgniteInternalFuture<?> f) {
+         return f.getClass().equals(MiniFuture.class);
+     }
+ 
+ 
+     /** {@inheritDoc} */
+     @Override public String toString() {
+         return S.toString(GridCacheTxRecoveryFuture.class, this, "super", super.toString());
+     }
+ 
+     /**
+      *
+      */
+     private class MiniFuture extends GridFutureAdapter<Boolean> {
+         /** */
+         private static final long serialVersionUID = 0L;
+ 
+         /** Mini future ID. */
+         private final IgniteUuid futId = IgniteUuid.randomUuid();
+ 
+         /** Node ID. */
+         private UUID nodeId;
+ 
+         /**
+          * @param nodeId Node ID.
+          */
+         private MiniFuture(UUID nodeId) {
+             this.nodeId = nodeId;
+         }
+ 
+         /**
+          * @return Node ID.
+          */
+         private UUID nodeId() {
+             return nodeId;
+         }
+ 
+         /**
+          * @return Future ID.
+          */
+         private IgniteUuid futureId() {
+             return futId;
+         }
+ 
+         /**
+          * @param e Error.
+          */
+         private void onError(Throwable e) {
+             if (log.isDebugEnabled())
+                 log.debug("Failed to get future result [fut=" + this + ", err=" + e + ']');
+ 
+             onDone(e);
+         }
+ 
+         /**
+          */
+         private void onNodeLeft() {
+             if (log.isDebugEnabled())
+                 log.debug("Transaction node left grid (will ignore) [fut=" + this + ']');
+ 
+             if (nearTxCheck) {
+                 // Near and originating nodes left, need initiate tx check.
+                 cctx.tm().commitIfPrepared(tx);
+ 
+                 onDone(new ClusterTopologyCheckedException("Transaction node left grid (will ignore)."));
+             }
+             else
+                 onDone(true);
+         }
+ 
+         /**
+          * @param res Result callback.
+          */
+         private void onResult(GridCacheTxRecoveryResponse res) {
+             onDone(res.success());
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public String toString() {
+             return S.toString(MiniFuture.class, this, "done", isDone(), "err", error());
+         }
+     }
+ }

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
index 0000000,2f49ef4..15d2141
mode 000000,100644..100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
@@@ -1,0 -1,261 +1,268 @@@
+ /*
+  * 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;
+ 
+ import org.apache.ignite.internal.processors.cache.transactions.*;
+ import org.apache.ignite.internal.processors.cache.version.*;
+ import org.apache.ignite.internal.util.typedef.internal.*;
+ import org.apache.ignite.lang.*;
+ import org.apache.ignite.plugin.extensions.communication.*;
+ 
+ import java.io.*;
+ import java.nio.*;
+ 
+ /**
+  * Message sent to check that transactions related to transaction were prepared on remote node.
+  */
+ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
+     /** */
+     private static final long serialVersionUID = 0L;
+ 
+     /** Future ID. */
+     private IgniteUuid futId;
+ 
+     /** Mini future ID. */
+     private IgniteUuid miniId;
+ 
+     /** Near transaction ID. */
+     private GridCacheVersion nearXidVer;
+ 
+     /** Expected number of transactions on node. */
+     private int txNum;
+ 
+     /** System transaction flag. */
+     private boolean sys;
+ 
+     /** {@code True} if should check only tx on near node. */
+     private boolean nearTxCheck;
+ 
+     /**
+      * Empty constructor required by {@link Externalizable}
+      */
+     public GridCacheTxRecoveryRequest() {
+         // No-op.
+     }
+ 
+     /**
+      * @param tx Transaction.
+      * @param txNum Expected number of transactions on remote node.
+      * @param nearTxCheck {@code True} if should check only tx on near node.
+      * @param futId Future ID.
+      * @param miniId Mini future ID.
+      */
+     public GridCacheTxRecoveryRequest(IgniteInternalTx tx,
+         int txNum,
+         boolean nearTxCheck,
+         IgniteUuid futId,
+         IgniteUuid miniId)
+     {
+         super(tx.xidVersion(), 0);
+ 
+         nearXidVer = tx.nearXidVersion();
+         sys = tx.system();
+ 
+         this.futId = futId;
+         this.miniId = miniId;
+         this.txNum = txNum;
+         this.nearTxCheck = nearTxCheck;
+     }
+ 
+     /**
+      * @return {@code True} if should check only tx on near node.
+      */
+     public boolean nearTxCheck() {
+         return nearTxCheck;
+     }
+ 
+     /**
+      * @return Near version.
+      */
+     public GridCacheVersion nearXidVersion() {
+         return nearXidVer;
+     }
+ 
+     /**
+      * @return Future ID.
+      */
+     public IgniteUuid futureId() {
+         return futId;
+     }
+ 
+     /**
+      * @return Mini future ID.
+      */
+     public IgniteUuid miniId() {
+         return miniId;
+     }
+ 
+     /**
+      * @return Expected number of transactions on node.
+      */
+     public int transactions() {
+         return txNum;
+     }
+ 
+     /**
+      * @return System transaction flag.
+      */
+     public boolean system() {
+         return sys;
+     }
+ 
++    /**
++     * @return Near check flag.
++     */
++    public boolean nearCheck() {
++        return nearCheck;
++    }
++
+     /** {@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 7:
+                 if (!writer.writeIgniteUuid("futId", futId))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 8:
+                 if (!writer.writeIgniteUuid("miniId", miniId))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 9:
+                 if (!writer.writeBoolean("nearTxCheck", nearTxCheck))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 10:
+                 if (!writer.writeMessage("nearXidVer", nearXidVer))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 11:
+                 if (!writer.writeBoolean("sys", sys))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 12:
+                 if (!writer.writeInt("txNum", txNum))
+                     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 7:
+                 futId = reader.readIgniteUuid("futId");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 8:
+                 miniId = reader.readIgniteUuid("miniId");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 9:
+                 nearTxCheck = reader.readBoolean("nearTxCheck");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 10:
+                 nearXidVer = reader.readMessage("nearXidVer");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 11:
+                 sys = reader.readBoolean("sys");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 12:
+                 txNum = reader.readInt("txNum");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+         }
+ 
+         return true;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public byte directType() {
+         return 16;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public byte fieldsCount() {
 -        return 13;
++        return 12;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public String toString() {
+         return S.toString(GridCacheTxRecoveryRequest.class, this, "super", super.toString());
+     }
+ }

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
index 63c28e9,7b84f32..f759fcc
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
@@@ -55,15 -54,16 +54,6 @@@ public abstract class GridDistributedBa
      @GridToStringExclude
      private byte[] candsByIdxBytes;
  
-     /** Collections of local lock candidates. */
 -    /** Committed versions with order higher than one for this message (needed for commit ordering). */
--    @GridToStringInclude
-     @GridDirectTransient
-     private Map<KeyCacheObject, Collection<GridCacheMvccCandidate>> candsByKey;
 -    @GridDirectCollection(GridCacheVersion.class)
 -    private Collection<GridCacheVersion> committedVers;
--
-     /** Collections of local lock candidates in serialized form. */
-     @GridToStringExclude
-     private byte[] candsByKeyBytes;
 -    /** Rolled back versions with order higher than one for this message (needed for commit ordering). */
 -    @GridToStringInclude
 -    @GridDirectCollection(GridCacheVersion.class)
 -    private Collection<GridCacheVersion> rolledbackVers;
--
      /** Count of keys referenced in candidates array (needed only locally for optimization). */
      @GridToStringInclude
      @GridDirectTransient
@@@ -228,13 -207,19 +173,7 @@@
  
                  writer.incrementState();
  
--            case 4:
-                 if (!writer.writeByteArray("candsByKeyBytes", candsByKeyBytes))
 -                if (!writer.writeCollection("committedVers", committedVers, MessageCollectionItemType.MSG))
--                    return false;
--
--                writer.incrementState();
--
--            case 5:
 -                if (!writer.writeCollection("rolledbackVers", rolledbackVers, MessageCollectionItemType.MSG))
 -                    return false;
 -
 -                writer.incrementState();
 -
+             case 6:
                  if (!writer.writeMessage("ver", ver))
                      return false;
  
@@@ -264,15 -249,23 +203,7 @@@
  
                  reader.incrementState();
  
--            case 4:
-                 candsByKeyBytes = reader.readByteArray("candsByKeyBytes");
 -                committedVers = reader.readCollection("committedVers", MessageCollectionItemType.MSG);
--
--                if (!reader.isLastRead())
--                    return false;
--
--                reader.incrementState();
--
--            case 5:
 -                rolledbackVers = reader.readCollection("rolledbackVers", MessageCollectionItemType.MSG);
 -
 -                if (!reader.isLastRead())
 -                    return false;
 -
 -                reader.incrementState();
 -
+             case 6:
                  ver = reader.readMessage("ver");
  
                  if (!reader.isLastRead())

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheEntry.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
index 18ae318,7a84f9a..5d79f0a
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
@@@ -94,9 -98,12 +91,9 @@@ public class GridDistributedTxFinishReq
          boolean commit,
          boolean invalidate,
          boolean sys,
-         GridIoPolicy plc,
+         byte plc,
          boolean syncCommit,
          boolean syncRollback,
 -        GridCacheVersion baseVer,
 -        Collection<GridCacheVersion> committedVers,
 -        Collection<GridCacheVersion> rolledbackVers,
          int txSize
      ) {
          super(xidVer, 0);

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
----------------------------------------------------------------------

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

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

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
index 1af96e9,e160529..5080e3a
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
@@@ -747,9 -756,16 +754,9 @@@ public final class GridDhtLockFuture ex
                  try {
                      while (true) {
                          try {
 -                            hasRmtNodes = cctx.dhtMap(
 -                                nearNodeId,
 -                                topVer,
 -                                entry,
 -                                tx == null ? lockVer : null,
 -                                log,
 -                                dhtMap,
 -                                null);
 +                            cctx.dhtMap(nearNodeId, topVer, entry, log, dhtMap, null);
  
-                             GridCacheMvccCandidate cand = entry.mappings(lockVer);
+                             GridCacheMvccCandidate cand = entry.candidate(lockVer);
  
                              // Possible in case of lock cancellation.
                              if (cand == null) {
@@@ -850,22 -870,35 +858,33 @@@
  
                              boolean invalidateRdr = e.readerId(n.id()) != null;
  
-                             req.addDhtKey(
-                                 e.key(),
-                                 invalidateRdr,
-                                 cctx);
+                             req.addDhtKey(e.key(), invalidateRdr, cctx);
  
-                             if (needVal)
+                             if (needVal) {
                                  // Mark last added key as needed to be preloaded.
                                  req.markLastKeyForPreload();
+ 
+                                 if (tx != null) {
+                                     IgniteTxEntry txEntry = tx.entry(e.txKey());
+ 
+                                     // NOOP entries will be sent to backups on prepare step.
+                                     if (txEntry.op() == GridCacheOperation.READ)
+                                         txEntry.op(GridCacheOperation.NOOP);
+                                 }
+                             }
 -
 -                            it.set(addOwned(req, e));
                          }
  
-                         add(fut); // Append new future.
+                         if (!F.isEmpty(req.keys())) {
+                             if (tx != null)
+                                 tx.addLockTransactionNode(n);
  
-                         if (log.isDebugEnabled())
-                             log.debug("Sending DHT lock request to DHT node [node=" + n.id() + ", req=" + req + ']');
+                             add(fut); // Append new future.
  
-                         cctx.io().send(n, req, cctx.ioPolicy());
+                             if (log.isDebugEnabled())
+                                 log.debug("Sending DHT lock request to DHT node [node=" + n.id() + ", req=" + req + ']');
+ 
+                             cctx.io().send(n, req, cctx.ioPolicy());
+                         }
                      }
                      catch (IgniteCheckedException e) {
                          // Fail the whole thing.

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

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

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

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

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
index fa679ef,4f081bf..da14b9f
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
@@@ -946,9 -1064,22 +1050,15 @@@ public abstract class GridDhtTransactio
          try {
              // Send reply back to originating near node.
              GridNearLockResponse res = new GridNearLockResponse(ctx.cacheId(),
-                 req.version(), req.futureId(), req.miniId(), tx != null && tx.onePhaseCommit(), entries.size(), err);
+                 req.version(),
+                 req.futureId(),
+                 req.miniId(),
+                 tx != null && tx.onePhaseCommit(),
+                 entries.size(),
+                 err,
+                 null);
  
              if (err == null) {
 -                res.pending(localDhtPendingVersions(entries, mappedVer));
 -
 -                // We have to add completed versions for cases when nearLocal and remote transactions
 -                // execute concurrently.
 -                res.completedVersions(ctx.tm().committedVersions(req.version()),
 -                    ctx.tm().rolledbackVersions(req.version()));
 -
                  int i = 0;
  
                  for (ListIterator<GridCacheEntryEx> it = entries.listIterator(); it.hasNext();) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
index dc3eeac,9aa9c17..87fe6e7
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
@@@ -313,8 -379,12 +379,8 @@@ public final class GridDhtTxFinishFutur
                  tx.system(),
                  tx.ioPolicy(),
                  tx.isSystemInvalidate(),
-                 tx.syncCommit(),
-                 tx.syncRollback(),
+                 sync,
+                 sync,
 -                tx.completedBase(),
 -                tx.committedVersions(),
 -                tx.rolledbackVersions(),
 -                tx.pendingVersions(),
                  tx.size(),
                  tx.subjectId(),
                  tx.taskNameHash());
@@@ -362,8 -430,12 +428,8 @@@
                      tx.system(),
                      tx.ioPolicy(),
                      tx.isSystemInvalidate(),
-                     tx.syncCommit(),
-                     tx.syncRollback(),
+                     sync,
+                     sync,
 -                    tx.completedBase(),
 -                    tx.committedVersions(),
 -                    tx.rolledbackVersions(),
 -                    tx.pendingVersions(),
                      tx.size(),
                      tx.subjectId(),
                      tx.taskNameHash());

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
index 1a6883b,fe72b24..52fb87a
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
@@@ -19,11 -19,8 +19,10 @@@ package org.apache.ignite.internal.proc
  
  import org.apache.ignite.internal.*;
  import org.apache.ignite.internal.processors.affinity.*;
- import org.apache.ignite.internal.managers.communication.*;
  import org.apache.ignite.internal.processors.cache.distributed.*;
  import org.apache.ignite.internal.processors.cache.version.*;
 +import org.apache.ignite.lang.*;
 +import org.apache.ignite.transactions.*;
  import org.apache.ignite.internal.util.tostring.*;
  import org.apache.ignite.internal.util.typedef.internal.*;
  import org.apache.ignite.lang.*;
@@@ -336,7 -335,15 +335,7 @@@ public class GridDhtTxFinishRequest ext
  
                  reader.incrementState();
  
-             case 24:
 -            case 21:
 -                pendingVers = reader.readCollection("pendingVers", MessageCollectionItemType.MSG);
 -
 -                if (!reader.isLastRead())
 -                    return false;
 -
 -                reader.incrementState();
 -
+             case 22:
                  subjId = reader.readUuid("subjId");
  
                  if (!reader.isLastRead())

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

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
index 1d8f2b8,b50a010..2b0e7c2
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
@@@ -64,6 -62,18 +62,12 @@@ public abstract class GridDhtTxLocalAda
      /** */
      private long dhtThreadId;
  
+     /** */
+     protected boolean explicitLock;
+ 
 -    /** */
 -    private boolean needsCompletedVers;
 -
 -    /** Versions of pending locks for entries of this tx. */
 -    private Collection<GridCacheVersion> pendingVers;
 -
+     /** Nodes where transactions were started on lock step. */
+     private Set<ClusterNode> lockTxNodes;
+ 
      /**
       * Empty constructor required for {@link Externalizable}.
       */

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
index 1b097b6,fbc8c84..1cc3175
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
@@@ -292,8 -291,12 +291,12 @@@ public final class GridDhtTxPrepareFutu
  
                  boolean hasFilters = !F.isEmptyOrNulls(txEntry.filters()) && !F.isAlwaysTrue(txEntry.filters());
  
 -                if (hasFilters || retVal || txEntry.op() == GridCacheOperation.DELETE) {
 +                if (hasFilters || retVal || txEntry.op() == DELETE || txEntry.op() == TRANSFORM) {
-                     cached.unswap(true, retVal);
+                     cached.unswap(retVal);
+ 
+                     boolean readThrough = (retVal || hasFilters) &&
+                         cacheCtx.config().isLoadPreviousValue() &&
+                         !txEntry.skipStore();
  
                      CacheObject val = cached.innerGet(
                          tx,
@@@ -937,15 -909,15 +947,17 @@@
  
                          for (IgniteTxEntry entry : nearMapping.writes()) {
                              try {
-                                 GridCacheMvccCandidate added = entry.cached().candidate(version());
+                                 if (entry.explicitVersion() == null) {
+                                     GridCacheMvccCandidate added = entry.cached().candidate(version());
  
 -                                    assert added == null || added.dhtLocal() : "Got non-dht-local candidate for prepare future" +
 -                                        "[added=" + added + ", entry=" + entry + ']';
 +                                assert added != null : "Null candidate for non-group-lock entry " +
 +                                    "[added=" + added + ", entry=" + entry + ']';
 +                                assert added.dhtLocal() : "Got non-dht-local candidate for prepare future" +
 +                                    "[added=" + added + ", entry=" + entry + ']';
  
-                                 if (added != null && added.ownerVersion() != null)
-                                     req.owned(entry.txKey(), added.ownerVersion());
+                                     if (added != null && added.ownerVersion() != null)
+                                         req.owned(entry.txKey(), added.ownerVersion());
+                                 }
  
                                  break;
                              }

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

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

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

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
index 49c1fb6,221b230..8202d10
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
@@@ -581,8 -581,20 +578,18 @@@ public class GridDhtColocatedCache<K, V
                  GridDistributedUnlockRequest req = mapping.getValue();
  
                  if (!F.isEmpty(req.keys())) {
-                     // We don't wait for reply to this message.
-                     ctx.io().send(n, req, ctx.ioPolicy());
 -                    req.completedVersions(committed, rolledback);
 -
+                     try {
+                         // We don't wait for reply to this message.
+                         ctx.io().send(n, req, ctx.ioPolicy());
+                     }
+                     catch (ClusterTopologyCheckedException e) {
+                         if (log.isDebugEnabled())
+                             log.debug("Failed to send unlock request (node has left the grid) [keys=" + req.keys() +
+                                 ", n=" + n + ", e=" + e + ']');
+                     }
+                     catch (IgniteCheckedException e) {
+                         U.error(log, "Failed to send unlock request [keys=" + req.keys() + ", n=" + n + ']', e);
+                     }
                  }
              }
          }

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
index ce614cb,3d28018..d264de1
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
@@@ -1015,9 -1074,10 +1074,9 @@@ public final class GridNearLockFuture e
  
                                          // Lock is held at this point, so we can set the
                                          // returned value if any.
-                                         entry.resetFromPrimary(newVal, lockVer, dhtVer, node.id());
+                                         entry.resetFromPrimary(newVal, lockVer, dhtVer, node.id(), topVer.get());
  
 -                                        entry.readyNearLock(lockVer, mappedVer, res.committedVersions(),
 -                                            res.rolledbackVersions(), res.pending());
 +                                        entry.readyNearLock(lockVer, mappedVer);
  
                                          if (inTx() && implicitTx() && tx.onePhaseCommit()) {
                                              boolean pass = res.filterResult(i);
@@@ -1317,111 -1381,132 +1380,128 @@@
                      return;
                  }
  
-                 int i = 0;
+                 if (res.clientRemapVersion() != null) {
+                     assert cctx.kernalContext().clientNode();
  
-                 AffinityTopologyVersion topVer = GridNearLockFuture.this.topVer.get();
+                     IgniteInternalFuture<?> affFut =
+                         cctx.shared().exchange().affinityReadyFuture(res.clientRemapVersion());
  
-                 for (KeyCacheObject k : keys) {
-                     while (true) {
-                         GridNearCacheEntry entry = cctx.near().entryExx(k, topVer);
+                     if (affFut != null && !affFut.isDone()) {
+                         affFut.listen(new CI1<IgniteInternalFuture<?>>() {
+                             @Override public void apply(IgniteInternalFuture<?> fut) {
+                                 remap();
+                             }
+                         });
+                     }
+                     else
+                         remap();
+                 }
+                 else {
+                     int i = 0;
  
-                         try {
-                             if (res.dhtVersion(i) == null) {
-                                 onDone(new IgniteCheckedException("Failed to receive DHT version from remote node " +
-                                     "(will fail the lock): " + res));
+                     AffinityTopologyVersion topVer = GridNearLockFuture.this.topVer.get();
  
-                                 return;
-                             }
+                     for (KeyCacheObject k : keys) {
+                         while (true) {
+                             GridNearCacheEntry entry = cctx.near().entryExx(k, topVer);
  
-                             IgniteBiTuple<GridCacheVersion, CacheObject> oldValTup = valMap.get(entry.key());
+                             try {
+                                 if (res.dhtVersion(i) == null) {
+                                     onDone(new IgniteCheckedException("Failed to receive DHT version from remote node " +
+                                         "(will fail the lock): " + res));
  
-                             CacheObject oldVal = entry.rawGet();
-                             boolean hasOldVal = false;
-                             CacheObject newVal = res.value(i);
+                                     return;
+                                 }
  
-                             boolean readRecordable = false;
+                                 IgniteBiTuple<GridCacheVersion, CacheObject> oldValTup = valMap.get(entry.key());
  
-                             if (retval) {
-                                 readRecordable = cctx.events().isRecordable(EVT_CACHE_OBJECT_READ);
+                                 CacheObject oldVal = entry.rawGet();
+                                 boolean hasOldVal = false;
+                                 CacheObject newVal = res.value(i);
  
-                                 if (readRecordable)
-                                     hasOldVal = entry.hasValue();
-                             }
+                                 boolean readRecordable = false;
+ 
+                                 if (retval) {
+                                     readRecordable = cctx.events().isRecordable(EVT_CACHE_OBJECT_READ);
+ 
+                                     if (readRecordable)
+                                         hasOldVal = entry.hasValue();
+                                 }
  
-                             GridCacheVersion dhtVer = res.dhtVersion(i);
-                             GridCacheVersion mappedVer = res.mappedVersion(i);
+                                 GridCacheVersion dhtVer = res.dhtVersion(i);
+                                 GridCacheVersion mappedVer = res.mappedVersion(i);
  
-                             if (newVal == null) {
-                                 if (oldValTup != null) {
-                                     if (oldValTup.get1().equals(dhtVer))
-                                         newVal = oldValTup.get2();
+                                 if (newVal == null) {
+                                     if (oldValTup != null) {
+                                         if (oldValTup.get1().equals(dhtVer))
+                                             newVal = oldValTup.get2();
  
-                                     oldVal = oldValTup.get2();
+                                         oldVal = oldValTup.get2();
+                                     }
                                  }
-                             }
  
-                             // Lock is held at this point, so we can set the
-                             // returned value if any.
-                             entry.resetFromPrimary(newVal, lockVer, dhtVer, node.id());
+                                 // Lock is held at this point, so we can set the
+                                 // returned value if any.
+                                 entry.resetFromPrimary(newVal, lockVer, dhtVer, node.id(), topVer);
  
-                             if (inTx() && implicitTx() && tx.onePhaseCommit()) {
-                                 boolean pass = res.filterResult(i);
+                                 if (inTx()) {
+                                     tx.hasRemoteLocks(true);
  
-                                 tx.entry(cctx.txKey(k)).filters(pass ? CU.empty0() : CU.alwaysFalse0Arr());
-                             }
+                                     if (implicitTx() && tx.onePhaseCommit()) {
+                                         boolean pass = res.filterResult(i);
  
-                             entry.readyNearLock(lockVer, mappedVer);
- 
-                             if (retval) {
-                                 if (readRecordable)
-                                     cctx.events().addEvent(
-                                         entry.partition(),
-                                         entry.key(),
-                                         tx,
-                                         null,
-                                         EVT_CACHE_OBJECT_READ,
-                                         newVal,
-                                         newVal != null,
-                                         oldVal,
-                                         hasOldVal,
-                                         CU.subjectId(tx, cctx.shared()),
-                                         null,
-                                         inTx() ? tx.resolveTaskName() : null);
- 
-                                 if (cctx.cache().configuration().isStatisticsEnabled())
-                                     cctx.cache().metrics0().onRead(false);
-                             }
+                                         tx.entry(cctx.txKey(k)).filters(pass ? CU.empty0() : CU.alwaysFalse0Arr());
+                                     }
+                                 }
 -
 -                                entry.readyNearLock(lockVer,
 -                                    mappedVer,
 -                                    res.committedVersions(),
 -                                    res.rolledbackVersions(),
 -                                    res.pending());
++                                
++                                entry.readyNearLock(lockVer, mappedVer);
+ 
+                                 if (retval) {
+                                     if (readRecordable)
+                                         cctx.events().addEvent(
+                                             entry.partition(),
+                                             entry.key(),
+                                             tx,
+                                             null,
+                                             EVT_CACHE_OBJECT_READ,
+                                             newVal,
+                                             newVal != null,
+                                             oldVal,
+                                             hasOldVal,
+                                             CU.subjectId(tx, cctx.shared()),
+                                             null,
+                                             inTx() ? tx.resolveTaskName() : null);
+ 
+                                     if (cctx.cache().configuration().isStatisticsEnabled())
+                                         cctx.cache().metrics0().onRead(false);
+                                 }
  
-                             if (log.isDebugEnabled())
-                                 log.debug("Processed response for entry [res=" + res + ", entry=" + entry + ']');
+                                 if (log.isDebugEnabled())
+                                     log.debug("Processed response for entry [res=" + res + ", entry=" + entry + ']');
  
-                             break; // Inner while loop.
-                         }
-                         catch (GridCacheEntryRemovedException ignored) {
-                             if (log.isDebugEnabled())
-                                 log.debug("Failed to add candidates because entry was removed (will renew).");
+                                 break; // Inner while loop.
+                             }
+                             catch (GridCacheEntryRemovedException ignored) {
+                                 if (log.isDebugEnabled())
+                                     log.debug("Failed to add candidates because entry was removed (will renew).");
  
-                             // Replace old entry with new one.
-                             entries.set(i, (GridDistributedCacheEntry)cctx.cache().entryEx(entry.key()));
+                                 // Replace old entry with new one.
+                                 entries.set(i, (GridDistributedCacheEntry)cctx.cache().entryEx(entry.key()));
+                             }
                          }
-                         catch (IgniteCheckedException e) {
-                             onDone(e);
  
-                             return;
-                         }
+                         i++;
                      }
  
-                     i++;
-                 }
+                     try {
+                         proceedMapping(mappings);
+                     }
+                     catch (IgniteCheckedException e) {
+                         onDone(e);
+                     }
  
-                 try {
-                     proceedMapping(mappings);
-                 }
-                 catch (IgniteCheckedException e) {
-                     onDone(e);
+                     onDone(true);
                  }
- 
-                 onDone(true);
              }
          }
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
index 1e68d5e,4776963..081c7fc
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
@@@ -347,7 -381,13 +364,13 @@@ public class GridNearLockRequest extend
  
                  writer.incrementState();
  
 -            case 23:
 +            case 21:
+                 if (!writer.writeBoolean("firstClientReq", firstClientReq))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 24:
                  if (!writer.writeBoolean("hasTransforms", hasTransforms))
                      return false;
  
@@@ -371,7 -411,13 +394,7 @@@
  
                  writer.incrementState();
  
-             case 30:
 -            case 28:
 -                if (!writer.writeBoolean("onePhaseCommit", onePhaseCommit))
 -                    return false;
 -
 -                writer.incrementState();
 -
+             case 29:
                  if (!writer.writeBoolean("retVal", retVal))
                      return false;
  
@@@ -473,7 -527,23 +504,15 @@@
  
                  reader.incrementState();
  
-             case 25:
 -            case 28:
 -                onePhaseCommit = reader.readBoolean("onePhaseCommit");
 -
 -                if (!reader.isLastRead())
 -                    return false;
 -
 -                reader.incrementState();
 -
+             case 29:
+                 retVal = reader.readBoolean("retVal");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 30:
                  subjId = reader.readUuid("subjId");
  
                  if (!reader.isLastRead())

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31ad7e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
index 1fefa4c,62002dc..3b4f7e5
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
@@@ -18,6 -18,8 +18,7 @@@
  package org.apache.ignite.internal.processors.cache.distributed.near;
  
  import org.apache.ignite.*;
 -import org.apache.ignite.internal.*;
+ import org.apache.ignite.internal.processors.affinity.*;
  import org.apache.ignite.internal.processors.cache.*;
  import org.apache.ignite.internal.processors.cache.distributed.*;
  import org.apache.ignite.internal.processors.cache.version.*;
@@@ -90,6 -104,31 +97,13 @@@ public class GridNearLockResponse exten
      }
  
      /**
+      * @return {@code True} if client node should remap lock request.
+      */
+     @Nullable public AffinityTopologyVersion clientRemapVersion() {
+         return clientRemapVer;
+     }
+ 
+     /**
 -     * Gets pending versions that are less than {@link #version()}.
 -     *
 -     * @return Pending versions.
 -     */
 -    public Collection<GridCacheVersion> pending() {
 -        return pending;
 -    }
 -
 -    /**
 -     * Sets pending versions that are less than {@link #version()}.
 -     *
 -     * @param pending Pending versions.
 -     */
 -    public void pending(Collection<GridCacheVersion> pending) {
 -        this.pending = pending;
 -    }
 -
 -    /**
       * @return Mini future ID.
       */
      public IgniteUuid miniId() {


[44/50] [abbrv] ignite git commit: Merge branch master into ignite-264

Posted by ag...@apache.org.
Merge branch master into ignite-264


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

Branch: refs/heads/ignite-264
Commit: 9996de89a51255dc50f30003705ef17a5404defe
Parents: 22d15de
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Mon Aug 31 12:44:10 2015 -0700
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Mon Aug 31 12:44:10 2015 -0700

----------------------------------------------------------------------
 .../processors/cache/distributed/dht/GridDhtTxPrepareFuture.java   | 1 +
 .../distributed/dht/colocated/GridDhtColocatedLockFuture.java      | 1 +
 .../processors/cache/distributed/near/GridNearLockFuture.java      | 1 +
 .../cache/distributed/near/GridNearOptimisticTxPrepareFuture.java  | 2 ++
 .../processors/cache/CacheStoreUsageMultinodeAbstractTest.java     | 1 +
 .../processors/cache/GridCacheAbstractFullApiSelfTest.java         | 1 +
 .../org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java | 1 +
 7 files changed, 8 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/9996de89/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
index f1fc743..38d2733 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
@@ -72,6 +72,7 @@ import org.apache.ignite.internal.util.typedef.internal.CU;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteClosure;
+import org.apache.ignite.lang.IgniteFutureCancelledException;
 import org.apache.ignite.lang.IgniteReducer;
 import org.apache.ignite.lang.IgniteUuid;
 import org.jetbrains.annotations.Nullable;

http://git-wip-us.apache.org/repos/asf/ignite/blob/9996de89/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
index e3004cbd..c4bb820 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
@@ -47,6 +47,7 @@ import org.apache.ignite.internal.processors.cache.distributed.near.GridNearLock
 import org.apache.ignite.internal.processors.cache.distributed.near.GridNearLockRequest;
 import org.apache.ignite.internal.processors.cache.distributed.near.GridNearLockResponse;
 import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal;
+import org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
 import org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry;
 import org.apache.ignite.internal.processors.cache.transactions.IgniteTxKey;
 import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;

http://git-wip-us.apache.org/repos/asf/ignite/blob/9996de89/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
index 0c9ead4..35e2659 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
@@ -45,6 +45,7 @@ import org.apache.ignite.internal.processors.cache.distributed.GridDistributedCa
 import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry;
 import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTopologyFuture;
 import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter;
+import org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
 import org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry;
 import org.apache.ignite.internal.processors.cache.transactions.IgniteTxKey;
 import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;

http://git-wip-us.apache.org/repos/asf/ignite/blob/9996de89/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
index ef2a457..b62629e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
@@ -24,6 +24,7 @@ import java.util.UUID;
 import java.util.concurrent.atomic.AtomicBoolean;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.cluster.ClusterTopologyException;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
 import org.apache.ignite.internal.cluster.ClusterTopologyServerNotFoundException;
@@ -50,6 +51,7 @@ import org.apache.ignite.internal.util.tostring.GridToStringInclude;
 import org.apache.ignite.internal.util.typedef.C1;
 import org.apache.ignite.internal.util.typedef.CI1;
 import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.X;
 import org.apache.ignite.internal.util.typedef.internal.CU;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.internal.util.typedef.internal.U;

http://git-wip-us.apache.org/repos/asf/ignite/blob/9996de89/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java
index 52650d7..9c4b7b2 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java
@@ -26,6 +26,7 @@ import javax.cache.configuration.Factory;
 import javax.cache.integration.CacheLoaderException;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
+import org.apache.ignite.cache.CacheAtomicWriteOrderMode;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.affinity.Affinity;
 import org.apache.ignite.cache.store.CacheStore;

http://git-wip-us.apache.org/repos/asf/ignite/blob/9996de89/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
index cc33b67..3e646d3 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
@@ -64,6 +64,7 @@ import org.apache.ignite.internal.IgnitionEx;
 import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 import org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager;
 import org.apache.ignite.internal.processors.resource.GridSpringResourceContext;
+import org.apache.ignite.internal.util.lang.GridAbsPredicate;
 import org.apache.ignite.internal.util.lang.GridAbsPredicateX;
 import org.apache.ignite.internal.util.typedef.CIX1;
 import org.apache.ignite.internal.util.typedef.F;

http://git-wip-us.apache.org/repos/asf/ignite/blob/9996de89/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
index 9fd3d7b..ab2374c 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
@@ -30,6 +30,7 @@ import org.apache.ignite.internal.processors.cache.distributed.IgniteCacheTxNode
 import org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheDhtAtomicRemoveFailureTest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheDhtClientRemoveFailureTest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheDhtRemoveFailureTest;
+import org.apache.ignite.internal.processors.cache.distributed.dht.IgniteAtomicLongChangingTopologySelfTest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.IgniteCachePutRetryAtomicSelfTest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.IgniteCachePutRetryTransactionalSelfTest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridCacheAtomicClientInvalidPartitionHandlingSelfTest;


[11/50] [abbrv] ignite git commit: Sprint-2 - Restored original client projection behavior.

Posted by ag...@apache.org.
Sprint-2 - Restored original client projection behavior.


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

Branch: refs/heads/ignite-264
Commit: 03923c9b7ac57511ec73d49610807bf427d379f3
Parents: a7b3749
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Thu Mar 26 19:13:05 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Thu Mar 26 19:13:05 2015 -0700

----------------------------------------------------------------------
 .../processors/cache/GridCacheUtils.java         | 19 -------------------
 1 file changed, 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/03923c9b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
index 6375afb..a090b12 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
@@ -1549,25 +1549,6 @@ public class GridCacheUtils {
     }
 
     /**
-     * Gets cache ID by cache name.
-     *
-     * @param cacheName Cache name.
-     * @return Cache ID.
-     */
-    public static int cacheId(String cacheName) {
-        if (cacheName != null) {
-            int hash = cacheName.hashCode();
-
-            if (hash == 0)
-                hash = 1;
-
-            return hash;
-        }
-        else
-            return 1;
-    }
-
-    /**
      * Validates that cache key or cache value implements {@link Externalizable}
      *
      * @param log Logger used to log warning message.


[09/50] [abbrv] ignite git commit: Merge branch sprint-3 into ignite-264

Posted by ag...@apache.org.
Merge branch sprint-3 into ignite-264


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

Branch: refs/heads/ignite-264
Commit: 905a139ea15f50afe33bada498200ced6b5d6f6e
Parents: 37805a5 50fc5a9
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Wed Mar 25 13:11:16 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Wed Mar 25 13:11:16 2015 -0700

----------------------------------------------------------------------
 DEVNOTES.txt                                    |    30 +
 DISCLAIMER.txt                                  |    15 +
 LICENSE.txt                                     |    55 +-
 NOTICE.txt                                      |    19 +-
 README.txt                                      |    25 +
 RELEASE_NOTES.txt                               |    18 +
 assembly/dependencies-fabric.xml                |     4 +-
 assembly/dependencies-hadoop.xml                |    13 +-
 assembly/dependencies-optional-fabric.xml       |     5 +-
 assembly/dependencies-optional-hadoop.xml       |     5 +-
 assembly/dependencies-schema-import.xml         |    56 +
 assembly/dependencies-schema-load.xml           |    56 -
 assembly/libs/README.txt                        |   120 +
 assembly/libs/readme.txt                        |   120 -
 assembly/release-base.xml                       |    20 +-
 assembly/release-fabric.xml                     |     8 +-
 assembly/release-hadoop.xml                     |    16 +-
 bin/ignite-schema-import.bat                    |   110 +
 bin/ignite-schema-import.sh                     |    87 +
 bin/ignite-schema-load.bat                      |   116 -
 bin/ignite-schema-load.sh                       |    78 -
 bin/igniterouter.sh                             |     7 +-
 bin/ignitevisorcmd.bat                          |     7 +-
 bin/ignitevisorcmd.sh                           |     9 +-
 bin/include/igniteservice.exe                   |   Bin 6144 -> 0 bytes
 bin/include/target-classpath.bat                |     2 +-
 bin/include/target-classpath.sh                 |     2 +-
 bin/setup-hadoop.bat                            |     2 +-
 bin/setup-hadoop.sh                             |     9 +-
 config/fabric/default-config.xml                |    50 +-
 config/hadoop/default-config.xml                |    30 +-
 config/ignite-log4j.xml                         |     2 +-
 docs/core-site.ignite.xml                       |    90 -
 docs/hadoop_readme.md                           |   117 -
 docs/hadoop_readme.pdf                          |   Bin 82297 -> 0 bytes
 docs/hive-site.ignite.xml                       |    37 -
 docs/ignite_readme.md                           |   100 -
 docs/ignite_readme.pdf                          |   Bin 77136 -> 0 bytes
 docs/mapred-site.ignite.xml                     |    66 -
 docs/release_notes.md                           |    16 -
 docs/release_notes.pdf                          |   Bin 33174 -> 0 bytes
 examples/README.txt                             |    25 +
 examples/config/example-cache.xml               |   105 +-
 examples/config/example-compute.xml             |    70 -
 examples/config/example-ignite.xml              |    83 +
 examples/config/example-streamer.xml            |   293 -
 examples/config/filesystem/README.txt           |     8 +
 examples/config/filesystem/core-site.xml        |     4 +-
 examples/config/filesystem/example-igfs.xml     |    31 +-
 examples/config/filesystem/readme.txt           |     8 -
 examples/config/hibernate/README.txt            |     8 +
 .../hibernate/example-hibernate-L2-cache.xml    |     3 -
 examples/config/hibernate/readme.txt            |     8 -
 examples/config/servlet/README.txt              |     8 +
 examples/config/servlet/WEB-INF/web.xml         |     2 +-
 examples/config/servlet/readme.txt              |     8 -
 examples/memcached/memcached-example.php        |    93 +
 examples/pom-standalone.xml                     |    22 +-
 examples/pom.xml                                |    82 +
 examples/rest/http-rest-example.php             |    15 +-
 examples/rest/memcache-rest-example.php         |    92 -
 examples/schema-import/README.txt               |    38 +
 examples/schema-import/bin/db-init.sql          |    10 +
 examples/schema-import/bin/h2-server.bat        |    80 +
 examples/schema-import/bin/h2-server.sh         |    66 +
 .../schema-import/bin/schema-import.properties  |    28 +
 examples/schema-import/pom.xml                  |    91 +
 .../org/apache/ignite/schema/CacheConfig.java   |    38 +
 .../java/org/apache/ignite/schema/Demo.java     |   145 +
 .../java/org/apache/ignite/schema/DemoNode.java |    37 +
 .../java/org/apache/ignite/schema/Person.java   |    45 +
 .../org/apache/ignite/schema/PersonKey.java     |    38 +
 .../ignite/examples/ComputeNodeStartup.java     |    35 -
 .../ignite/examples/ExampleNodeStartup.java     |    35 +
 .../apache/ignite/examples/ExamplesUtils.java   |    67 +-
 .../computegrid/ComputeAsyncExample.java        |    74 +
 .../computegrid/ComputeBroadcastExample.java    |     8 +-
 .../computegrid/ComputeCallableExample.java     |     8 +-
 .../computegrid/ComputeClosureExample.java      |     8 +-
 .../ComputeClusterGroupsExample.java            |    93 -
 .../ComputeContinuousMapperExample.java         |    10 +-
 .../ComputeExecutorServiceExample.java          |    71 -
 .../ComputeFibonacciContinuationExample.java    |    22 +-
 .../computegrid/ComputeReducerExample.java      |     8 +-
 .../computegrid/ComputeRunnableExample.java     |    23 +-
 .../computegrid/ComputeScheduleExample.java     |    81 -
 .../computegrid/ComputeTaskMapExample.java      |     8 +-
 .../computegrid/ComputeTaskSplitExample.java    |     8 +-
 .../cluster/ClusterGroupExample.java            |    93 +
 .../computegrid/cluster/package-info.java       |    22 +
 .../computegrid/failover/package-info.java      |    22 +
 .../examples/computegrid/failover/package.html  |    24 -
 .../montecarlo/CreditRiskExample.java           |     8 +-
 .../computegrid/montecarlo/package-info.java    |    22 +
 .../computegrid/montecarlo/package.html         |    24 -
 .../examples/computegrid/package-info.java      |    22 +
 .../ignite/examples/computegrid/package.html    |    24 -
 .../examples/datagrid/CacheAffinityExample.java |    37 +-
 .../examples/datagrid/CacheApiExample.java      |    55 +-
 .../examples/datagrid/CacheAsyncApiExample.java |    86 +
 .../datagrid/CacheContinuousQueryExample.java   |   101 +-
 .../datagrid/CacheDataLoaderExample.java        |    85 -
 .../datagrid/CacheDataStreamerExample.java      |    88 +
 .../examples/datagrid/CacheEventsExample.java   |    77 +-
 .../examples/datagrid/CacheNodeStartup.java     |    35 -
 .../datagrid/CachePopularNumbersExample.java    |   161 -
 .../examples/datagrid/CachePutGetExample.java   |    42 +-
 .../examples/datagrid/CacheQueryExample.java    |   239 +-
 .../datagrid/CacheTransactionExample.java       |    59 +-
 .../hibernate/HibernateL2CacheExample.java      |   135 +-
 .../HibernateL2CacheExampleNodeStartup.java     |    97 -
 .../datagrid/hibernate/package-info.java        |    22 +
 .../examples/datagrid/hibernate/package.html    |    24 -
 .../ignite/examples/datagrid/package-info.java  |    22 +
 .../ignite/examples/datagrid/package.html       |    24 -
 .../starschema/CacheStarSchemaExample.java      |    89 +-
 .../datagrid/starschema/DimProduct.java         |     2 +-
 .../examples/datagrid/starschema/DimStore.java  |     2 +-
 .../datagrid/starschema/FactPurchase.java       |     2 +-
 .../datagrid/starschema/package-info.java       |    22 +
 .../examples/datagrid/starschema/package.html   |    24 -
 .../store/CacheNodeWithStoreStartup.java        |    88 -
 .../datagrid/store/CacheStoreExample.java       |    87 -
 .../store/CacheStoreLoadDataExample.java        |    75 -
 .../ignite/examples/datagrid/store/Person.java  |    88 +-
 .../store/auto/CacheAutoStoreExample.java       |    86 +
 .../auto/CacheAutoStoreLoadDataExample.java     |    78 +
 .../datagrid/store/auto/CacheConfig.java        |    80 +
 .../datagrid/store/auto/DbH2ServerStartup.java  |    78 +
 .../datagrid/store/auto/package-info.java       |    22 +
 .../store/dummy/CacheDummyPersonStore.java      |     9 -
 .../store/dummy/CacheDummyStoreExample.java     |   127 +
 .../datagrid/store/dummy/package-info.java      |    22 +
 .../examples/datagrid/store/dummy/package.html  |    24 -
 .../hibernate/CacheHibernatePersonStore.java    |    46 +-
 .../hibernate/CacheHibernateStoreExample.java   |   130 +
 .../datagrid/store/hibernate/hibernate.cfg.xml  |     3 -
 .../datagrid/store/hibernate/package-info.java  |    22 +
 .../datagrid/store/hibernate/package.html       |    24 -
 .../store/jdbc/CacheJdbcPersonStore.java        |   119 +-
 .../store/jdbc/CacheJdbcStoreExample.java       |   130 +
 .../datagrid/store/jdbc/package-info.java       |    22 +
 .../examples/datagrid/store/jdbc/package.html   |    24 -
 .../examples/datagrid/store/package-info.java   |    22 +
 .../ignite/examples/datagrid/store/package.html |    24 -
 .../datastructures/IgniteAtomicLongExample.java |    10 +-
 .../IgniteAtomicReferenceExample.java           |    10 +-
 .../IgniteAtomicSequenceExample.java            |    10 +-
 .../IgniteAtomicStampedExample.java             |    10 +-
 .../IgniteCountDownLatchExample.java            |    10 +-
 .../IgniteExecutorServiceExample.java           |    71 +
 .../datastructures/IgniteQueueExample.java      |    33 +-
 .../datastructures/IgniteSetExample.java        |    33 +-
 .../examples/datastructures/package-info.java   |    22 +
 .../ignite/examples/datastructures/package.html |    24 -
 .../ignite/examples/events/EventsExample.java   |    10 +-
 .../ignite/examples/events/package-info.java    |    22 +
 .../apache/ignite/examples/events/package.html  |    24 -
 .../ignite/examples/igfs/IgfsExample.java       |    18 +-
 .../examples/igfs/IgfsMapReduceExample.java     |     6 +-
 .../ignite/examples/igfs/package-info.java      |    22 +
 .../apache/ignite/examples/igfs/package.html    |    24 -
 .../examples/messaging/MessagingExample.java    |     8 +-
 .../messaging/MessagingPingPongExample.java     |    56 +-
 .../MessagingPingPongListenActorExample.java    |     8 +-
 .../ignite/examples/messaging/package-info.java |    22 +
 .../ignite/examples/messaging/package.html      |    24 -
 .../client/memcache/MemcacheRestExample.java    |     2 +-
 .../MemcacheRestExampleNodeStartup.java         |    12 +-
 .../misc/client/memcache/package-info.java      |    22 +
 .../examples/misc/client/memcache/package.html  |    24 -
 .../examples/misc/client/package-info.java      |    22 +
 .../ignite/examples/misc/client/package.html    |    24 -
 .../misc/deployment/DeploymentExample.java      |     8 +-
 .../examples/misc/deployment/package-info.java  |    22 +
 .../examples/misc/deployment/package.html       |    24 -
 .../misc/lifecycle/LifecycleExample.java        |     4 +-
 .../examples/misc/lifecycle/package-info.java   |    22 +
 .../ignite/examples/misc/lifecycle/package.html |    24 -
 .../ignite/examples/misc/package-info.java      |    22 +
 .../apache/ignite/examples/misc/package.html    |    24 -
 .../misc/schedule/ComputeScheduleExample.java   |    81 +
 .../examples/misc/schedule/package-info.java    |    22 +
 .../misc/springbean/SpringBeanExample.java      |     6 +-
 .../examples/misc/springbean/package-info.java  |    22 +
 .../examples/misc/springbean/package.html       |    24 -
 .../apache/ignite/examples/package-info.java    |    22 +
 .../org/apache/ignite/examples/package.html     |    24 -
 .../examples/servicegrid/ServicesExample.java   |    21 +-
 .../servicegrid/SimpleMapServiceImpl.java       |    32 +-
 .../examples/servicegrid/package-info.java      |    22 +
 .../streaming/StreamingCheckInExample.java      |   580 -
 .../streaming/StreamingNodeStartup.java         |    35 -
 .../StreamingPopularNumbersExample.java         |   250 -
 .../streaming/StreamingPriceBarsExample.java    |   451 -
 .../StreamingRunningAverageExample.java         |   247 -
 .../streaming/marketdata/CacheConfig.java       |    44 +
 .../streaming/marketdata/Instrument.java        |   106 +
 .../marketdata/QueryTopInstruments.java         |    73 +
 .../streaming/marketdata/StreamMarketData.java  |   103 +
 .../examples/streaming/numbers/CacheConfig.java |    46 +
 .../streaming/numbers/QueryPopularNumbers.java  |    74 +
 .../streaming/numbers/StreamRandomNumbers.java  |    78 +
 .../ignite/examples/streaming/package-info.java |    22 +
 .../ignite/examples/streaming/package.html      |    24 -
 .../apache/ignite/examples/ComputeExample.java  |    57 -
 .../ignite/examples/MessagingExample.java       |   162 -
 .../java8/cluster/ClusterGroupExample.java      |    82 +
 .../examples/java8/cluster/package-info.java    |    22 +
 .../java8/computegrid/ComputeAsyncExample.java  |    71 +
 .../computegrid/ComputeBroadcastExample.java    |   101 +
 .../computegrid/ComputeCallableExample.java     |    73 +
 .../computegrid/ComputeClosureExample.java      |    69 +
 .../computegrid/ComputeRunnableExample.java     |    63 +
 .../java8/computegrid/package-info.java         |    22 +
 .../java8/datagrid/CacheAffinityExample.java    |   131 +
 .../java8/datagrid/CacheApiExample.java         |   103 +
 .../java8/datagrid/CacheAsyncApiExample.java    |    82 +
 .../examples/java8/datagrid/package-info.java   |    22 +
 .../IgniteExecutorServiceExample.java           |    69 +
 .../java8/datastructures/package-info.java      |    22 +
 .../examples/java8/events/EventsExample.java    |   132 +
 .../examples/java8/events/package-info.java     |    22 +
 .../java8/messaging/MessagingExample.java       |   163 +
 .../messaging/MessagingPingPongExample.java     |   111 +
 .../examples/java8/messaging/package-info.java  |    22 +
 .../misc/schedule/ComputeScheduleExample.java   |    66 +
 .../java8/misc/schedule/package-info.java       |    22 +
 .../ignite/examples/java8/package-info.java     |    23 +
 .../java8/streaming/marketdata/CacheConfig.java |    44 +
 .../java8/streaming/marketdata/Instrument.java  |   106 +
 .../marketdata/QueryTopInstruments.java         |    73 +
 .../streaming/marketdata/StreamMarketData.java  |   101 +
 .../java8/streaming/numbers/CacheConfig.java    |    46 +
 .../streaming/numbers/QueryPopularNumbers.java  |    74 +
 .../streaming/numbers/StreamRandomNumbers.java  |    74 +
 .../examples/java8/streaming/package-info.java  |    22 +
 .../examples/ScalarCacheAffinityExample.scala   |   115 +
 .../examples/ScalarCacheAffinityExample1.scala  |   121 -
 .../examples/ScalarCacheAffinityExample2.scala  |   116 -
 .../ScalarCacheAffinitySimpleExample.scala      |    83 -
 .../scalar/examples/ScalarCacheExample.scala    |    29 +-
 .../ScalarCachePopularNumbersExample.scala      |   107 +-
 .../examples/ScalarCacheQueryExample.scala      |    45 +-
 .../scalar/examples/ScalarClosureExample.scala  |     9 +-
 .../examples/ScalarContinuationExample.scala    |    23 +-
 .../examples/ScalarCreditRiskExample.scala      |     9 +-
 .../scalar/examples/ScalarJvmCloudExample.scala |     2 +-
 .../examples/ScalarPiCalculationExample.scala   |    55 -
 .../scalar/examples/ScalarPingPongExample.scala |     9 +-
 .../scalar/examples/ScalarPrimeExample.scala    |     8 +-
 .../scalar/examples/ScalarScheduleExample.scala |     9 +-
 .../examples/ScalarSnowflakeSchemaExample.scala |    86 +-
 .../scalar/examples/ScalarTaskExample.scala     |     9 +-
 .../examples/ScalarWorldShortestMapReduce.scala |     9 +-
 .../ignite/examples/BasicExamplesSelfTest.java  |     3 +-
 .../CacheExamplesMultiNodeSelfTest.java         |    12 +-
 .../ignite/examples/CacheExamplesSelfTest.java  |    26 +-
 ...heStoreLoadDataExampleMultiNodeSelfTest.java |    39 -
 .../examples/ClusterGroupExampleSelfTest.java   |    39 +
 .../ComputeClusterGroupsExampleSelfTest.java    |    39 -
 ...ibernateL2CacheExampleMultiNodeSelfTest.java |     2 +-
 .../examples/MessagingExamplesSelfTest.java     |     5 +-
 .../testsuites/IgniteExamplesSelfTestSuite.java |     3 +-
 .../BasicExamplesMultiNodeSelfTest.java         |    28 +
 .../java8/examples/BasicExamplesSelfTest.java   |    83 +
 .../CacheExamplesMultiNodeSelfTest.java         |    38 +
 .../java8/examples/CacheExamplesSelfTest.java   |   141 +
 .../examples/CheckpointExamplesSelfTest.java    |    45 +
 .../examples/ClusterGroupExampleSelfTest.java   |    39 +
 .../ContinuationExamplesMultiNodeSelfTest.java  |    28 +
 .../examples/ContinuationExamplesSelfTest.java  |    33 +
 ...ntinuousMapperExamplesMultiNodeSelfTest.java |    28 +
 .../ContinuousMapperExamplesSelfTest.java       |    33 +
 .../DeploymentExamplesMultiNodeSelfTest.java    |    30 +
 .../examples/DeploymentExamplesSelfTest.java    |    33 +
 .../EventsExamplesMultiNodeSelfTest.java        |    28 +
 .../java8/examples/EventsExamplesSelfTest.java  |    33 +
 ...ibernateL2CacheExampleMultiNodeSelfTest.java |    29 +
 .../HibernateL2CacheExampleSelfTest.java        |    33 +
 .../java8/examples/IgfsExamplesSelfTest.java    |    51 +
 .../examples/LifecycleExamplesSelfTest.java     |    33 +
 .../MemcacheRestExamplesMultiNodeSelfTest.java  |    31 +
 .../examples/MemcacheRestExamplesSelfTest.java  |    41 +
 .../examples/MessagingExamplesSelfTest.java     |    53 +
 .../MonteCarloExamplesMultiNodeSelfTest.java    |    28 +
 .../examples/MonteCarloExamplesSelfTest.java    |    74 +
 .../examples/SpringBeanExamplesSelfTest.java    |    33 +
 .../examples/TaskExamplesMultiNodeSelfTest.java |    28 +
 .../java8/examples/TaskExamplesSelfTest.java    |    40 +
 .../IgniteExamplesJ8SelfTestSuite.java          |    73 +
 .../tests/examples/ScalarExamplesSelfTest.scala |    17 +-
 ipc/README.txt                                  |     4 +
 ipc/readme.txt                                  |     4 -
 ipc/shmem/Makefile.am                           |    15 +
 ipc/shmem/README.txt                            |    37 +
 ipc/shmem/compile                               |     4 +
 ipc/shmem/config.guess                          |     4 +
 ipc/shmem/config.sub                            |     4 +
 ipc/shmem/depcomp                               |     4 +
 ipc/shmem/igniteshmem/Makefile.am               |    15 +
 ipc/shmem/include/Makefile.am                   |    15 +
 ipc/shmem/ltmain.sh                             |     3 +
 ipc/shmem/missing                               |     4 +
 ipc/shmem/readme.txt                            |    37 -
 license/header-customisation.xml                |    51 -
 license/header.txt                              |    14 -
 modules/aop/README.txt                          |    33 +
 modules/aop/readme.txt                          |    33 -
 .../gridify/aop/aspectj/package-info.java       |    22 +
 .../compute/gridify/aop/aspectj/package.html    |    24 -
 .../gridify/aop/spring/package-info.java        |    22 +
 .../compute/gridify/aop/spring/package.html     |    25 -
 .../apache/ignite/gridify/AbstractAopTest.java  |     2 +-
 .../ignite/gridify/hierarchy/package-info.java  |    22 +
 .../ignite/gridify/hierarchy/package.html       |    25 -
 .../org/apache/ignite/gridify/package-info.java |    22 +
 .../java/org/apache/ignite/gridify/package.html |    25 -
 .../direct/singlesplit/package-info.java        |    22 +
 .../loadtests/direct/singlesplit/package.html   |    24 -
 .../java/org/test/gridify/package-info.java     |    22 +
 .../src/test/java/org/test/gridify/package.html |    24 -
 modules/aws/README.txt                          |    32 +
 modules/aws/readme.txt                          |    32 -
 .../spi/checkpoint/s3/S3CheckpointData.java     |    62 +-
 .../spi/checkpoint/s3/S3CheckpointSpi.java      |    10 +-
 .../ignite/spi/checkpoint/s3/package-info.java  |    22 +
 .../ignite/spi/checkpoint/s3/package.html       |    24 -
 .../discovery/tcp/ipfinder/s3/package-info.java |    22 +
 .../spi/discovery/tcp/ipfinder/s3/package.html  |    24 -
 .../checkpoint/s3/S3CheckpointSpiSelfTest.java  |     2 +-
 .../s3/S3CheckpointSpiStartStopSelfTest.java    |     2 +-
 .../ignite/spi/checkpoint/s3/package-info.java  |    22 +
 .../ignite/spi/checkpoint/s3/package.html       |    24 -
 .../discovery/tcp/ipfinder/s3/package-info.java |    22 +
 .../spi/discovery/tcp/ipfinder/s3/package.html  |    24 -
 modules/clients/readme.md                       |    21 +-
 modules/clients/readme.pdf                      |   Bin 52230 -> 47887 bytes
 .../ClientAbstractMultiThreadedSelfTest.java    |   219 +-
 .../client/ClientDefaultCacheSelfTest.java      |    48 -
 .../client/ClientTopologyCacheSelfTest.java     |   288 -
 .../impl/ClientPartitionAffinitySelfTest.java   |   406 -
 .../ClientAbstractMultiNodeSelfTest.java        |   346 +-
 .../integration/ClientAbstractSelfTest.java     |   846 +-
 .../ClientTcpUnreachableMultiNodeSelfTest.java  |     4 -
 .../client/suite/IgniteClientTestSuite.java     |     6 +-
 .../rest/AbstractRestProcessorSelfTest.java     |     4 +-
 .../JettyRestProcessorAbstractSelfTest.java     |     9 +-
 .../rest/RestBinaryProtocolSelfTest.java        |    74 +-
 .../rest/RestMemcacheProtocolSelfTest.java      |    80 +-
 .../processors/rest/RestProcessorTest.java      |     3 +-
 .../rest/TaskCommandHandlerSelfTest.java        |     4 +-
 .../rest/protocols/tcp/MockNioSession.java      |     7 +-
 .../ignite/jdbc/JdbcComplexQuerySelfTest.java   |    17 +-
 .../ignite/jdbc/JdbcEmptyCacheSelfTest.java     |     5 +-
 .../ignite/jdbc/JdbcLocalCachesSelfTest.java    |    20 +-
 .../ignite/jdbc/JdbcMetadataSelfTest.java       |    13 +-
 .../jdbc/JdbcPreparedStatementSelfTest.java     |     7 +-
 .../ignite/jdbc/JdbcResultSetSelfTest.java      |     9 +-
 .../ignite/jdbc/JdbcStatementSelfTest.java      |     9 +-
 .../loadtests/client/ClientTcpSslLoadTest.java  |     4 +-
 modules/clients/src/test/keystore/generate.sh   |    17 +-
 .../clients/src/test/resources/spring-cache.xml |    27 +-
 .../src/test/resources/spring-server-node.xml   |    13 +-
 .../test/resources/spring-server-ssl-node.xml   |    10 +-
 modules/codegen/pom.xml                         |     6 +
 .../ignite/codegen/MessageCodeGenerator.java    |    17 +-
 .../core/licenses/pcollections-mit-license.txt  |    19 -
 modules/core/licenses/snaptree-bsd-license.txt  |    35 +
 modules/core/licenses/snaptree-license.txt      |    35 -
 modules/core/licenses/sun-bcl-license.txt       |    50 -
 modules/core/pom.xml                            |   169 +-
 .../META-INF/native/linux64/libigniteshmem.so   |   Bin 138345 -> 0 bytes
 .../META-INF/native/osx/libigniteshmem.dylib    |   Bin 33116 -> 0 bytes
 .../src/main/java/com/romix/scala/None.java     |    27 -
 .../src/main/java/com/romix/scala/Option.java   |    42 -
 .../src/main/java/com/romix/scala/Some.java     |    38 -
 .../scala/collection/concurrent/BasicNode.java  |    32 -
 .../scala/collection/concurrent/CNodeBase.java  |    49 -
 .../romix/scala/collection/concurrent/Gen.java  |    29 -
 .../scala/collection/concurrent/INodeBase.java  |    47 -
 .../scala/collection/concurrent/ListMap.java    |   247 -
 .../scala/collection/concurrent/MainNode.java   |    51 -
 .../romix/scala/collection/concurrent/Pair.java |    54 -
 .../scala/collection/concurrent/TrieMap.java    |  1826 ---
 .../src/main/java/org/apache/ignite/Ignite.java |   122 +-
 .../java/org/apache/ignite/IgniteCache.java     |   164 +-
 .../java/org/apache/ignite/IgniteCluster.java   |    12 +-
 .../java/org/apache/ignite/IgniteCompute.java   |     4 -
 .../org/apache/ignite/IgniteDataLoader.java     |   379 -
 .../org/apache/ignite/IgniteDataStreamer.java   |   390 +
 .../java/org/apache/ignite/IgniteEvents.java    |     2 +-
 .../org/apache/ignite/IgniteFileSystem.java     |   457 +
 .../main/java/org/apache/ignite/IgniteFs.java   |   346 -
 .../org/apache/ignite/IgniteJdbcDriver.java     |    13 +-
 .../java/org/apache/ignite/IgniteQueue.java     |     4 +-
 .../main/java/org/apache/ignite/IgniteSet.java  |     2 +-
 .../java/org/apache/ignite/IgniteStreamer.java  |   154 -
 .../apache/ignite/IgniteSystemProperties.java   |    47 +-
 .../org/apache/ignite/IgniteTransactions.java   |     2 +-
 .../main/java/org/apache/ignite/Ignition.java   |    58 +-
 .../ignite/cache/CacheDistributionMode.java     |    69 -
 .../CacheEntryEventSerializableFilter.java      |    28 +
 .../ignite/cache/CacheEntryProcessor.java       |    28 +
 .../ignite/cache/CacheExistsException.java      |    52 +
 .../apache/ignite/cache/CacheInterceptor.java   |    39 +-
 .../ignite/cache/CacheInterceptorAdapter.java   |    15 +-
 .../org/apache/ignite/cache/CacheManager.java   |   408 +-
 .../apache/ignite/cache/CacheMemoryMode.java    |     6 +-
 .../java/org/apache/ignite/cache/CacheMode.java |     8 +-
 .../cache/CachePartialUpdateException.java      |     3 +
 .../apache/ignite/cache/CachePreloadMode.java   |    67 -
 .../apache/ignite/cache/CacheRebalanceMode.java |    68 +
 .../cache/CacheServerNotFoundException.java     |    49 +
 .../ignite/cache/CacheTypeFieldMetadata.java    |     9 +-
 .../apache/ignite/cache/CacheTypeMetadata.java  |    26 +-
 .../apache/ignite/cache/CachingProvider.java    |   155 +-
 .../java/org/apache/ignite/cache/GridCache.java |   223 -
 .../ignite/cache/IgniteEntryProcessor.java      |    28 -
 .../apache/ignite/cache/affinity/Affinity.java  |   246 +
 .../affinity/AffinityCentralizedFunction.java   |    31 +
 .../ignite/cache/affinity/AffinityFunction.java |   110 +
 .../cache/affinity/AffinityFunctionContext.java |    72 +
 .../ignite/cache/affinity/AffinityKey.java      |   189 +
 .../cache/affinity/AffinityKeyMapped.java       |   110 +
 .../cache/affinity/AffinityKeyMapper.java       |    62 +
 .../AffinityNodeAddressHashResolver.java        |    39 +
 .../affinity/AffinityNodeHashResolver.java      |    43 +
 .../affinity/AffinityNodeIdHashResolver.java    |    40 +
 .../ignite/cache/affinity/CacheAffinity.java    |   256 -
 .../cache/affinity/CacheAffinityFunction.java   |   110 -
 .../affinity/CacheAffinityFunctionContext.java  |    71 -
 .../ignite/cache/affinity/CacheAffinityKey.java |   189 -
 .../cache/affinity/CacheAffinityKeyMapped.java  |   156 -
 .../cache/affinity/CacheAffinityKeyMapper.java  |    62 -
 .../CacheAffinityNodeAddressHashResolver.java   |    39 -
 .../affinity/CacheAffinityNodeHashResolver.java |    43 -
 .../CacheAffinityNodeIdHashResolver.java        |    40 -
 .../CacheCentralizedAffinityFunction.java       |    31 -
 .../CacheConsistentHashAffinityFunction.java    |   702 -
 .../cache/affinity/consistenthash/package.html  |    24 -
 .../fair/CachePartitionFairAffinity.java        |   804 -
 .../affinity/fair/FairAffinityFunction.java     |   777 +
 .../cache/affinity/fair/package-info.java       |    21 +
 .../ignite/cache/affinity/fair/package.html     |    24 -
 .../ignite/cache/affinity/package-info.java     |    21 +
 .../apache/ignite/cache/affinity/package.html   |    24 -
 .../CacheRendezvousAffinityFunction.java        |   502 -
 .../rendezvous/RendezvousAffinityFunction.java  |   500 +
 .../cache/affinity/rendezvous/package-info.java |    21 +
 .../cache/affinity/rendezvous/package.html      |    24 -
 .../cache/eviction/CacheEvictionFilter.java     |    40 -
 .../cache/eviction/CacheEvictionPolicy.java     |    51 -
 .../ignite/cache/eviction/EvictableEntry.java   |     2 +-
 .../ignite/cache/eviction/EvictionFilter.java   |    43 +
 .../ignite/cache/eviction/EvictionPolicy.java   |    54 +
 .../eviction/fifo/CacheFifoEvictionPolicy.java  |   181 -
 .../fifo/CacheFifoEvictionPolicyMBean.java      |    50 -
 .../cache/eviction/fifo/FifoEvictionPolicy.java |   191 +
 .../eviction/fifo/FifoEvictionPolicyMBean.java  |    50 +
 .../cache/eviction/fifo/package-info.java       |    21 +
 .../ignite/cache/eviction/fifo/package.html     |    24 -
 .../eviction/igfs/CacheIgfsEvictionFilter.java  |    35 -
 .../CacheIgfsPerBlockLruEvictionPolicy.java     |   358 -
 ...acheIgfsPerBlockLruEvictionPolicyMXBean.java |    93 -
 .../cache/eviction/igfs/IgfsEvictionFilter.java |    38 +
 .../igfs/IgfsPerBlockLruEvictionPolicy.java     |   376 +
 .../IgfsPerBlockLruEvictionPolicyMXBean.java    |    93 +
 .../cache/eviction/igfs/package-info.java       |    21 +
 .../ignite/cache/eviction/igfs/package.html     |    24 -
 .../eviction/lru/CacheLruEvictionPolicy.java    |   186 -
 .../lru/CacheLruEvictionPolicyMBean.java        |    50 -
 .../cache/eviction/lru/LruEvictionPolicy.java   |   198 +
 .../eviction/lru/LruEvictionPolicyMBean.java    |    50 +
 .../ignite/cache/eviction/lru/package-info.java |    21 +
 .../ignite/cache/eviction/lru/package.html      |    24 -
 .../ignite/cache/eviction/package-info.java     |    21 +
 .../apache/ignite/cache/eviction/package.html   |    24 -
 .../random/CacheRandomEvictionPolicy.java       |   101 -
 .../random/CacheRandomEvictionPolicyMBean.java  |    42 -
 .../eviction/random/RandomEvictionPolicy.java   |   114 +
 .../random/RandomEvictionPolicyMBean.java       |    42 +
 .../cache/eviction/random/package-info.java     |    21 +
 .../ignite/cache/eviction/random/package.html   |    24 -
 .../org/apache/ignite/cache/package-info.java   |    22 +
 .../java/org/apache/ignite/cache/package.html   |    24 -
 .../ignite/cache/query/ContinuousQuery.java     |   116 +-
 .../org/apache/ignite/cache/query/Query.java    |   102 +-
 .../apache/ignite/cache/query/QueryMetrics.java |     4 +-
 .../ignite/cache/query/QueryTypeResolver.java   |    32 -
 .../apache/ignite/cache/query/ScanQuery.java    |    28 +-
 .../org/apache/ignite/cache/query/SpiQuery.java |    17 +-
 .../ignite/cache/query/SqlFieldsQuery.java      |    17 +-
 .../org/apache/ignite/cache/query/SqlQuery.java |    30 +-
 .../apache/ignite/cache/query/TextQuery.java    |    28 +-
 .../query/annotations/QuerySqlFunction.java     |     4 +-
 .../cache/query/annotations/package-info.java   |    22 +
 .../apache/ignite/cache/query/package-info.java |    21 +
 .../org/apache/ignite/cache/query/package.html  |    24 -
 .../cache/store/CacheLoadOnlyStoreAdapter.java  |    10 +-
 .../apache/ignite/cache/store/CacheStore.java   |    59 +-
 .../ignite/cache/store/CacheStoreAdapter.java   |     4 +-
 .../ignite/cache/store/CacheStoreSession.java   |    17 +-
 .../store/jdbc/CacheAbstractJdbcStore.java      |   275 +-
 .../cache/store/jdbc/CacheJdbcBlobStore.java    |    10 +-
 .../cache/store/jdbc/CacheJdbcPojoStore.java    |    58 +-
 .../store/jdbc/dialect/BasicJdbcDialect.java    |     6 +-
 .../cache/store/jdbc/dialect/DB2Dialect.java    |     2 +-
 .../cache/store/jdbc/dialect/JdbcDialect.java   |     2 +-
 .../store/jdbc/dialect/SQLServerDialect.java    |     2 +-
 .../cache/store/jdbc/dialect/package-info.java  |    21 +
 .../cache/store/jdbc/dialect/package.html       |    24 -
 .../ignite/cache/store/jdbc/package-info.java   |    22 +
 .../apache/ignite/cache/store/jdbc/package.html |    24 -
 .../apache/ignite/cache/store/package-info.java |    22 +
 .../org/apache/ignite/cache/store/package.html  |    24 -
 .../org/apache/ignite/cluster/ClusterGroup.java |    49 +-
 .../apache/ignite/cluster/ClusterMetrics.java   |    68 +-
 .../org/apache/ignite/cluster/package-info.java |    22 +
 .../org/apache/ignite/compute/ComputeJob.java   |     3 +-
 .../ignite/compute/ComputeJobAdapter.java       |     2 +-
 .../ignite/compute/ComputeJobContext.java       |     1 -
 .../compute/gridify/aop/package-info.java       |    22 +
 .../ignite/compute/gridify/aop/package.html     |    24 -
 .../ignite/compute/gridify/package-info.java    |    22 +
 .../apache/ignite/compute/gridify/package.html  |    24 -
 .../org/apache/ignite/compute/package-info.java |    22 +
 .../java/org/apache/ignite/compute/package.html |    24 -
 .../configuration/CacheConfiguration.java       |   776 +-
 .../configuration/CacheQueryConfiguration.java  |   182 -
 .../configuration/FileSystemConfiguration.java  |   788 +
 .../configuration/HadoopConfiguration.java      |   176 +
 .../ignite/configuration/IgfsConfiguration.java |   807 -
 .../configuration/IgniteConfiguration.java      |   243 +-
 .../configuration/IgniteReflectionFactory.java  |   216 +
 .../configuration/NearCacheConfiguration.java   |    95 +
 .../configuration/QueryConfiguration.java       |   202 -
 .../ignite/configuration/package-info.java      |    22 +
 .../org/apache/ignite/events/CacheEvent.java    |    20 +-
 .../ignite/events/CachePreloadingEvent.java     |   172 -
 .../ignite/events/CacheQueryExecutedEvent.java  |    10 +-
 .../ignite/events/CacheQueryReadEvent.java      |    10 +-
 .../ignite/events/CacheRebalancingEvent.java    |   172 +
 .../java/org/apache/ignite/events/Event.java    |     2 +-
 .../org/apache/ignite/events/EventType.java     |    81 +-
 .../org/apache/ignite/events/package-info.java  |    22 +
 .../java/org/apache/ignite/events/package.html  |    24 -
 .../main/java/org/apache/ignite/igfs/Igfs.java  |   216 -
 .../apache/ignite/igfs/IgfsBlockLocation.java   |     2 +-
 .../IgfsConcurrentModificationException.java    |    29 +-
 .../ignite/igfs/IgfsCorruptedFileException.java |    16 +-
 .../igfs/IgfsDirectoryNotEmptyException.java    |    56 +
 .../org/apache/ignite/igfs/IgfsException.java   |    16 +-
 .../java/org/apache/ignite/igfs/IgfsFile.java   |     2 +-
 .../ignite/igfs/IgfsFileNotFoundException.java  |    44 -
 .../org/apache/ignite/igfs/IgfsInputStream.java |     4 +-
 .../igfs/IgfsInvalidHdfsVersionException.java   |    23 +-
 .../ignite/igfs/IgfsInvalidPathException.java   |    16 +-
 .../igfs/IgfsIpcEndpointConfiguration.java      |   241 +
 .../apache/ignite/igfs/IgfsIpcEndpointType.java |    29 +
 .../org/apache/ignite/igfs/IgfsMetrics.java     |     2 +-
 .../java/org/apache/ignite/igfs/IgfsMode.java   |     8 +-
 .../ignite/igfs/IgfsOutOfSpaceException.java    |    16 +-
 .../igfs/IgfsParentNotDirectoryException.java   |    20 +-
 .../igfs/IgfsPathAlreadyExistsException.java    |    19 +-
 .../igfs/IgfsPathIsDirectoryException.java      |    56 +
 .../igfs/IgfsPathIsNotDirectoryException.java   |    56 +
 .../ignite/igfs/IgfsPathNotFoundException.java  |    56 +
 .../java/org/apache/ignite/igfs/IgfsReader.java |    38 -
 .../mapreduce/IgfsInputStreamJobAdapter.java    |     4 +-
 .../apache/ignite/igfs/mapreduce/IgfsJob.java   |     4 +-
 .../igfs/mapreduce/IgfsRecordResolver.java      |     2 +-
 .../apache/ignite/igfs/mapreduce/IgfsTask.java  |     4 +-
 .../ignite/igfs/mapreduce/IgfsTaskArgs.java     |     2 +-
 .../ignite/igfs/mapreduce/package-info.java     |    22 +
 .../apache/ignite/igfs/mapreduce/package.html   |    24 -
 .../IgfsByteDelimiterRecordResolver.java        |     3 +-
 .../records/IgfsFixedLengthRecordResolver.java  |     2 +-
 .../igfs/mapreduce/records/package-info.java    |    22 +
 .../ignite/igfs/mapreduce/records/package.html  |    24 -
 .../org/apache/ignite/igfs/package-info.java    |    22 +
 .../java/org/apache/ignite/igfs/package.html    |    24 -
 .../igfs/secondary/IgfsSecondaryFileSystem.java |   201 +
 ...fsSecondaryFileSystemPositionedReadable.java |    38 +
 .../ignite/igfs/secondary/package-info.java     |    22 +
 .../ignite/internal/AsyncSupportAdapter.java    |    16 +-
 .../ClusterLocalNodeMetricsMXBeanImpl.java      |     5 +
 .../ignite/internal/ClusterMetricsSnapshot.java |    27 +-
 .../internal/ComputeTaskInternalFuture.java     |    41 +-
 .../apache/ignite/internal/GridComponent.java   |     9 +-
 .../apache/ignite/internal/GridDiagnostic.java  |    15 +-
 .../internal/GridEventConsumeHandler.java       |    31 +-
 .../ignite/internal/GridJobContextImpl.java     |     6 +-
 .../ignite/internal/GridJobSessionImpl.java     |     2 +-
 .../ignite/internal/GridKernalContext.java      |    82 +-
 .../ignite/internal/GridKernalContextImpl.java  |   150 +-
 .../ignite/internal/GridKernalGateway.java      |     5 +
 .../ignite/internal/GridKernalGatewayImpl.java  |    32 +-
 .../apache/ignite/internal/GridKernalState.java |     2 +-
 .../internal/GridMessageListenHandler.java      |    20 +-
 .../internal/GridNodeOrderComparator.java       |    10 +
 .../ignite/internal/GridPluginComponent.java    |     2 +-
 .../apache/ignite/internal/GridProperties.java  |    78 -
 .../ignite/internal/GridTaskSessionImpl.java    |     5 +-
 .../org/apache/ignite/internal/GridTopic.java   |    91 +-
 .../ignite/internal/GridUpdateNotifier.java     |    11 +-
 .../internal/IgniteCodeGeneratingFail.java      |    29 +
 .../ignite/internal/IgniteComponentType.java    |     8 +-
 .../org/apache/ignite/internal/IgniteEx.java    |    14 +-
 .../ignite/internal/IgniteInternalFuture.java   |    79 +-
 .../apache/ignite/internal/IgniteKernal.java    |   592 +-
 .../ignite/internal/IgniteNodeAttributes.java   |     2 +-
 .../ignite/internal/IgniteProperties.java       |    79 +
 .../ignite/internal/IgniteTransactionsEx.java   |    16 -
 .../ignite/internal/IgniteVersionUtils.java     |     8 +-
 .../org/apache/ignite/internal/IgnitionEx.java  |   887 +-
 .../internal/MarshallerContextAdapter.java      |   130 +
 .../ignite/internal/MarshallerContextImpl.java  |   108 +
 .../org/apache/ignite/internal/SkipDaemon.java  |    29 +
 .../internal/client/GridClientCacheFlag.java    |     2 +-
 .../internal/client/GridClientFuture.java       |     9 +-
 .../ignite/internal/client/GridClientNode.java  |     8 -
 .../client/GridClientPartitionAffinity.java     |    10 +-
 .../balancer/GridClientBalancerAdapter.java     |     2 +-
 .../client/impl/GridClientComputeImpl.java      |     2 +-
 .../client/impl/GridClientDataImpl.java         |     2 +-
 .../client/impl/GridClientFutureAdapter.java    |    23 +-
 .../client/impl/GridClientNodeImpl.java         |    22 -
 .../GridClientConnectionManagerAdapter.java     |     2 +-
 .../connection/GridClientNioTcpConnection.java  |     8 +-
 .../GridClientOptimizedMarshaller.java          |    42 +-
 .../router/impl/GridRouterClientImpl.java       |     2 +-
 .../impl/GridRouterCommandLineStartup.java      |     6 +-
 .../impl/GridTcpRouterNioListenerAdapter.java   |     2 +-
 .../internal/cluster/ClusterGroupAdapter.java   |   130 +-
 .../ignite/internal/cluster/ClusterGroupEx.java |     6 +-
 .../cluster/ClusterNodeLocalMapImpl.java        |     2 +-
 .../ClusterTopologyServerNotFoundException.java |    40 +
 .../cluster/IgniteClusterAsyncImpl.java         |    15 +-
 .../internal/cluster/IgniteClusterImpl.java     |    17 +-
 .../internal/direct/DirectByteBufferStream.java |    62 +-
 .../internal/direct/DirectMessageWriter.java    |     7 +
 .../direct/DirectMessageWriterState.java        |     3 +
 .../internal/events/DiscoveryCustomEvent.java   |    21 +
 .../internal/executor/GridExecutorService.java  |     2 +-
 .../ignite/internal/executor/package-info.java  |    22 +
 .../ignite/internal/executor/package.html       |    24 -
 .../igfs/common/IgfsControlResponse.java        |     5 +-
 .../ignite/internal/igfs/common/IgfsLogger.java |     6 +-
 .../internal/igfs/common/IgfsMarshaller.java    |     1 -
 .../internal/igfs/common/package-info.java      |    22 +
 .../ignite/internal/igfs/common/package.html    |    24 -
 .../ignite/internal/managers/GridManager.java   |    20 +-
 .../internal/managers/GridManagerAdapter.java   |   116 +-
 .../checkpoint/GridCheckpointManager.java       |     8 +-
 .../managers/checkpoint/package-info.java       |    22 +
 .../internal/managers/checkpoint/package.html   |    24 -
 .../collision/GridCollisionManager.java         |     4 +-
 .../managers/collision/package-info.java        |    22 +
 .../internal/managers/collision/package.html    |    24 -
 .../managers/communication/GridIoManager.java   |   150 +-
 .../communication/GridIoMessageFactory.java     |   145 +-
 .../managers/communication/GridIoPolicy.java    |     5 +-
 .../managers/communication/package-info.java    |    22 +
 .../managers/communication/package.html         |    24 -
 .../managers/deployment/GridDeployment.java     |     2 +-
 .../deployment/GridDeploymentClassLoader.java   |     2 +-
 .../deployment/GridDeploymentLocalStore.java    |     7 +-
 .../GridDeploymentPerLoaderStore.java           |     6 +-
 .../GridDeploymentPerVersionStore.java          |     8 +-
 .../managers/deployment/package-info.java       |    22 +
 .../internal/managers/deployment/package.html   |    24 -
 .../deployment/protocol/gg/package-info.java    |    22 +
 .../deployment/protocol/gg/package.html         |    24 -
 .../discovery/GridDiscoveryManager.java         |   597 +-
 .../GridDiscoveryTopologySnapshot.java          |    16 +-
 .../managers/discovery/package-info.java        |    22 +
 .../internal/managers/discovery/package.html    |    24 -
 .../eventstorage/GridEventStorageManager.java   |    11 +-
 .../managers/eventstorage/package-info.java     |    22 +
 .../internal/managers/eventstorage/package.html |    24 -
 .../managers/failover/package-info.java         |    22 +
 .../internal/managers/failover/package.html     |    24 -
 .../managers/indexing/GridIndexingManager.java  |     4 +-
 .../managers/indexing/package-info.java         |    22 +
 .../internal/managers/indexing/package.html     |    24 -
 .../loadbalancer/GridLoadBalancerManager.java   |     3 -
 .../managers/loadbalancer/package-info.java     |    22 +
 .../internal/managers/loadbalancer/package.html |    24 -
 .../ignite/internal/managers/package-info.java  |    22 +
 .../ignite/internal/managers/package.html       |    24 -
 .../swapspace/GridSwapSpaceManager.java         |    13 +-
 .../managers/swapspace/package-info.java        |    22 +
 .../internal/managers/swapspace/package.html    |    24 -
 .../ignite/internal/mxbean/package-info.java    |    22 +
 .../apache/ignite/internal/mxbean/package.html  |    24 -
 .../apache/ignite/internal/package-info.java    |    22 +
 .../org/apache/ignite/internal/package.html     |    24 -
 .../internal/processors/GridProcessor.java      |    11 +-
 .../processors/GridProcessorAdapter.java        |     7 +-
 .../affinity/AffinityTopologyVersion.java       |   204 +
 .../affinity/GridAffinityAssignment.java        |    12 +-
 .../affinity/GridAffinityAssignmentCache.java   |   164 +-
 .../GridAffinityFunctionContextImpl.java        |    83 +
 .../affinity/GridAffinityMessage.java           |    13 +-
 .../affinity/GridAffinityProcessor.java         |   177 +-
 .../processors/affinity/GridAffinityUtils.java  |    19 +-
 .../GridCacheAffinityFunctionContextImpl.java   |    83 -
 .../processors/affinity/package-info.java       |    22 +
 .../internal/processors/affinity/package.html   |    24 -
 .../processors/cache/CacheDistributionMode.java |    67 +
 .../cache/CacheEntryInfoCollection.java         |   111 +
 .../processors/cache/CacheEntryPredicate.java   |    45 +
 .../cache/CacheEntryPredicateAdapter.java       |    96 +
 .../cache/CacheEntryPredicateContainsValue.java |   138 +
 .../cache/CacheEntryPredicateHasValue.java      |    31 +
 .../cache/CacheEntryPredicateNoValue.java       |    31 +
 .../cache/CacheEntrySerializablePredicate.java  |   152 +
 .../cache/CacheEvictableEntryImpl.java          |   197 +
 .../processors/cache/CacheEvictionEntry.java    |   182 +
 .../internal/processors/cache/CacheFlag.java    |     2 -
 .../cache/CacheInvokeDirectResult.java          |   213 +
 .../processors/cache/CacheInvokeEntry.java      |    79 +-
 .../processors/cache/CacheInvokeResult.java     |    12 +-
 .../processors/cache/CacheLazyEntry.java        |   133 +
 .../processors/cache/CacheMetricsImpl.java      |     4 +
 .../internal/processors/cache/CacheObject.java  |    73 +
 .../processors/cache/CacheObjectAdapter.java    |   118 +
 .../cache/CacheObjectByteArrayImpl.java         |   156 +
 .../processors/cache/CacheObjectContext.java    |   130 +
 .../processors/cache/CacheObjectImpl.java       |   126 +
 .../processors/cache/CachePeekModes.java        |    28 +
 .../processors/cache/CacheProjection.java       |   306 +-
 .../cache/CacheStoreBalancingWrapper.java       |     8 +-
 .../cache/CacheWeakQueryIteratorsHolder.java    |     4 +-
 .../cache/DynamicCacheChangeBatch.java          |    75 +
 .../cache/DynamicCacheChangeRequest.java        |   193 +
 .../cache/DynamicCacheDescriptor.java           |   171 +
 .../processors/cache/EvictableEntryImpl.java    |   188 -
 .../internal/processors/cache/GridCache.java    |   227 +
 .../processors/cache/GridCacheAdapter.java      |  1924 ++-
 .../cache/GridCacheAffinityManager.java         |   126 +-
 .../processors/cache/GridCacheAtomicFuture.java |     8 +-
 .../cache/GridCacheAtomicVersionComparator.java |    21 +-
 .../processors/cache/GridCacheAttributes.java   |   424 +-
 .../cache/GridCacheBatchSwapEntry.java          |    27 +-
 .../cache/GridCacheClearAllRunnable.java        |    35 +-
 .../cache/GridCacheConcurrentMap.java           |   376 +-
 .../processors/cache/GridCacheContext.java      |   572 +-
 .../GridCacheDefaultAffinityKeyMapper.java      |    61 +-
 .../cache/GridCacheDeploymentManager.java       |   145 +-
 .../processors/cache/GridCacheEntryEx.java      |   210 +-
 .../processors/cache/GridCacheEntryInfo.java    |   337 +-
 .../GridCacheEntryInfoCollectSwapListener.java  |    58 +-
 .../processors/cache/GridCacheEntrySet.java     |     2 +-
 .../processors/cache/GridCacheEventManager.java |   155 +-
 .../cache/GridCacheEvictionManager.java         |   302 +-
 .../cache/GridCacheEvictionRequest.java         |    60 +-
 .../cache/GridCacheEvictionResponse.java        |    27 +-
 .../cache/GridCacheExplicitLockSpan.java        |    56 +-
 .../cache/GridCacheFilterFailedException.java   |     8 +-
 .../processors/cache/GridCacheGateway.java      |   124 +-
 .../processors/cache/GridCacheIoManager.java    |   152 +-
 .../processors/cache/GridCacheIterator.java     |     2 +-
 .../processors/cache/GridCacheKeySet.java       |     6 +-
 .../cache/GridCacheLoaderWriterStore.java       |     8 +-
 .../GridCacheLoaderWriterStoreFactory.java      |    59 +
 .../cache/GridCacheManagerAdapter.java          |     2 +-
 .../processors/cache/GridCacheMapEntry.java     |  1589 +-
 .../cache/GridCacheMapEntryFactory.java         |    13 +-
 .../processors/cache/GridCacheMessage.java      |   247 +-
 .../cache/GridCacheMultiTxFuture.java           |    55 +-
 .../processors/cache/GridCacheMvcc.java         |   195 +-
 .../processors/cache/GridCacheMvccCallback.java |    12 +-
 .../cache/GridCacheMvccCandidate.java           |    57 +-
 .../processors/cache/GridCacheMvccFuture.java   |     4 +-
 .../processors/cache/GridCacheMvccManager.java  |   268 +-
 .../cache/GridCacheOffheapSwapEntry.java        |    20 +-
 .../GridCachePartitionExchangeManager.java      |   360 +-
 .../processors/cache/GridCachePeekMode.java     |     6 +-
 .../processors/cache/GridCachePreloader.java    |    11 +-
 .../cache/GridCachePreloaderAdapter.java        |    19 +-
 .../processors/cache/GridCacheProcessor.java    |  2253 ++-
 .../processors/cache/GridCacheProjectionEx.java |    85 +-
 .../cache/GridCacheProjectionImpl.java          |   635 +-
 .../processors/cache/GridCacheProxyImpl.java    |   239 +-
 .../processors/cache/GridCacheReturn.java       |   317 +-
 .../cache/GridCacheSharedContext.java           |    83 +-
 .../processors/cache/GridCacheStoreManager.java |   369 +-
 .../processors/cache/GridCacheSwapEntry.java    |    16 +-
 .../cache/GridCacheSwapEntryImpl.java           |    60 +-
 .../processors/cache/GridCacheSwapListener.java |     8 +-
 .../processors/cache/GridCacheSwapManager.java  |   755 +-
 .../cache/GridCacheTryPutFailedException.java   |    28 +
 .../processors/cache/GridCacheTtlManager.java   |    38 +-
 .../cache/GridCacheUpdateAtomicResult.java      |    27 +-
 .../cache/GridCacheUpdateTxResult.java          |     8 +-
 .../processors/cache/GridCacheUtils.java        |   407 +-
 .../processors/cache/GridCacheValueBytes.java   |   194 -
 .../cache/GridCacheValueCollection.java         |     6 +-
 .../cache/GridCacheWriteBehindStore.java        |   100 +-
 .../processors/cache/GridPartitionLockKey.java  |   104 -
 .../cache/IgniteCacheExpiryPolicy.java          |     8 +-
 .../IgniteCacheOsSerializationManager.java      |    48 -
 .../processors/cache/IgniteCacheProxy.java      |   434 +-
 .../processors/cache/KeyCacheObject.java        |    33 +
 .../processors/cache/KeyCacheObjectImpl.java    |   132 +
 .../processors/cache/QueryCursorImpl.java       |   116 +
 .../cache/affinity/GridCacheAffinityImpl.java   |    23 +-
 .../cache/affinity/GridCacheAffinityProxy.java  |     6 +-
 .../CacheDataStructuresManager.java             |    35 +-
 .../distributed/GridCacheCommittedTxInfo.java   |    10 +-
 ...ridCacheOptimisticCheckPreparedTxFuture.java |    50 +-
 ...idCacheOptimisticCheckPreparedTxRequest.java |     4 +-
 ...dCacheOptimisticCheckPreparedTxResponse.java |     2 +-
 .../distributed/GridCacheTtlUpdateRequest.java  |    85 +-
 .../distributed/GridCacheTxFinishSync.java      |     4 +-
 .../distributed/GridDistributedBaseMessage.java |    28 +-
 .../GridDistributedCacheAdapter.java            |    99 +-
 .../distributed/GridDistributedCacheEntry.java  |   144 +-
 .../distributed/GridDistributedLockRequest.java |    56 +-
 .../GridDistributedLockResponse.java            |    93 +-
 .../GridDistributedTxFinishRequest.java         |    29 +-
 .../GridDistributedTxFinishResponse.java        |     2 +-
 .../distributed/GridDistributedTxMapping.java   |    44 +-
 .../GridDistributedTxPrepareRequest.java        |   285 +-
 .../GridDistributedTxPrepareResponse.java       |    14 +-
 .../GridDistributedTxRemoteAdapter.java         |   171 +-
 .../GridDistributedUnlockRequest.java           |    56 +-
 .../IgniteExternalizableExpiryPolicy.java       |    12 +-
 .../dht/GridClientPartitionTopology.java        |   119 +-
 .../dht/GridDhtAffinityAssignmentRequest.java   |    14 +-
 .../dht/GridDhtAffinityAssignmentResponse.java  |    19 +-
 .../dht/GridDhtAssignmentFetchFuture.java       |    46 +-
 .../cache/distributed/dht/GridDhtCache.java     |     2 +-
 .../distributed/dht/GridDhtCacheAdapter.java    |   257 +-
 .../distributed/dht/GridDhtCacheEntry.java      |   148 +-
 .../distributed/dht/GridDhtEmbeddedFuture.java  |    40 +-
 .../distributed/dht/GridDhtFinishedFuture.java  |    22 +-
 .../cache/distributed/dht/GridDhtGetFuture.java |   140 +-
 .../distributed/dht/GridDhtLocalPartition.java  |    72 +-
 .../distributed/dht/GridDhtLockFuture.java      |   188 +-
 .../distributed/dht/GridDhtLockRequest.java     |    81 +-
 .../distributed/dht/GridDhtLockResponse.java    |    85 +-
 .../dht/GridDhtPartitionTopology.java           |    41 +-
 .../dht/GridDhtPartitionTopologyImpl.java       |   155 +-
 .../distributed/dht/GridDhtTopologyFuture.java  |    10 +-
 .../dht/GridDhtTransactionalCacheAdapter.java   |   328 +-
 .../distributed/dht/GridDhtTxFinishFuture.java  |    66 +-
 .../distributed/dht/GridDhtTxFinishRequest.java |    86 +-
 .../dht/GridDhtTxFinishResponse.java            |     2 +-
 .../cache/distributed/dht/GridDhtTxLocal.java   |    68 +-
 .../distributed/dht/GridDhtTxLocalAdapter.java  |   211 +-
 .../cache/distributed/dht/GridDhtTxMapping.java |     4 +-
 .../distributed/dht/GridDhtTxPrepareFuture.java |   309 +-
 .../dht/GridDhtTxPrepareRequest.java            |   161 +-
 .../dht/GridDhtTxPrepareResponse.java           |    92 +-
 .../cache/distributed/dht/GridDhtTxRemote.java  |    88 +-
 .../distributed/dht/GridDhtUnlockRequest.java   |    50 +-
 .../distributed/dht/GridNoStorageCacheMap.java  |    30 +-
 .../dht/GridPartitionedGetFuture.java           |   185 +-
 .../dht/atomic/GridDhtAtomicCache.java          |   803 +-
 .../dht/atomic/GridDhtAtomicCacheEntry.java     |    14 +-
 .../GridDhtAtomicDeferredUpdateResponse.java    |     2 +-
 .../dht/atomic/GridDhtAtomicUpdateFuture.java   |    97 +-
 .../dht/atomic/GridDhtAtomicUpdateRequest.java  |   233 +-
 .../dht/atomic/GridDhtAtomicUpdateResponse.java |    66 +-
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |   290 +-
 .../dht/atomic/GridNearAtomicUpdateRequest.java |   247 +-
 .../atomic/GridNearAtomicUpdateResponse.java    |   142 +-
 .../dht/colocated/GridDhtColocatedCache.java    |   233 +-
 .../colocated/GridDhtColocatedCacheEntry.java   |    14 +-
 .../colocated/GridDhtColocatedLockFuture.java   |   263 +-
 .../colocated/GridDhtDetachedCacheEntry.java    |    30 +-
 .../dht/preloader/GridDhtForceKeysFuture.java   |   118 +-
 .../dht/preloader/GridDhtForceKeysRequest.java  |    55 +-
 .../dht/preloader/GridDhtForceKeysResponse.java |    63 +-
 .../GridDhtPartitionDemandMessage.java          |    20 +-
 .../preloader/GridDhtPartitionDemandPool.java   |   214 +-
 .../preloader/GridDhtPartitionExchangeId.java   |    28 +-
 .../dht/preloader/GridDhtPartitionFullMap.java  |     8 +-
 .../dht/preloader/GridDhtPartitionMap.java      |     2 +-
 .../GridDhtPartitionSupplyMessage.java          |    93 +-
 .../preloader/GridDhtPartitionSupplyPool.java   |   105 +-
 .../GridDhtPartitionsAbstractMessage.java       |     2 +-
 .../GridDhtPartitionsExchangeFuture.java        |   349 +-
 .../preloader/GridDhtPartitionsFullMessage.java |    24 +-
 .../GridDhtPartitionsSingleMessage.java         |     6 +-
 .../GridDhtPartitionsSingleRequest.java         |     2 +-
 .../dht/preloader/GridDhtPreloader.java         |   105 +-
 .../preloader/GridDhtPreloaderAssignments.java  |    15 +-
 .../distributed/near/CacheVersionedValue.java   |   169 +
 .../distributed/near/GridNearAtomicCache.java   |   158 +-
 .../distributed/near/GridNearCacheAdapter.java  |   230 +-
 .../distributed/near/GridNearCacheEntry.java    |   237 +-
 .../distributed/near/GridNearGetFuture.java     |   212 +-
 .../distributed/near/GridNearGetRequest.java    |   114 +-
 .../distributed/near/GridNearGetResponse.java   |    49 +-
 .../distributed/near/GridNearLockFuture.java    |   281 +-
 .../distributed/near/GridNearLockMapping.java   |    23 +-
 .../distributed/near/GridNearLockRequest.java   |    97 +-
 .../distributed/near/GridNearLockResponse.java  |    12 +-
 .../near/GridNearTransactionalCache.java        |   150 +-
 .../near/GridNearTxFinishFuture.java            |    62 +-
 .../near/GridNearTxFinishRequest.java           |    55 +-
 .../near/GridNearTxFinishResponse.java          |     6 +-
 .../cache/distributed/near/GridNearTxLocal.java |   329 +-
 .../near/GridNearTxPrepareFuture.java           |   239 +-
 .../near/GridNearTxPrepareRequest.java          |    69 +-
 .../near/GridNearTxPrepareResponse.java         |   185 +-
 .../distributed/near/GridNearTxRemote.java      |    95 +-
 .../distributed/near/GridNearUnlockRequest.java |     2 +-
 .../cache/dr/GridCacheDrExpirationInfo.java     |    23 +-
 .../processors/cache/dr/GridCacheDrInfo.java    |    28 +-
 .../processors/cache/dr/GridCacheDrManager.java |    13 +-
 .../cache/dr/os/GridOsCacheDrManager.java       |    13 +-
 .../extras/GridCacheAttributesEntryExtras.java  |    24 +-
 .../GridCacheAttributesMvccEntryExtras.java     |    30 +-
 ...dCacheAttributesMvccObsoleteEntryExtras.java |    30 +-
 ...cheAttributesMvccObsoleteTtlEntryExtras.java |    30 +-
 .../GridCacheAttributesMvccTtlEntryExtras.java  |    30 +-
 .../GridCacheAttributesObsoleteEntryExtras.java |    26 +-
 ...idCacheAttributesObsoleteTtlEntryExtras.java |    26 +-
 .../GridCacheAttributesTtlEntryExtras.java      |    26 +-
 .../cache/extras/GridCacheEntryExtras.java      |    16 +-
 .../extras/GridCacheEntryExtrasAdapter.java     |     8 +-
 .../cache/extras/GridCacheMvccEntryExtras.java  |    24 +-
 .../GridCacheMvccObsoleteEntryExtras.java       |    26 +-
 .../GridCacheMvccObsoleteTtlEntryExtras.java    |    26 +-
 .../extras/GridCacheMvccTtlEntryExtras.java     |    26 +-
 .../extras/GridCacheObsoleteEntryExtras.java    |    18 +-
 .../extras/GridCacheObsoleteTtlEntryExtras.java |    20 +-
 .../cache/extras/GridCacheTtlEntryExtras.java   |    18 +-
 .../cache/jta/CacheJtaManagerAdapter.java       |     2 +-
 .../cache/jta/CacheNoopJtaManager.java          |     2 +-
 .../processors/cache/local/GridLocalCache.java  |    65 +-
 .../cache/local/GridLocalCacheEntry.java        |    85 +-
 .../cache/local/GridLocalLockCallback.java      |     9 +-
 .../cache/local/GridLocalLockFuture.java        |    57 +-
 .../local/atomic/GridLocalAtomicCache.java      |   359 +-
 .../processors/cache/query/CacheQuery.java      |    10 +-
 .../GridCacheDistributedFieldsQueryFuture.java  |    10 +-
 .../query/GridCacheDistributedQueryFuture.java  |    10 +-
 .../query/GridCacheDistributedQueryManager.java |    68 +-
 .../query/GridCacheFieldsQueryErrorFuture.java  |    53 -
 .../query/GridCacheLocalFieldsQueryFuture.java  |    10 +-
 .../cache/query/GridCacheLocalQueryFuture.java  |    18 +-
 .../cache/query/GridCacheQueriesEx.java         |     9 +-
 .../cache/query/GridCacheQueriesImpl.java       |    30 +-
 .../cache/query/GridCacheQueriesProxy.java      |     4 +-
 .../cache/query/GridCacheQueryAdapter.java      |    31 +-
 .../cache/query/GridCacheQueryErrorFuture.java  |     5 +-
 .../query/GridCacheQueryFutureAdapter.java      |    14 +-
 .../cache/query/GridCacheQueryInfo.java         |    14 -
 .../cache/query/GridCacheQueryManager.java      |   199 +-
 .../cache/query/GridCacheQueryRequest.java      |    66 +-
 .../cache/query/GridCacheQueryResponse.java     |     6 +-
 .../cache/query/GridCacheSqlQuery.java          |     2 +-
 .../cache/query/GridCacheSqlResult.java         |    29 -
 .../cache/query/GridCacheTwoStepQuery.java      |    22 +-
 .../processors/cache/query/QueryCursorEx.java   |    46 +
 .../processors/cache/query/QueryCursorImpl.java |    87 -
 .../continuous/CacheContinuousQueryEntry.java   |   273 +-
 .../continuous/CacheContinuousQueryEvent.java   |    41 +-
 .../CacheContinuousQueryFilterEx.java           |     4 +-
 .../continuous/CacheContinuousQueryHandler.java |   119 +-
 .../continuous/CacheContinuousQueryManager.java |   218 +-
 .../jdbc/GridCacheQueryJdbcMetadataTask.java    |    25 +-
 .../query/jdbc/GridCacheQueryJdbcTask.java      |   265 +-
 .../jdbc/GridCacheQueryJdbcValidationTask.java  |     7 +-
 .../IgniteCacheSerializationManager.java        |    51 -
 .../cache/transactions/IgniteInternalTx.java    |    64 +-
 .../transactions/IgniteTransactionsImpl.java    |    36 +-
 .../cache/transactions/IgniteTxAdapter.java     |   186 +-
 .../cache/transactions/IgniteTxEntry.java       |   706 +-
 .../cache/transactions/IgniteTxHandler.java     |   262 +-
 .../cache/transactions/IgniteTxKey.java         |    99 +-
 .../transactions/IgniteTxLocalAdapter.java      |  1136 +-
 .../cache/transactions/IgniteTxLocalEx.java     |    52 +-
 .../cache/transactions/IgniteTxManager.java     |   387 +-
 .../cache/transactions/IgniteTxMap.java         |    40 +-
 .../cache/transactions/IgniteTxRemoteEx.java    |     4 +-
 .../transactions/TransactionProxyImpl.java      |    27 +-
 .../cache/transactions/TxEntryValueHolder.java  |   237 +
 .../version/GridCacheRawVersionedEntry.java     |   248 +-
 .../cache/version/GridCacheVersion.java         |    31 +-
 .../GridCacheVersionConflictResolver.java       |     2 +-
 .../cache/version/GridCacheVersionEx.java       |    66 +-
 .../cache/version/GridCacheVersionManager.java  |    24 +-
 .../cacheobject/IgniteCacheObjectProcessor.java |   165 +
 .../IgniteCacheObjectProcessorImpl.java         |   362 +
 .../processors/cacheobject/package-info.java    |    22 +
 .../processors/clock/GridClockDeltaVersion.java |    10 +-
 .../processors/clock/GridClockMessage.java      |     1 -
 .../processors/clock/GridClockServer.java       |     2 +-
 .../clock/GridClockSyncProcessor.java           |    13 +-
 .../closure/GridClosureProcessor.java           |   245 +-
 .../processors/closure/package-info.java        |    22 +
 .../internal/processors/closure/package.html    |    24 -
 .../processors/cluster/ClusterProcessor.java    |    46 +
 .../continuous/GridContinuousHandler.java       |    24 +-
 .../continuous/GridContinuousMessage.java       |    43 +-
 .../continuous/GridContinuousProcessor.java     |   159 +-
 .../dataload/GridDataLoadCacheUpdaters.java     |   199 -
 .../dataload/GridDataLoadRequest.java           |   450 -
 .../dataload/GridDataLoadResponse.java          |   166 -
 .../dataload/GridDataLoadUpdateJob.java         |   119 -
 .../dataload/GridDataLoaderFuture.java          |    75 -
 .../dataload/GridDataLoaderProcessor.java       |   316 -
 .../dataload/IgniteDataLoaderImpl.java          |  1438 --
 .../internal/processors/dataload/package.html   |    24 -
 .../datastreamer/DataStreamProcessor.java       |   308 +
 .../datastreamer/DataStreamerCacheUpdaters.java |   207 +
 .../datastreamer/DataStreamerEntry.java         |   170 +
 .../datastreamer/DataStreamerFuture.java        |    60 +
 .../datastreamer/DataStreamerImpl.java          |  1426 ++
 .../datastreamer/DataStreamerRequest.java       |   451 +
 .../datastreamer/DataStreamerResponse.java      |   166 +
 .../datastreamer/DataStreamerUpdateJob.java     |   152 +
 .../processors/datastreamer/package-info.java   |    22 +
 .../datastructures/DataStructuresProcessor.java |    48 +-
 .../GridCacheAtomicSequenceImpl.java            |     4 +-
 .../GridCacheInternalKeyImpl.java               |     2 +-
 .../datastructures/GridCacheQueueAdapter.java   |     2 +-
 .../datastructures/GridCacheSetImpl.java        |    10 +-
 .../dr/GridDrDataLoadCacheUpdater.java          |    85 -
 .../dr/IgniteDrDataStreamerCacheUpdater.java    |    90 +
 .../internal/processors/dr/package-info.java    |    22 +
 .../ignite/internal/processors/dr/package.html  |    26 -
 .../internal/processors/hadoop/GridHadoop.java  |    86 -
 .../hadoop/GridHadoopConfiguration.java         |   172 -
 .../processors/hadoop/GridHadoopCounter.java    |    44 -
 .../hadoop/GridHadoopCounterWriter.java         |    36 -
 .../processors/hadoop/GridHadoopCounters.java   |    49 -
 .../processors/hadoop/GridHadoopFileBlock.java  |   162 -
 .../processors/hadoop/GridHadoopInputSplit.java |    54 -
 .../processors/hadoop/GridHadoopJob.java        |   102 -
 .../processors/hadoop/GridHadoopJobId.java      |   103 -
 .../processors/hadoop/GridHadoopJobInfo.java    |    83 -
 .../processors/hadoop/GridHadoopJobPhase.java   |    38 -
 .../hadoop/GridHadoopJobProperty.java           |   138 -
 .../processors/hadoop/GridHadoopJobStatus.java  |   207 -
 .../hadoop/GridHadoopMapReducePlan.java         |    80 -
 .../hadoop/GridHadoopMapReducePlanner.java      |    40 -
 .../hadoop/GridHadoopPartitioner.java           |    33 -
 .../hadoop/GridHadoopSerialization.java         |    54 -
 .../processors/hadoop/GridHadoopTask.java       |    72 -
 .../hadoop/GridHadoopTaskContext.java           |   189 -
 .../processors/hadoop/GridHadoopTaskInfo.java   |   153 -
 .../processors/hadoop/GridHadoopTaskInput.java  |    55 -
 .../processors/hadoop/GridHadoopTaskOutput.java |    40 -
 .../processors/hadoop/GridHadoopTaskType.java   |    56 -
 .../internal/processors/hadoop/Hadoop.java      |    88 +
 .../processors/hadoop/HadoopFileBlock.java      |   162 +
 .../processors/hadoop/HadoopInputSplit.java     |    54 +
 .../internal/processors/hadoop/HadoopJob.java   |   102 +
 .../internal/processors/hadoop/HadoopJobId.java |   103 +
 .../processors/hadoop/HadoopJobInfo.java        |    83 +
 .../processors/hadoop/HadoopJobPhase.java       |    38 +
 .../processors/hadoop/HadoopJobProperty.java    |   138 +
 .../processors/hadoop/HadoopJobStatus.java      |   207 +
 .../processors/hadoop/HadoopMapReducePlan.java  |    80 +
 .../hadoop/HadoopMapReducePlanner.java          |    40 +
 .../processors/hadoop/HadoopNoopProcessor.java  |    76 +
 .../processors/hadoop/HadoopPartitioner.java    |    33 +
 .../hadoop/HadoopProcessorAdapter.java          |    96 +
 .../processors/hadoop/HadoopSerialization.java  |    54 +
 .../internal/processors/hadoop/HadoopTask.java  |    72 +
 .../processors/hadoop/HadoopTaskContext.java    |   190 +
 .../processors/hadoop/HadoopTaskInfo.java       |   153 +
 .../processors/hadoop/HadoopTaskInput.java      |    55 +
 .../processors/hadoop/HadoopTaskOutput.java     |    40 +
 .../processors/hadoop/HadoopTaskType.java       |    56 +
 .../hadoop/IgniteHadoopNoopProcessor.java       |    74 -
 .../hadoop/IgniteHadoopProcessorAdapter.java    |    94 -
 .../hadoop/counter/HadoopCounter.java           |    44 +
 .../hadoop/counter/HadoopCounterWriter.java     |    37 +
 .../hadoop/counter/HadoopCounters.java          |    49 +
 .../processors/hadoop/package-info.java         |    22 +
 .../internal/processors/hadoop/package.html     |    24 -
 .../internal/processors/igfs/IgfsAsyncImpl.java |     9 +-
 .../processors/igfs/IgfsClientSession.java      |     2 +-
 .../internal/processors/igfs/IgfsContext.java   |     6 +-
 .../processors/igfs/IgfsDataManager.java        |   130 +-
 .../processors/igfs/IgfsDeleteWorker.java       |     2 +-
 .../igfs/IgfsDirectoryNotEmptyException.java    |    44 -
 .../ignite/internal/processors/igfs/IgfsEx.java |    33 +-
 .../internal/processors/igfs/IgfsFileImpl.java  |     7 +
 .../internal/processors/igfs/IgfsFileInfo.java  |     7 +-
 .../processors/igfs/IgfsFileWorker.java         |     2 -
 .../processors/igfs/IgfsHelperImpl.java         |    16 +-
 .../internal/processors/igfs/IgfsImpl.java      |   669 +-
 .../processors/igfs/IgfsInputStreamAdapter.java |     4 +-
 .../processors/igfs/IgfsInputStreamImpl.java    |    15 +-
 .../processors/igfs/IgfsIpcHandler.java         |     4 +-
 .../internal/processors/igfs/IgfsJobImpl.java   |     2 +-
 .../processors/igfs/IgfsLocalMetrics.java       |    30 +-
 .../processors/igfs/IgfsMetaManager.java        |   120 +-
 .../processors/igfs/IgfsNoopProcessor.java      |     4 +-
 .../processors/igfs/IgfsOutputStreamImpl.java   |     4 +-
 .../internal/processors/igfs/IgfsProcessor.java |   171 +-
 .../processors/igfs/IgfsProcessorAdapter.java   |     4 +-
 .../igfs/IgfsSecondaryFileSystemImpl.java       |   121 +
 .../IgfsSecondaryInputStreamDescriptor.java     |     8 +-
 .../internal/processors/igfs/IgfsServer.java    |    61 +-
 .../processors/igfs/IgfsServerManager.java      |    43 +-
 .../internal/processors/igfs/IgfsUtils.java     |    86 +
 .../internal/processors/igfs/package-info.java  |    22 +
 .../internal/processors/igfs/package.html       |    24 -
 .../processors/job/GridJobProcessor.java        |    19 +-
 .../internal/processors/job/package-info.java   |    22 +
 .../ignite/internal/processors/job/package.html |    24 -
 .../jobmetrics/GridJobMetricsProcessor.java     |     2 +-
 .../processors/jobmetrics/package-info.java     |    22 +
 .../internal/processors/jobmetrics/package.html |    24 -
 .../offheap/GridOffHeapProcessor.java           |    11 +-
 .../internal/processors/package-info.java       |    22 +
 .../ignite/internal/processors/package.html     |    24 -
 .../plugin/IgnitePluginProcessor.java           |    26 +-
 .../internal/processors/port/package-info.java  |    22 +
 .../internal/processors/port/package.html       |    24 -
 .../portable/GridPortableProcessor.java         |   142 -
 .../portable/os/GridOsPortableProcessor.java    |   120 -
 .../processors/portable/os/package.html         |    24 -
 .../processors/portable/package-info.java       |    22 +
 .../internal/processors/portable/package.html   |    24 -
 .../query/GridQueryCacheObjectsIterator.java    |    70 +
 .../processors/query/GridQueryIndexing.java     |    49 +-
 .../processors/query/GridQueryProcessor.java    |   626 +-
 .../query/GridQueryTypeDescriptor.java          |    18 +-
 .../messages/GridQueryCancelRequest.java        |   114 +
 .../twostep/messages/GridQueryFailResponse.java |   140 +
 .../messages/GridQueryNextPageRequest.java      |   167 +
 .../messages/GridQueryNextPageResponse.java     |   240 +
 .../h2/twostep/messages/GridQueryRequest.java   |   211 +
 .../resource/GridNoImplicitInjection.java       |    25 +
 .../processors/resource/GridResourceField.java  |    15 +-
 .../processors/resource/GridResourceIoc.java    |    92 +-
 .../processors/resource/GridResourceMethod.java |     3 +
 .../resource/GridResourceProcessor.java         |    57 +-
 .../resource/GridResourceServiceInjector.java   |     2 +-
 .../processors/resource/GridResourceUtils.java  |     4 +-
 .../processors/resource/package-info.java       |    22 +
 .../internal/processors/resource/package.html   |    24 -
 .../processors/rest/GridRestCommand.java        |     8 +-
 .../processors/rest/GridRestProcessor.java      |    84 +-
 .../processors/rest/GridRestResponse.java       |     1 -
 .../message/GridClientAbstractMessage.java      |     1 -
 .../message/GridClientHandshakeRequest.java     |     1 -
 .../rest/client/message/GridClientNodeBean.java |    23 -
 .../rest/client/message/package-info.java       |    22 +
 .../processors/rest/client/message/package.html |    24 -
 .../handlers/cache/GridCacheCommandHandler.java |    56 +-
 .../cache/GridCacheQueryCommandHandler.java     |    10 +-
 .../rest/handlers/cache/package-info.java       |    22 +
 .../processors/rest/handlers/cache/package.html |    24 -
 .../DataStructuresCommandHandler.java           |     4 +-
 .../processors/rest/handlers/package-info.java  |    22 +
 .../processors/rest/handlers/package.html       |    24 -
 .../handlers/task/GridTaskCommandHandler.java   |    11 +-
 .../top/GridTopologyCommandHandler.java         |    12 +-
 .../rest/handlers/top/package-info.java         |    22 +
 .../processors/rest/handlers/top/package.html   |    24 -
 .../version/GridVersionCommandHandler.java      |     2 +-
 .../rest/handlers/version/package-info.java     |    22 +
 .../rest/handlers/version/package.html          |    24 -
 .../internal/processors/rest/package-info.java  |    22 +
 .../internal/processors/rest/package.html       |    24 -
 .../processors/rest/protocols/package-info.java |    22 +
 .../processors/rest/protocols/package.html      |    24 -
 .../protocols/tcp/GridMemcachedMessage.java     |     1 -
 .../tcp/GridTcpMemcachedNioListener.java        |     6 +-
 .../protocols/tcp/GridTcpRestNioListener.java   |     9 +-
 .../rest/protocols/tcp/GridTcpRestParser.java   |     6 +-
 .../rest/protocols/tcp/GridTcpRestProtocol.java |     9 -
 .../rest/protocols/tcp/package-info.java        |    22 +
 .../processors/rest/protocols/tcp/package.html  |    24 -
 .../rest/request/GridRestRequest.java           |    17 -
 .../rest/request/GridRestTaskRequest.java       |    17 -
 .../processors/rest/request/package-info.java   |    22 +
 .../processors/rest/request/package.html        |    24 -
 .../processors/schedule/package-info.java       |    22 +
 .../internal/processors/schedule/package.html   |    24 -
 .../processors/segmentation/package-info.java   |    22 +
 .../processors/segmentation/package.html        |    24 -
 .../service/GridServiceDeploymentFuture.java    |     6 +-
 .../service/GridServiceProcessor.java           |    46 +-
 .../processors/service/GridServiceProxy.java    |     4 +-
 .../session/GridTaskSessionProcessor.java       |     2 +-
 .../processors/session/package-info.java        |    23 +
 .../internal/processors/session/package.html    |    25 -
 .../spring/IgniteSpringProcessor.java           |    73 -
 .../streamer/GridStreamProcessor.java           |   354 -
 .../streamer/GridStreamerAttributes.java        |   127 -
 .../streamer/GridStreamerCancelRequest.java     |   110 -
 .../streamer/GridStreamerContextDelegate.java   |   102 -
 .../streamer/GridStreamerContextImpl.java       |   201 -
 .../streamer/GridStreamerExecutionBatch.java    |   185 -
 .../streamer/GridStreamerExecutionRequest.java  |   293 -
 .../streamer/GridStreamerResponse.java          |   144 -
 .../GridStreamerRouteFailedException.java       |    36 -
 .../GridStreamerStageExecutionFuture.java       |   363 -
 .../streamer/GridStreamerWindowIterator.java    |    40 -
 .../processors/streamer/IgniteStreamerEx.java   |    94 -
 .../processors/streamer/IgniteStreamerImpl.java |  1394 --
 .../streamer/StreamerMBeanAdapter.java          |   116 -
 .../streamer/StreamerMetricsAdapter.java        |   272 -
 .../streamer/StreamerMetricsHolder.java         |   424 -
 .../streamer/StreamerStageMBeanAdapter.java     |   101 -
 .../streamer/StreamerStageMetricsAdapter.java   |   135 -
 .../streamer/StreamerStageMetricsHolder.java    |   167 -
 .../streamer/StreamerStageWrapper.java          |    90 -
 .../streamer/StreamerWindowMetricsAdapter.java  |    65 -
 .../streamer/StreamerWindowMetricsHolder.java   |    50 -
 .../internal/processors/streamer/package.html   |    24 -
 .../task/GridStreamerBroadcastTask.java         |   137 -
 .../streamer/task/GridStreamerQueryTask.java    |   140 -
 .../streamer/task/GridStreamerReduceTask.java   |   144 -
 .../processors/task/GridTaskProcessor.java      |    44 +-
 .../processors/task/GridTaskWorker.java         |     2 +-
 .../internal/processors/task/package-info.java  |    22 +
 .../internal/processors/task/package.html       |    24 -
 .../timeout/GridTimeoutProcessor.java           |     2 +-
 .../processors/timeout/package-info.java        |    22 +
 .../internal/processors/timeout/package.html    |    24 -
 .../org/apache/ignite/internal/util/F0.java     |   147 +
 .../internal/util/GridAnnotationsCache.java     |     2 +-
 .../ignite/internal/util/GridArgumentCheck.java |     1 -
 .../GridBoundedConcurrentLinkedHashMap.java     |     4 +-
 .../GridBoundedConcurrentLinkedHashSet.java     |     6 +-
 .../internal/util/GridClassLoaderCache.java     |     2 +-
 .../internal/util/GridConcurrentFactory.java    |    61 +-
 .../internal/util/GridConcurrentHashSet.java    |     2 +-
 .../util/GridConcurrentLinkedHashSet.java       |     4 +-
 .../ignite/internal/util/GridEnumCache.java     |     2 +-
 .../internal/util/GridExecutionStatistics.java  |     2 +-
 .../internal/util/GridIdentityHashSet.java      |    63 -
 .../ignite/internal/util/GridKeyLock.java       |     2 +-
 .../internal/util/GridLeanIdentitySet.java      |   117 +
 .../ignite/internal/util/GridLeanMap.java       |     2 +-
 .../ignite/internal/util/GridLogThrottle.java   |     2 +-
 .../internal/util/GridSerializableFuture.java   |    28 -
 .../internal/util/GridSynchronizedMap.java      |     2 +-
 .../ignite/internal/util/GridThreadLocal.java   |   175 -
 .../ignite/internal/util/GridThreadLocalEx.java |   210 -
 .../apache/ignite/internal/util/GridTimer.java  |     2 +-
 .../internal/util/IgniteExceptionRegistry.java  |   164 +-
 .../ignite/internal/util/IgniteUtils.java       |   565 +-
 .../util/future/GridCompoundFuture.java         |    51 +-
 .../util/future/GridCompoundIdentityFuture.java |    15 +-
 .../util/future/GridEmbeddedFuture.java         |    74 +-
 .../util/future/GridFinishedFuture.java         |   158 +-
 .../util/future/GridFinishedFutureEx.java       |   197 -
 .../internal/util/future/GridFutureAdapter.java |   360 +-
 .../util/future/GridFutureAdapterEx.java        |   517 -
 .../util/future/GridFutureChainListener.java    |    18 +-
 .../util/future/IgniteFinishedFutureImpl.java   |    27 +-
 .../util/future/IgniteFinishedFutureImplEx.java |    30 -
 .../internal/util/future/IgniteFutureImpl.java  |    36 +-
 .../internal/util/future/package-info.java      |    22 +
 .../ignite/internal/util/future/package.html    |    24 -
 .../internal/util/gridify/package-info.java     |    22 +
 .../ignite/internal/util/gridify/package.html   |    24 -
 .../internal/util/io/GridFilenameUtils.java     |    15 +-
 .../util/ipc/IpcServerEndpointDeserializer.java |    66 -
 .../util/ipc/loopback/package-info.java         |    22 +
 .../internal/util/ipc/loopback/package.html     |    24 -
 .../ignite/internal/util/ipc/package-info.java  |    22 +
 .../ignite/internal/util/ipc/package.html       |    24 -
 .../shmem/IpcSharedMemoryServerEndpoint.java    |    93 +-
 .../internal/util/ipc/shmem/package-info.java   |    22 +
 .../ignite/internal/util/ipc/shmem/package.html |    24 -
 .../internal/util/lang/GridAbsClosure.java      |     2 -
 .../ignite/internal/util/lang/GridFunc.java     |   674 +-
 .../ignite/internal/util/lang/GridMapEntry.java |     4 +-
 .../util/lang/GridMetadataAwareAdapter.java     |    71 +-
 .../internal/util/lang/GridPlainFuture.java     |    79 -
 .../util/lang/GridPlainFutureAdapter.java       |   299 -
 .../nio/GridConnectionBytesVerifyFilter.java    |     1 -
 .../util/nio/GridNioEmbeddedFuture.java         |     9 +-
 .../util/nio/GridNioFinishedFuture.java         |    77 +-
 .../ignite/internal/util/nio/GridNioFuture.java |    84 +-
 .../internal/util/nio/GridNioFutureImpl.java    |   279 +-
 .../ignite/internal/util/nio/GridNioServer.java |   126 +-
 .../util/nio/GridSelectorNioSessionImpl.java    |     2 +-
 .../util/nio/GridShmemCommunicationClient.java  |   146 -
 .../util/nio/GridTcpCommunicationClient.java    |     1 -
 .../util/nio/GridTcpNioCommunicationClient.java |    18 +-
 .../ignite/internal/util/nio/package-info.java  |    22 +
 .../ignite/internal/util/nio/package.html       |    24 -
 .../internal/util/nio/ssl/package-info.java     |    22 +
 .../ignite/internal/util/nio/ssl/package.html   |    24 -
 .../util/nodestart/IgniteSshHelper.java         |    34 +
 .../util/nodestart/IgniteSshProcessor.java      |    34 -
 .../offheap/unsafe/GridOffHeapSnapTreeMap.java  |     2 +-
 .../util/offheap/unsafe/GridUnsafeMap.java      |     8 +-
 .../util/offheap/unsafe/GridUnsafeMemory.java   |    26 +-
 .../unsafe/GridUnsafePartitionedMap.java        |     4 +-
 .../ignite/internal/util/package-info.java      |    22 +
 .../apache/ignite/internal/util/package.html    |    24 -
 .../internal/util/portscanner/package-info.java |    22 +
 .../internal/util/portscanner/package.html      |    24 -
 .../internal/util/scala/package-info.java       |    22 +
 .../ignite/internal/util/scala/package.html     |    24 -
 .../internal/util/snaptree/package-info.java    |    22 +
 .../ignite/internal/util/snaptree/package.html  |    24 -
 .../util/spring/IgniteSpringHelper.java         |    95 +
 .../ignite/internal/util/test/package-info.java |    22 +
 .../ignite/internal/util/test/package.html      |    24 -
 .../internal/util/tostring/package-info.java    |    22 +
 .../ignite/internal/util/tostring/package.html  |    24 -
 .../ignite/internal/util/typedef/PCE.java       |     2 +-
 .../util/typedef/internal/package-info.java     |    22 +
 .../internal/util/typedef/internal/package.html |    24 -
 .../internal/util/typedef/package-info.java     |    22 +
 .../ignite/internal/util/typedef/package.html   |    24 -
 .../ignite/internal/util/worker/GridWorker.java |    53 +-
 .../internal/util/worker/GridWorkerFuture.java  |    17 -
 .../internal/util/worker/package-info.java      |    22 +
 .../ignite/internal/util/worker/package.html    |    24 -
 .../apache/ignite/internal/visor/VisorJob.java  |     3 +
 .../internal/visor/VisorMultiNodeTask.java      |     1 +
 .../ignite/internal/visor/cache/VisorCache.java |   207 +-
 .../cache/VisorCacheAffinityConfiguration.java  |    72 +-
 .../visor/cache/VisorCacheClearTask.java        |    13 +-
 .../visor/cache/VisorCacheCompactTask.java      |    91 -
 .../visor/cache/VisorCacheConfiguration.java    |   511 +-
 .../cache/VisorCacheDefaultConfiguration.java   |    26 +-
 .../cache/VisorCacheEvictionConfiguration.java  |    92 +-
 .../visor/cache/VisorCacheLoadTask.java         |     5 +-
 .../visor/cache/VisorCacheMetadataTask.java     |     2 +-
 .../internal/visor/cache/VisorCacheMetrics.java |     1 +
 .../cache/VisorCacheMetricsCollectorTask.java   |     2 +-
 .../cache/VisorCacheNearConfiguration.java      |    42 +-
 .../cache/VisorCachePreloadConfiguration.java   |   156 -
 .../visor/cache/VisorCachePreloadTask.java      |    82 -
 .../cache/VisorCacheQueryConfiguration.java     |   123 +
 .../cache/VisorCacheRebalanceConfiguration.java |   114 +
 .../visor/cache/VisorCacheRebalanceTask.java    |    82 +
 .../visor/cache/VisorCacheResetMetricsTask.java |     2 +-
 .../cache/VisorCacheStoreConfiguration.java     |   148 +-
 .../visor/cache/VisorCacheSwapBackupsTask.java  |     4 +-
 .../VisorCacheWriteBehindConfiguration.java     |   137 -
 .../compute/VisorComputeMonitoringHolder.java   |    10 +-
 .../ignite/internal/visor/igfs/VisorIgfs.java   |     4 +-
 .../visor/igfs/VisorIgfsProfilerClearTask.java  |     2 +-
 .../visor/node/VisorAtomicConfiguration.java    |    27 +-
 .../visor/node/VisorBasicConfiguration.java     |   197 +-
 .../node/VisorCacheQueryConfiguration.java      |   141 -
 .../node/VisorExecutorServiceConfiguration.java |    54 +-
 .../visor/node/VisorGridConfiguration.java      |   192 +-
 .../visor/node/VisorIgfsConfiguration.java      |   272 +-
 .../visor/node/VisorLifecycleConfiguration.java |     9 +-
 .../visor/node/VisorMetricsConfiguration.java   |    29 +-
 .../visor/node/VisorNodeDataCollectorJob.java   |    55 +-
 .../node/VisorNodeDataCollectorJobResult.java   |    27 +-
 .../visor/node/VisorNodeDataCollectorTask.java  |     8 +-
 .../node/VisorNodeDataCollectorTaskResult.java  |    45 +-
 .../node/VisorNodeSuppressedErrorsTask.java     |    99 +
 .../node/VisorPeerToPeerConfiguration.java      |    28 +-
 .../visor/node/VisorQueryConfiguration.java     |   183 -
 .../visor/node/VisorRestConfiguration.java      |    80 +-
 .../node/VisorSegmentationConfiguration.java    |    45 +-
 .../visor/node/VisorSpisConfiguration.java      |    92 +-
 .../node/VisorTransactionConfiguration.java     |    62 +-
 .../internal/visor/query/VisorQueryTask.java    |     4 +-
 .../internal/visor/streamer/VisorStreamer.java  |   104 -
 .../streamer/VisorStreamerConfiguration.java    |   177 -
 .../visor/streamer/VisorStreamerMetrics.java    |   350 -
 .../streamer/VisorStreamerMetricsResetTask.java |    75 -
 .../visor/streamer/VisorStreamerResetTask.java  |    75 -
 .../streamer/VisorStreamerStageMetrics.java     |   277 -
 .../internal/visor/util/VisorTaskUtils.java     |    20 +-
 .../org/apache/ignite/lang/IgniteCallable.java  |     2 +-
 .../org/apache/ignite/lang/IgniteFuture.java    |    94 +-
 .../org/apache/ignite/lang/IgniteImmutable.java |    49 +
 .../org/apache/ignite/lang/IgnitePredicate.java |     4 +-
 .../ignite/lang/IgniteProductVersion.java       |    29 +-
 .../java/org/apache/ignite/lang/IgniteUuid.java |    20 +-
 .../org/apache/ignite/lang/package-info.java    |    22 +
 .../java/org/apache/ignite/lang/package.html    |    24 -
 .../apache/ignite/lifecycle/LifecycleBean.java  |    36 +-
 .../ignite/lifecycle/LifecycleEventType.java    |    20 +-
 .../apache/ignite/lifecycle/package-info.java   |    22 +
 .../apache/ignite/logger/java/package-info.java |    22 +
 .../org/apache/ignite/logger/java/package.html  |    24 -
 .../org/apache/ignite/logger/package-info.java  |    22 +
 .../java/org/apache/ignite/logger/package.html  |    24 -
 .../ignite/marshaller/AbstractMarshaller.java   |     8 +
 .../apache/ignite/marshaller/Marshaller.java    |     9 +-
 .../ignite/marshaller/MarshallerContext.java    |    42 +
 .../ignite/marshaller/jdk/JdkMarshaller.java    |     2 +-
 .../jdk/JdkMarshallerObjectInputStream.java     |     4 +-
 .../ignite/marshaller/jdk/package-info.java     |    22 +
 .../apache/ignite/marshaller/jdk/package.html   |    24 -
 .../optimized/OptimizedClassDescriptor.java     |   741 +-
 .../optimized/OptimizedClassResolver.java       |   477 -
 .../optimized/OptimizedMarshallable.java        |    65 -
 .../optimized/OptimizedMarshaller.java          |   170 +-
 .../optimized/OptimizedMarshallerIdMapper.java  |    33 +
 .../optimized/OptimizedMarshallerUtils.java     |   316 +-
 .../optimized/OptimizedObjectInputStream.java   |   255 +-
 .../optimized/OptimizedObjectOutputStream.java  |   175 +-
 .../optimized-classnames.previous.properties    |     0
 .../optimized/optimized-classnames.properties   |  1651 --
 .../marshaller/optimized/package-info.java      |    22 +
 .../ignite/marshaller/optimized/package.html    |    24 -
 .../apache/ignite/marshaller/package-info.java  |    22 +
 .../org/apache/ignite/marshaller/package.html   |    24 -
 .../apache/ignite/messaging/package-info.java   |    22 +
 .../org/apache/ignite/messaging/package.html    |    24 -
 .../mxbean/ClusterLocalNodeMetricsMXBean.java   |     4 +
 .../org/apache/ignite/mxbean/package-info.java  |    22 +
 .../java/org/apache/ignite/mxbean/package.html  |    24 -
 .../java/org/apache/ignite/package-info.java    |    21 +
 .../main/java/org/apache/ignite/package.html    |    24 -
 .../apache/ignite/plugin/PluginProvider.java    |     8 +-
 .../extensions/communication/MessageWriter.java |    11 +
 .../extensions/communication/package-info.java  |    22 +
 .../extensions/communication/package.html       |    24 -
 .../org/apache/ignite/plugin/package-info.java  |    22 +
 .../security/GridSecurityCredentials.java       |     1 -
 .../ignite/plugin/security/package-info.java    |    22 +
 .../apache/ignite/plugin/security/package.html  |    24 -
 .../plugin/segmentation/package-info.java       |    22 +
 .../ignite/plugin/segmentation/package.html     |    24 -
 .../SpringApplicationContextResource.java       |     2 +-
 .../apache/ignite/scheduler/package-info.java   |    22 +
 .../org/apache/ignite/scheduler/package.html    |    24 -
 .../apache/ignite/services/package-info.java    |    21 +
 .../org/apache/ignite/services/package.html     |    23 -
 .../org/apache/ignite/spi/IgniteSpiAdapter.java |    45 +-
 .../ignite/spi/IgniteSpiConsistencyChecked.java |     7 -
 .../org/apache/ignite/spi/IgniteSpiContext.java |    51 -
 .../checkpoint/cache/CacheCheckpointSpi.java    |     2 +-
 .../spi/checkpoint/cache/package-info.java      |    23 +
 .../ignite/spi/checkpoint/cache/package.html    |    25 -
 .../spi/checkpoint/jdbc/JdbcCheckpointSpi.java  |     2 +-
 .../spi/checkpoint/jdbc/package-info.java       |    23 +
 .../ignite/spi/checkpoint/jdbc/package.html     |    25 -
 .../spi/checkpoint/noop/package-info.java       |    22 +
 .../ignite/spi/checkpoint/noop/package.html     |    24 -
 .../ignite/spi/checkpoint/package-info.java     |    22 +
 .../apache/ignite/spi/checkpoint/package.html   |    24 -
 .../sharedfs/SharedFsCheckpointSpi.java         |     2 +-
 .../spi/checkpoint/sharedfs/package-info.java   |    22 +
 .../ignite/spi/checkpoint/sharedfs/package.html |    24 -
 .../spi/collision/fifoqueue/package-info.java   |    22 +
 .../ignite/spi/collision/fifoqueue/package.html |    24 -
 .../jobstealing/JobStealingCollisionSpi.java    |     8 +-
 .../spi/collision/jobstealing/package-info.java |    22 +
 .../spi/collision/jobstealing/package.html      |    24 -
 .../ignite/spi/collision/noop/package-info.java |    22 +
 .../ignite/spi/collision/noop/package.html      |    24 -
 .../ignite/spi/collision/package-info.java      |    22 +
 .../apache/ignite/spi/collision/package.html    |    24 -
 .../PriorityQueueCollisionSpi.java              |     2 +-
 .../collision/priorityqueue/package-info.java   |    22 +
 .../spi/collision/priorityqueue/package.html    |    24 -
 .../ignite/spi/communication/package-info.java  |    22 +
 .../ignite/spi/communication/package.html       |    24 -
 .../communication/tcp/TcpCommunicationSpi.java  |   445 +-
 .../tcp/TcpCommunicationSpiMBean.java           |     8 -
 .../spi/communication/tcp/package-info.java     |    22 +
 .../ignite/spi/communication/tcp/package.html   |    24 -
 .../deployment/local/LocalDeploymentSpi.java    |     2 +-
 .../spi/deployment/local/package-info.java      |    22 +
 .../ignite/spi/deployment/local/package.html    |    24 -
 .../ignite/spi/deployment/package-info.java     |    22 +
 .../apache/ignite/spi/deployment/package.html   |    24 -
 .../spi/discovery/DiscoverySpiDataExchange.java |     8 +-
 .../spi/discovery/DiscoverySpiListener.java     |     3 +-
 .../ignite/spi/discovery/package-info.java      |    22 +
 .../apache/ignite/spi/discovery/package.html    |    24 -
 .../discovery/tcp/TcpClientDiscoverySpi.java    |    21 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |   270 +-
 .../discovery/tcp/TcpDiscoverySpiAdapter.java   |   116 +
 .../tcp/internal/TcpDiscoveryNode.java          |    11 +-
 .../tcp/internal/TcpDiscoveryStatistics.java    |     2 +-
 .../discovery/tcp/internal/package-info.java    |    22 +
 .../spi/discovery/tcp/internal/package.html     |    24 -
 .../tcp/ipfinder/jdbc/package-info.java         |    22 +
 .../discovery/tcp/ipfinder/jdbc/package.html    |    24 -
 .../TcpDiscoveryMulticastIpFinder.java          |     5 +-
 .../tcp/ipfinder/multicast/package-info.java    |    22 +
 .../tcp/ipfinder/multicast/package.html         |    24 -
 .../discovery/tcp/ipfinder/package-info.java    |    22 +
 .../spi/discovery/tcp/ipfinder/package.html     |    24 -
 .../tcp/ipfinder/sharedfs/package-info.java     |    22 +
 .../tcp/ipfinder/sharedfs/package.html          |    24 -
 .../discovery/tcp/ipfinder/vm/package-info.java |    22 +
 .../spi/discovery/tcp/ipfinder/vm/package.html  |    24 -
 .../messages/TcpDiscoveryAuthFailedMessage.java |     1 -
 .../TcpDiscoveryCustomEventMessage.java         |     4 +
 .../messages/TcpDiscoveryHeartbeatMessage.java  |     1 -
 .../messages/TcpDiscoveryNodeAddedMessage.java  |    26 +-
 .../discovery/tcp/messages/package-info.java    |    22 +
 .../spi/discovery/tcp/messages/package.html     |    24 -
 .../ignite/spi/discovery/tcp/package-info.java  |    22 +
 .../ignite/spi/discovery/tcp/package.html       |    24 -
 .../memory/MemoryEventStorageSpi.java           |     4 +-
 .../spi/eventstorage/memory/package-info.java   |    22 +
 .../ignite/spi/eventstorage/memory/package.html |    24 -
 .../ignite/spi/eventstorage/package-info.java   |    22 +
 .../apache/ignite/spi/eventstorage/package.html |    24 -
 .../spi/failover/always/AlwaysFailoverSpi.java  |     2 +-
 .../spi/failover/always/package-info.java       |    22 +
 .../ignite/spi/failover/always/package.html     |    24 -
 .../jobstealing/JobStealingFailoverSpi.java     |     2 +-
 .../spi/failover/jobstealing/package-info.java  |    22 +
 .../spi/failover/jobstealing/package.html       |    24 -
 .../spi/failover/never/NeverFailoverSpi.java    |     2 +-
 .../ignite/spi/failover/never/package-info.java |    22 +
 .../ignite/spi/failover/never/package.html      |    24 -
 .../ignite/spi/failover/package-info.java       |    22 +
 .../org/apache/ignite/spi/failover/package.html |    24 -
 .../spi/indexing/IndexingQueryFilter.java       |     2 +-
 .../apache/ignite/spi/indexing/IndexingSpi.java |     2 +-
 .../ignite/spi/indexing/noop/package-info.java  |    22 +
 .../ignite/spi/indexing/package-info.java       |    22 +
 .../org/apache/ignite/spi/indexing/package.html |    24 -
 .../adaptive/AdaptiveLoadBalancingSpi.java      |     4 +-
 .../loadbalancing/adaptive/package-info.java    |    22 +
 .../spi/loadbalancing/adaptive/package.html     |    24 -
 .../ignite/spi/loadbalancing/package-info.java  |    22 +
 .../ignite/spi/loadbalancing/package.html       |    24 -
 .../roundrobin/RoundRobinLoadBalancingSpi.java  |     4 +-
 .../loadbalancing/roundrobin/package-info.java  |    22 +
 .../spi/loadbalancing/roundrobin/package.html   |    24 -
 .../WeightedRandomLoadBalancingSpi.java         |     4 +-
 .../weightedrandom/package-info.java            |    22 +
 .../loadbalancing/weightedrandom/package.html   |    24 -
 .../org/apache/ignite/spi/package-info.java     |    22 +
 .../java/org/apache/ignite/spi/package.html     |    24 -
 .../spi/swapspace/file/FileSwapSpaceSpi.java    |    14 +-
 .../ignite/spi/swapspace/file/package-info.java |    22 +
 .../ignite/spi/swapspace/file/package.html      |    24 -
 .../ignite/spi/swapspace/noop/package-info.java |    22 +
 .../ignite/spi/swapspace/noop/package.html      |    24 -
 .../ignite/spi/swapspace/package-info.java      |    22 +
 .../apache/ignite/spi/swapspace/package.html    |    24 -
 .../ignite/startup/BasicWarmupClosure.java      |    12 +-
 .../startup/cmdline/CommandLineStartup.java     |     4 +-
 .../startup/cmdline/ggcube_node_128x128.png     |   Bin 4679 -> 0 bytes
 .../startup/cmdline/ggcube_node_48x48.png       |   Bin 2355 -> 0 bytes
 .../startup/cmdline/logo_ignite_128x128.png     |   Bin 0 -> 18667 bytes
 .../startup/cmdline/logo_ignite_48x48.png       |   Bin 0 -> 16572 bytes
 .../ignite/startup/cmdline/package-info.java    |    22 +
 .../apache/ignite/startup/cmdline/package.html  |    24 -
 .../apache/ignite/stream/StreamReceiver.java    |    42 +
 .../apache/ignite/stream/StreamTransformer.java |    53 +
 .../org/apache/ignite/stream/StreamVisitor.java |    53 +
 .../org/apache/ignite/stream/package-info.java  |    21 +
 .../ignite/streamer/StreamerConfiguration.java  |   249 -
 .../apache/ignite/streamer/StreamerContext.java |   142 -
 .../ignite/streamer/StreamerEventRouter.java    |    55 -
 .../streamer/StreamerEventRouterAdapter.java    |    60 -
 .../streamer/StreamerFailureListener.java       |    44 -
 .../apache/ignite/streamer/StreamerMBean.java   |   169 -
 .../apache/ignite/streamer/StreamerMetrics.java |   209 -
 .../apache/ignite/streamer/StreamerStage.java   |    61 -
 .../ignite/streamer/StreamerStageMBean.java     |   114 -
 .../ignite/streamer/StreamerStageMetrics.java   |    93 -
 .../apache/ignite/streamer/StreamerWindow.java  |   206 -
 .../ignite/streamer/StreamerWindowMBean.java    |    58 -
 .../ignite/streamer/StreamerWindowMetrics.java  |    44 -
 .../ignite/streamer/index/StreamerIndex.java    |   305 -
 .../streamer/index/StreamerIndexEntry.java      |    57 -
 .../streamer/index/StreamerIndexPolicy.java     |    50 -
 .../streamer/index/StreamerIndexProvider.java   |   107 -
 .../index/StreamerIndexProviderAdapter.java     |   796 -
 .../index/StreamerIndexProviderMBean.java       |    74 -
 .../streamer/index/StreamerIndexUpdateSync.java |    77 -
 .../streamer/index/StreamerIndexUpdater.java    |    88 -
 .../index/hash/StreamerHashIndexProvider.java   |   500 -
 .../ignite/streamer/index/hash/package.html     |    23 -
 .../apache/ignite/streamer/index/package.html   |    23 -
 .../index/tree/StreamerTreeIndexProvider.java   |   953 --
 .../ignite/streamer/index/tree/package.html     |    23 -
 .../org/apache/ignite/streamer/package.html     |    23 -
 .../router/StreamerAffinityEventRouter.java     |   150 -
 .../StreamerCacheAffinityEventRouter.java       |    70 -
 .../router/StreamerLocalEventRouter.java        |    46 -
 .../router/StreamerRandomEventRouter.java       |    89 -
 .../router/StreamerRoundRobinEventRouter.java   |    53 -
 .../apache/ignite/streamer/router/package.html  |    23 -
 .../window/StreamerBoundedSizeBatchWindow.java  |   804 -
 .../window/StreamerBoundedSizeSortedWindow.java |   218 -
 .../window/StreamerBoundedSizeWindow.java       |   144 -
 .../StreamerBoundedSizeWindowAdapter.java       |   357 -
 .../window/StreamerBoundedTimeBatchWindow.java  |   906 --
 .../window/StreamerBoundedTimeWindow.java       |   462 -
 .../window/StreamerUnboundedWindow.java         |   111 -
 .../streamer/window/StreamerWindowAdapter.java  |   537 -
 .../apache/ignite/streamer/window/package.html  |    23 -
 .../org/apache/ignite/thread/package-info.java  |    22 +
 .../java/org/apache/ignite/thread/package.html  |    24 -
 .../apache/ignite/transactions/Transaction.java |    30 -
 .../TransactionSynchronization.java             |     2 +-
 .../ignite/transactions/package-info.java       |    22 +
 .../org/jdk8/backport/ConcurrentHashMap8.java   |  3825 -----
 .../jdk8/backport/ConcurrentLinkedDeque8.java   |  1983 ---
 .../jdk8/backport/ConcurrentLinkedHashMap.java  |  2175 ---
 .../main/java/org/jdk8/backport/LongAdder.java  |   235 -
 .../main/java/org/jdk8/backport/Striped64.java  |   370 -
 .../org/jdk8/backport/ThreadLocalRandom8.java   |   231 -
 .../org/jetbrains/annotations/package-info.java |    27 +
 .../java/org/jsr166/ConcurrentHashMap8.java     |  3794 +++++
 .../java/org/jsr166/ConcurrentLinkedDeque8.java |  1954 +++
 .../org/jsr166/ConcurrentLinkedHashMap.java     |  2146 +++
 .../src/main/java/org/jsr166/LongAdder8.java    |   206 +
 .../src/main/java/org/jsr166/Striped64_8.java   |   346 +
 .../java/org/jsr166/ThreadLocalRandom8.java     |   202 +
 .../src/main/java/org/jsr166/package-info.java  |    10 +
 .../java/org/pcollections/AmortizedPQueue.java  |   156 -
 .../main/java/org/pcollections/ConsPStack.java  |   225 -
 .../src/main/java/org/pcollections/Empty.java   |    47 -
 .../main/java/org/pcollections/HashPMap.java    |   175 -
 .../java/org/pcollections/HashTreePBag.java     |    47 -
 .../java/org/pcollections/HashTreePMap.java     |    52 -
 .../java/org/pcollections/HashTreePSet.java     |    46 -
 .../src/main/java/org/pcollections/IntTree.java |   320 -
 .../main/java/org/pcollections/IntTreePMap.java |   165 -
 .../src/main/java/org/pcollections/MapPBag.java |   143 -
 .../src/main/java/org/pcollections/MapPSet.java |   101 -
 .../main/java/org/pcollections/OrderedPSet.java |    85 -
 .../src/main/java/org/pcollections/PBag.java    |    23 -
 .../main/java/org/pcollections/PCollection.java |    56 -
 .../src/main/java/org/pcollections/PMap.java    |    49 -
 .../main/java/org/pcollections/POrderedSet.java |    25 -
 .../src/main/java/org/pcollections/PQueue.java  |    38 -
 .../main/java/org/pcollections/PSequence.java   |    73 -
 .../src/main/java/org/pcollections/PSet.java    |    23 -
 .../src/main/java/org/pcollections/PStack.java  |    51 -
 .../src/main/java/org/pcollections/PVector.java |    45 -
 .../org/pcollections/SimpleImmutableEntry.java  |   146 -
 .../main/java/org/pcollections/TreePVector.java |   155 -
 .../META-INF/classnames-jdk.properties          |   371 +
 .../resources/META-INF/classnames.properties    |  1628 ++
 .../resources/META-INF/licenses/apache-2.0.txt  |   202 -
 .../META-INF/licenses/gnu-gplv2ce-license.txt   |   349 -
 .../resources/META-INF/licenses/snaptree.txt    |    35 -
 .../core/src/main/resources/ignite.properties   |     2 +-
 .../core/src/test/bin/start-nodes-custom.bat    |     3 +-
 .../spring-cache-client-benchmark-1.xml         |     6 +-
 .../spring-cache-client-benchmark-2.xml         |     6 +-
 .../spring-cache-client-benchmark-3.xml         |     6 +-
 .../core/src/test/config/discovery-stress.xml   |     6 +-
 modules/core/src/test/config/example-cache.xml  |    13 +-
 .../core/src/test/config/examples.properties    |    14 +-
 .../hadoop/core-site-loopback-secondary.xml     |     4 +-
 .../test/config/hadoop/core-site-loopback.xml   |     4 +-
 .../test/config/hadoop/core-site-secondary.xml  |     4 +-
 .../core/src/test/config/hadoop/core-site.xml   |     4 +-
 modules/core/src/test/config/igfs-loopback.xml  |    13 +-
 modules/core/src/test/config/igfs-shmem.xml     |    15 +-
 .../src/test/config/io-manager-benchmark.xml    |    13 -
 modules/core/src/test/config/jobs-load-base.xml |    11 -
 .../src/test/config/load/cache-benchmark.xml    |     4 -
 .../test/config/load/cache-client-benchmark.xml |    15 -
 .../config/load/dsi-49-server-production.xml    |    10 +-
 .../core/src/test/config/load/dsi-load-base.xml |    16 -
 .../src/test/config/load/dsi-load-client.xml    |     4 +-
 .../src/test/config/load/dsi-load-server.xml    |    11 +-
 modules/core/src/test/config/log4j-test.xml     |     6 +
 .../core/src/test/config/spring-cache-load.xml  |     2 +-
 .../config/spring-cache-put-remove-load.xml     |     8 -
 .../core/src/test/config/spring-cache-swap.xml  |     2 +-
 .../src/test/config/spring-cache-teststore.xml  |     2 +-
 .../core/src/test/config/spring-multicache.xml  |    32 +-
 modules/core/src/test/config/start-nodes.ini    |    15 +
 .../core/src/test/config/store/jdbc/Ignite.xml  |   153 -
 .../config/store/jdbc/ignite-type-metadata.xml  |   268 +
 .../test/config/websession/example-cache.xml    |   164 +
 .../test/config/websession/spring-cache-1.xml   |    10 +-
 .../test/config/websession/spring-cache-2.xml   |    10 +-
 .../test/config/websession/spring-cache-3.xml   |    10 +-
 modules/core/src/test/java/ExcludeList          |    20 +
 .../GridCacheAffinityBackupsSelfTest.java       |    19 +-
 .../apache/ignite/GridTestStoreNodeStartup.java |     2 +-
 .../ignite/IgniteCacheAffinitySelfTest.java     |    54 +-
 .../IgniteExternalizableAbstractTest.java       |     9 +-
 ...CachePartitionFairAffinityNodesSelfTest.java |   242 -
 .../GridCachePartitionFairAffinitySelfTest.java |   261 -
 .../GridFairAffinityFunctionNodesSelfTest.java  |   242 +
 .../fair/GridFairAffinityFunctionSelfTest.java  |   264 +
 .../store/GridCacheBalancingStoreSelfTest.java  |     2 +-
 .../GridCacheLoadOnlyStoreAdapterSelfTest.java  |     2 +-
 .../cache/store/GridGeneratingTestStore.java    |     2 +-
 .../IgniteCacheExpiryStoreLoadSelfTest.java     |     8 +-
 .../store/jdbc/CacheJdbcPojoStoreTest.java      |   564 +-
 ...eJdbcStoreAbstractMultithreadedSelfTest.java |    25 +-
 ...CacheJdbcBlobStoreMultithreadedSelfTest.java |    75 +-
 .../cache/store/jdbc/model/Organization.java    |     2 +-
 .../cache/store/jdbc/model/OrganizationKey.java |     2 +-
 .../ignite/cache/store/jdbc/model/Person.java   |     2 +-
 .../store/jdbc/model/PersonComplexKey.java      |     2 +-
 .../cache/store/jdbc/model/PersonKey.java       |     2 +-
 .../cache/store/jdbc/model/package-info.java    |    22 +
 .../ignite/cache/store/jdbc/model/package.html  |    24 -
 .../ignite/cache/store/jdbc/package-info.java   |    22 +
 .../apache/ignite/cache/store/jdbc/package.html |    24 -
 .../apache/ignite/cache/store/package-info.java |    22 +
 .../org/apache/ignite/cache/store/package.html  |    24 -
 .../ignite/igfs/IgfsEventsAbstractSelfTest.java |    18 +-
 .../igfs/IgfsFragmentizerAbstractSelfTest.java  |    12 +-
 .../ignite/igfs/IgfsFragmentizerSelfTest.java   |     9 +-
 .../igfs/IgfsFragmentizerTopologySelfTest.java  |     2 +-
 .../ignite/internal/ClusterMetricsSelfTest.java |     2 +
 .../internal/ClusterNodeMetricsSelfTest.java    |    31 +-
 .../ignite/internal/GridAffinityMappedTest.java |     4 +-
 .../internal/GridAffinityP2PSelfTest.java       |     4 +-
 .../ignite/internal/GridAffinitySelfTest.java   |     5 +-
 .../internal/GridDiscoveryEventSelfTest.java    |    44 -
 .../ignite/internal/GridDiscoverySelfTest.java  |     3 +-
 .../GridJobMasterLeaveAwareSelfTest.java        |     6 +-
 .../internal/GridLifecycleBeanSelfTest.java     |    76 +-
 .../internal/GridMultipleJobsSelfTest.java      |     4 +-
 .../GridProjectionForCachesSelfTest.java        |    63 +-
 .../ignite/internal/GridProjectionSelfTest.java |    36 +-
 .../ignite/internal/GridStartStopSelfTest.java  |     4 +-
 .../GridTaskFutureImplStopGridSelfTest.java     |     2 +-
 .../internal/GridTaskListenerSelfTest.java      |     2 +-
 .../internal/GridUpdateNotifierSelfTest.java    |    22 +-
 .../checkpoint/GridCheckpointTaskSelfTest.java  |     4 +-
 .../managers/checkpoint/package-info.java       |    22 +
 .../internal/managers/checkpoint/package.html   |    24 -
 .../GridCommunicationSendMessageSelfTest.java   |     2 +-
 .../managers/communication/package-info.java    |    22 +
 .../managers/communication/package.html         |    24 -
 .../GridDeploymentMessageCountSelfTest.java     |     8 +-
 .../managers/deployment/package-info.java       |    22 +
 .../internal/managers/deployment/package.html   |    24 -
 .../GridDiscoveryManagerAliveCacheSelfTest.java |    17 +-
 .../discovery/GridDiscoveryManagerSelfTest.java |   124 +-
 .../ignite/internal/managers/package-info.java  |    22 +
 .../ignite/internal/managers/package.html       |    24 -
 .../managers/swapspace/package-info.java        |    22 +
 .../internal/managers/swapspace/package.html    |    24 -
 .../apache/ignite/internal/package-info.java    |    22 +
 .../org/apache/ignite/internal/package.html     |    24 -
 .../GridCacheTxLoadFromStoreOnLockSelfTest.java |   152 +
 .../GridAffinityProcessorAbstractSelfTest.java  |    18 +-
 ...AffinityProcessorConsistentHashSelfTest.java |    31 -
 ...GridAffinityProcessorRendezvousSelfTest.java |     4 +-
 ...cheNearUpdateTopologyChangeAbstractTest.java |   140 +
 .../GridCacheAbstractFailoverSelfTest.java      |     6 +-
 .../cache/GridCacheAbstractFlagsTest.java       |     7 +-
 ...cheAbstractFullApiMultithreadedSelfTest.java |     2 +-
 .../cache/GridCacheAbstractFullApiSelfTest.java |   440 +-
 .../GridCacheAbstractLocalStoreSelfTest.java    |   439 +
 .../cache/GridCacheAbstractMetricsSelfTest.java |   124 +-
 .../GridCacheAbstractRemoveFailureTest.java     |    15 +-
 .../cache/GridCacheAbstractSelfTest.java        |    42 +-
 ...acheAbstractUsersAffinityMapperSelfTest.java |   209 +
 .../cache/GridCacheAffinityApiSelfTest.java     |    56 +-
 .../cache/GridCacheAffinityMapperSelfTest.java  |    14 +-
 .../cache/GridCacheAffinityRoutingSelfTest.java |    12 +-
 .../cache/GridCacheAlwaysEvictionPolicy.java    |    14 +-
 .../GridCacheAsyncOperationsLimitSelfTest.java  |     3 +-
 .../GridCacheAtomicMessageCountSelfTest.java    |    30 +-
 ...dCacheAtomicUsersAffinityMapperSelfTest.java |    41 +
 .../cache/GridCacheBasicApiAbstractTest.java    |    31 +-
 .../cache/GridCacheBasicStoreAbstractTest.java  |    16 +-
 ...acheBasicStoreMultithreadedAbstractTest.java |     2 +-
 .../cache/GridCacheClearAllSelfTest.java        |    45 +-
 .../cache/GridCacheClearLocallySelfTest.java    |   378 +
 .../cache/GridCacheClearLocalySelfTest.java     |   336 -
 ...dCacheColocatedTxStoreExceptionSelfTest.java |     6 +-
 .../cache/GridCacheConcurrentMapSelfTest.java   |    10 +-
 .../cache/GridCacheConcurrentMapTest.java       |    10 +-
 .../GridCacheConcurrentTxMultiNodeTest.java     |    53 +-
 ...idCacheConfigurationConsistencySelfTest.java |   323 +-
 ...ridCacheConfigurationValidationSelfTest.java |    52 +-
 .../GridCacheDaemonNodeAbstractSelfTest.java    |     7 +-
 .../GridCacheDeploymentOffHeapSelfTest.java     |     4 +-
 .../cache/GridCacheDeploymentSelfTest.java      |    26 +-
 .../cache/GridCacheEntryMemorySizeSelfTest.java |    19 +-
 .../cache/GridCacheEntryVersionSelfTest.java    |     8 +-
 .../GridCacheEvictionEventAbstractTest.java     |    10 +-
 .../GridCacheExAbstractFullApiSelfTest.java     |     8 +-
 .../GridCacheFieldsQueryNoDataSelfTest.java     |    83 -
 .../GridCacheFinishPartitionsSelfTest.java      |    37 +-
 ...CacheFullTextQueryMultithreadedSelfTest.java |     3 +-
 .../cache/GridCacheGenericTestStore.java        |     2 +-
 ...idCacheGetAndTransformStoreAbstractTest.java |    15 +-
 .../cache/GridCacheIncrementTransformTest.java  |     8 +-
 .../GridCacheInterceptorAbstractSelfTest.java   |   487 +-
 ...cheInterceptorAtomicNearEnabledSelfTest.java |    11 +-
 ...erceptorAtomicPrimaryWriteOrderSelfTest.java |     8 +-
 .../GridCacheInterceptorAtomicSelfTest.java     |     8 +-
 ...GridCacheInterceptorNearEnabledSelfTest.java |     7 +-
 .../cache/GridCacheInterceptorSelfTest.java     |     8 +-
 .../cache/GridCacheIteratorPerformanceTest.java |     6 +-
 .../GridCacheKeyCheckNearEnabledSelfTest.java   |     6 +-
 .../cache/GridCacheKeyCheckSelfTest.java        |    14 +-
 .../processors/cache/GridCacheLeakTest.java     |    10 +-
 .../cache/GridCacheLifecycleAwareSelfTest.java  |    55 +-
 .../cache/GridCacheLuceneQueryIndexTest.java    |    17 +-
 .../GridCacheMarshallerTxAbstractTest.java      |    10 +-
 .../GridCacheMarshallingNodeJoinSelfTest.java   |   170 +
 .../cache/GridCacheMemoryModeSelfTest.java      |    14 +-
 ...GridCacheMixedPartitionExchangeSelfTest.java |    45 +-
 .../cache/GridCacheMultiUpdateLockSelfTest.java |    18 +-
 ...ridCacheMultinodeUpdateAbstractSelfTest.java |    24 +-
 ...ultinodeUpdateAtomicNearEnabledSelfTest.java |     6 +-
 .../GridCacheMultinodeUpdateAtomicSelfTest.java |     6 +-
 ...CacheMultinodeUpdateNearEnabledSelfTest.java |     6 +-
 .../cache/GridCacheMultinodeUpdateSelfTest.java |     6 +-
 .../cache/GridCacheMvccFlagsTest.java           |     8 +-
 .../cache/GridCacheMvccManagerSelfTest.java     |     2 +-
 .../cache/GridCacheMvccPartitionedSelfTest.java |    66 +-
 .../processors/cache/GridCacheMvccSelfTest.java |   164 +-
 .../cache/GridCacheNestedTxAbstractTest.java    |    12 +-
 .../cache/GridCacheObjectToStringSelfTest.java  |    25 +-
 ...HeapMultiThreadedUpdateAbstractSelfTest.java |    17 +-
 ...CacheOffHeapMultiThreadedUpdateSelfTest.java |    14 +-
 .../cache/GridCacheOffHeapSelfTest.java         |    32 +-
 .../processors/cache/GridCacheOffHeapTest.java  |     6 +-
 .../GridCacheOffHeapTieredAbstractSelfTest.java |    45 +-
 ...heOffHeapTieredEvictionAbstractSelfTest.java |    17 +-
 .../cache/GridCacheOffheapUpdateSelfTest.java   |    10 +-
 .../GridCacheOnCopyFlagAbstractSelfTest.java    |   686 +
 .../GridCacheOnCopyFlagAtomicSelfTest.java      |    38 +
 .../cache/GridCacheOnCopyFlagLocalSelfTest.java |    38 +
 .../GridCacheOnCopyFlagReplicatedSelfTest.java  |    38 +
 ...ridCacheOnCopyFlagTxPartitionedSelfTest.java |    38 +
 .../GridCacheOrderedPreloadingSelfTest.java     |     8 +-
 .../cache/GridCacheP2PUndeploySelfTest.java     |    19 +-
 .../GridCachePartitionedAffinitySpreadTest.java |    16 +-
 .../cache/GridCachePartitionedGetSelfTest.java  |    16 +-
 .../GridCachePartitionedLocalStoreSelfTest.java |    44 +
 ...chePartitionedOffHeapLocalStoreSelfTest.java |    49 +
 ...hePartitionedProjectionAffinitySelfTest.java |     6 +-
 .../cache/GridCachePartitionedWritesTest.java   |     6 +-
 .../GridCachePreloadingEvictionsSelfTest.java   |    19 +-
 .../cache/GridCachePutAllFailoverSelfTest.java  |    17 +-
 .../processors/cache/GridCachePutAllTask.java   |     2 +-
 .../cache/GridCacheQueryEmbeddedValue.java      |     2 +
 .../cache/GridCacheQueryIndexSelfTest.java      |   126 -
 .../GridCacheQueryIndexingDisabledSelfTest.java |     1 -
 .../GridCacheQueryInternalKeysSelfTest.java     |     7 +-
 .../GridCacheReferenceCleanupSelfTest.java      |    15 +-
 .../cache/GridCacheReloadSelfTest.java          |    10 +-
 .../GridCacheReplicatedLocalStoreSelfTest.java  |    44 +
 ...ridCacheReplicatedSynchronousCommitTest.java |     8 +-
 ...CacheReplicatedTxStoreExceptionSelfTest.java |     6 +-
 ...heReplicatedUsersAffinityMapperSelfTest.java |    41 +
 .../GridCacheReturnValueTransferSelfTest.java   |    15 +-
 .../cache/GridCacheSlowTxWarnTest.java          |     2 +-
 .../processors/cache/GridCacheStopSelfTest.java |     3 +-
 .../cache/GridCacheStorePutxSelfTest.java       |     4 +-
 .../cache/GridCacheStoreValueBytesSelfTest.java |    27 +-
 .../cache/GridCacheSwapPreloadSelfTest.java     |    33 +-
 .../cache/GridCacheSwapReloadSelfTest.java      |     2 +-
 .../processors/cache/GridCacheTestEntryEx.java  |   285 +-
 .../processors/cache/GridCacheTestStore.java    |     2 +-
 .../processors/cache/GridCacheTestValue.java    |     2 +-
 .../processors/cache/GridCacheTestValue2.java   |     2 +
 ...cheTransactionalAbstractMetricsSelfTest.java |    15 +-
 .../cache/GridCacheTtlManagerLoadTest.java      |     4 +-
 .../cache/GridCacheTtlManagerSelfTest.java      |     6 +-
 ...ridCacheTxPartitionedLocalStoreSelfTest.java |    44 +
 .../GridCacheTxUsersAffinityMapperSelfTest.java |    41 +
 .../GridCacheValueBytesPreloadingSelfTest.java  |    17 +-
 ...idCacheValueConsistencyAbstractSelfTest.java |    44 +-
 ...istencyTransactionalNearEnabledSelfTest.java |     6 +-
 .../GridCacheVariableTopologySelfTest.java      |     2 +-
 .../cache/GridCacheVersionMultinodeTest.java    |    15 +-
 .../cache/GridCacheVersionSelfTest.java         |     3 +
 ...idCacheWriteBehindStoreAbstractSelfTest.java |     2 +-
 .../GridCacheWriteBehindStoreAbstractTest.java  |     4 +-
 ...BehindStorePartitionedMultiNodeSelfTest.java |    12 +-
 .../GridCacheWriteBehindStoreSelfTest.java      |     2 +-
 .../IgniteCacheAbstractStopBusySelfTest.java    |    15 +-
 .../cache/IgniteCacheAbstractTest.java          |    28 +-
 ...IgniteCacheAtomicCopyOnReadDisabledTest.java |    32 +
 .../cache/IgniteCacheAtomicInvokeTest.java      |     6 +-
 .../cache/IgniteCacheAtomicLocalInvokeTest.java |     6 +-
 ...niteCacheAtomicLocalWithStoreInvokeTest.java |     6 +-
 .../IgniteCacheAtomicNearEnabledInvokeTest.java |     8 +-
 .../IgniteCacheAtomicNearPeekModesTest.java     |    28 +
 ...eCacheAtomicPrimaryWriteOrderInvokeTest.java |     6 +-
 ...micPrimaryWriteOrderWithStoreInvokeTest.java |     6 +-
 .../IgniteCacheContainsKeyAbstractSelfTest.java |     6 +-
 ...niteCacheCopyOnReadDisabledAbstractTest.java |   123 +
 .../cache/IgniteCacheDynamicStopSelfTest.java   |   130 +
 .../IgniteCacheEntryListenerAbstractTest.java   |   204 +-
 ...IgniteCacheEntryListenerAtomicLocalTest.java |     6 +-
 .../IgniteCacheEntryListenerAtomicTest.java     |     6 +-
 .../IgniteCacheEntryListenerTxLocalTest.java    |     6 +-
 .../cache/IgniteCacheEntryListenerTxTest.java   |     6 +-
 .../IgniteCacheInterceptorSelfTestSuite.java    |     5 +
 .../cache/IgniteCacheInvokeReadThroughTest.java |    11 +-
 .../cache/IgniteCachePeekModesAbstractTest.java |    42 +-
 .../cache/IgniteCacheStartStopLoadTest.java     |   135 +
 .../IgniteCacheTxCopyOnReadDisabledTest.java    |    32 +
 .../cache/IgniteCacheTxInvokeTest.java          |     6 +-
 .../cache/IgniteCacheTxLocalInvokeTest.java     |     6 +-
 .../IgniteCacheTxNearEnabledInvokeTest.java     |     8 +-
 .../cache/IgniteCacheTxNearPeekModesTest.java   |    28 +
 .../cache/IgniteCacheTxPreloadNoWriteTest.java  |   109 +
 .../cache/IgniteCachingProviderSelfTest.java    |     4 +-
 .../IgniteClientAffinityAssignmentSelfTest.java |    31 +-
 .../cache/IgniteDynamicCacheStartSelfTest.java  |   972 ++
 .../cache/IgnitePutAllLargeBatchSelfTest.java   |    17 +-
 ...tAllUpdateNonPreloadedPartitionSelfTest.java |    14 +-
 .../cache/IgniteStaticCacheStartSelfTest.java   |    98 +
 .../processors/cache/IgniteTxAbstractTest.java  |     4 +-
 .../IgniteTxConcurrentGetAbstractTest.java      |     8 +-
 .../IgniteTxExceptionAbstractSelfTest.java      |    33 +-
 .../cache/IgniteTxMultiNodeAbstractTest.java    |    66 +-
 .../IgniteTxMultiThreadedAbstractTest.java      |     2 +-
 .../cache/IgniteTxReentryAbstractSelfTest.java  |     7 +-
 .../IgniteTxStoreExceptionAbstractSelfTest.java |    60 +-
 ...IgniteCacheAbstractExecutionContextTest.java |    13 +-
 .../IgniteCacheAtomicExecutionContextTest.java  |     6 +-
 ...iteCachePartitionedExecutionContextTest.java |     6 +-
 ...niteCacheReplicatedExecutionContextTest.java |     6 +-
 .../IgniteCacheTxExecutionContextTest.java      |     6 +-
 ...eAbstractDataStructuresFailoverSelfTest.java |     2 +-
 ...actQueueFailoverDataConsistencySelfTest.java |     4 +-
 ...CacheAtomicReferenceApiSelfAbstractTest.java |     2 +-
 ...idCacheAtomicStampedApiSelfAbstractTest.java |     2 +-
 .../GridCacheQueueCleanupSelfTest.java          |     3 +-
 ...dCacheQueueMultiNodeConsistencySelfTest.java |     3 +-
 .../GridCacheSequenceApiSelfAbstractTest.java   |     2 +-
 .../GridCacheSetAbstractSelfTest.java           |    14 +-
 .../GridCacheSetFailoverAbstractSelfTest.java   |     4 +-
 .../IgniteAtomicLongApiAbstractSelfTest.java    |     4 +-
 .../IgniteCollectionAbstractTest.java           |     8 +-
 ...titionedAtomicSequenceMultiThreadedTest.java |    48 +-
 ...GridCachePartitionedNodeRestartSelfTest.java |     6 +-
 ...idCachePartitionedNodeRestartTxSelfTest.java |    30 +-
 ...PartitionedQueueCreateMultiNodeSelfTest.java |     6 +-
 ...dCachePartitionedQueueEntryMoveSelfTest.java |     9 +-
 .../IgnitePartitionedSetNoBackupsSelfTest.java  |     2 +-
 ...CacheAtomicNearUpdateTopologyChangeTest.java |    39 +
 .../CacheTxNearUpdateTopologyChangeTest.java    |    33 +
 ...tractDistributedByteArrayValuesSelfTest.java |     6 +-
 .../GridCacheAbstractJobExecutionTest.java      |    41 +-
 .../GridCacheAbstractNodeRestartSelfTest.java   |    16 +-
 ...tractPartitionedByteArrayValuesSelfTest.java |    11 +-
 .../GridCacheAbstractPrimarySyncSelfTest.java   |    11 +-
 .../GridCacheAtomicTimeoutSelfTest.java         |    20 +-
 .../GridCacheBasicOpAbstractTest.java           |    26 +-
 .../GridCacheClientModesAbstractSelfTest.java   |    36 +-
 .../GridCacheEntrySetAbstractSelfTest.java      |     2 +-
 ...acheEntrySetIterationPreloadingSelfTest.java |     6 +-
 .../distributed/GridCacheEventAbstractTest.java |    37 +-
 ...heExpiredEntriesPreloadAbstractSelfTest.java |     8 +-
 ...GridCacheLoadingConcurrentGridStartTest.java |   154 +
 .../distributed/GridCacheLockAbstractTest.java  |    12 +-
 .../distributed/GridCacheMixedModeSelfTest.java |     8 +-
 .../GridCacheModuloAffinityFunction.java        |     4 +-
 .../GridCacheMultiNodeAbstractTest.java         |    10 +-
 .../GridCacheMultiNodeLockAbstractTest.java     |    14 +-
 ...dCacheMultithreadedFailoverAbstractTest.java |    29 +-
 .../GridCacheNodeFailureAbstractTest.java       |     7 +-
 ...dCachePartitionedAffinityFilterSelfTest.java |    16 +-
 ...chePartitionedReloadAllAbstractSelfTest.java |    74 +-
 .../GridCachePreloadEventsAbstractSelfTest.java |    15 +-
 .../GridCachePreloadLifecycleAbstractTest.java  |     6 +-
 ...GridCachePreloadRestartAbstractSelfTest.java |    25 +-
 .../GridCacheTransformEventSelfTest.java        |     7 +-
 .../IgniteCacheSystemTransactionsSelfTest.java  |   188 +
 .../IgniteCrossCacheTxStoreSelfTest.java        |   105 +-
 ...iteTxConsistencyRestartAbstractSelfTest.java |    14 +-
 ...xOriginatingNodeFailureAbstractSelfTest.java |     8 +-
 ...cOriginatingNodeFailureAbstractSelfTest.java |    16 +-
 .../IgniteTxPreloadAbstractTest.java            |     6 +-
 .../IgniteTxTimeoutAbstractTest.java            |     4 +-
 ...tPartitionedOnlyByteArrayValuesSelfTest.java |    12 +-
 ...heAbstractTransformWriteThroughSelfTest.java |     8 +-
 ...acheAtomicExpiredEntriesPreloadSelfTest.java |     6 +-
 .../dht/GridCacheAtomicFullApiSelfTest.java     |     5 +-
 .../dht/GridCacheAtomicNearCacheSelfTest.java   |   102 +-
 ...idCacheAtomicNearEnabledFullApiSelfTest.java |     8 +-
 ...EnabledPrimaryWriteOrderFullApiSelfTest.java |     8 +-
 .../dht/GridCacheClientOnlySelfTest.java        |     8 +-
 .../dht/GridCacheColocatedDebugTest.java        |   124 +-
 .../dht/GridCacheColocatedFailoverSelfTest.java |     6 +-
 ...eColocatedOptimisticTransactionSelfTest.java |     6 +-
 .../GridCacheColocatedPrimarySyncSelfTest.java  |     8 +-
 .../GridCacheColocatedTxExceptionSelfTest.java  |     6 +-
 ...ssimisticOriginatingNodeFailureSelfTest.java |     6 +-
 ...dCacheColocatedTxSingleThreadedSelfTest.java |     6 +-
 .../GridCacheDhtAtomicRemoveFailureTest.java    |     3 +-
 .../dht/GridCacheDhtEntrySelfTest.java          |    22 +-
 .../dht/GridCacheDhtEntrySetSelfTest.java       |     3 +-
 ...GridCacheDhtEvictionNearReadersSelfTest.java |    51 +-
 .../dht/GridCacheDhtEvictionSelfTest.java       |    60 +-
 .../GridCacheDhtEvictionsDisabledSelfTest.java  |     5 +-
 ...idCacheDhtExpiredEntriesPreloadSelfTest.java |     6 +-
 .../dht/GridCacheDhtInternalEntrySelfTest.java  |    44 +-
 .../dht/GridCacheDhtMappingSelfTest.java        |     8 +-
 .../dht/GridCacheDhtMultiBackupTest.java        |     4 +-
 .../dht/GridCacheDhtPreloadBigDataSelfTest.java |    26 +-
 .../dht/GridCacheDhtPreloadDelayedSelfTest.java |    56 +-
 .../GridCacheDhtPreloadDisabledSelfTest.java    |    27 +-
 .../GridCacheDhtPreloadMessageCountTest.java    |    14 +-
 ...ridCacheDhtPreloadMultiThreadedSelfTest.java |     4 +-
 .../dht/GridCacheDhtPreloadOffHeapSelfTest.java |     1 -
 .../dht/GridCacheDhtPreloadPutGetSelfTest.java  |    10 +-
 .../dht/GridCacheDhtPreloadSelfTest.java        |    65 +-
 .../GridCacheDhtPreloadStartStopSelfTest.java   |    28 +-
 .../dht/GridCacheDhtPreloadUnloadSelfTest.java  |    40 +-
 .../dht/GridCacheDhtRemoveFailureTest.java      |     3 +-
 .../distributed/dht/GridCacheDhtTestUtils.java  |    37 +-
 .../dht/GridCacheDhtTxPreloadSelfTest.java      |     3 +-
 .../dht/GridCacheGlobalLoadTest.java            |    14 +-
 ...ePartitionedNearDisabledFullApiSelfTest.java |     8 +-
 ...ePartitionedNearDisabledMetricsSelfTest.java |    17 +-
 ...nedNearDisabledMultiNodeFullApiSelfTest.java |     8 +-
 ...bledMultiNodeP2PDisabledFullApiSelfTest.java |     8 +-
 ...isabledTxOriginatingNodeFailureSelfTest.java |     6 +-
 ...idCachePartitionedPreloadEventsSelfTest.java |    20 +-
 ...dCachePartitionedTopologyChangeSelfTest.java |    28 +-
 ...itionedTxOriginatingNodeFailureSelfTest.java |     5 -
 ...ridCachePartitionedUnloadEventsSelfTest.java |    31 +-
 ...IgniteCacheContainsKeyColocatedSelfTest.java |     5 +-
 ...teTxConsistencyColocatedRestartSelfTest.java |     5 +-
 .../dht/IgniteTxReentryColocatedSelfTest.java   |     2 +-
 ...eAtomicInvalidPartitionHandlingSelfTest.java |    71 +-
 .../atomic/GridCacheAtomicPreloadSelfTest.java  |    11 +-
 ...tomicPrimaryWriteOrderRemoveFailureTest.java |    56 +
 .../GridCacheAtomicRemoveFailureTest.java       |    56 +
 ...lueConsistencyAtomicNearEnabledSelfTest.java |    14 +-
 ...micPrimaryWriteOrderNearEnabledSelfTest.java |     6 +-
 ...GridCacheValueConsistencyAtomicSelfTest.java |     6 +-
 ...CacheContainsKeyColocatedAtomicSelfTest.java |     5 +-
 ...tNearPartitionedByteArrayValuesSelfTest.java |     8 +-
 ...unctionExcludeNeighborsAbstractSelfTest.java |    11 +-
 ...tomicClientOnlyMultiNodeFullApiSelfTest.java |    50 +-
 ...yOnReadDisabledMultiNodeFullApiSelfTest.java |    36 +
 ...GridCacheAtomicMultiNodeFullApiSelfTest.java |     9 +-
 ...omicMultiNodeP2PDisabledFullApiSelfTest.java |     5 +-
 ...omicNearEnabledMultiNodeFullApiSelfTest.java |     8 +-
 ...imaryWriteOrderMultiNodeFullApiSelfTest.java |     8 +-
 ...eAtomicNearOnlyMultiNodeFullApiSelfTest.java |    14 +-
 .../GridCacheAtomicNearRemoveFailureTest.java   |     3 +-
 .../GridCacheAtomicOffHeapFullApiSelfTest.java  |     5 +-
 ...heAtomicOffHeapMultiNodeFullApiSelfTest.java |     5 +-
 ...idCacheAtomicPartitionedMetricsSelfTest.java |     4 +-
 ...AtomicPartitionedTckMetricsSelfTestImpl.java |     8 +-
 ...cPrimaryWriteOrderNearRemoveFailureTest.java |     3 +-
 ...ffinityFunctionExcludeNeighborsSelfTest.java |    32 -
 .../near/GridCacheExNearFullApiSelfTest.java    |     6 +-
 .../near/GridCacheGetStoreErrorSelfTest.java    |    41 +-
 .../GridCacheNearEvictionEventSelfTest.java     |     5 -
 .../near/GridCacheNearEvictionSelfTest.java     |    19 +-
 ...dCacheNearExpiredEntriesPreloadSelfTest.java |     6 -
 .../near/GridCacheNearJobExecutionSelfTest.java |     3 +-
 .../near/GridCacheNearMetricsSelfTest.java      |    30 +-
 .../near/GridCacheNearMultiGetSelfTest.java     |    12 +-
 .../near/GridCacheNearMultiNodeSelfTest.java    |    40 +-
 .../near/GridCacheNearOneNodeSelfTest.java      |     6 +-
 ...idCacheNearOnlyMultiNodeFullApiSelfTest.java |    94 +-
 .../near/GridCacheNearOnlySelfTest.java         |     7 -
 .../near/GridCacheNearOnlyTopologySelfTest.java |    44 +-
 .../GridCacheNearPartitionedClearSelfTest.java  |    13 +-
 .../near/GridCacheNearPrimarySyncSelfTest.java  |     8 +-
 .../GridCacheNearReaderPreloadSelfTest.java     |    11 +-
 .../near/GridCacheNearReadersSelfTest.java      |    55 +-
 .../near/GridCacheNearRemoveFailureTest.java    |     3 +-
 .../near/GridCacheNearTxMultiNodeSelfTest.java  |    19 +-
 ...ssimisticOriginatingNodeFailureSelfTest.java |     6 -
 .../near/GridCacheNearTxPreloadSelfTest.java    |     3 +-
 ...AffinityExcludeNeighborsPerformanceTest.java |    16 +-
 ...rtitionedAffinityHashIdResolverSelfTest.java |    22 +-
 .../GridCachePartitionedAffinitySelfTest.java   |   242 +-
 .../near/GridCachePartitionedBasicApiTest.java  |     3 +-
 .../GridCachePartitionedBasicOpSelfTest.java    |     2 +-
 ...ePartitionedBasicStoreMultiNodeSelfTest.java |     6 +-
 ...ionedClientOnlyNoPrimaryFullApiSelfTest.java |    15 +-
 ...yOnReadDisabledMultiNodeFullApiSelfTest.java |    37 +
 .../near/GridCachePartitionedEventSelfTest.java |     7 +-
 .../GridCachePartitionedEvictionSelfTest.java   |     8 +-
 ...titionedExplicitLockNodeFailureSelfTest.java |     3 +-
 ...GridCachePartitionedFilteredPutSelfTest.java |     4 +-
 .../GridCachePartitionedFullApiSelfTest.java    |    12 +-
 ...idCachePartitionedHitsAndMissesSelfTest.java |    26 +-
 .../GridCachePartitionedLoadCacheSelfTest.java  |     5 +-
 .../GridCachePartitionedMetricsSelfTest.java    |     4 +-
 ...achePartitionedMultiNodeCounterSelfTest.java |    47 +-
 ...achePartitionedMultiNodeFullApiSelfTest.java |    61 +-
 ...idCachePartitionedMultiNodeLockSelfTest.java |     3 +-
 .../GridCachePartitionedMultiNodeSelfTest.java  |     2 -
 ...ePartitionedMultiThreadedPutGetSelfTest.java |    15 +-
 ...NearDisabledBasicStoreMultiNodeSelfTest.java |     4 +-
 ...itionedNearOnlyNoPrimaryFullApiSelfTest.java |     6 +-
 ...GridCachePartitionedNodeFailureSelfTest.java |     2 -
 .../GridCachePartitionedNodeRestartTest.java    |    11 +-
 ...ePartitionedOptimisticTxNodeRestartTest.java |     8 +-
 ...achePartitionedPreloadLifecycleSelfTest.java |    27 +-
 ...hePartitionedQueryMultiThreadedSelfTest.java |   305 -
 .../GridCachePartitionedStorePutSelfTest.java   |     9 +-
 .../GridCachePartitionedTxSalvageSelfTest.java  |    11 +-
 ...achePartitionedTxSingleThreadedSelfTest.java |     5 +-
 .../near/GridCachePutArrayValueSelfTest.java    |     2 +-
 ...idCacheRendezvousAffinityClientSelfTest.java |    10 +-
 ...ffinityFunctionExcludeNeighborsSelfTest.java |     4 +-
 .../near/GridPartitionedBackupLoadSelfTest.java |     5 +-
 .../near/IgniteCacheNearReadCommittedTest.java  |     9 +-
 .../near/IgniteTxReentryNearSelfTest.java       |     2 +-
 ...stractReplicatedByteArrayValuesSelfTest.java |     3 -
 .../GridCacheReplicatedEvictionSelfTest.java    |     5 +-
 .../GridCacheReplicatedFullApiSelfTest.java     |     6 +-
 .../GridCacheReplicatedInvalidateSelfTest.java  |     6 +-
 .../GridCacheReplicatedNodeRestartSelfTest.java |     6 +-
 ...dezvousAffinityMultiNodeFullApiSelfTest.java |     4 +-
 .../GridCacheReplicatedTxExceptionSelfTest.java |     6 +-
 ...ssimisticOriginatingNodeFailureSelfTest.java |     7 +-
 ...idCacheReplicatedUnswapAdvancedSelfTest.java |     4 +-
 .../GridCacheSyncReplicatedPreloadSelfTest.java |    13 +-
 ...CacheReplicatedPreloadLifecycleSelfTest.java |    28 +-
 ...idCacheReplicatedPreloadOffHeapSelfTest.java |     3 +-
 .../GridCacheReplicatedPreloadSelfTest.java     |    56 +-
 ...eplicatedPreloadStartStopEventsSelfTest.java |     6 +-
 ...GridCacheReplicatedPreloadUndeploysTest.java |     4 +-
 .../GridCacheBatchEvictUnswapSelfTest.java      |    11 +-
 ...heConcurrentEvictionConsistencySelfTest.java |    29 +-
 .../GridCacheConcurrentEvictionsSelfTest.java   |    18 +-
 .../GridCacheDistributedEvictionsSelfTest.java  |    48 +-
 .../GridCacheEmptyEntriesAbstractSelfTest.java  |    17 +-
 .../eviction/GridCacheEvictionAbstractTest.java |    32 +-
 .../GridCacheEvictionFilterSelfTest.java        |    29 +-
 .../GridCacheEvictionLockUnlockSelfTest.java    |    12 +-
 .../GridCacheEvictionTouchSelfTest.java         |    35 +-
 .../cache/eviction/GridCacheMockEntry.java      |     8 +-
 ...cheSynchronousEvictionsFailoverSelfTest.java |    11 +-
 .../GridCacheFifoEvictionPolicySelfTest.java    |    20 +-
 .../lru/GridCacheLruEvictionPolicySelfTest.java |    22 +-
 .../GridCacheLruNearEvictionPolicySelfTest.java |    16 +-
 ...heNearOnlyLruNearEvictionPolicySelfTest.java |    20 +-
 .../GridCacheRandomEvictionPolicySelfTest.java  |    28 +-
 .../IgniteCacheAtomicExpiryPolicyTest.java      |     6 +-
 .../IgniteCacheAtomicLocalExpiryPolicyTest.java |     6 +-
 ...maryWriteOrderWithStoreExpiryPolicyTest.java |     6 +-
 ...iteCacheAtomicWithStoreExpiryPolicyTest.java |     6 +-
 .../IgniteCacheExpiryPolicyAbstractTest.java    |   126 +-
 ...eCacheExpiryPolicyWithStoreAbstractTest.java |    52 +-
 .../expiry/IgniteCacheTxExpiryPolicyTest.java   |     6 +-
 .../IgniteCacheTxLocalExpiryPolicyTest.java     |     6 +-
 .../IgniteCacheTxWithStoreExpiryPolicyTest.java |     6 +-
 .../IgniteCacheAtomicLoadAllTest.java           |     6 +-
 .../IgniteCacheAtomicLoaderWriterTest.java      |     6 +-
 .../IgniteCacheAtomicLocalLoadAllTest.java      |     6 +-
 ...CacheAtomicLocalNoLoadPreviousValueTest.java |     6 +-
 ...IgniteCacheAtomicLocalNoReadThroughTest.java |     6 +-
 ...gniteCacheAtomicLocalNoWriteThroughTest.java |     6 +-
 ...tomicNearEnabledNoLoadPreviousValueTest.java |     8 +-
 ...CacheAtomicNearEnabledNoReadThroughTest.java |     8 +-
 ...acheAtomicNearEnabledNoWriteThroughTest.java |     8 +-
 ...gniteCacheAtomicNoLoadPreviousValueTest.java |     6 +-
 .../IgniteCacheAtomicNoReadThroughTest.java     |     6 +-
 .../IgniteCacheAtomicNoWriteThroughTest.java    |     6 +-
 .../IgniteCacheAtomicStoreSessionTest.java      |     6 +-
 ...eCacheAtomicStoreSessionWriteBehindTest.java |    38 +
 .../IgniteCacheLoadAllAbstractTest.java         |   111 +-
 .../IgniteCacheLoaderWriterAbstractTest.java    |    14 +-
 ...iteCacheNoLoadPreviousValueAbstractTest.java |     5 +-
 .../IgniteCacheNoReadThroughAbstractTest.java   |    63 +-
 .../IgniteCacheNoWriteThroughAbstractTest.java  |     8 +-
 .../IgniteCacheStoreSessionAbstractTest.java    |    34 +-
 ...acheStoreSessionWriteBehindAbstractTest.java |   265 +
 .../integration/IgniteCacheTxLoadAllTest.java   |     6 +-
 .../IgniteCacheTxLoaderWriterTest.java          |     6 +-
 .../IgniteCacheTxLocalLoadAllTest.java          |     6 +-
 ...niteCacheTxLocalNoLoadPreviousValueTest.java |     6 +-
 .../IgniteCacheTxLocalNoReadThroughTest.java    |     6 +-
 .../IgniteCacheTxLocalNoWriteThroughTest.java   |     6 +-
 ...cheTxNearEnabledNoLoadPreviousValueTest.java |     8 +-
 ...niteCacheTxNearEnabledNoReadThroughTest.java |     8 +-
 ...iteCacheTxNearEnabledNoWriteThroughTest.java |     8 +-
 .../IgniteCacheTxNoLoadPreviousValueTest.java   |     6 +-
 .../IgniteCacheTxNoReadThroughTest.java         |     6 +-
 .../IgniteCacheTxNoWriteThroughTest.java        |     6 +-
 .../IgniteCacheTxStoreSessionTest.java          |    26 +-
 ...gniteCacheTxStoreSessionWriteBehindTest.java |    32 +
 ...dCacheAtomicLocalMetricsNoStoreSelfTest.java |    13 +-
 ...dCacheAtomicLocalTckMetricsSelfTestImpl.java |     8 +-
 .../GridCacheLocalByteArrayValuesSelfTest.java  |     6 +-
 .../local/GridCacheLocalLoadAllSelfTest.java    |     5 +-
 .../cache/local/GridCacheLocalLockSelfTest.java |     6 +-
 .../GridCacheLocalMultithreadedSelfTest.java    |     2 +-
 .../local/GridCacheLocalTxTimeoutSelfTest.java  |     2 +-
 .../GridCacheSwapScanQueryAbstractSelfTest.java |    13 +-
 .../query/GridCacheSwapScanQuerySelfTest.java   |     1 +
 ...ridCacheContinuousQueryAbstractSelfTest.java |   223 +-
 ...ontinuousQueryAtomicNearEnabledSelfTest.java |     8 +-
 .../GridCacheContinuousQueryAtomicSelfTest.java |     6 +-
 ...eContinuousQueryPartitionedOnlySelfTest.java |     6 +-
 ...dCacheContinuousQueryReplicatedSelfTest.java |    14 +-
 ...dCacheAbstractReduceFieldsQuerySelfTest.java |   429 -
 ...ridCacheReduceFieldsQueryAtomicSelfTest.java |    38 -
 ...GridCacheReduceFieldsQueryLocalSelfTest.java |    37 -
 ...cheReduceFieldsQueryPartitionedSelfTest.java |    59 -
 ...acheReduceFieldsQueryReplicatedSelfTest.java |    37 -
 .../clock/GridTimeSyncProcessorSelfTest.java    |     2 +-
 .../processors/closure/package-info.java        |    22 +
 .../internal/processors/closure/package.html    |    24 -
 .../continuous/GridEventConsumeSelfTest.java    |     3 +-
 .../dataload/GridDataLoaderImplSelfTest.java    |   215 -
 .../dataload/GridDataLoaderPerformanceTest.java |   199 -
 .../GridDataLoaderProcessorSelfTest.java        |   925 --
 .../DataStreamProcessorSelfTest.java            |   979 ++
 .../datastreamer/DataStreamerImplSelfTest.java  |   205 +
 .../IgniteDataStreamerPerformanceTest.java      |   196 +
 ...heIgfsPerBlockLruEvictionPolicySelfTest.java |   485 -
 .../processors/igfs/IgfsAbstractSelfTest.java   |   376 +-
 ...sCachePerBlockLruEvictionPolicySelfTest.java |   485 +
 .../processors/igfs/IgfsCacheSelfTest.java      |    28 +-
 .../igfs/IgfsDataManagerSelfTest.java           |    14 +-
 .../igfs/IgfsDualAbstractSelfTest.java          |    94 +-
 .../igfs/IgfsExUniversalFileSystemAdapter.java  |   104 +
 .../processors/igfs/IgfsFileInfoSelfTest.java   |     2 +
 .../igfs/IgfsMetaManagerSelfTest.java           |     8 +-
 .../processors/igfs/IgfsMetricsSelfTest.java    |    46 +-
 .../processors/igfs/IgfsModesSelfTest.java      |    31 +-
 .../processors/igfs/IgfsProcessorSelfTest.java  |    14 +-
 .../igfs/IgfsProcessorValidationSelfTest.java   |    58 +-
 ...IpcEndpointRegistrationAbstractSelfTest.java |    31 +-
 ...dpointRegistrationOnLinuxAndMacSelfTest.java |     9 +-
 ...pcEndpointRegistrationOnWindowsSelfTest.java |     5 +-
 .../processors/igfs/IgfsSizeSelfTest.java       |    36 +-
 .../processors/igfs/IgfsStreamsSelfTest.java    |    18 +-
 .../processors/igfs/IgfsTaskSelfTest.java       |    16 +-
 .../igfs/UniversalFileSystemAdapter.java        |    96 +
 .../internal/processors/igfs/package-info.java  |    22 +
 .../internal/processors/igfs/package.html       |    24 -
 .../IgfsAbstractRecordResolverSelfTest.java     |    11 +-
 .../cache/GridCacheCommandHandlerSelfTest.java  |    43 +-
 .../processors/service/DummyService.java        |     6 +-
 .../GridServiceProcessorAbstractSelfTest.java   |     4 +-
 .../GridServiceProcessorMultiNodeSelfTest.java  |     2 +-
 .../streamer/GridStreamerEvictionSelfTest.java  |   164 -
 .../streamer/GridStreamerFailoverSelfTest.java  |   267 -
 .../GridStreamerLifecycleAwareSelfTest.java     |   212 -
 .../streamer/GridStreamerSelfTest.java          |   796 -
 .../processors/streamer/GridTestStage.java      |    52 -
 .../streamer/GridTestStreamerEventRouter.java   |    49 -
 .../ignite/internal/processors/streamer/SC.java |    31 -
 .../internal/util/GridTestClockTimer.java       |    11 +
 .../util/IgniteExceptionRegistrySelfTest.java   |    51 +-
 .../util/future/GridCompoundFutureSelfTest.java |    33 +-
 .../util/future/GridEmbeddedFutureSelfTest.java |    13 +-
 .../util/future/GridFinishedFutureSelfTest.java |   103 -
 .../util/future/GridFutureAdapterSelfTest.java  |   115 +-
 .../future/GridFutureListenPerformanceTest.java |    26 +-
 .../util/future/GridFutureQueueTest.java        |     2 +-
 .../util/future/IgniteFutureImplTest.java       |    99 +-
 .../util/future/nio/GridNioFutureSelfTest.java  |     8 +-
 .../IpcServerEndpointDeserializerSelfTest.java  |   160 -
 .../IpcSharedMemoryCrashDetectionSelfTest.java  |    24 +-
 .../ipc/shmem/IpcSharedMemoryNodeStartup.java   |    17 +-
 .../ipc/shmem/IpcSharedMemorySpaceSelfTest.java |     2 +-
 .../internal/util/nio/GridNioSelfTest.java      |    18 +-
 .../nio/impl/GridNioFilterChainSelfTest.java    |     7 +-
 .../ignite/internal/util/nio/package-info.java  |    22 +
 .../ignite/internal/util/nio/package.html       |    24 -
 .../offheap/GridOffHeapMapAbstractSelfTest.java |     3 +-
 ...idOffHeapPartitionedMapAbstractSelfTest.java |     6 +-
 ...apPartitionedMapPerformanceAbstractTest.java |     6 +-
 .../unsafe/GridUnsafeMemorySelfTest.java        |    10 +-
 ...GridUnsafePartitionedMapPerformanceTest.java |     4 +-
 .../internal/util/tostring/package-info.java    |    22 +
 .../ignite/internal/util/tostring/package.html  |    24 -
 .../ignite/jvmtest/BlockingQueueTest.java       |     4 +-
 .../ignite/jvmtest/ConcurrentMapTest.java       |     7 +-
 .../ignite/lang/GridBasicPerformanceTest.java   |     2 +-
 .../lang/GridFutureListenPerformanceTest.java   |     6 +-
 .../GridImmutableCollectionsPerfomanceTest.java |   120 -
 .../lang/GridMetadataAwareAdapterSelfTest.java  |    80 +-
 .../org/apache/ignite/lang/package-info.java    |    22 +
 .../java/org/apache/ignite/lang/package.html    |    24 -
 .../GridCircularBufferPerformanceTest.java      |    10 +-
 .../lang/utils/GridCircularBufferSelfTest.java  |     2 +-
 .../utils/GridConcurrentHashMapSelfTest.java    |     4 +-
 .../GridConcurrentLinkedHashMapSelfTest.java    |     2 +-
 .../lang/utils/GridLeanIdentitySetSelfTest.java |    62 +
 .../ignite/lang/utils/GridPCollectionsTest.java |    54 -
 .../ignite/lang/utils/GridTrieMapSelfTest.java  |   242 -
 .../apache/ignite/lang/utils/package-info.java  |    22 +
 .../org/apache/ignite/lang/utils/package.html   |    24 -
 .../apache/ignite/loadtest/package-info.java    |    22 +
 .../org/apache/ignite/loadtest/package.html     |    24 -
 ...idFileSwapSpaceSpiMultithreadedLoadTest.java |     2 +-
 .../loadtests/GridCacheLoadPopulationTask.java  |     2 +-
 .../loadtests/GridCacheMultiNodeLoadTest.java   |     9 +-
 .../cache/GridCacheAbstractLoadTest.java        |     2 +-
 .../loadtests/cache/GridCacheBenchmark.java     |     3 +-
 .../cache/GridCacheDataStructuresLoadTest.java  |     2 +-
 .../loadtests/cache/GridCacheLoadTest.java      |     5 +-
 .../cache/GridCachePutRemoveLoadTest.java       |   373 -
 .../cache/GridCacheSingleNodeLoadTest.java      |   182 -
 .../loadtests/cache/GridCacheSwapLoadTest.java  |     7 +-
 .../GridCacheWriteBehindStoreLoadTest.java      |     2 +-
 .../capacity/GridCapacityLoadTest.java          |     3 +-
 .../capacity/spring-capacity-cache.xml          |     8 +-
 .../colocation/GridTestCacheStore.java          |     7 +-
 .../loadtests/colocation/GridTestKey.java       |     2 +-
 .../colocation/GridTestLifecycleBean.java       |     4 +-
 .../loadtests/colocation/GridTestMain.java      |    12 +-
 .../loadtests/colocation/spring-colocation.xml  |    10 +-
 .../communication/GridIoManagerBenchmark.java   |     4 +-
 .../communication/GridIoManagerBenchmark0.java  |     9 +-
 .../GridTcpCommunicationBenchmark.java          |     6 +-
 .../GridContinuousOperationsLoadTest.java       |    11 +-
 .../GridCachePartitionedAtomicLongLoadTest.java |    11 +-
 .../direct/multisplit/package-info.java         |    22 +
 .../loadtests/direct/multisplit/package.html    |    24 -
 .../loadtests/direct/newnodes/package-info.java |    22 +
 .../loadtests/direct/newnodes/package.html      |    24 -
 .../loadtests/direct/redeploy/package-info.java |    22 +
 .../loadtests/direct/redeploy/package.html      |    24 -
 .../loadtests/direct/session/package-info.java  |    22 +
 .../loadtests/direct/session/package.html       |    24 -
 .../loadtests/direct/stealing/package-info.java |    22 +
 .../loadtests/direct/stealing/package.html      |    24 -
 .../loadtests/discovery/GridGcTimeoutTest.java  |     2 +-
 .../ignite/loadtests/dsi/GridDsiClient.java     |     4 +-
 .../loadtests/dsi/GridDsiLifecycleBean.java     |     8 +-
 .../ignite/loadtests/dsi/GridDsiPerfJob.java    |    10 +-
 .../ignite/loadtests/dsi/GridDsiRequest.java    |     2 +-
 .../ignite/loadtests/dsi/GridDsiResponse.java   |     4 +-
 .../ignite/loadtests/dsi/GridDsiSession.java    |     2 +-
 .../cacheget/GridBenchmarkCacheGetLoadTest.java |     2 +-
 .../ignite/loadtests/dsi/package-info.java      |    22 +
 .../apache/ignite/loadtests/dsi/package.html    |    24 -
 ...dBoundedConcurrentLinkedHashSetLoadTest.java |     8 +-
 .../loadtests/hashmap/GridCacheTestContext.java |    30 +-
 .../loadtests/hashmap/GridHashMapLoadTest.java  |    10 +-
 .../job/GridJobExecutionLoadTestClient.java     |     4 +-
 ...GridJobExecutionLoadTestClientSemaphore.java |     6 +-
 ...JobExecutionSingleNodeSemaphoreLoadTest.java |     8 +-
 .../ignite/loadtests/job/package-info.java      |    22 +
 .../apache/ignite/loadtests/job/package.html    |    24 -
 .../GridConcurrentLinkedHashMapBenchmark.java   |     6 +-
 .../mapper/GridContinuousMapperLoadTest1.java   |     2 +-
 .../mapper/GridContinuousMapperLoadTest2.java   |     2 +-
 .../mapper/GridContinuousMapperTask1.java       |     2 +-
 .../mapper/GridContinuousMapperTask2.java       |     2 +-
 .../ignite/loadtests/mapper/TestObject.java     |     2 +-
 .../mergesort/GridMergeSortLoadTask.java        |     2 +-
 ...apPartitionedMapPerformanceAbstractTest.java |     6 +-
 ...GridUnsafePartitionedMapPerformanceTest.java |     4 +-
 .../ignite/loadtests/streamer/EventClosure.java |    60 -
 .../streamer/GridStreamerBenchmark.java         |   140 -
 .../streamer/GridStreamerIndexLoadTest.java     |   179 -
 .../loadtests/streamer/GridStreamerLoad.java    |    62 -
 .../ignite/loadtests/streamer/IndexUpdater.java |    46 -
 .../ignite/loadtests/streamer/QueryClosure.java |   107 -
 .../loadtests/streamer/average/TestAverage.java |    70 -
 .../loadtests/streamer/average/TestStage.java   |    63 -
 .../swap/GridSwapEvictAllBenchmark.java         |     7 +-
 .../apache/ignite/logger/java/package-info.java |    22 +
 .../org/apache/ignite/logger/java/package.html  |    24 -
 .../marshaller/GridMarshallerAbstractTest.java  |    72 +-
 .../GridMarshallerPerformanceTest.java          |     2 -
 .../marshaller/MarshallerContextTestImpl.java   |    43 +
 .../jdk/GridJdkMarshallerSelfTest.java          |     2 +-
 .../ignite/marshaller/jdk/package-info.java     |    22 +
 .../apache/ignite/marshaller/jdk/package.html   |    24 -
 .../OptimizedMarshallerEnumSelfTest.java        |     4 +-
 .../OptimizedMarshallerNodeFailoverTest.java    |   202 +
 .../optimized/OptimizedMarshallerSelfTest.java  |   186 +-
 ...arshallerSerialPersistentFieldsSelfTest.java |   110 +
 .../optimized/OptimizedMarshallerTest.java      |   102 +-
 .../OptimizedObjectStreamSelfTest.java          |    61 +-
 .../marshaller/optimized/package-info.java      |    22 +
 .../ignite/marshaller/optimized/package.html    |    24 -
 .../apache/ignite/marshaller/package-info.java  |    22 +
 .../org/apache/ignite/marshaller/package.html   |    24 -
 .../ignite/messaging/GridMessagingSelfTest.java |    15 +-
 .../GridP2PContinuousDeploymentSelfTest.java    |     4 +-
 .../org/apache/ignite/p2p/package-info.java     |    22 +
 .../java/org/apache/ignite/p2p/package.html     |    24 -
 .../java/org/apache/ignite/package-info.java    |    22 +
 .../test/java/org/apache/ignite/package.html    |    24 -
 .../org/apache/ignite/session/package-info.java |    22 +
 .../java/org/apache/ignite/session/package.html |    24 -
 .../spi/GridTcpSpiForwardingSelfTest.java       |     1 -
 .../CacheCheckpointSpiSecondCacheSelfTest.java  |     4 +-
 .../spi/checkpoint/cache/package-info.java      |    22 +
 .../ignite/spi/checkpoint/cache/package.html    |    24 -
 .../spi/checkpoint/jdbc/package-info.java       |    22 +
 .../ignite/spi/checkpoint/jdbc/package.html     |    24 -
 .../ignite/spi/checkpoint/package-info.java     |    22 +
 .../apache/ignite/spi/checkpoint/package.html   |    24 -
 .../spi/checkpoint/sharedfs/package-info.java   |    22 +
 .../ignite/spi/checkpoint/sharedfs/package.html |    24 -
 .../spi/collision/fifoqueue/package-info.java   |    22 +
 .../ignite/spi/collision/fifoqueue/package.html |    24 -
 .../spi/collision/jobstealing/package-info.java |    22 +
 .../spi/collision/jobstealing/package.html      |    24 -
 .../ignite/spi/collision/package-info.java      |    22 +
 .../apache/ignite/spi/collision/package.html    |    24 -
 .../collision/priorityqueue/package-info.java   |    22 +
 .../spi/collision/priorityqueue/package.html    |    24 -
 .../communication/GridCacheMessageSelfTest.java |   546 +
 .../ignite/spi/communication/package-info.java  |    22 +
 .../ignite/spi/communication/package.html       |    24 -
 .../tcp/GridCacheDhtLockBackupSelfTest.java     |     8 +-
 .../GridTcpCommunicationSpiAbstractTest.java    |    17 +-
 ...mmunicationSpiConcurrentConnectSelfTest.java |     1 -
 .../GridTcpCommunicationSpiConfigSelfTest.java  |     2 -
 .../tcp/GridTcpCommunicationSpiLanTest.java     |     2 +-
 ...cpCommunicationSpiMultithreadedSelfTest.java |    15 +-
 ...pCommunicationSpiMultithreadedShmemTest.java |    28 -
 ...ommunicationSpiMultithreadedTcpSelfTest.java |    28 -
 ...dTcpCommunicationSpiRecoveryAckSelfTest.java |     1 -
 ...GridTcpCommunicationSpiRecoverySelfTest.java |     1 -
 .../GridTcpCommunicationSpiShmemSelfTest.java   |    31 -
 .../tcp/GridTcpCommunicationSpiTcpSelfTest.java |     6 +-
 .../spi/communication/tcp/package-info.java     |    22 +
 .../ignite/spi/communication/tcp/package.html   |    24 -
 .../spi/deployment/local/package-info.java      |    22 +
 .../ignite/spi/deployment/local/package.html    |    24 -
 .../discovery/AbstractDiscoverySelfTest.java    |     3 +-
 .../ignite/spi/discovery/package-info.java      |    22 +
 .../apache/ignite/spi/discovery/package.html    |    24 -
 .../tcp/TcpDiscoverySpiStartStopSelfTest.java   |     2 +-
 .../tcp/ipfinder/jdbc/package-info.java         |    22 +
 .../discovery/tcp/ipfinder/jdbc/package.html    |    24 -
 .../discovery/tcp/ipfinder/package-info.java    |    22 +
 .../spi/discovery/tcp/ipfinder/package.html     |    24 -
 .../tcp/ipfinder/sharedfs/package-info.java     |    22 +
 .../tcp/ipfinder/sharedfs/package.html          |    24 -
 .../discovery/tcp/ipfinder/vm/package-info.java |    22 +
 .../spi/discovery/tcp/ipfinder/vm/package.html  |    24 -
 .../ignite/spi/discovery/tcp/package-info.java  |    22 +
 .../ignite/spi/discovery/tcp/package.html       |    24 -
 .../spi/eventstorage/memory/package-info.java   |    22 +
 .../ignite/spi/eventstorage/memory/package.html |    24 -
 .../spi/failover/always/package-info.java       |    22 +
 .../ignite/spi/failover/always/package.html     |    24 -
 .../spi/failover/jobstealing/package-info.java  |    22 +
 .../spi/failover/jobstealing/package.html       |    24 -
 .../ignite/spi/failover/never/package-info.java |    22 +
 .../ignite/spi/failover/never/package.html      |    24 -
 .../ignite/spi/failover/package-info.java       |    22 +
 .../org/apache/ignite/spi/failover/package.html |    24 -
 .../loadbalancing/adaptive/package-info.java    |    22 +
 .../spi/loadbalancing/adaptive/package.html     |    24 -
 .../ignite/spi/loadbalancing/package-info.java  |    22 +
 .../ignite/spi/loadbalancing/package.html       |    24 -
 .../loadbalancing/roundrobin/package-info.java  |    22 +
 .../spi/loadbalancing/roundrobin/package.html   |    24 -
 .../weightedrandom/package-info.java            |    22 +
 .../loadbalancing/weightedrandom/package.html   |    24 -
 .../org/apache/ignite/spi/package-info.java     |    22 +
 .../java/org/apache/ignite/spi/package.html     |    24 -
 .../file/GridFileSwapSpaceSpiSelfTest.java      |     3 +-
 .../inmemory/GridTestSwapSpaceSpi.java          |     2 +-
 .../ignite/spi/swapspace/package-info.java      |    22 +
 .../apache/ignite/spi/swapspace/package.html    |    24 -
 .../ignite/startup/cmdline/package-info.java    |    22 +
 .../apache/ignite/startup/cmdline/package.html  |    24 -
 .../org/apache/ignite/startup/package-info.java |    22 +
 .../java/org/apache/ignite/startup/package.html |    24 -
 .../ignite/startup/servlet/package-info.java    |    22 +
 .../apache/ignite/startup/servlet/package.html  |    24 -
 .../GridCacheStoreValueBytesNode.java           |   139 -
 .../GridCacheStoreValueBytesTest.java           |   345 -
 .../index/GridStreamerIndexSelfTest.java        |   686 -
 .../window/GridStreamerWindowSelfTest.java      |   911 --
 .../testframework/GridSpiTestContext.java       |    23 -
 .../ignite/testframework/GridTestUtils.java     |   111 +-
 .../config/GridTestProperties.java              |    10 +-
 .../testframework/config/package-info.java      |    22 +
 .../ignite/testframework/config/package.html    |    24 -
 .../ignite/testframework/http/package-info.java |    22 +
 .../ignite/testframework/http/package.html      |    24 -
 .../testframework/junits/GridAbstractTest.java  |   156 +-
 .../junits/GridTestKernalContext.java           |    16 +-
 .../ignite/testframework/junits/IgniteMock.java |    44 +-
 .../junits/IgniteTestResources.java             |    46 +-
 .../cache/GridAbstractCacheStoreSelfTest.java   |    34 +-
 .../junits/cache/TestCacheSession.java          |     5 +
 .../cache/TestThreadLocalCacheSession.java      |     5 +
 .../junits/common/GridAbstractExamplesTest.java |     2 +-
 .../GridAbstractLifecycleAwareSelfTest.java     |     7 +
 .../junits/common/GridCommonAbstractTest.java   |   101 +-
 .../junits/common/package-info.java             |    22 +
 .../testframework/junits/common/package.html    |    24 -
 .../testframework/junits/package-info.java      |    22 +
 .../ignite/testframework/junits/package.html    |    24 -
 .../junits/spi/GridSpiAbstractTest.java         |     5 +-
 .../testframework/junits/spi/package-info.java  |    22 +
 .../testframework/junits/spi/package.html       |    24 -
 .../ignite/testframework/package-info.java      |    22 +
 .../apache/ignite/testframework/package.html    |    24 -
 .../ignite/testsuites/IgniteBasicTestSuite.java |     4 -
 .../IgniteCacheFailoverTestSuite.java           |    12 +-
 .../IgniteCacheFullApiSelfTestSuite.java        |     2 +
 .../ignite/testsuites/IgniteCacheTestSuite.java |    46 +-
 .../ignite/testsuites/IgniteIgfsTestSuite.java  |     6 +-
 .../testsuites/IgniteKernalSelfTestSuite.java   |     2 +
 .../testsuites/IgniteLangSelfTestSuite.java     |     2 +-
 .../IgniteMarshallerSelfTestSuite.java          |     2 +
 .../IgniteSpiCommunicationSelfTestSuite.java    |     4 +-
 .../testsuites/IgniteStreamerSelfTestSuite.java |    46 -
 .../apache/ignite/testsuites/package-info.java  |    22 +
 .../org/apache/ignite/testsuites/package.html   |    24 -
 ...dConcurrentLinkedDequeMultiThreadedTest.java |     6 +-
 .../util/GridConcurrentLinkedDequeSelfTest.java |     6 +-
 ...rrentLinkedHashMapMultiThreadedSelfTest.java |     4 +-
 .../org/apache/ignite/util/package-info.java    |    22 +
 .../java/org/apache/ignite/util/package.html    |    24 -
 .../core/src/test/resources/log/ignite.log.tst  | 13706 -----------------
 .../webapp/META-INF/ignite-webapp-config.xml    |    79 +-
 modules/core/src/test/webapp/WEB-INF/web.xml    |     4 +-
 modules/extdata/p2p/pom.xml                     |     6 -
 .../tests/p2p/CacheDeploymentTestTask1.java     |     2 +-
 .../tests/p2p/CacheDeploymentTestTask3.java     |     2 +-
 .../tests/p2p/GridExternalAffinityFunction.java |    14 +-
 .../p2p/GridExternalAffinityKeyMapper.java      |     2 +-
 .../p2p/GridP2PContinuousDeploymentTask1.java   |     2 +-
 .../apache/ignite/tests/p2p/package-info.java   |    22 +
 .../org/apache/ignite/tests/p2p/package.html    |    24 -
 .../spi/deployment/uri/tasks/package-info.java  |    22 +
 .../spi/deployment/uri/tasks/package.html       |    24 -
 modules/geospatial/README.txt                   |    33 +
 modules/geospatial/readme.txt                   |    33 -
 .../query/h2/GridH2IndexingGeoSelfTest.java     |    16 +-
 modules/hadoop/README.txt                       |    33 +
 modules/hadoop/config/core-site.ignite.xml      |    90 +
 modules/hadoop/config/hive-site.ignite.xml      |    37 +
 modules/hadoop/config/mapred-site.ignite.xml    |    66 +
 modules/hadoop/docs/hadoop_readme.md            |   135 +
 modules/hadoop/docs/hadoop_readme.pdf           |   Bin 0 -> 82297 bytes
 modules/hadoop/pom.xml                          |     6 +
 modules/hadoop/readme.txt                       |    33 -
 .../client/hadoop/GridHadoopClientProtocol.java |   334 -
 .../GridHadoopClientProtocolProvider.java       |   137 -
 .../counter/GridHadoopClientCounterGroup.java   |   121 -
 .../counter/GridHadoopClientCounters.java       |   217 -
 .../apache/ignite/client/hadoop/package.html    |    24 -
 .../fs/IgniteHadoopFileSystemCounterWriter.java |    93 +
 .../fs/IgniteHadoopIgfsSecondaryFileSystem.java |   450 +
 .../apache/ignite/hadoop/fs/package-info.java   |    22 +
 .../hadoop/fs/v1/IgniteHadoopFileSystem.java    |  1250 ++
 .../ignite/hadoop/fs/v1/package-info.java       |    22 +
 .../hadoop/fs/v2/IgniteHadoopFileSystem.java    |   986 ++
 .../ignite/hadoop/fs/v2/package-info.java       |    22 +
 .../IgniteHadoopClientProtocolProvider.java     |   141 +
 .../mapreduce/IgniteHadoopMapReducePlanner.java |   435 +
 .../ignite/hadoop/mapreduce/package-info.java   |    22 +
 .../org/apache/ignite/hadoop/package-info.java  |    22 +
 .../igfs/hadoop/IgfsHadoopParameters.java       |    94 -
 .../org/apache/ignite/igfs/hadoop/package.html  |    24 -
 .../igfs/hadoop/v1/IgfsHadoopFileSystem.java    |  1253 --
 .../apache/ignite/igfs/hadoop/v1/package.html   |    24 -
 .../igfs/hadoop/v2/IgfsHadoopFileSystem.java    |  1007 --
 .../apache/ignite/igfs/hadoop/v2/package.html   |    24 -
 .../java/org/apache/ignite/igfs/package.html    |    24 -
 .../ignite/internal/igfs/hadoop/IgfsHadoop.java |   198 -
 .../IgfsHadoopCommunicationException.java       |    57 -
 .../igfs/hadoop/IgfsHadoopEndpoint.java         |   210 -
 .../internal/igfs/hadoop/IgfsHadoopEx.java      |    88 -
 .../igfs/hadoop/IgfsHadoopFSProperties.java     |    88 -
 .../hadoop/IgfsHadoopFileSystemWrapper.java     |   413 -
 .../internal/igfs/hadoop/IgfsHadoopFuture.java  |    94 -
 .../internal/igfs/hadoop/IgfsHadoopInProc.java  |   409 -
 .../igfs/hadoop/IgfsHadoopInputStream.java      |   626 -
 .../internal/igfs/hadoop/IgfsHadoopIo.java      |    76 -
 .../internal/igfs/hadoop/IgfsHadoopIpcIo.java   |   599 -
 .../igfs/hadoop/IgfsHadoopIpcIoListener.java    |    36 -
 .../igfs/hadoop/IgfsHadoopJclLogger.java        |   112 -
 .../internal/igfs/hadoop/IgfsHadoopOutProc.java |   466 -
 .../igfs/hadoop/IgfsHadoopOutputStream.java     |   201 -
 .../igfs/hadoop/IgfsHadoopProxyInputStream.java |   335 -
 .../hadoop/IgfsHadoopProxyOutputStream.java     |   165 -
 .../internal/igfs/hadoop/IgfsHadoopReader.java  |   104 -
 .../igfs/hadoop/IgfsHadoopStreamDelegate.java   |    96 -
 .../hadoop/IgfsHadoopStreamEventListener.java   |    39 -
 .../internal/igfs/hadoop/IgfsHadoopUtils.java   |   131 -
 .../internal/igfs/hadoop/IgfsHadoopWrapper.java |   511 -
 .../ignite/internal/igfs/hadoop/package.html    |    24 -
 .../apache/ignite/internal/igfs/package.html    |    24 -
 .../hadoop/GridHadoopClassLoader.java           |   552 -
 .../processors/hadoop/GridHadoopComponent.java  |    61 -
 .../processors/hadoop/GridHadoopContext.java    |   196 -
 .../hadoop/GridHadoopDefaultJobInfo.java        |   163 -
 .../processors/hadoop/GridHadoopImpl.java       |   132 -
 .../processors/hadoop/GridHadoopSetup.java      |   505 -
 .../GridHadoopTaskCancelledException.java       |    35 -
 .../processors/hadoop/GridHadoopUtils.java      |   308 -
 .../processors/hadoop/HadoopClassLoader.java    |   552 +
 .../processors/hadoop/HadoopComponent.java      |    61 +
 .../processors/hadoop/HadoopContext.java        |   199 +
 .../processors/hadoop/HadoopDefaultJobInfo.java |   163 +
 .../internal/processors/hadoop/HadoopImpl.java  |   134 +
 .../hadoop/HadoopMapReduceCounterGroup.java     |   121 +
 .../hadoop/HadoopMapReduceCounters.java         |   216 +
 .../processors/hadoop/HadoopProcessor.java      |   229 +
 .../internal/processors/hadoop/HadoopSetup.java |   526 +
 .../hadoop/HadoopTaskCancelledException.java    |    35 +
 .../internal/processors/hadoop/HadoopUtils.java |   308 +
 .../hadoop/IgniteHadoopProcessor.java           |   225 -
 .../hadoop/SecondaryFileSystemProvider.java     |   124 +
 .../counter/GridHadoopCounterAdapter.java       |   128 -
 .../hadoop/counter/GridHadoopCountersImpl.java  |   198 -
 .../counter/GridHadoopFSCounterWriter.java      |    91 -
 .../hadoop/counter/GridHadoopLongCounter.java   |    92 -
 .../counter/GridHadoopPerformanceCounter.java   |   279 -
 .../hadoop/counter/HadoopCounterAdapter.java    |   127 +
 .../hadoop/counter/HadoopCountersImpl.java      |   197 +
 .../hadoop/counter/HadoopLongCounter.java       |    90 +
 .../counter/HadoopPerformanceCounter.java       |   279 +
 .../fs/GridHadoopDistributedFileSystem.java     |    91 -
 .../hadoop/fs/GridHadoopFileSystemsUtils.java   |    57 -
 .../hadoop/fs/GridHadoopLocalFileSystemV1.java  |    39 -
 .../hadoop/fs/GridHadoopLocalFileSystemV2.java  |    86 -
 .../hadoop/fs/GridHadoopRawLocalFileSystem.java |   304 -
 .../hadoop/fs/HadoopDistributedFileSystem.java  |    91 +
 .../hadoop/fs/HadoopFileSystemsUtils.java       |    57 +
 .../hadoop/fs/HadoopLocalFileSystemV1.java      |    39 +
 .../hadoop/fs/HadoopLocalFileSystemV2.java      |    86 +
 .../processors/hadoop/fs/HadoopParameters.java  |    94 +
 .../hadoop/fs/HadoopRawLocalFileSystem.java     |   304 +
 .../processors/hadoop/igfs/HadoopIgfs.java      |   198 +
 .../igfs/HadoopIgfsCommunicationException.java  |    57 +
 .../hadoop/igfs/HadoopIgfsEndpoint.java         |   209 +
 .../processors/hadoop/igfs/HadoopIgfsEx.java    |    88 +
 .../hadoop/igfs/HadoopIgfsFuture.java           |    97 +
 .../hadoop/igfs/HadoopIgfsInProc.java           |   410 +
 .../hadoop/igfs/HadoopIgfsInputStream.java      |   626 +
 .../processors/hadoop/igfs/HadoopIgfsIo.java    |    76 +
 .../processors/hadoop/igfs/HadoopIgfsIpcIo.java |   604 +
 .../hadoop/igfs/HadoopIgfsIpcIoListener.java    |    36 +
 .../hadoop/igfs/HadoopIgfsJclLogger.java        |   115 +
 .../hadoop/igfs/HadoopIgfsOutProc.java          |   474 +
 .../hadoop/igfs/HadoopIgfsOutputStream.java     |   201 +
 .../hadoop/igfs/HadoopIgfsProperties.java       |    88 +
 .../hadoop/igfs/HadoopIgfsProxyInputStream.java |   335 +
 .../igfs/HadoopIgfsProxyOutputStream.java       |   165 +
 ...fsSecondaryFileSystemPositionedReadable.java |   104 +
 .../hadoop/igfs/HadoopIgfsStreamDelegate.java   |    96 +
 .../igfs/HadoopIgfsStreamEventListener.java     |    39 +
 .../processors/hadoop/igfs/HadoopIgfsUtils.java |   133 +
 .../hadoop/igfs/HadoopIgfsWrapper.java          |   511 +
 .../jobtracker/GridHadoopJobMetadata.java       |   305 -
 .../hadoop/jobtracker/GridHadoopJobTracker.java |  1625 --
 .../hadoop/jobtracker/HadoopJobMetadata.java    |   306 +
 .../hadoop/jobtracker/HadoopJobTracker.java     |  1626 ++
 .../hadoop/message/GridHadoopMessage.java       |    27 -
 .../hadoop/message/HadoopMessage.java           |    27 +
 .../planner/GridHadoopDefaultMapReducePlan.java |   107 -
 .../GridHadoopDefaultMapReducePlanner.java      |   434 -
 .../planner/HadoopDefaultMapReducePlan.java     |   107 +
 .../GridHadoopProtocolJobCountersTask.java      |    45 -
 .../proto/GridHadoopProtocolJobStatusTask.java  |    81 -
 .../proto/GridHadoopProtocolKillJobTask.java    |    46 -
 .../proto/GridHadoopProtocolNextTaskIdTask.java |    35 -
 .../proto/GridHadoopProtocolSubmitJobTask.java  |    57 -
 .../proto/GridHadoopProtocolTaskAdapter.java    |   113 -
 .../proto/GridHadoopProtocolTaskArguments.java  |    81 -
 .../hadoop/proto/HadoopClientProtocol.java      |   330 +
 .../proto/HadoopProtocolJobCountersTask.java    |    46 +
 .../proto/HadoopProtocolJobStatusTask.java      |    81 +
 .../hadoop/proto/HadoopProtocolKillJobTask.java |    46 +
 .../proto/HadoopProtocolNextTaskIdTask.java     |    35 +
 .../proto/HadoopProtocolSubmitJobTask.java      |    57 +
 .../hadoop/proto/HadoopProtocolTaskAdapter.java |   113 +
 .../proto/HadoopProtocolTaskArguments.java      |    81 +
 .../hadoop/shuffle/GridHadoopShuffle.java       |   256 -
 .../hadoop/shuffle/GridHadoopShuffleAck.java    |    91 -
 .../hadoop/shuffle/GridHadoopShuffleJob.java    |   593 -
 .../shuffle/GridHadoopShuffleMessage.java       |   242 -
 .../hadoop/shuffle/HadoopShuffle.java           |   256 +
 .../hadoop/shuffle/HadoopShuffleAck.java        |    91 +
 .../hadoop/shuffle/HadoopShuffleJob.java        |   593 +
 .../hadoop/shuffle/HadoopShuffleMessage.java    |   241 +
 .../GridHadoopConcurrentHashMultimap.java       |   611 -
 .../collections/GridHadoopHashMultimap.java     |   174 -
 .../collections/GridHadoopHashMultimapBase.java |   208 -
 .../shuffle/collections/GridHadoopMultimap.java |   112 -
 .../collections/GridHadoopMultimapBase.java     |   368 -
 .../shuffle/collections/GridHadoopSkipList.java |   726 -
 .../HadoopConcurrentHashMultimap.java           |   611 +
 .../shuffle/collections/HadoopHashMultimap.java |   174 +
 .../collections/HadoopHashMultimapBase.java     |   208 +
 .../shuffle/collections/HadoopMultimap.java     |   112 +
 .../shuffle/collections/HadoopMultimapBase.java |   368 +
 .../shuffle/collections/HadoopSkipList.java     |   726 +
 .../shuffle/streams/GridHadoopDataInStream.java |   170 -
 .../streams/GridHadoopDataOutStream.java        |   131 -
 .../streams/GridHadoopOffheapBuffer.java        |   122 -
 .../shuffle/streams/HadoopDataInStream.java     |   170 +
 .../shuffle/streams/HadoopDataOutStream.java    |   131 +
 .../shuffle/streams/HadoopOffheapBuffer.java    |   122 +
 .../GridHadoopEmbeddedTaskExecutor.java         |   146 -
 .../taskexecutor/GridHadoopExecutorService.java |   232 -
 .../taskexecutor/GridHadoopRunnableTask.java    |   268 -
 .../GridHadoopTaskExecutorAdapter.java          |    57 -
 .../taskexecutor/GridHadoopTaskState.java       |    38 -
 .../taskexecutor/GridHadoopTaskStatus.java      |   114 -
 .../HadoopEmbeddedTaskExecutor.java             |   146 +
 .../taskexecutor/HadoopExecutorService.java     |   231 +
 .../hadoop/taskexecutor/HadoopRunnableTask.java |   268 +
 .../taskexecutor/HadoopTaskExecutorAdapter.java |    57 +
 .../hadoop/taskexecutor/HadoopTaskState.java    |    38 +
 .../hadoop/taskexecutor/HadoopTaskStatus.java   |   114 +
 .../GridHadoopExternalTaskExecutor.java         |   960 --
 .../GridHadoopExternalTaskMetadata.java         |    68 -
 .../GridHadoopJobInfoUpdateRequest.java         |   109 -
 .../GridHadoopPrepareForJobRequest.java         |   126 -
 .../external/GridHadoopProcessDescriptor.java   |   150 -
 .../external/GridHadoopProcessStartedAck.java   |    46 -
 .../GridHadoopTaskExecutionRequest.java         |   110 -
 .../external/GridHadoopTaskFinishedMessage.java |    92 -
 .../external/HadoopExternalTaskExecutor.java    |   951 ++
 .../external/HadoopExternalTaskMetadata.java    |    68 +
 .../external/HadoopJobInfoUpdateRequest.java    |   109 +
 .../external/HadoopPrepareForJobRequest.java    |   126 +
 .../external/HadoopProcessDescriptor.java       |   150 +
 .../external/HadoopProcessStartedAck.java       |    46 +
 .../external/HadoopTaskExecutionRequest.java    |   110 +
 .../external/HadoopTaskFinishedMessage.java     |    92 +
 .../child/GridHadoopChildProcessRunner.java     |   440 -
 .../child/GridHadoopExternalProcessStarter.java |   296 -
 .../child/HadoopChildProcessRunner.java         |   440 +
 .../child/HadoopExternalProcessStarter.java     |   296 +
 .../GridHadoopAbstractCommunicationClient.java  |    96 -
 .../GridHadoopCommunicationClient.java          |    72 -
 .../GridHadoopExternalCommunication.java        |  1419 --
 .../GridHadoopHandshakeTimeoutException.java    |    42 -
 .../GridHadoopIpcToNioAdapter.java              |   239 -
 .../GridHadoopMarshallerFilter.java             |    84 -
 .../GridHadoopMessageListener.java              |    39 -
 .../GridHadoopTcpNioCommunicationClient.java    |    99 -
 .../HadoopAbstractCommunicationClient.java      |    96 +
 .../HadoopCommunicationClient.java              |    72 +
 .../HadoopExternalCommunication.java            |  1432 ++
 .../HadoopHandshakeTimeoutException.java        |    42 +
 .../communication/HadoopIpcToNioAdapter.java    |   239 +
 .../communication/HadoopMarshallerFilter.java   |    84 +
 .../communication/HadoopMessageListener.java    |    39 +
 .../HadoopTcpNioCommunicationClient.java        |    91 +
 .../hadoop/v1/GridHadoopV1CleanupTask.java      |    62 -
 .../hadoop/v1/GridHadoopV1Counter.java          |   105 -
 .../hadoop/v1/GridHadoopV1MapTask.java          |   107 -
 .../hadoop/v1/GridHadoopV1OutputCollector.java  |   130 -
 .../hadoop/v1/GridHadoopV1Partitioner.java      |    44 -
 .../hadoop/v1/GridHadoopV1ReduceTask.java       |    92 -
 .../hadoop/v1/GridHadoopV1Reporter.java         |    79 -
 .../hadoop/v1/GridHadoopV1SetupTask.java        |    56 -
 .../hadoop/v1/GridHadoopV1Splitter.java         |    97 -
 .../processors/hadoop/v1/GridHadoopV1Task.java  |    95 -
 .../hadoop/v1/HadoopV1CleanupTask.java          |    62 +
 .../processors/hadoop/v1/HadoopV1Counter.java   |   105 +
 .../processors/hadoop/v1/HadoopV1MapTask.java   |   111 +
 .../hadoop/v1/HadoopV1OutputCollector.java      |   130 +
 .../hadoop/v1/HadoopV1Partitioner.java          |    44 +
 .../hadoop/v1/HadoopV1ReduceTask.java           |    95 +
 .../processors/hadoop/v1/HadoopV1Reporter.java  |    79 +
 .../processors/hadoop/v1/HadoopV1SetupTask.java |    56 +
 .../processors/hadoop/v1/HadoopV1Splitter.java  |    97 +
 .../processors/hadoop/v1/HadoopV1Task.java      |    95 +
 .../hadoop/v2/GridHadoopExternalSplit.java      |    87 -
 .../hadoop/v2/GridHadoopNativeCodeLoader.java   |    74 -
 .../v2/GridHadoopSerializationWrapper.java      |   133 -
 .../v2/GridHadoopShutdownHookManager.java       |    96 -
 .../hadoop/v2/GridHadoopSplitWrapper.java       |   118 -
 .../hadoop/v2/GridHadoopV2CleanupTask.java      |    73 -
 .../hadoop/v2/GridHadoopV2Context.java          |   230 -
 .../hadoop/v2/GridHadoopV2Counter.java          |    87 -
 .../processors/hadoop/v2/GridHadoopV2Job.java   |   280 -
 .../v2/GridHadoopV2JobResourceManager.java      |   305 -
 .../hadoop/v2/GridHadoopV2MapTask.java          |   109 -
 .../hadoop/v2/GridHadoopV2Partitioner.java      |    44 -
 .../hadoop/v2/GridHadoopV2ReduceTask.java       |    88 -
 .../hadoop/v2/GridHadoopV2SetupTask.java        |    66 -
 .../hadoop/v2/GridHadoopV2Splitter.java         |   105 -
 .../processors/hadoop/v2/GridHadoopV2Task.java  |   181 -
 .../hadoop/v2/GridHadoopV2TaskContext.java      |   443 -
 .../v2/GridHadoopWritableSerialization.java     |    74 -
 .../hadoop/v2/HadoopExternalSplit.java          |    87 +
 .../hadoop/v2/HadoopNativeCodeLoader.java       |    74 +
 .../hadoop/v2/HadoopSerializationWrapper.java   |   133 +
 .../hadoop/v2/HadoopShutdownHookManager.java    |    96 +
 .../hadoop/v2/HadoopSplitWrapper.java           |   118 +
 .../hadoop/v2/HadoopV2CleanupTask.java          |    73 +
 .../processors/hadoop/v2/HadoopV2Context.java   |   230 +
 .../processors/hadoop/v2/HadoopV2Counter.java   |    87 +
 .../processors/hadoop/v2/HadoopV2Job.java       |   280 +
 .../hadoop/v2/HadoopV2JobResourceManager.java   |   305 +
 .../processors/hadoop/v2/HadoopV2MapTask.java   |   109 +
 .../hadoop/v2/HadoopV2Partitioner.java          |    44 +
 .../hadoop/v2/HadoopV2ReduceTask.java           |    91 +
 .../processors/hadoop/v2/HadoopV2SetupTask.java |    66 +
 .../processors/hadoop/v2/HadoopV2Splitter.java  |   105 +
 .../processors/hadoop/v2/HadoopV2Task.java      |   181 +
 .../hadoop/v2/HadoopV2TaskContext.java          |   444 +
 .../hadoop/v2/HadoopWritableSerialization.java  |    74 +
 ...op.mapreduce.protocol.ClientProtocolProvider |     2 +-
 ...ridHadoopClientProtocolEmbeddedSelfTest.java |    34 -
 .../GridHadoopClientProtocolSelfTest.java       |   633 -
 .../HadoopClientProtocolEmbeddedSelfTest.java   |    35 +
 .../hadoop/HadoopClientProtocolSelfTest.java    |   635 +
 .../ignite/igfs/Hadoop1DualAbstractTest.java    |   105 +
 .../igfs/Hadoop1OverIgfsDualAsyncTest.java      |    30 +
 .../igfs/Hadoop1OverIgfsDualSyncTest.java       |    30 +
 ...oopFileSystemUniversalFileSystemAdapter.java |   113 +
 .../HadoopIgfs20FileSystemAbstractSelfTest.java |  1950 +++
 ...Igfs20FileSystemLoopbackPrimarySelfTest.java |    76 +
 ...oopIgfs20FileSystemShmemPrimarySelfTest.java |    76 +
 .../igfs/HadoopIgfsDualAbstractSelfTest.java    |   309 +
 .../igfs/HadoopIgfsDualAsyncSelfTest.java       |    32 +
 .../ignite/igfs/HadoopIgfsDualSyncSelfTest.java |    32 +
 ...oopSecondaryFileSystemConfigurationTest.java |   546 +
 .../apache/ignite/igfs/IgfsEventsTestSuite.java |    98 +-
 .../IgfsHadoop20FileSystemAbstractSelfTest.java |  1967 ---
 ...doop20FileSystemLoopbackPrimarySelfTest.java |    74 -
 ...sHadoop20FileSystemShmemPrimarySelfTest.java |    74 -
 .../igfs/IgfsHadoopDualAbstractSelfTest.java    |   304 -
 .../igfs/IgfsHadoopDualAsyncSelfTest.java       |    32 -
 .../ignite/igfs/IgfsHadoopDualSyncSelfTest.java |    32 -
 .../IgfsHadoopFileSystemAbstractSelfTest.java   |  2365 ---
 .../IgfsHadoopFileSystemClientSelfTest.java     |   199 -
 .../IgfsHadoopFileSystemHandshakeSelfTest.java  |   311 -
 .../IgfsHadoopFileSystemIpcCacheSelfTest.java   |   207 -
 .../IgfsHadoopFileSystemLoggerSelfTest.java     |   287 -
 ...IgfsHadoopFileSystemLoggerStateSelfTest.java |   325 -
 ...adoopFileSystemLoopbackAbstractSelfTest.java |    46 -
 ...SystemLoopbackEmbeddedDualAsyncSelfTest.java |    33 -
 ...eSystemLoopbackEmbeddedDualSyncSelfTest.java |    33 -
 ...leSystemLoopbackEmbeddedPrimarySelfTest.java |    33 -
 ...SystemLoopbackEmbeddedSecondarySelfTest.java |    34 -
 ...SystemLoopbackExternalDualAsyncSelfTest.java |    33 -
 ...eSystemLoopbackExternalDualSyncSelfTest.java |    33 -
 ...leSystemLoopbackExternalPrimarySelfTest.java |    33 -
 ...SystemLoopbackExternalSecondarySelfTest.java |    34 -
 ...fsHadoopFileSystemSecondaryModeSelfTest.java |   319 -
 ...fsHadoopFileSystemShmemAbstractSelfTest.java |    88 -
 ...ileSystemShmemEmbeddedDualAsyncSelfTest.java |    33 -
 ...FileSystemShmemEmbeddedDualSyncSelfTest.java |    33 -
 ...pFileSystemShmemEmbeddedPrimarySelfTest.java |    33 -
 ...ileSystemShmemEmbeddedSecondarySelfTest.java |    33 -
 ...ileSystemShmemExternalDualAsyncSelfTest.java |    33 -
 ...FileSystemShmemExternalDualSyncSelfTest.java |    33 -
 ...pFileSystemShmemExternalPrimarySelfTest.java |    33 -
 ...ileSystemShmemExternalSecondarySelfTest.java |    33 -
 .../java/org/apache/ignite/igfs/IgfsLoad.java   |   549 -
 .../igfs/IgfsNearOnlyMultiNodeSelfTest.java     |    34 +-
 .../IgniteHadoopFileSystemAbstractSelfTest.java |  2352 +++
 .../IgniteHadoopFileSystemClientSelfTest.java   |   199 +
 ...IgniteHadoopFileSystemHandshakeSelfTest.java |   303 +
 .../IgniteHadoopFileSystemIpcCacheSelfTest.java |   200 +
 .../IgniteHadoopFileSystemLoggerSelfTest.java   |   287 +
 ...niteHadoopFileSystemLoggerStateSelfTest.java |   325 +
 ...adoopFileSystemLoopbackAbstractSelfTest.java |    48 +
 ...SystemLoopbackEmbeddedDualAsyncSelfTest.java |    33 +
 ...eSystemLoopbackEmbeddedDualSyncSelfTest.java |    33 +
 ...leSystemLoopbackEmbeddedPrimarySelfTest.java |    33 +
 ...SystemLoopbackEmbeddedSecondarySelfTest.java |    34 +
 ...SystemLoopbackExternalDualAsyncSelfTest.java |    33 +
 ...eSystemLoopbackExternalDualSyncSelfTest.java |    33 +
 ...leSystemLoopbackExternalPrimarySelfTest.java |    33 +
 ...SystemLoopbackExternalSecondarySelfTest.java |    34 +
 ...teHadoopFileSystemSecondaryModeSelfTest.java |   322 +
 ...teHadoopFileSystemShmemAbstractSelfTest.java |    90 +
 ...ileSystemShmemEmbeddedDualAsyncSelfTest.java |    33 +
 ...FileSystemShmemEmbeddedDualSyncSelfTest.java |    33 +
 ...pFileSystemShmemEmbeddedPrimarySelfTest.java |    33 +
 ...ileSystemShmemEmbeddedSecondarySelfTest.java |    33 +
 ...ileSystemShmemExternalDualAsyncSelfTest.java |    33 +
 ...FileSystemShmemExternalDualSyncSelfTest.java |    33 +
 ...pFileSystemShmemExternalPrimarySelfTest.java |    33 +
 ...ileSystemShmemExternalSecondarySelfTest.java |    33 +
 .../hadoop/GridHadoopAbstractSelfTest.java      |   222 -
 .../hadoop/GridHadoopAbstractWordCountTest.java |   138 -
 .../hadoop/GridHadoopClassLoaderTest.java       |    69 -
 .../hadoop/GridHadoopCommandLineTest.java       |   440 -
 ...idHadoopDefaultMapReducePlannerSelfTest.java |  1005 --
 .../hadoop/GridHadoopFileSystemsTest.java       |   177 -
 .../hadoop/GridHadoopGroupingTest.java          |   286 -
 .../hadoop/GridHadoopJobTrackerSelfTest.java    |   330 -
 .../GridHadoopMapReduceEmbeddedSelfTest.java    |   245 -
 .../hadoop/GridHadoopMapReduceTest.java         |   195 -
 .../hadoop/GridHadoopPopularWordsTest.java      |   294 -
 .../GridHadoopSerializationWrapperSelfTest.java |    74 -
 .../processors/hadoop/GridHadoopSharedMap.java  |    67 -
 .../hadoop/GridHadoopSortingExternalTest.java   |    32 -
 .../hadoop/GridHadoopSortingTest.java           |   281 -
 .../hadoop/GridHadoopSplitWrapperSelfTest.java  |    68 -
 .../processors/hadoop/GridHadoopStartup.java    |    55 -
 .../hadoop/GridHadoopTaskExecutionSelfTest.java |   551 -
 .../hadoop/GridHadoopTasksAllVersionsTest.java  |   259 -
 .../hadoop/GridHadoopTasksV1Test.java           |    57 -
 .../hadoop/GridHadoopTasksV2Test.java           |    75 -
 .../GridHadoopTestRoundRobinMrPlanner.java      |    66 -
 .../hadoop/GridHadoopTestTaskContext.java       |   219 -
 .../processors/hadoop/GridHadoopTestUtils.java  |   102 -
 .../hadoop/GridHadoopV2JobSelfTest.java         |    88 -
 .../hadoop/GridHadoopValidationSelfTest.java    |    53 -
 .../hadoop/HadoopAbstractSelfTest.java          |   216 +
 .../hadoop/HadoopAbstractWordCountTest.java     |   138 +
 .../hadoop/HadoopClassLoaderTest.java           |    69 +
 .../hadoop/HadoopCommandLineTest.java           |   452 +
 .../HadoopDefaultMapReducePlannerSelfTest.java  |  1010 ++
 .../hadoop/HadoopFileSystemsTest.java           |   177 +
 .../processors/hadoop/HadoopGroupingTest.java   |   288 +
 .../hadoop/HadoopJobTrackerSelfTest.java        |   333 +
 .../hadoop/HadoopMapReduceEmbeddedSelfTest.java |   247 +
 .../processors/hadoop/HadoopMapReduceTest.java  |   215 +
 .../hadoop/HadoopPopularWordsTest.java          |   294 +
 .../HadoopSerializationWrapperSelfTest.java     |    74 +
 .../processors/hadoop/HadoopSharedMap.java      |    67 +
 .../hadoop/HadoopSortingExternalTest.java       |    45 +
 .../processors/hadoop/HadoopSortingTest.java    |   283 +
 .../hadoop/HadoopSplitWrapperSelfTest.java      |    68 +
 .../processors/hadoop/HadoopStartup.java        |    54 +
 .../hadoop/HadoopTaskExecutionSelfTest.java     |   553 +
 .../hadoop/HadoopTasksAllVersionsTest.java      |   259 +
 .../processors/hadoop/HadoopTasksV1Test.java    |    57 +
 .../processors/hadoop/HadoopTasksV2Test.java    |    75 +
 .../hadoop/HadoopTestRoundRobinMrPlanner.java   |    66 +
 .../hadoop/HadoopTestTaskContext.java           |   219 +
 .../processors/hadoop/HadoopTestUtils.java      |   102 +
 .../processors/hadoop/HadoopV2JobSelfTest.java  |    88 +
 .../hadoop/HadoopValidationSelfTest.java        |    53 +
 .../hadoop/examples/GridHadoopWordCount1.java   |    88 -
 .../examples/GridHadoopWordCount1Map.java       |    62 -
 .../examples/GridHadoopWordCount1Reduce.java    |    51 -
 .../hadoop/examples/GridHadoopWordCount2.java   |    95 -
 .../examples/GridHadoopWordCount2Mapper.java    |    72 -
 .../examples/GridHadoopWordCount2Reducer.java   |    70 -
 .../hadoop/examples/HadoopWordCount1.java       |    88 +
 .../hadoop/examples/HadoopWordCount1Map.java    |    62 +
 .../hadoop/examples/HadoopWordCount1Reduce.java |    51 +
 .../hadoop/examples/HadoopWordCount2.java       |    95 +
 .../hadoop/examples/HadoopWordCount2Mapper.java |    72 +
 .../examples/HadoopWordCount2Reducer.java       |    70 +
 .../collections/GridHadoopAbstractMapTest.java  |   152 -
 ...ridHadoopConcurrentHashMultimapSelftest.java |   267 -
 .../collections/GridHadoopHashMapSelfTest.java  |   170 -
 .../collections/GridHadoopSkipListSelfTest.java |   303 -
 .../collections/HadoopAbstractMapTest.java      |   154 +
 .../HadoopConcurrentHashMultimapSelftest.java   |   267 +
 .../collections/HadoopHashMapSelfTest.java      |   170 +
 .../collections/HadoopSkipListSelfTest.java     |   303 +
 .../streams/GridHadoopDataStreamSelfTest.java   |   151 -
 .../streams/HadoopDataStreamSelfTest.java       |   151 +
 .../GridHadoopExecutorServiceTest.java          |   119 -
 .../taskexecutor/HadoopExecutorServiceTest.java |   119 +
 ...GridHadoopExternalTaskExecutionSelfTest.java |   210 -
 .../HadoopExternalTaskExecutionSelfTest.java    |   222 +
 ...GridHadoopExternalCommunicationSelfTest.java |   209 -
 .../HadoopExternalCommunicationSelfTest.java    |   209 +
 .../ignite/loadtests/igfs/IgfsNodeStartup.java  |    48 -
 .../igfs/IgfsPerformanceBenchmark.java          |   274 -
 .../testsuites/IgniteHadoopTestSuite.java       |    88 +-
 .../IgniteIgfsLinuxAndMacOSTestSuite.java       |    22 +-
 modules/hibernate/README.txt                    |    33 +
 modules/hibernate/pom.xml                       |     6 -
 modules/hibernate/readme.txt                    |    33 -
 .../HibernateAccessStrategyAdapter.java         |     3 +-
 .../hibernate/HibernateCollectionRegion.java    |     2 +-
 .../cache/hibernate/HibernateEntityRegion.java  |     2 +-
 .../hibernate/HibernateGeneralDataRegion.java   |     2 +-
 .../hibernate/HibernateNaturalIdRegion.java     |     2 +-
 .../HibernateNonStrictAccessStrategy.java       |     2 +-
 .../hibernate/HibernateQueryResultsRegion.java  |     2 +-
 .../HibernateReadOnlyAccessStrategy.java        |     2 +-
 .../HibernateReadWriteAccessStrategy.java       |    81 +-
 .../ignite/cache/hibernate/HibernateRegion.java |     2 +-
 .../cache/hibernate/HibernateRegionFactory.java |    27 +-
 .../hibernate/HibernateTimestampsRegion.java    |     2 +-
 .../HibernateTransactionalAccessStrategy.java   |     4 +-
 .../HibernateTransactionalDataRegion.java       |     2 +-
 .../ignite/cache/hibernate/package-info.java    |    24 +
 .../apache/ignite/cache/hibernate/package.html  |    26 -
 .../hibernate/CacheHibernateBlobStore.java      |     8 +-
 .../cache/store/hibernate/package-info.java     |    22 +
 .../ignite/cache/store/hibernate/package.html   |    24 -
 .../HibernateL2CacheConfigurationSelfTest.java  |    16 +-
 .../hibernate/HibernateL2CacheSelfTest.java     |    14 +-
 .../HibernateL2CacheTransactionalSelfTest.java  |     3 +-
 .../cache/store/hibernate/package-info.java     |    22 +
 .../ignite/cache/store/hibernate/package.html   |    24 -
 modules/indexing/README.txt                     |    33 +
 modules/indexing/pom.xml                        |     6 -
 modules/indexing/readme.txt                     |    33 -
 .../processors/query/h2/IgniteH2Indexing.java   |   887 +-
 .../query/h2/opt/GridH2AbstractKeyValueRow.java |    11 +-
 .../query/h2/opt/GridH2RowDescriptor.java       |    16 +-
 .../processors/query/h2/opt/GridH2Table.java    |     2 +-
 .../query/h2/opt/GridLuceneIndex.java           |    15 +-
 .../processors/query/h2/package-info.java       |    22 +
 .../internal/processors/query/h2/package.html   |    24 -
 .../processors/query/h2/sql/GridSqlColumn.java  |     6 +
 .../processors/query/h2/sql/GridSqlElement.java |    54 +-
 .../query/h2/sql/GridSqlFunction.java           |    26 +-
 .../query/h2/sql/GridSqlFunctionType.java       |     3 +
 .../processors/query/h2/sql/GridSqlJoin.java    |    30 +-
 .../query/h2/sql/GridSqlOperationType.java      |     6 +-
 .../query/h2/sql/GridSqlQueryParser.java        |   129 +-
 .../query/h2/sql/GridSqlQuerySplitter.java      |   198 +-
 .../processors/query/h2/sql/GridSqlSelect.java  |   100 +-
 .../query/h2/sql/GridSqlSortColumn.java         |    76 +
 .../processors/query/h2/sql/GridSqlType.java    |    94 +
 .../query/h2/twostep/GridMapQueryExecutor.java  |   438 +-
 .../query/h2/twostep/GridMergeIndex.java        |   111 +-
 .../h2/twostep/GridMergeIndexUnsorted.java      |    44 +-
 .../h2/twostep/GridReduceQueryExecutor.java     |   424 +-
 .../query/h2/twostep/GridResultPage.java        |    47 +-
 .../twostep/messages/GridNextPageRequest.java   |    70 -
 .../twostep/messages/GridNextPageResponse.java  |   191 -
 .../query/h2/twostep/messages/GridQueryAck.java |    45 -
 .../twostep/messages/GridQueryFailResponse.java |    57 -
 .../h2/twostep/messages/GridQueryRequest.java   |    72 -
 .../GridCacheAbstractFieldsQuerySelfTest.java   |   128 +-
 .../cache/GridCacheAbstractQuerySelfTest.java   |  2094 ---
 .../cache/GridCacheCrossCacheQuerySelfTest.java |   172 +-
 .../GridCacheCrossCacheQuerySelfTestNewApi.java |   411 -
 .../cache/GridCacheOffHeapAndSwapSelfTest.java  |    94 +-
 ...idCacheQueryEvictsMultiThreadedSelfTest.java |    28 -
 .../GridCacheQueryIndexDisabledSelfTest.java    |   257 +
 .../cache/GridCacheQueryLoadSelfTest.java       |   387 -
 .../cache/GridCacheQueryMetricsSelfTest.java    |     6 -
 .../GridCacheQueryMultiThreadedSelfTest.java    |   869 --
 ...QueryOffheapEvictsMultiThreadedSelfTest.java |    28 -
 ...dCacheQueryOffheapMultiThreadedSelfTest.java |    28 -
 .../cache/GridCacheQuerySimpleBenchmark.java    |   212 +
 .../cache/GridCacheQueryTestValue.java          |     2 +-
 ...idCacheReduceQueryMultithreadedSelfTest.java |     8 +-
 .../GridCacheSqlQueryMultiThreadedSelfTest.java |   142 -
 .../processors/cache/GridCacheSwapSelfTest.java |    35 +-
 .../cache/GridIndexingWithNoopSwapSelfTest.java |    24 +-
 .../IgniteCacheAbstractFieldsQuerySelfTest.java |   776 +
 .../cache/IgniteCacheAbstractQuerySelfTest.java |  1562 ++
 .../IgniteCacheFieldsQueryNoDataSelfTest.java   |    84 +
 ...hePartitionedQueryMultiThreadedSelfTest.java |   307 +
 ...teCacheQueryEvictsMultiThreadedSelfTest.java |    28 +
 .../cache/IgniteCacheQueryIndexSelfTest.java    |   133 +
 .../cache/IgniteCacheQueryLoadSelfTest.java     |   337 +
 .../IgniteCacheQueryMultiThreadedSelfTest.java  |   746 +
 ...QueryOffheapEvictsMultiThreadedSelfTest.java |    28 +
 ...eCacheQueryOffheapMultiThreadedSelfTest.java |    28 +
 ...gniteCacheSqlQueryMultiThreadedSelfTest.java |   196 +
 .../GridCacheAtomicFieldsQuerySelfTest.java     |    66 -
 ...cheAtomicNearEnabledFieldsQuerySelfTest.java |    32 -
 ...GridCacheAtomicNearEnabledQuerySelfTest.java |    38 -
 .../near/GridCacheAtomicQuerySelfTest.java      |    38 -
 ...GridCachePartitionedFieldsQuerySelfTest.java |    15 +-
 ...CachePartitionedQueryP2PEnabledSelfTest.java |    34 -
 .../near/GridCachePartitionedQuerySelfTest.java |   479 -
 .../near/GridCacheQueryNodeRestartSelfTest.java |   225 -
 .../IgniteCacheAtomicFieldsQuerySelfTest.java   |    59 +
 ...cheAtomicNearEnabledFieldsQuerySelfTest.java |    30 +
 ...niteCacheAtomicNearEnabledQuerySelfTest.java |    39 +
 .../near/IgniteCacheAtomicQuerySelfTest.java    |    39 +
 ...rtitionedFieldsQueryP2PDisabledSelfTest.java |    34 +
 ...niteCachePartitionedFieldsQuerySelfTest.java |    56 +
 ...achePartitionedQueryP2PDisabledSelfTest.java |    34 +
 .../IgniteCachePartitionedQuerySelfTest.java    |   133 +
 .../IgniteCacheQueryNodeRestartSelfTest.java    |   218 +
 .../GridCacheReplicatedFieldsQuerySelfTest.java |     6 +-
 ...dCacheReplicatedQueryP2PEnabledSelfTest.java |    34 -
 .../GridCacheReplicatedQuerySelfTest.java       |   683 -
 ...eplicatedFieldsQueryP2PDisabledSelfTest.java |    34 +
 ...gniteCacheReplicatedFieldsQuerySelfTest.java |    79 +
 ...CacheReplicatedQueryP2PDisabledSelfTest.java |    34 +
 .../IgniteCacheReplicatedQuerySelfTest.java     |   576 +
 .../GridCacheLocalAtomicQuerySelfTest.java      |    32 -
 .../GridCacheLocalFieldsQuerySelfTest.java      |    38 -
 .../local/GridCacheLocalQuerySelfTest.java      |   107 -
 .../IgniteCacheLocalAtomicQuerySelfTest.java    |    32 +
 .../IgniteCacheLocalFieldsQuerySelfTest.java    |    38 +
 .../local/IgniteCacheLocalQuerySelfTest.java    |    82 +
 ...dCacheAbstractReduceFieldsQuerySelfTest.java |   412 +
 ...ridCacheReduceFieldsQueryAtomicSelfTest.java |    38 +
 ...GridCacheReduceFieldsQueryLocalSelfTest.java |    37 +
 ...cheReduceFieldsQueryPartitionedSelfTest.java |    59 +
 ...acheReduceFieldsQueryReplicatedSelfTest.java |    37 +
 .../query/h2/GridH2IndexRebuildTest.java        |    25 +-
 .../query/h2/GridH2IndexingOffheapSelfTest.java |    20 +-
 .../h2/GridIndexingSpiAbstractSelfTest.java     |    98 +-
 .../query/h2/sql/GridQueryParsingTest.java      |    74 +-
 .../tcp/GridOrderedMessageCancelSelfTest.java   |    14 +-
 .../IgniteCacheQuerySelfTestSuite.java          |    55 +-
 modules/jcl/README.txt                          |    33 +
 modules/jcl/readme.txt                          |    33 -
 .../apache/ignite/logger/jcl/package-info.java  |    22 +
 .../org/apache/ignite/logger/jcl/package.html   |    24 -
 .../apache/ignite/logger/jcl/package-info.java  |    22 +
 .../org/apache/ignite/logger/jcl/package.html   |    24 -
 modules/jta/README.txt                          |    32 +
 modules/jta/pom.xml                             |     6 -
 modules/jta/readme.txt                          |    32 -
 .../ignite/cache/jta/jndi/package-info.java     |    22 +
 .../apache/ignite/cache/jta/jndi/package.html   |    24 -
 .../apache/ignite/cache/jta/package-info.java   |    22 +
 .../org/apache/ignite/cache/jta/package.html    |    24 -
 .../ignite/cache/jta/reflect/package-info.java  |    22 +
 .../ignite/cache/jta/reflect/package.html       |    24 -
 .../processors/cache/jta/CacheJtaManager.java   |     4 +-
 .../cache/jta/GridCacheXAResource.java          |     9 +-
 .../processors/cache/GridCacheJtaSelfTest.java  |     2 +-
 .../GridTmLookupLifecycleAwareSelfTest.java     |    12 +-
 modules/log4j/README.txt                        |    32 +
 modules/log4j/readme.txt                        |    32 -
 .../ignite/logger/log4j/package-info.java       |    22 +
 .../org/apache/ignite/logger/log4j/package.html |    24 -
 .../ignite/logger/log4j/package-info.java       |    22 +
 .../org/apache/ignite/logger/log4j/package.html |    24 -
 modules/rest-http/README.txt                    |    33 +
 modules/rest-http/readme.txt                    |    33 -
 .../http/jetty/GridJettyRestHandler.java        |    11 +-
 .../rest/protocols/http/jetty/package-info.java |    22 +
 .../rest/protocols/http/jetty/package.html      |    24 -
 .../rest/protocols/http/jetty/rest.html         |    19 +-
 modules/scalar/README.txt                       |    32 +
 modules/scalar/pom.xml                          |    20 +-
 modules/scalar/readme.txt                       |    32 -
 .../ignite/scalar/pimps/ScalarCachePimp.scala   |     4 +-
 .../scala/org/apache/ignite/scalar/scalar.scala |    41 +-
 .../scalar/src/test/resources/spring-cache.xml  |    67 +-
 .../test/resources/spring-ping-pong-partner.xml |     2 +-
 .../tests/ScalarAffinityRoutingSpec.scala       |     6 +-
 .../ignite/scalar/tests/ScalarCacheSpec.scala   |     4 +-
 .../scalar/testsuites/ScalarSelfTestSuite.scala |     6 +
 modules/schedule/README.txt                     |    32 +
 modules/schedule/readme.txt                     |    32 -
 .../processors/schedule/ScheduleFutureImpl.java |   216 +-
 .../schedule/GridScheduleSelfTest.java          |     4 +-
 modules/schema-import/README.txt                |   214 +
 modules/schema-import/pom.xml                   |   104 +
 .../main/java/media/data_connection_48x48.png   |   Bin 0 -> 4443 bytes
 .../src/main/java/media/error_48x48.png         |   Bin 0 -> 4349 bytes
 .../src/main/java/media/ignite_128x128.png      |   Bin 0 -> 4917 bytes
 .../src/main/java/media/ignite_16x16.png        |   Bin 0 -> 608 bytes
 .../src/main/java/media/ignite_24x24.png        |   Bin 0 -> 930 bytes
 .../src/main/java/media/ignite_32x32.png        |   Bin 0 -> 1203 bytes
 .../src/main/java/media/ignite_48x48.png        |   Bin 0 -> 1868 bytes
 .../src/main/java/media/ignite_64x64.png        |   Bin 0 -> 2453 bytes
 .../src/main/java/media/information_48x48.png   |   Bin 0 -> 4102 bytes
 .../src/main/java/media/question_48x48.png      |   Bin 0 -> 3857 bytes
 .../src/main/java/media/sign_warning_48x48.png  |   Bin 0 -> 2988 bytes
 .../schema-import/src/main/java/media/style.css |   134 +
 .../src/main/java/media/text_tree_48x48.png     |   Bin 0 -> 2567 bytes
 .../ignite/schema/generator/CodeGenerator.java  |   659 +
 .../ignite/schema/generator/XmlGenerator.java   |   347 +
 .../apache/ignite/schema/model/IndexItem.java   |    54 +
 .../ignite/schema/model/PojoDescriptor.java     |   511 +
 .../apache/ignite/schema/model/PojoField.java   |   420 +
 .../schema/parser/DatabaseMetadataParser.java   |   108 +
 .../apache/ignite/schema/parser/DbColumn.java   |    76 +
 .../apache/ignite/schema/parser/DbTable.java    |   105 +
 .../parser/dialect/DB2MetadataDialect.java      |    30 +
 .../parser/dialect/DatabaseMetadataDialect.java |    78 +
 .../parser/dialect/JdbcMetadataDialect.java     |   141 +
 .../parser/dialect/OracleMetadataDialect.java   |   281 +
 .../ignite/schema/ui/ConfirmCallable.java       |    81 +
 .../org/apache/ignite/schema/ui/Controls.java   |   643 +
 .../org/apache/ignite/schema/ui/GridPaneEx.java |   177 +
 .../org/apache/ignite/schema/ui/MessageBox.java |   261 +
 .../apache/ignite/schema/ui/ModalDialog.java    |    50 +
 .../ignite/schema/ui/SchemaImportApp.java       |  1742 +++
 .../ignite/schema/ui/TextColumnValidator.java   |    32 +
 .../schema/test/AbstractSchemaImportTest.java   |   134 +
 .../test/generator/CodeGeneratorTest.java       |    70 +
 .../schema/test/generator/XmlGeneratorTest.java |    50 +
 .../apache/ignite/schema/test/model/Objects.txt |   502 +
 .../ignite/schema/test/model/ObjectsKey.txt     |    96 +
 .../ignite/schema/test/model/Primitives.txt     |   506 +
 .../ignite/schema/test/model/PrimitivesKey.txt  |    96 +
 .../schema/test/model/ignite-type-metadata.xml  |   362 +
 .../test/parser/DbMetadataParserTest.java       |   118 +
 .../testsuites/IgniteSchemaImportTestSuite.java |    41 +
 modules/schema-load/pom.xml                     |   107 -
 .../main/java/media/data_connection_48x48.png   |   Bin 4443 -> 0 bytes
 .../src/main/java/media/error_48x48.png         |   Bin 4349 -> 0 bytes
 .../src/main/java/media/ignite_128x128.png      |   Bin 4917 -> 0 bytes
 .../src/main/java/media/ignite_16x16.png        |   Bin 608 -> 0 bytes
 .../src/main/java/media/ignite_24x24.png        |   Bin 930 -> 0 bytes
 .../src/main/java/media/ignite_32x32.png        |   Bin 1203 -> 0 bytes
 .../src/main/java/media/ignite_48x48.png        |   Bin 1868 -> 0 bytes
 .../src/main/java/media/ignite_64x64.png        |   Bin 2453 -> 0 bytes
 .../src/main/java/media/information_48x48.png   |   Bin 4102 -> 0 bytes
 .../src/main/java/media/question_48x48.png      |   Bin 3857 -> 0 bytes
 .../src/main/java/media/sign_warning_48x48.png  |   Bin 2988 -> 0 bytes
 .../schema-load/src/main/java/media/style.css   |   117 -
 .../src/main/java/media/text_tree_48x48.png     |   Bin 2567 -> 0 bytes
 .../ignite/schema/generator/PojoGenerator.java  |   415 -
 .../ignite/schema/generator/XmlGenerator.java   |   343 -
 .../ignite/schema/model/PojoDescriptor.java     |   510 -
 .../apache/ignite/schema/model/PojoField.java   |   425 -
 .../schema/parser/DatabaseMetadataParser.java   |   105 -
 .../apache/ignite/schema/parser/DbColumn.java   |    76 -
 .../apache/ignite/schema/parser/DbTable.java    |   105 -
 .../parser/dialect/DB2MetadataDialect.java      |    30 -
 .../parser/dialect/DatabaseMetadataDialect.java |    78 -
 .../parser/dialect/JdbcMetadataDialect.java     |   144 -
 .../parser/dialect/OracleMetadataDialect.java   |   257 -
 .../ignite/schema/ui/ConfirmCallable.java       |    81 -
 .../org/apache/ignite/schema/ui/Controls.java   |   661 -
 .../org/apache/ignite/schema/ui/GridPaneEx.java |   177 -
 .../org/apache/ignite/schema/ui/MessageBox.java |   239 -
 .../apache/ignite/schema/ui/ModalDialog.java    |    50 -
 .../apache/ignite/schema/ui/SchemaLoadApp.java  |  1613 --
 .../ignite/schema/ui/TextColumnValidator.java   |    32 -
 .../schema/load/AbstractSchemaLoaderTest.java   |   134 -
 .../load/generator/PojoGeneratorTest.java       |    70 -
 .../schema/load/generator/XmlGeneratorTest.java |    50 -
 .../apache/ignite/schema/load/model/Ignite.xml  |   323 -
 .../apache/ignite/schema/load/model/Objects.txt |   502 -
 .../ignite/schema/load/model/ObjectsKey.txt     |    96 -
 .../ignite/schema/load/model/Primitives.txt     |   506 -
 .../ignite/schema/load/model/PrimitivesKey.txt  |    96 -
 .../load/parser/DbMetadataParserTest.java       |   118 -
 .../testsuites/IgniteSchemaLoadTestSuite.java   |    41 -
 modules/slf4j/README.txt                        |    32 +
 modules/slf4j/readme.txt                        |    32 -
 .../ignite/logger/slf4j/package-info.java       |    22 +
 .../org/apache/ignite/logger/slf4j/package.html |    24 -
 modules/spring/README.txt                       |    33 +
 modules/spring/pom.xml                          |     6 -
 modules/spring/readme.txt                       |    33 -
 .../org/apache/ignite/IgniteSpringBean.java     |    76 +-
 .../apache/ignite/cache/spring/SpringCache.java |   142 +-
 .../ignite/cache/spring/SpringCacheManager.java |   105 +-
 .../cache/spring/SpringDynamicCacheManager.java |   319 -
 .../ignite/cache/spring/package-info.java       |    22 +
 .../org/apache/ignite/cache/spring/package.html |    24 -
 .../spring/IgniteSpringProcessorImpl.java       |   268 -
 .../util/spring/IgniteSpringHelperImpl.java     |   301 +
 .../ignite/internal/GridFactorySelfTest.java    |    74 +-
 .../GridSpringBeanSerializationSelfTest.java    |     2 +
 .../internal/IgniteDynamicCacheConfigTest.java  |   244 +
 .../apache/ignite/internal/TestNodeFilter.java  |    36 +
 .../java/org/apache/ignite/internal/cache.xml   |    58 +
 .../apache/ignite/internal/filtered-cache.xml   |    62 +
 .../apache/ignite/internal/invalid-cache.xml    |    78 +
 .../processors/resource/package-info.java       |    22 +
 .../internal/processors/resource/package.html   |    24 -
 .../p2p/GridP2PUserVersionChangeSelfTest.java   |     6 +-
 .../spring/GridSpringCacheManagerSelfTest.java  |   123 +-
 .../ignite/spring/GridSpringCacheTestKey.java   |     4 +-
 .../GridSpringDynamicCacheManagerSelfTest.java  |   219 -
 .../GridSpringDynamicCacheTestService.java      |    34 +-
 .../org/apache/ignite/spring/spring-caching.xml |    10 +
 .../ignite/spring/spring-dynamic-caching.xml    |    43 -
 .../testsuites/IgniteSpringTestSuite.java       |     3 +-
 modules/ssh/README.txt                          |    32 +
 modules/ssh/licenses/jcraft-revised-bsd.txt     |     4 +-
 modules/ssh/readme.txt                          |    32 -
 .../util/nodestart/IgniteNodeCallableImpl.java  |    42 +-
 .../util/nodestart/IgniteSshHelperImpl.java     |    28 +
 .../util/nodestart/IgniteSshProcessorImpl.java  |    28 -
 .../tools/ant/beautifier/package-info.java      |    22 +
 .../ignite/tools/ant/beautifier/package.html    |    24 -
 .../ignite/tools/classgen/ClassesGenerator.java |   214 +
 .../ignite/tools/javadoc/IgniteLinkTaglet.java  |     4 +-
 .../optimized/OptimizedClassNamesGenerator.java |   325 -
 .../apache/ignite/util/antgar/package-info.java |    22 +
 .../org/apache/ignite/util/antgar/package.html  |    24 -
 modules/urideploy/README.txt                    |    33 +
 modules/urideploy/readme.txt                    |    33 -
 .../spi/deployment/uri/UriDeploymentSpi.java    |     2 +-
 .../ignite/spi/deployment/uri/package-info.java |    22 +
 .../ignite/spi/deployment/uri/package.html      |    24 -
 .../uri/scanners/file/package-info.java         |    22 +
 .../deployment/uri/scanners/file/package.html   |    24 -
 .../uri/scanners/ftp/package-info.java          |    22 +
 .../deployment/uri/scanners/ftp/package.html    |    24 -
 .../uri/scanners/http/package-info.java         |    22 +
 .../deployment/uri/scanners/http/package.html   |    24 -
 .../deployment/uri/scanners/package-info.java   |    22 +
 .../spi/deployment/uri/scanners/package.html    |    24 -
 .../ignite/spi/deployment/uri/package-info.java |    22 +
 .../ignite/spi/deployment/uri/package.html      |    24 -
 .../uri/scanners/file/package-info.java         |    22 +
 .../deployment/uri/scanners/file/package.html   |    24 -
 .../uri/scanners/ftp/package-info.java          |    22 +
 .../deployment/uri/scanners/ftp/package.html    |    24 -
 .../uri/scanners/http/package-info.java         |    22 +
 .../deployment/uri/scanners/http/package.html   |    24 -
 .../org/apache/ignite/tools/package-info.java   |    22 +
 .../java/org/apache/ignite/tools/package.html   |    24 -
 .../licenses/jcraft-revised-bsd.txt             |     4 +-
 modules/visor-console/pom.xml                   |     7 -
 .../scala/org/apache/ignite/visor/Packet.scala  |    38 -
 .../ignite/visor/commands/VisorConsole.scala    |    68 +-
 .../ignite/visor/commands/ack/Packet.scala      |    55 -
 .../visor/commands/ack/VisorAckCommand.scala    |     6 +-
 .../ignite/visor/commands/alert/Packet.scala    |   108 -
 .../commands/alert/VisorAlertCommand.scala      |     8 +-
 .../ignite/visor/commands/cache/Packet.scala    |   127 -
 .../commands/cache/VisorCacheCommand.scala      |   208 +-
 .../cache/VisorCacheCompactCommand.scala        |   151 -
 .../commands/cache/VisorCacheScanCommand.scala  |     7 +-
 .../ignite/visor/commands/config/Packet.scala   |    55 -
 .../config/VisorConfigurationCommand.scala      |   126 +-
 .../ignite/visor/commands/deploy/Packet.scala   |    76 -
 .../ignite/visor/commands/disco/Packet.scala    |    72 -
 .../commands/disco/VisorDiscoveryCommand.scala  |     2 +-
 .../ignite/visor/commands/events/Packet.scala   |    97 -
 .../commands/events/VisorEventsCommand.scala    |     4 +-
 .../ignite/visor/commands/gc/Packet.scala       |    61 -
 .../visor/commands/gc/VisorGcCommand.scala      |     2 -
 .../ignite/visor/commands/ggcube_128x128.png    |   Bin 11444 -> 0 bytes
 .../ignite/visor/commands/ggcube_48x48.png      |   Bin 3365 -> 0 bytes
 .../ignite/visor/commands/kill/Packet.scala     |    78 -
 .../visor/commands/kill/VisorKillCommand.scala  |     2 +-
 .../ignite/visor/commands/node/Packet.scala     |    60 -
 .../visor/commands/node/VisorNodeCommand.scala  |     6 +-
 .../ignite/visor/commands/ping/Packet.scala     |    50 -
 .../visor/commands/ping/VisorPingCommand.scala  |     4 +-
 .../ignite/visor/commands/start/Packet.scala    |    90 -
 .../ignite/visor/commands/tasks/Packet.scala    |   116 -
 .../commands/tasks/VisorTasksCommand.scala      |    26 +-
 .../ignite/visor/commands/top/Packet.scala      |    87 -
 .../commands/top/VisorTopologyCommand.scala     |     7 +-
 .../ignite/visor/commands/vvm/Packet.scala      |    61 -
 .../scala/org/apache/ignite/visor/visor.scala   |   119 +-
 .../cache/VisorCacheClearCommandSpec.scala      |     8 +-
 .../commands/cache/VisorCacheCommandSpec.scala  |    19 +-
 .../cache/VisorCacheCompactCommandSpec.scala    |   103 -
 .../cswap/VisorCacheSwapCommandSpec.scala       |     4 +-
 .../commands/tasks/VisorTasksCommandSpec.scala  |     7 +-
 .../testsuites/VisorConsoleSelfTestSuite.scala  |     3 +-
 .../apache/ignite/visor/plugin/VisorPlugin.java |    10 +-
 .../ignite/visor/plugin/package-info.java       |    22 +
 .../org/apache/ignite/visor/plugin/package.html |    24 -
 modules/web/README.txt                          |    34 +
 modules/web/pom.xml                             |     6 -
 modules/web/readme.txt                          |    34 -
 .../cache/websession/IgniteWebSession.java      |   286 -
 .../websession/IgniteWebSessionFilter.java      |   466 -
 .../websession/IgniteWebSessionListener.java    |   196 -
 .../ignite/cache/websession/WebSession.java     |   286 +
 .../cache/websession/WebSessionFilter.java      |   467 +
 .../cache/websession/WebSessionListener.java    |   196 +
 .../ignite/cache/websession/package-info.java   |    22 +
 .../apache/ignite/cache/websession/package.html |    24 -
 .../IgniteServletContextListenerStartup.java    |   181 -
 .../startup/servlet/IgniteServletStartup.java   |   187 -
 .../servlet/ServletContextListenerStartup.java  |   181 +
 .../ignite/startup/servlet/ServletStartup.java  |   187 +
 .../ignite/startup/servlet/package-info.java    |    22 +
 .../apache/ignite/startup/servlet/package.html  |    24 -
 .../IgniteWebSessionSelfTestSuite.java          |     6 +
 .../internal/websession/WebSessionSelfTest.java |     4 +-
 modules/winservice/IgniteService.sln            |    22 -
 .../winservice/IgniteService/IgniteService.cs   |   170 -
 .../IgniteService/IgniteService.csproj          |    90 -
 modules/winservice/README.md                    |     3 -
 modules/yardstick/README.md                     |    17 +
 .../config/benchmark-atomic-win.properties      |    15 +
 .../config/benchmark-atomic.properties          |    15 +
 .../config/benchmark-compute-win.properties     |    15 +
 .../config/benchmark-compute.properties         |    15 +
 .../config/benchmark-multicast.properties       |    17 +-
 .../config/benchmark-query-win.properties       |    15 +
 .../yardstick/config/benchmark-query.properties |    15 +
 .../config/benchmark-tx-win.properties          |    15 +
 .../yardstick/config/benchmark-tx.properties    |    15 +
 .../yardstick/config/benchmark-win.properties   |    15 +
 modules/yardstick/config/benchmark.properties   |    15 +
 modules/yardstick/config/ignite-base-config.xml |    69 +-
 .../yardstick/config/ignite-store-config.xml    |    43 +-
 modules/yardstick/pom.xml                       |     8 +-
 .../yardstick/IgniteAbstractBenchmark.java      |     2 +-
 .../yardstick/IgniteBenchmarkArguments.java     |     1 +
 .../org/apache/ignite/yardstick/IgniteNode.java |    10 +-
 .../yardstick/cache/IgniteGetBenchmark.java     |     2 +-
 .../cache/IgniteGetOffHeapBenchmark.java        |     2 +-
 .../cache/IgniteGetOffHeapValuesBenchmark.java  |     2 +-
 .../yardstick/cache/IgnitePutBenchmark.java     |     2 +-
 .../yardstick/cache/IgnitePutGetBenchmark.java  |     2 +-
 .../cache/IgnitePutGetOffHeapBenchmark.java     |     2 +-
 .../IgnitePutGetOffHeapValuesBenchmark.java     |     2 +-
 .../cache/IgnitePutGetTxBenchmark.java          |     2 +-
 .../cache/IgnitePutGetTxOffHeapBenchmark.java   |     2 +-
 .../IgnitePutGetTxOffHeapValuesBenchmark.java   |     2 +-
 .../cache/IgnitePutOffHeapBenchmark.java        |     2 +-
 .../cache/IgnitePutOffHeapValuesBenchmark.java  |     2 +-
 .../yardstick/cache/IgnitePutTxBenchmark.java   |     2 +-
 .../cache/IgnitePutTxOffHeapBenchmark.java      |     2 +-
 .../IgnitePutTxOffHeapValuesBenchmark.java      |     2 +-
 .../cache/IgniteSqlQueryBenchmark.java          |     4 +-
 .../cache/IgniteSqlQueryJoinBenchmark.java      |     6 +-
 .../IgniteSqlQueryJoinOffHeapBenchmark.java     |     2 +-
 .../cache/IgniteSqlQueryOffHeapBenchmark.java   |     2 +-
 .../cache/IgniteSqlQueryPutBenchmark.java       |     2 +-
 .../IgniteSqlQueryPutOffHeapBenchmark.java      |     2 +-
 .../store/jdbc/IgniteJdbcStoreGetBenchmark.java |     2 +-
 .../jdbc/IgniteJdbcStoreGetTxBenchmark.java     |     2 +-
 .../store/jdbc/IgniteJdbcStorePutBenchmark.java |     2 +-
 .../jdbc/IgniteJdbcStorePutGetBenchmark.java    |     2 +-
 .../jdbc/IgniteJdbcStorePutGetTxBenchmark.java  |     2 +-
 .../jdbc/IgniteJdbcStorePutTxBenchmark.java     |     2 +-
 pom.xml                                         |   326 +-
 3397 files changed, 150119 insertions(+), 182372 deletions(-)
----------------------------------------------------------------------



[27/50] [abbrv] ignite git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-264

Posted by ag...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-264


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

Branch: refs/heads/ignite-264
Commit: 44c4a605e7828513f379745680d2c830f675d53a
Parents: f9511af 7760847
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Fri Aug 14 10:01:36 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Fri Aug 14 10:01:36 2015 -0700

----------------------------------------------------------------------
 .../org/apache/ignite/cache/CacheEntry.java     |  94 ++++++++++
 .../org/apache/ignite/internal/IgnitionEx.java  |  10 +-
 .../processors/cache/CacheEntryImpl.java        |  20 +++
 .../processors/cache/CacheEntryImpl0.java       |   5 +
 .../processors/cache/CacheEntryImplEx.java      |  83 +++++++++
 .../processors/cache/CacheInvokeEntry.java      |  27 ++-
 .../cache/CacheVersionedEntryImpl.java          |  80 ---------
 .../processors/cache/GridCacheAdapter.java      |  13 +-
 .../processors/cache/GridCacheEntryEx.java      |   2 +-
 .../processors/cache/GridCacheGateway.java      |   5 +-
 .../processors/cache/GridCacheMapEntry.java     |  28 ++-
 .../processors/cache/GridCacheSwapManager.java  |  82 +++++----
 .../distributed/dht/GridDhtTxPrepareFuture.java |   2 +-
 .../dht/atomic/GridDhtAtomicCache.java          |   3 +-
 .../local/atomic/GridLocalAtomicCache.java      |   3 +-
 .../cache/transactions/IgniteTxAdapter.java     |  16 +-
 .../cache/transactions/IgniteTxEntry.java       |  16 +-
 .../transactions/IgniteTxLocalAdapter.java      |  83 +++++++--
 .../cache/version/GridCacheVersion.java         |   2 +-
 .../cache/version/GridCacheVersionAware.java    |  30 ++++
 .../cache/version/GridCacheVersionManager.java  |   5 +-
 .../clock/GridClockSyncProcessor.java           |   2 +-
 .../continuous/GridContinuousProcessor.java     |  60 +++++--
 .../ignite/internal/util/nio/GridNioServer.java |   4 +-
 .../ignite/spi/discovery/tcp/ServerImpl.java    |  91 ++++++----
 .../resources/META-INF/classnames.properties    |   3 +-
 .../processors/cache/GridCacheTestEntryEx.java  |   2 +-
 ...ridCacheContinuousQueryAbstractSelfTest.java |   2 +-
 .../IgniteCacheContinuousQueryClientTest.java   | 137 +++++++++++++++
 .../CacheVersionedEntryAbstractTest.java        | 170 +++++++++++++++++++
 ...nedEntryLocalAtomicSwapDisabledSelfTest.java |  45 +++++
 ...ersionedEntryLocalTransactionalSelfTest.java |  40 +++++
 ...edEntryPartitionedAtomicOffHeapSelfTest.java |  35 ++++
 ...VersionedEntryPartitionedAtomicSelfTest.java |  35 ++++
 ...PartitionedTransactionalOffHeapSelfTest.java |  36 ++++
 ...edEntryPartitionedTransactionalSelfTest.java |  35 ++++
 ...nedEntryReplicatedAtomicOffHeapSelfTest.java |  35 ++++
 ...eVersionedEntryReplicatedAtomicSelfTest.java |  35 ++++
 ...yReplicatedTransactionalOffHeapSelfTest.java |  36 ++++
 ...nedEntryReplicatedTransactionalSelfTest.java |  35 ++++
 .../continuous/GridEventConsumeSelfTest.java    |   4 +-
 .../testsuites/IgniteCacheTestSuite4.java       |  13 ++
 .../IgniteCacheQuerySelfTestSuite.java          |   1 +
 .../java/org/apache/ignite/IgniteSpring.java    |   8 +-
 scripts/git-format-patch.sh                     |   2 +-
 45 files changed, 1268 insertions(+), 207 deletions(-)
----------------------------------------------------------------------


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

http://git-wip-us.apache.org/repos/asf/ignite/blob/44c4a605/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/44c4a605/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/44c4a605/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/44c4a605/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
----------------------------------------------------------------------


[16/50] [abbrv] ignite git commit: IGNITE-264 - Regenerated messages.

Posted by ag...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearUnlockRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearUnlockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearUnlockRequest.java
index 517a0bb..80652ac 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearUnlockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearUnlockRequest.java
@@ -83,7 +83,7 @@ public class GridNearUnlockRequest extends GridDistributedUnlockRequest {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 7;
+        return 6;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java
index 0f62ae9..95bde28 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java
@@ -186,13 +186,13 @@ public class GridQueryNextPageResponse implements Message {
                 writer.incrementState();
 
             case 5:
-                if (!writer.writeCollection("vals", vals, MessageCollectionItemType.MSG))
+                if (!writer.writeMessage("retry", retry))
                     return false;
 
                 writer.incrementState();
 
             case 6:
-                if (!writer.writeMessage("retry", retry))
+                if (!writer.writeCollection("vals", vals, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
@@ -251,7 +251,7 @@ public class GridQueryNextPageResponse implements Message {
                 reader.incrementState();
 
             case 5:
-                vals = reader.readCollection("vals", MessageCollectionItemType.MSG);
+                retry = reader.readMessage("retry");
 
                 if (!reader.isLastRead())
                     return false;
@@ -259,7 +259,7 @@ public class GridQueryNextPageResponse implements Message {
                 reader.incrementState();
 
             case 6:
-                retry = reader.readMessage("retry");
+                vals = reader.readCollection("vals", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryRequest.java
index 47d1f44..95060e4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryRequest.java
@@ -182,43 +182,43 @@ public class GridQueryRequest implements Message {
 
         switch (writer.state()) {
             case 0:
-                if (!writer.writeInt("pageSize", pageSize))
+                if (!writer.writeCollection("extraSpaces", extraSpaces, MessageCollectionItemType.STRING))
                     return false;
 
                 writer.incrementState();
 
             case 1:
-                if (!writer.writeCollection("qrys", qrys, MessageCollectionItemType.MSG))
+                if (!writer.writeInt("pageSize", pageSize))
                     return false;
 
                 writer.incrementState();
 
             case 2:
-                if (!writer.writeLong("reqId", reqId))
+                if (!writer.writeIntArray("parts", parts))
                     return false;
 
                 writer.incrementState();
 
             case 3:
-                if (!writer.writeString("space", space))
+                if (!writer.writeCollection("qrys", qrys, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
             case 4:
-                if (!writer.writeMessage("topVer", topVer))
+                if (!writer.writeLong("reqId", reqId))
                     return false;
 
                 writer.incrementState();
 
             case 5:
-                if (!writer.writeCollection("extraSpaces", extraSpaces, MessageCollectionItemType.STRING))
+                if (!writer.writeString("space", space))
                     return false;
 
                 writer.incrementState();
 
             case 6:
-                if (!writer.writeIntArray("parts", parts))
+                if (!writer.writeMessage("topVer", topVer))
                     return false;
 
                 writer.incrementState();
@@ -236,7 +236,7 @@ public class GridQueryRequest implements Message {
 
         switch (reader.state()) {
             case 0:
-                pageSize = reader.readInt("pageSize");
+                extraSpaces = reader.readCollection("extraSpaces", MessageCollectionItemType.STRING);
 
                 if (!reader.isLastRead())
                     return false;
@@ -244,7 +244,7 @@ public class GridQueryRequest implements Message {
                 reader.incrementState();
 
             case 1:
-                qrys = reader.readCollection("qrys", MessageCollectionItemType.MSG);
+                pageSize = reader.readInt("pageSize");
 
                 if (!reader.isLastRead())
                     return false;
@@ -252,7 +252,7 @@ public class GridQueryRequest implements Message {
                 reader.incrementState();
 
             case 2:
-                reqId = reader.readLong("reqId");
+                parts = reader.readIntArray("parts");
 
                 if (!reader.isLastRead())
                     return false;
@@ -260,7 +260,7 @@ public class GridQueryRequest implements Message {
                 reader.incrementState();
 
             case 3:
-                space = reader.readString("space");
+                qrys = reader.readCollection("qrys", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
@@ -268,7 +268,7 @@ public class GridQueryRequest implements Message {
                 reader.incrementState();
 
             case 4:
-                topVer = reader.readMessage("topVer");
+                reqId = reader.readLong("reqId");
 
                 if (!reader.isLastRead())
                     return false;
@@ -276,7 +276,7 @@ public class GridQueryRequest implements Message {
                 reader.incrementState();
 
             case 5:
-                extraSpaces = reader.readCollection("extraSpaces", MessageCollectionItemType.STRING);
+                space = reader.readString("space");
 
                 if (!reader.isLastRead())
                     return false;
@@ -284,7 +284,7 @@ public class GridQueryRequest implements Message {
                 reader.incrementState();
 
             case 6:
-                parts = reader.readIntArray("parts");
+                topVer = reader.readMessage("topVer");
 
                 if (!reader.isLastRead())
                     return false;


[37/50] [abbrv] ignite git commit: Merge remote-tracking branch 'upstream/master' into ignite-264

Posted by ag...@apache.org.
Merge remote-tracking branch 'upstream/master' into ignite-264


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

Branch: refs/heads/ignite-264
Commit: f5d0340f825717e79e2fbfce0b6dee88d5177637
Parents: d760297 e428206
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Wed Aug 26 17:56:17 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Wed Aug 26 17:56:17 2015 -0700

----------------------------------------------------------------------
 assembly/dependencies-hadoop.xml                |   1 +
 .../internal/GridEventConsumeHandler.java       |   2 +-
 .../eventstorage/GridEventStorageManager.java   |   2 +-
 .../platform/PlatformAwareEventFilter.java      |  37 -
 .../platform/PlatformLocalEventListener.java    |  28 -
 .../internal/portable/PortableContext.java      |   1 -
 .../CacheObjectPortableProcessorImpl.java       |   3 +-
 .../cacheobject/IgniteCacheObjectProcessor.java |   2 +-
 .../IgniteCacheObjectProcessorImpl.java         |   2 +-
 .../internal/processors/igfs/IgfsProcessor.java |   8 -
 .../platform/PlatformAwareEventFilter.java      |  37 +
 .../platform/PlatformLocalEventListener.java    |  28 +
 .../processors/query/GridQueryProcessor.java    |   2 +-
 .../resources/META-INF/classnames.properties    |   2 +-
 .../IgniteCacheManyAsyncOperationsTest.java     | 107 +++
 .../processors/igfs/IgfsAbstractSelfTest.java   |  34 +-
 .../igfs/IgfsBackupFailoverSelfTest.java        | 488 +++++++++++
 .../igfs/IgfsBackupsDualAsyncSelfTest.java      |  40 +
 .../igfs/IgfsBackupsDualSyncSelfTest.java       |  40 +
 .../igfs/IgfsBackupsPrimarySelfTest.java        |  40 +
 .../ignite/testsuites/IgniteCacheTestSuite.java |   1 +
 .../ignite/testsuites/IgniteIgfsTestSuite.java  |   7 +
 .../Apache.Ignite.Core.csproj                   |  25 +
 .../Common/AsyncSupportedAttribute.cs           |  33 +
 .../Apache.Ignite.Core/Common/IAsyncSupport.cs  |  52 ++
 .../dotnet/Apache.Ignite.Core/Common/IFuture.cs | 115 +++
 .../Common/IgniteException.cs                   |  66 ++
 .../Impl/Collections/CollectionExtensions.cs    |  45 +
 .../Impl/Collections/MultiValueDictionary.cs    | 143 +++
 .../Impl/Collections/ReadOnlyCollection.cs      | 102 +++
 .../Impl/Collections/ReadOnlyDictionary.cs      | 149 ++++
 .../Impl/Common/AsyncResult.cs                  |  71 ++
 .../Impl/Common/CompletedAsyncResult.cs         |  70 ++
 .../Common/CopyOnWriteConcurrentDictionary.cs   |  70 ++
 .../Impl/Common/DelegateConverter.cs            | 253 ++++++
 .../Apache.Ignite.Core/Impl/Common/Future.cs    | 286 ++++++
 .../Impl/Common/FutureType.cs                   |  52 ++
 .../Impl/Common/GridArgumentCheck.cs            |  76 ++
 .../Impl/Common/IFutureConverter.cs             |  32 +
 .../Impl/Common/IFutureInternal.cs              |  45 +
 .../Impl/Common/LoadedAssembliesResolver.cs     |  96 ++
 .../Impl/Common/TypeCaster.cs                   |  72 ++
 .../Apache.Ignite.Core/Impl/Handle/Handle.cs    |  69 ++
 .../Impl/Handle/HandleRegistry.cs               | 340 ++++++++
 .../Apache.Ignite.Core/Impl/Handle/IHandle.cs   |  35 +
 .../internal/platform/PlatformBootstrap.java    |  36 -
 .../platform/PlatformBootstrapFactory.java      |  37 -
 .../internal/platform/PlatformException.java    |  71 --
 .../internal/platform/PlatformIgnition.java     | 187 ----
 .../platform/PlatformNoCallbackException.java   |  50 --
 .../callback/PlatformCallbackGateway.java       | 869 -------------------
 .../callback/PlatformCallbackUtils.java         | 468 ----------
 .../platform/memory/PlatformAbstractMemory.java | 121 ---
 .../PlatformBigEndianInputStreamImpl.java       | 126 ---
 .../PlatformBigEndianOutputStreamImpl.java      | 162 ----
 .../platform/memory/PlatformExternalMemory.java |  55 --
 .../platform/memory/PlatformInputStream.java    |  30 -
 .../memory/PlatformInputStreamImpl.java         | 323 -------
 .../platform/memory/PlatformMemory.java         |  77 --
 .../platform/memory/PlatformMemoryManager.java  |  46 -
 .../memory/PlatformMemoryManagerImpl.java       |  83 --
 .../platform/memory/PlatformMemoryPool.java     | 133 ---
 .../platform/memory/PlatformMemoryUtils.java    | 468 ----------
 .../platform/memory/PlatformOutputStream.java   |  30 -
 .../memory/PlatformOutputStreamImpl.java        | 259 ------
 .../platform/memory/PlatformPooledMemory.java   |  63 --
 .../platform/memory/PlatformUnpooledMemory.java |  51 --
 .../platform/PlatformAbstractBootstrap.java     |  48 +
 .../platform/PlatformAbstractTarget.java        | 276 ++++++
 .../processors/platform/PlatformBootstrap.java  |  36 +
 .../platform/PlatformBootstrapFactory.java      |  37 +
 .../processors/platform/PlatformContext.java    | 114 +++
 .../processors/platform/PlatformException.java  |  71 ++
 .../platform/PlatformExtendedException.java     |  39 +
 .../processors/platform/PlatformIgnition.java   | 186 ++++
 .../platform/PlatformNoCallbackException.java   |  50 ++
 .../processors/platform/PlatformTarget.java     |  76 ++
 .../cache/affinity/PlatformAffinity.java        | 293 +++++++
 .../query/PlatformAbstractQueryCursor.java      | 192 ++++
 .../cache/query/PlatformFieldsQueryCursor.java  |  50 ++
 .../cache/query/PlatformQueryCursor.java        |  46 +
 .../cache/store/PlatformCacheStore.java         |  25 +
 .../cache/store/PlatformCacheStoreCallback.java |  61 ++
 .../callback/PlatformCallbackGateway.java       | 869 +++++++++++++++++++
 .../callback/PlatformCallbackUtils.java         | 468 ++++++++++
 .../lifecycle/PlatformLifecycleBean.java        |  72 ++
 .../platform/memory/PlatformAbstractMemory.java | 121 +++
 .../PlatformBigEndianInputStreamImpl.java       | 126 +++
 .../PlatformBigEndianOutputStreamImpl.java      | 162 ++++
 .../platform/memory/PlatformExternalMemory.java |  55 ++
 .../platform/memory/PlatformInputStream.java    |  30 +
 .../memory/PlatformInputStreamImpl.java         | 323 +++++++
 .../platform/memory/PlatformMemory.java         |  77 ++
 .../platform/memory/PlatformMemoryManager.java  |  46 +
 .../memory/PlatformMemoryManagerImpl.java       |  83 ++
 .../platform/memory/PlatformMemoryPool.java     | 133 +++
 .../platform/memory/PlatformMemoryUtils.java    | 468 ++++++++++
 .../platform/memory/PlatformOutputStream.java   |  30 +
 .../memory/PlatformOutputStreamImpl.java        | 259 ++++++
 .../platform/memory/PlatformPooledMemory.java   |  63 ++
 .../platform/memory/PlatformUnpooledMemory.java |  51 ++
 .../transactions/PlatformTransactions.java      | 255 ++++++
 .../platform/utils/PlatformFutureUtils.java     | 326 +++++++
 .../platform/utils/PlatformReaderBiClosure.java |  34 +
 .../platform/utils/PlatformReaderClosure.java   |  34 +
 .../platform/utils/PlatformUtils.java           | 585 +++++++++++++
 .../platform/utils/PlatformWriterBiClosure.java |  34 +
 .../platform/utils/PlatformWriterClosure.java   |  33 +
 parent/pom.xml                                  |   1 +
 109 files changed, 9460 insertions(+), 3832 deletions(-)
----------------------------------------------------------------------



[48/50] [abbrv] ignite git commit: Merge branch 'master' of github.com:apache/ignite into ignite-264

Posted by ag...@apache.org.
Merge branch 'master' of github.com:apache/ignite into ignite-264


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

Branch: refs/heads/ignite-264
Commit: da02efcfa29bca55404ef372c240c3e6c76354d1
Parents: 9a40afc 0214ea9
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Wed Sep 2 09:52:20 2015 -0700
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Wed Sep 2 09:52:20 2015 -0700

----------------------------------------------------------------------
 modules/aop/pom.xml                             |   1 +
 modules/apache-license-gen/pom.xml              |   1 +
 modules/aws/pom.xml                             |   1 +
 modules/clients/pom.xml                         |   1 +
 modules/cloud/pom.xml                           |   1 +
 modules/codegen/pom.xml                         |   1 +
 modules/core/pom.xml                            |   1 +
 .../configuration/PlatformConfiguration.java    |   2 +-
 .../apache/ignite/internal/IgniteKernal.java    |  14 +-
 .../affinity/GridAffinityProcessor.java         |   4 +
 .../cache/store/CacheOsStoreManager.java        |  32 +-
 .../cache/store/CacheStoreManager.java          |  10 +
 .../store/GridCacheStoreManagerAdapter.java     |   5 -
 .../platform/PlatformNoopProcessor.java         |  11 +-
 .../processors/platform/PlatformProcessor.java  |  10 +
 .../cache/store/PlatformCacheStore.java         |  25 +
 .../igfs/IgfsProcessorValidationSelfTest.java   |  26 +-
 modules/gce/pom.xml                             |   1 +
 modules/geospatial/pom.xml                      |   1 +
 modules/hadoop/pom.xml                          |   1 +
 modules/hibernate/pom.xml                       |   1 +
 modules/indexing/pom.xml                        |   1 +
 modules/jcl/pom.xml                             |   1 +
 modules/jms11/pom.xml                           |   1 +
 modules/jta/pom.xml                             |   1 +
 modules/kafka/pom.xml                           |   1 +
 modules/log4j/pom.xml                           |   1 +
 modules/log4j2/pom.xml                          |   1 +
 modules/mesos/pom.xml                           |   1 +
 modules/platform/pom.xml                        |   1 +
 ...processors.platform.PlatformBootstrapFactory |   2 +
 .../PlatformAbstractConfigurationClosure.java   |  61 +++
 .../platform/PlatformConfigurationEx.java       |  48 ++
 .../platform/PlatformProcessorImpl.java         | 360 ++++++++++++++
 .../platform/cache/PlatformCache.java           |   2 +-
 .../cache/store/PlatformCacheStore.java         |  25 -
 .../platform/cpp/PlatformCppBootstrap.java      |  31 ++
 .../cpp/PlatformCppBootstrapFactory.java        |  39 ++
 .../cpp/PlatformCppConfigurationClosure.java    |  99 ++++
 .../cpp/PlatformCppConfigurationEx.java         |  82 +++
 .../dotnet/PlatformDotNetBootstrap.java         |  31 ++
 .../dotnet/PlatformDotNetBootstrapFactory.java  |  39 ++
 .../dotnet/PlatformDotNetCacheStore.java        | 497 +++++++++++++++++++
 .../PlatformDotNetConfigurationClosure.java     | 255 ++++++++++
 .../dotnet/PlatformDotNetConfigurationEx.java   |  91 ++++
 .../lifecycle/PlatformLifecycleBean.java        |   4 +-
 .../platform/utils/PlatformUtils.java           |  14 +
 .../platform/cpp/PlatformCppConfiguration.java  |  47 ++
 .../dotnet/PlatformDotNetCacheStoreFactory.java | 139 ++++++
 .../dotnet/PlatformDotNetConfiguration.java     | 119 +++++
 .../dotnet/PlatformDotNetLifecycleBean.java     | 109 ++++
 .../PlatformDotNetPortableConfiguration.java    | 228 +++++++++
 ...PlatformDotNetPortableTypeConfiguration.java | 248 +++++++++
 modules/rest-http/pom.xml                       |   1 +
 modules/scalar-2.10/pom.xml                     |   1 +
 modules/scalar/pom.xml                          |   1 +
 modules/schedule/pom.xml                        |   1 +
 modules/schema-import/pom.xml                   |   1 +
 modules/slf4j/pom.xml                           |   1 +
 modules/spark-2.10/pom.xml                      |   1 +
 modules/spark/pom.xml                           |   1 +
 modules/spring/pom.xml                          |   1 +
 modules/ssh/pom.xml                             |   1 +
 modules/tools/pom.xml                           |   1 +
 modules/urideploy/pom.xml                       |   1 +
 modules/visor-console-2.10/pom.xml              |   1 +
 modules/visor-console/pom.xml                   |   1 +
 modules/visor-plugins/pom.xml                   |   1 +
 modules/web/pom.xml                             |   1 +
 modules/yardstick/pom.xml                       |   1 +
 modules/yarn/pom.xml                            |   1 +
 modules/zookeeper/pom.xml                       |   1 +
 parent/pom.xml                                  |   7 +-
 73 files changed, 2690 insertions(+), 65 deletions(-)
----------------------------------------------------------------------



[28/50] [abbrv] ignite git commit: IGNITE-264 - Use correct version to check for committed near transaction.

Posted by ag...@apache.org.
IGNITE-264 - Use correct version to check for committed near transaction.


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

Branch: refs/heads/ignite-264
Commit: 9278d805f55beeff7e481a334a4fca8e77d9eaf6
Parents: 44c4a60
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Fri Aug 14 18:48:35 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Fri Aug 14 18:48:35 2015 -0700

----------------------------------------------------------------------
 .../cache/transactions/IgniteTxManager.java     | 50 ++++++++------------
 .../cache/GridCachePutAllFailoverSelfTest.java  | 26 ++++++++++
 2 files changed, 47 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/9278d805/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
index 124e71d..e2046de 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
@@ -1637,13 +1637,13 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
     }
 
     /**
-     * @param ver Version.
+     * @param xidVer Version.
      * @return Future for flag indicating if transactions was committed.
      */
-    public IgniteInternalFuture<Boolean> txCommitted(GridCacheVersion ver) {
+    public IgniteInternalFuture<Boolean> txCommitted(GridCacheVersion xidVer) {
         final GridFutureAdapter<Boolean> resFut = new GridFutureAdapter<>();
 
-        final IgniteInternalTx tx = cctx.tm().tx(ver);
+        final IgniteInternalTx tx = cctx.tm().tx(xidVer);
 
         if (tx != null) {
             assert tx.near() && tx.local() : tx;
@@ -1665,7 +1665,22 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
             return resFut;
         }
 
-        Boolean committed = completedVers.get(ver);
+        Boolean committed = null;
+
+        for (Map.Entry<GridCacheVersion, Boolean> entry : completedVers.entrySet()) {
+            if (entry.getValue() == null)
+                continue;
+
+            if (entry.getKey() instanceof CommittedVersion) {
+                CommittedVersion comm = (CommittedVersion)entry.getKey();
+
+                if (comm.nearVer.equals(xidVer)) {
+                    committed = entry.getValue();
+
+                    break;
+                }
+            }
+        }
 
         if (log.isDebugEnabled())
             log.debug("Near transaction committed: " + committed);
@@ -1806,29 +1821,6 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
     }
 
     /**
-     * @param nearVer Near version to check.
-     * @return Future.
-     */
-    public IgniteInternalFuture<Boolean> nearTxCommitted(GridCacheVersion nearVer) {
-        for (final IgniteInternalTx tx : txs()) {
-            if (tx.near() && tx.xidVersion().equals(nearVer)) {
-                return tx.done() ?
-                    new GridFinishedFuture<>(tx.state() == COMMITTED) :
-                    tx.finishFuture().chain(new C1<IgniteInternalFuture<IgniteInternalTx>, Boolean>() {
-                        @Override public Boolean apply(IgniteInternalFuture<IgniteInternalTx> f) {
-                            return tx.state() == COMMITTED;
-                        }
-                    });
-            }
-        }
-
-        // Transaction was not found. Check committed versions buffer.
-        Boolean res = completedVers.get(nearVer);
-
-        return new GridFinishedFuture<>(res != null && res);
-    }
-
-    /**
      * Gets local transaction for pessimistic tx recovery.
      *
      * @param nearXidVer Near tx ID.
@@ -1931,9 +1923,9 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
             try {
                 cctx.kernalContext().gateway().readLock();
             }
-            catch (IllegalStateException | IgniteClientDisconnectedException ignore) {
+            catch (IllegalStateException | IgniteClientDisconnectedException e) {
                 if (log.isDebugEnabled())
-                    log.debug("Failed to acquire kernal gateway [err=" + ignore + ']');
+                    log.debug("Failed to acquire kernal gateway [err=" + e + ']');
 
                 return;
             }

http://git-wip-us.apache.org/repos/asf/ignite/blob/9278d805/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePutAllFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePutAllFailoverSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePutAllFailoverSelfTest.java
index dc6e71e..6bbc764 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePutAllFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePutAllFailoverSelfTest.java
@@ -337,6 +337,32 @@ public class GridCachePutAllFailoverSelfTest extends GridCommonAbstractTest {
 
             info(">>> Absent keys: " + absentKeys);
 
+            if (!F.isEmpty(absentKeys)) {
+                for (Ignite g : runningWorkers) {
+                    IgniteKernal k = (IgniteKernal)g;
+
+                    info(">>>> Entries on node: " + k.getLocalNodeId());
+
+                    GridCacheAdapter<Object, Object> cache = k.internalCache("partitioned");
+
+                    for (Integer key : absentKeys) {
+                        GridCacheEntryEx entry = cache.peekEx(key);
+
+                        if (entry != null)
+                            info(" >>> " + entry);
+
+                        if (cache.context().isNear()) {
+                            GridCacheEntryEx entry0 = cache.context().near().dht().peekEx(key);
+
+                            if (entry0 != null)
+                                info(" >>> " + entry);
+                        }
+                    }
+
+                    info("");
+                }
+            }
+
             assertTrue(absentKeys.isEmpty());
 
             // Actual primary cache size.


[33/50] [abbrv] ignite git commit: Regenerated messages.

Posted by ag...@apache.org.
Regenerated messages.


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

Branch: refs/heads/ignite-264
Commit: ac87ddfeca4a20935c3b526a00a2ff2d773b35b7
Parents: a6dd5ee
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Tue Aug 25 17:52:25 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Tue Aug 25 17:52:25 2015 -0700

----------------------------------------------------------------------
 .../distributed/GridCacheTxRecoveryRequest.java | 26 ++++----
 .../GridCacheTxRecoveryResponse.java            | 14 ++---
 .../distributed/GridDistributedBaseMessage.java | 28 +++++++++
 .../distributed/GridDistributedLockRequest.java | 54 ++++++++---------
 .../GridDistributedLockResponse.java            | 14 ++---
 .../GridDistributedTxFinishRequest.java         | 56 +++++++++++-------
 .../GridDistributedTxPrepareRequest.java        | 62 ++++++++++----------
 .../GridDistributedTxPrepareResponse.java       |  6 +-
 .../GridDistributedUnlockRequest.java           |  6 +-
 .../distributed/dht/GridDhtLockRequest.java     | 62 ++++++++++++++------
 .../distributed/dht/GridDhtLockResponse.java    | 18 +++---
 .../distributed/dht/GridDhtTxFinishRequest.java | 52 ++++++++++------
 .../dht/GridDhtTxPrepareRequest.java            | 54 ++++++++---------
 .../dht/GridDhtTxPrepareResponse.java           | 36 ++++++++----
 .../distributed/dht/GridDhtUnlockRequest.java   |  6 +-
 .../distributed/near/GridNearLockRequest.java   | 54 ++++++++---------
 .../distributed/near/GridNearLockResponse.java  | 36 ++++++++----
 .../near/GridNearTxFinishRequest.java           | 26 ++++----
 .../near/GridNearTxPrepareRequest.java          | 50 ++++++++--------
 .../near/GridNearTxPrepareResponse.java         | 56 +++++++++++-------
 .../distributed/near/GridNearUnlockRequest.java |  2 +-
 .../processors/igfs/IgfsFileAffinityRange.java  |  2 -
 22 files changed, 422 insertions(+), 298 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
index 5f05916..bda1148 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
@@ -146,37 +146,37 @@ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
         }
 
         switch (writer.state()) {
-            case 5:
+            case 7:
                 if (!writer.writeIgniteUuid("futId", futId))
                     return false;
 
                 writer.incrementState();
 
-            case 6:
+            case 8:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
-            case 7:
+            case 9:
                 if (!writer.writeBoolean("nearTxCheck", nearTxCheck))
                     return false;
 
                 writer.incrementState();
 
-            case 8:
+            case 10:
                 if (!writer.writeMessage("nearXidVer", nearXidVer))
                     return false;
 
                 writer.incrementState();
 
-            case 9:
+            case 11:
                 if (!writer.writeBoolean("sys", sys))
                     return false;
 
                 writer.incrementState();
 
-            case 10:
+            case 12:
                 if (!writer.writeInt("txNum", txNum))
                     return false;
 
@@ -198,7 +198,7 @@ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
             return false;
 
         switch (reader.state()) {
-            case 5:
+            case 7:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
@@ -206,7 +206,7 @@ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 6:
+            case 8:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -214,7 +214,7 @@ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 7:
+            case 9:
                 nearTxCheck = reader.readBoolean("nearTxCheck");
 
                 if (!reader.isLastRead())
@@ -222,7 +222,7 @@ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 8:
+            case 10:
                 nearXidVer = reader.readMessage("nearXidVer");
 
                 if (!reader.isLastRead())
@@ -230,7 +230,7 @@ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 9:
+            case 11:
                 sys = reader.readBoolean("sys");
 
                 if (!reader.isLastRead())
@@ -238,7 +238,7 @@ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 10:
+            case 12:
                 txNum = reader.readInt("txNum");
 
                 if (!reader.isLastRead())
@@ -258,7 +258,7 @@ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 11;
+        return 13;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java
index 2bff1d8..6218da6 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java
@@ -102,19 +102,19 @@ public class GridCacheTxRecoveryResponse extends GridDistributedBaseMessage {
         }
 
         switch (writer.state()) {
-            case 5:
+            case 7:
                 if (!writer.writeIgniteUuid("futId", futId))
                     return false;
 
                 writer.incrementState();
 
-            case 6:
+            case 8:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
-            case 7:
+            case 9:
                 if (!writer.writeBoolean("success", success))
                     return false;
 
@@ -136,7 +136,7 @@ public class GridCacheTxRecoveryResponse extends GridDistributedBaseMessage {
             return false;
 
         switch (reader.state()) {
-            case 5:
+            case 7:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
@@ -144,7 +144,7 @@ public class GridCacheTxRecoveryResponse extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 6:
+            case 8:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -152,7 +152,7 @@ public class GridCacheTxRecoveryResponse extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 7:
+            case 9:
                 success = reader.readBoolean("success");
 
                 if (!reader.isLastRead())
@@ -172,7 +172,7 @@ public class GridCacheTxRecoveryResponse extends GridDistributedBaseMessage {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 8;
+        return 10;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
index 276f678..3292583 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
@@ -208,6 +208,18 @@ public abstract class GridDistributedBaseMessage extends GridCacheMessage implem
                 writer.incrementState();
 
             case 4:
+                if (!writer.writeCollection("committedVers", committedVers, MessageCollectionItemType.MSG))
+                    return false;
+
+                writer.incrementState();
+
+            case 5:
+                if (!writer.writeCollection("rolledbackVers", rolledbackVers, MessageCollectionItemType.MSG))
+                    return false;
+
+                writer.incrementState();
+
+            case 6:
                 if (!writer.writeMessage("ver", ver))
                     return false;
 
@@ -238,6 +250,22 @@ public abstract class GridDistributedBaseMessage extends GridCacheMessage implem
                 reader.incrementState();
 
             case 4:
+                committedVers = reader.readCollection("committedVers", MessageCollectionItemType.MSG);
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 5:
+                rolledbackVers = reader.readCollection("rolledbackVers", MessageCollectionItemType.MSG);
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 6:
                 ver = reader.readMessage("ver");
 
                 if (!reader.isLastRead())

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
index 261488d..8bcf813 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
@@ -321,79 +321,79 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
         }
 
         switch (writer.state()) {
-            case 5:
+            case 7:
                 if (!writer.writeByte("flags", flags))
                     return false;
 
                 writer.incrementState();
 
-            case 6:
+            case 8:
                 if (!writer.writeIgniteUuid("futId", futId))
                     return false;
 
                 writer.incrementState();
 
-            case 7:
+            case 9:
                 if (!writer.writeBoolean("isInTx", isInTx))
                     return false;
 
                 writer.incrementState();
 
-            case 8:
+            case 10:
                 if (!writer.writeBoolean("isInvalidate", isInvalidate))
                     return false;
 
                 writer.incrementState();
 
-            case 9:
+            case 11:
                 if (!writer.writeBoolean("isRead", isRead))
                     return false;
 
                 writer.incrementState();
 
-            case 10:
+            case 12:
                 if (!writer.writeByte("isolation", isolation != null ? (byte)isolation.ordinal() : -1))
                     return false;
 
                 writer.incrementState();
 
-            case 11:
+            case 13:
                 if (!writer.writeCollection("keys", keys, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 12:
+            case 14:
                 if (!writer.writeMessage("nearXidVer", nearXidVer))
                     return false;
 
                 writer.incrementState();
 
-            case 13:
+            case 15:
                 if (!writer.writeUuid("nodeId", nodeId))
                     return false;
 
                 writer.incrementState();
 
-            case 14:
+            case 16:
                 if (!writer.writeBooleanArray("retVals", retVals))
                     return false;
 
                 writer.incrementState();
 
-            case 15:
+            case 17:
                 if (!writer.writeLong("threadId", threadId))
                     return false;
 
                 writer.incrementState();
 
-            case 16:
+            case 18:
                 if (!writer.writeLong("timeout", timeout))
                     return false;
 
                 writer.incrementState();
 
-            case 17:
+            case 19:
                 if (!writer.writeInt("txSize", txSize))
                     return false;
 
@@ -415,7 +415,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
             return false;
 
         switch (reader.state()) {
-            case 5:
+            case 7:
                 flags = reader.readByte("flags");
 
                 if (!reader.isLastRead())
@@ -423,7 +423,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 6:
+            case 8:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
@@ -431,7 +431,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 7:
+            case 9:
                 isInTx = reader.readBoolean("isInTx");
 
                 if (!reader.isLastRead())
@@ -439,7 +439,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 8:
+            case 10:
                 isInvalidate = reader.readBoolean("isInvalidate");
 
                 if (!reader.isLastRead())
@@ -447,7 +447,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 9:
+            case 11:
                 isRead = reader.readBoolean("isRead");
 
                 if (!reader.isLastRead())
@@ -455,7 +455,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 10:
+            case 12:
                 byte isolationOrd;
 
                 isolationOrd = reader.readByte("isolation");
@@ -467,7 +467,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 11:
+            case 13:
                 keys = reader.readCollection("keys", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -475,7 +475,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 12:
+            case 14:
                 nearXidVer = reader.readMessage("nearXidVer");
 
                 if (!reader.isLastRead())
@@ -483,7 +483,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 13:
+            case 15:
                 nodeId = reader.readUuid("nodeId");
 
                 if (!reader.isLastRead())
@@ -491,7 +491,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 14:
+            case 16:
                 retVals = reader.readBooleanArray("retVals");
 
                 if (!reader.isLastRead())
@@ -499,7 +499,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 15:
+            case 17:
                 threadId = reader.readLong("threadId");
 
                 if (!reader.isLastRead())
@@ -507,7 +507,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 16:
+            case 18:
                 timeout = reader.readLong("timeout");
 
                 if (!reader.isLastRead())
@@ -515,7 +515,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 17:
+            case 19:
                 txSize = reader.readInt("txSize");
 
                 if (!reader.isLastRead())
@@ -535,7 +535,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 18;
+        return 20;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
index ee0f65f..de5eb63 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
@@ -243,19 +243,19 @@ public class GridDistributedLockResponse extends GridDistributedBaseMessage {
         }
 
         switch (writer.state()) {
-            case 5:
+            case 7:
                 if (!writer.writeByteArray("errBytes", errBytes))
                     return false;
 
                 writer.incrementState();
 
-            case 6:
+            case 8:
                 if (!writer.writeIgniteUuid("futId", futId))
                     return false;
 
                 writer.incrementState();
 
-            case 7:
+            case 9:
                 if (!writer.writeCollection("vals", vals, MessageCollectionItemType.MSG))
                     return false;
 
@@ -277,7 +277,7 @@ public class GridDistributedLockResponse extends GridDistributedBaseMessage {
             return false;
 
         switch (reader.state()) {
-            case 5:
+            case 7:
                 errBytes = reader.readByteArray("errBytes");
 
                 if (!reader.isLastRead())
@@ -285,7 +285,7 @@ public class GridDistributedLockResponse extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 6:
+            case 8:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
@@ -293,7 +293,7 @@ public class GridDistributedLockResponse extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 7:
+            case 9:
                 vals = reader.readCollection("vals", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -313,7 +313,7 @@ public class GridDistributedLockResponse extends GridDistributedBaseMessage {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 8;
+        return 10;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
index 897a714..d2dd38a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
@@ -225,61 +225,67 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
         }
 
         switch (writer.state()) {
-            case 5:
+            case 7:
+                if (!writer.writeMessage("baseVer", baseVer))
+                    return false;
+
+                writer.incrementState();
+
+            case 8:
                 if (!writer.writeBoolean("commit", commit))
                     return false;
 
                 writer.incrementState();
 
-            case 6:
+            case 9:
                 if (!writer.writeMessage("commitVer", commitVer))
                     return false;
 
                 writer.incrementState();
 
-            case 7:
+            case 10:
                 if (!writer.writeIgniteUuid("futId", futId))
                     return false;
 
                 writer.incrementState();
 
-            case 8:
+            case 11:
                 if (!writer.writeBoolean("invalidate", invalidate))
                     return false;
 
                 writer.incrementState();
 
-            case 9:
+            case 12:
                 if (!writer.writeByte("plc", plc))
                     return false;
 
                 writer.incrementState();
 
-            case 10:
+            case 13:
                 if (!writer.writeBoolean("syncCommit", syncCommit))
                     return false;
 
                 writer.incrementState();
 
-            case 11:
+            case 14:
                 if (!writer.writeBoolean("syncRollback", syncRollback))
                     return false;
 
                 writer.incrementState();
 
-            case 12:
+            case 15:
                 if (!writer.writeBoolean("sys", sys))
                     return false;
 
                 writer.incrementState();
 
-            case 13:
+            case 16:
                 if (!writer.writeLong("threadId", threadId))
                     return false;
 
                 writer.incrementState();
 
-            case 14:
+            case 17:
                 if (!writer.writeInt("txSize", txSize))
                     return false;
 
@@ -301,7 +307,15 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
             return false;
 
         switch (reader.state()) {
-            case 5:
+            case 7:
+                baseVer = reader.readMessage("baseVer");
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 8:
                 commit = reader.readBoolean("commit");
 
                 if (!reader.isLastRead())
@@ -309,7 +323,7 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 6:
+            case 9:
                 commitVer = reader.readMessage("commitVer");
 
                 if (!reader.isLastRead())
@@ -317,7 +331,7 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 7:
+            case 10:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
@@ -325,7 +339,7 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 8:
+            case 11:
                 invalidate = reader.readBoolean("invalidate");
 
                 if (!reader.isLastRead())
@@ -333,7 +347,7 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 9:
+            case 12:
                 plc = reader.readByte("plc");
 
                 if (!reader.isLastRead())
@@ -341,7 +355,7 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 10:
+            case 13:
                 syncCommit = reader.readBoolean("syncCommit");
 
                 if (!reader.isLastRead())
@@ -349,7 +363,7 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 11:
+            case 14:
                 syncRollback = reader.readBoolean("syncRollback");
 
                 if (!reader.isLastRead())
@@ -357,7 +371,7 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 12:
+            case 15:
                 sys = reader.readBoolean("sys");
 
                 if (!reader.isLastRead())
@@ -365,7 +379,7 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 13:
+            case 16:
                 threadId = reader.readLong("threadId");
 
                 if (!reader.isLastRead())
@@ -373,7 +387,7 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 14:
+            case 17:
                 txSize = reader.readInt("txSize");
 
                 if (!reader.isLastRead())
@@ -393,7 +407,7 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 15;
+        return 18;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
index d5a1183..25f267d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
@@ -339,91 +339,91 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
         }
 
         switch (writer.state()) {
-            case 5:
+            case 7:
                 if (!writer.writeByte("concurrency", concurrency != null ? (byte)concurrency.ordinal() : -1))
                     return false;
 
                 writer.incrementState();
 
-            case 6:
+            case 8:
                 if (!writer.writeCollection("dhtVerKeys", dhtVerKeys, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 7:
+            case 9:
                 if (!writer.writeCollection("dhtVerVals", dhtVerVals, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 8:
+            case 10:
                 if (!writer.writeBoolean("invalidate", invalidate))
                     return false;
 
                 writer.incrementState();
 
-            case 9:
+            case 11:
                 if (!writer.writeByte("isolation", isolation != null ? (byte)isolation.ordinal() : -1))
                     return false;
 
                 writer.incrementState();
 
-            case 10:
+            case 12:
                 if (!writer.writeBoolean("onePhaseCommit", onePhaseCommit))
                     return false;
 
                 writer.incrementState();
 
-            case 11:
+            case 13:
                 if (!writer.writeByte("plc", plc))
                     return false;
 
                 writer.incrementState();
 
-            case 12:
+            case 14:
                 if (!writer.writeCollection("reads", reads, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 13:
+            case 15:
                 if (!writer.writeBoolean("sys", sys))
                     return false;
 
                 writer.incrementState();
 
-            case 14:
+            case 16:
                 if (!writer.writeLong("threadId", threadId))
                     return false;
 
                 writer.incrementState();
 
-            case 15:
+            case 17:
                 if (!writer.writeLong("timeout", timeout))
                     return false;
 
                 writer.incrementState();
 
-            case 16:
+            case 18:
                 if (!writer.writeByteArray("txNodesBytes", txNodesBytes))
                     return false;
 
                 writer.incrementState();
 
-            case 17:
+            case 19:
                 if (!writer.writeInt("txSize", txSize))
                     return false;
 
                 writer.incrementState();
 
-            case 18:
+            case 20:
                 if (!writer.writeMessage("writeVer", writeVer))
                     return false;
 
                 writer.incrementState();
 
-            case 19:
+            case 21:
                 if (!writer.writeCollection("writes", writes, MessageCollectionItemType.MSG))
                     return false;
 
@@ -445,7 +445,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
             return false;
 
         switch (reader.state()) {
-            case 5:
+            case 7:
                 byte concurrencyOrd;
 
                 concurrencyOrd = reader.readByte("concurrency");
@@ -457,7 +457,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 6:
+            case 8:
                 dhtVerKeys = reader.readCollection("dhtVerKeys", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -465,7 +465,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 7:
+            case 9:
                 dhtVerVals = reader.readCollection("dhtVerVals", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -473,7 +473,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 8:
+            case 10:
                 invalidate = reader.readBoolean("invalidate");
 
                 if (!reader.isLastRead())
@@ -481,7 +481,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 9:
+            case 11:
                 byte isolationOrd;
 
                 isolationOrd = reader.readByte("isolation");
@@ -493,7 +493,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 10:
+            case 12:
                 onePhaseCommit = reader.readBoolean("onePhaseCommit");
 
                 if (!reader.isLastRead())
@@ -501,7 +501,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 11:
+            case 13:
                 plc = reader.readByte("plc");
 
                 if (!reader.isLastRead())
@@ -509,7 +509,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 12:
+            case 14:
                 reads = reader.readCollection("reads", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -517,7 +517,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 13:
+            case 15:
                 sys = reader.readBoolean("sys");
 
                 if (!reader.isLastRead())
@@ -525,7 +525,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 14:
+            case 16:
                 threadId = reader.readLong("threadId");
 
                 if (!reader.isLastRead())
@@ -533,7 +533,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 15:
+            case 17:
                 timeout = reader.readLong("timeout");
 
                 if (!reader.isLastRead())
@@ -541,7 +541,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 16:
+            case 18:
                 txNodesBytes = reader.readByteArray("txNodesBytes");
 
                 if (!reader.isLastRead())
@@ -549,7 +549,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 17:
+            case 19:
                 txSize = reader.readInt("txSize");
 
                 if (!reader.isLastRead())
@@ -557,7 +557,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 18:
+            case 20:
                 writeVer = reader.readMessage("writeVer");
 
                 if (!reader.isLastRead())
@@ -565,7 +565,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 19:
+            case 21:
                 writes = reader.readCollection("writes", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -585,7 +585,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 20;
+        return 22;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java
index 8d181a4..0f74780 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java
@@ -119,7 +119,7 @@ public class GridDistributedTxPrepareResponse extends GridDistributedBaseMessage
         }
 
         switch (writer.state()) {
-            case 5:
+            case 7:
                 if (!writer.writeByteArray("errBytes", errBytes))
                     return false;
 
@@ -141,7 +141,7 @@ public class GridDistributedTxPrepareResponse extends GridDistributedBaseMessage
             return false;
 
         switch (reader.state()) {
-            case 5:
+            case 7:
                 errBytes = reader.readByteArray("errBytes");
 
                 if (!reader.isLastRead())
@@ -161,7 +161,7 @@ public class GridDistributedTxPrepareResponse extends GridDistributedBaseMessage
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 6;
+        return 8;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java
index 2034b52..a88ca6b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java
@@ -106,7 +106,7 @@ public class GridDistributedUnlockRequest extends GridDistributedBaseMessage {
         }
 
         switch (writer.state()) {
-            case 5:
+            case 7:
                 if (!writer.writeCollection("keys", keys, MessageCollectionItemType.MSG))
                     return false;
 
@@ -128,7 +128,7 @@ public class GridDistributedUnlockRequest extends GridDistributedBaseMessage {
             return false;
 
         switch (reader.state()) {
-            case 5:
+            case 7:
                 keys = reader.readCollection("keys", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -148,7 +148,7 @@ public class GridDistributedUnlockRequest extends GridDistributedBaseMessage {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 6;
+        return 8;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
index 903898a..de4c9ef 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
@@ -348,49 +348,61 @@ public class GridDhtLockRequest extends GridDistributedLockRequest {
         }
 
         switch (writer.state()) {
-            case 18:
+            case 20:
                 if (!writer.writeLong("accessTtl", accessTtl))
                     return false;
 
                 writer.incrementState();
 
-            case 19:
+            case 21:
                 if (!writer.writeBitSet("invalidateEntries", invalidateEntries))
                     return false;
 
                 writer.incrementState();
 
-            case 20:
+            case 22:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
-            case 21:
+            case 23:
                 if (!writer.writeCollection("nearKeys", nearKeys, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 22:
+            case 24:
+                if (!writer.writeObjectArray("ownedKeys", ownedKeys, MessageCollectionItemType.MSG))
+                    return false;
+
+                writer.incrementState();
+
+            case 25:
+                if (!writer.writeObjectArray("ownedValues", ownedValues, MessageCollectionItemType.MSG))
+                    return false;
+
+                writer.incrementState();
+
+            case 26:
                 if (!writer.writeBitSet("preloadKeys", preloadKeys))
                     return false;
 
                 writer.incrementState();
 
-            case 23:
+            case 27:
                 if (!writer.writeUuid("subjId", subjId))
                     return false;
 
                 writer.incrementState();
 
-            case 24:
+            case 28:
                 if (!writer.writeInt("taskNameHash", taskNameHash))
                     return false;
 
                 writer.incrementState();
 
-            case 25:
+            case 29:
                 if (!writer.writeMessage("topVer", topVer))
                     return false;
 
@@ -412,7 +424,7 @@ public class GridDhtLockRequest extends GridDistributedLockRequest {
             return false;
 
         switch (reader.state()) {
-            case 18:
+            case 20:
                 accessTtl = reader.readLong("accessTtl");
 
                 if (!reader.isLastRead())
@@ -420,7 +432,7 @@ public class GridDhtLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 19:
+            case 21:
                 invalidateEntries = reader.readBitSet("invalidateEntries");
 
                 if (!reader.isLastRead())
@@ -428,7 +440,7 @@ public class GridDhtLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 20:
+            case 22:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -436,7 +448,7 @@ public class GridDhtLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 21:
+            case 23:
                 nearKeys = reader.readCollection("nearKeys", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -444,7 +456,23 @@ public class GridDhtLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 22:
+            case 24:
+                ownedKeys = reader.readObjectArray("ownedKeys", MessageCollectionItemType.MSG, KeyCacheObject.class);
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 25:
+                ownedValues = reader.readObjectArray("ownedValues", MessageCollectionItemType.MSG, GridCacheVersion.class);
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 26:
                 preloadKeys = reader.readBitSet("preloadKeys");
 
                 if (!reader.isLastRead())
@@ -452,7 +480,7 @@ public class GridDhtLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 23:
+            case 27:
                 subjId = reader.readUuid("subjId");
 
                 if (!reader.isLastRead())
@@ -460,7 +488,7 @@ public class GridDhtLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 24:
+            case 28:
                 taskNameHash = reader.readInt("taskNameHash");
 
                 if (!reader.isLastRead())
@@ -468,7 +496,7 @@ public class GridDhtLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 25:
+            case 29:
                 topVer = reader.readMessage("topVer");
 
                 if (!reader.isLastRead())
@@ -488,7 +516,7 @@ public class GridDhtLockRequest extends GridDistributedLockRequest {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 26;
+        return 30;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java
index 03bec94..505a63c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java
@@ -194,25 +194,25 @@ public class GridDhtLockResponse extends GridDistributedLockResponse {
         }
 
         switch (writer.state()) {
-            case 8:
+            case 10:
                 if (!writer.writeCollection("invalidParts", invalidParts, MessageCollectionItemType.INT))
                     return false;
 
                 writer.incrementState();
 
-            case 9:
+            case 11:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
-            case 10:
+            case 12:
                 if (!writer.writeCollection("nearEvicted", nearEvicted, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 11:
+            case 13:
                 if (!writer.writeCollection("preloadEntries", preloadEntries, MessageCollectionItemType.MSG))
                     return false;
 
@@ -234,7 +234,7 @@ public class GridDhtLockResponse extends GridDistributedLockResponse {
             return false;
 
         switch (reader.state()) {
-            case 8:
+            case 10:
                 invalidParts = reader.readCollection("invalidParts", MessageCollectionItemType.INT);
 
                 if (!reader.isLastRead())
@@ -242,7 +242,7 @@ public class GridDhtLockResponse extends GridDistributedLockResponse {
 
                 reader.incrementState();
 
-            case 9:
+            case 11:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -250,7 +250,7 @@ public class GridDhtLockResponse extends GridDistributedLockResponse {
 
                 reader.incrementState();
 
-            case 10:
+            case 12:
                 nearEvicted = reader.readCollection("nearEvicted", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -258,7 +258,7 @@ public class GridDhtLockResponse extends GridDistributedLockResponse {
 
                 reader.incrementState();
 
-            case 11:
+            case 13:
                 preloadEntries = reader.readCollection("preloadEntries", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -278,7 +278,7 @@ public class GridDhtLockResponse extends GridDistributedLockResponse {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 12;
+        return 14;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
index 3c33e87..8359f08 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
@@ -267,55 +267,61 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
         }
 
         switch (writer.state()) {
-            case 15:
+            case 18:
                 if (!writer.writeBoolean("checkCommitted", checkCommitted))
                     return false;
 
                 writer.incrementState();
 
-            case 16:
+            case 19:
                 if (!writer.writeByte("isolation", isolation != null ? (byte)isolation.ordinal() : -1))
                     return false;
 
                 writer.incrementState();
 
-            case 17:
+            case 20:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
-            case 18:
+            case 21:
                 if (!writer.writeUuid("nearNodeId", nearNodeId))
                     return false;
 
                 writer.incrementState();
 
-            case 19:
+            case 22:
+                if (!writer.writeCollection("pendingVers", pendingVers, MessageCollectionItemType.MSG))
+                    return false;
+
+                writer.incrementState();
+
+            case 23:
                 if (!writer.writeUuid("subjId", subjId))
                     return false;
 
                 writer.incrementState();
 
-            case 20:
+            case 24:
                 if (!writer.writeBoolean("sysInvalidate", sysInvalidate))
                     return false;
 
                 writer.incrementState();
 
-            case 21:
+            case 25:
                 if (!writer.writeInt("taskNameHash", taskNameHash))
                     return false;
 
                 writer.incrementState();
 
-            case 22:
+            case 26:
                 if (!writer.writeMessage("topVer", topVer))
                     return false;
 
                 writer.incrementState();
 
-            case 23:
+            case 27:
                 if (!writer.writeMessage("writeVer", writeVer))
                     return false;
 
@@ -337,7 +343,7 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
             return false;
 
         switch (reader.state()) {
-            case 15:
+            case 18:
                 checkCommitted = reader.readBoolean("checkCommitted");
 
                 if (!reader.isLastRead())
@@ -345,7 +351,7 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 16:
+            case 19:
                 byte isolationOrd;
 
                 isolationOrd = reader.readByte("isolation");
@@ -357,7 +363,7 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 17:
+            case 20:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -365,7 +371,7 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 18:
+            case 21:
                 nearNodeId = reader.readUuid("nearNodeId");
 
                 if (!reader.isLastRead())
@@ -373,7 +379,15 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 19:
+            case 22:
+                pendingVers = reader.readCollection("pendingVers", MessageCollectionItemType.MSG);
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 23:
                 subjId = reader.readUuid("subjId");
 
                 if (!reader.isLastRead())
@@ -381,7 +395,7 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 20:
+            case 24:
                 sysInvalidate = reader.readBoolean("sysInvalidate");
 
                 if (!reader.isLastRead())
@@ -389,7 +403,7 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 21:
+            case 25:
                 taskNameHash = reader.readInt("taskNameHash");
 
                 if (!reader.isLastRead())
@@ -397,7 +411,7 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 22:
+            case 26:
                 topVer = reader.readMessage("topVer");
 
                 if (!reader.isLastRead())
@@ -405,7 +419,7 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 23:
+            case 27:
                 writeVer = reader.readMessage("writeVer");
 
                 if (!reader.isLastRead())
@@ -425,6 +439,6 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 24;
+        return 28;
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
index 3a285aa..7a7769d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
@@ -333,79 +333,79 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
         }
 
         switch (writer.state()) {
-            case 20:
+            case 22:
                 if (!writer.writeIgniteUuid("futId", futId))
                     return false;
 
                 writer.incrementState();
 
-            case 21:
+            case 23:
                 if (!writer.writeBitSet("invalidateNearEntries", invalidateNearEntries))
                     return false;
 
                 writer.incrementState();
 
-            case 22:
+            case 24:
                 if (!writer.writeBoolean("last", last))
                     return false;
 
                 writer.incrementState();
 
-            case 23:
+            case 25:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
-            case 24:
+            case 26:
                 if (!writer.writeUuid("nearNodeId", nearNodeId))
                     return false;
 
                 writer.incrementState();
 
-            case 25:
+            case 27:
                 if (!writer.writeCollection("nearWrites", nearWrites, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 26:
+            case 28:
                 if (!writer.writeMessage("nearXidVer", nearXidVer))
                     return false;
 
                 writer.incrementState();
 
-            case 27:
+            case 29:
                 if (!writer.writeCollection("ownedKeys", ownedKeys, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 28:
+            case 30:
                 if (!writer.writeCollection("ownedVals", ownedVals, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 29:
+            case 31:
                 if (!writer.writeBitSet("preloadKeys", preloadKeys))
                     return false;
 
                 writer.incrementState();
 
-            case 30:
+            case 32:
                 if (!writer.writeUuid("subjId", subjId))
                     return false;
 
                 writer.incrementState();
 
-            case 31:
+            case 33:
                 if (!writer.writeInt("taskNameHash", taskNameHash))
                     return false;
 
                 writer.incrementState();
 
-            case 32:
+            case 34:
                 if (!writer.writeMessage("topVer", topVer))
                     return false;
 
@@ -427,7 +427,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
             return false;
 
         switch (reader.state()) {
-            case 20:
+            case 22:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
@@ -435,7 +435,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 21:
+            case 23:
                 invalidateNearEntries = reader.readBitSet("invalidateNearEntries");
 
                 if (!reader.isLastRead())
@@ -443,7 +443,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 22:
+            case 24:
                 last = reader.readBoolean("last");
 
                 if (!reader.isLastRead())
@@ -451,7 +451,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 23:
+            case 25:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -459,7 +459,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 24:
+            case 26:
                 nearNodeId = reader.readUuid("nearNodeId");
 
                 if (!reader.isLastRead())
@@ -467,7 +467,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 25:
+            case 27:
                 nearWrites = reader.readCollection("nearWrites", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -475,7 +475,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 26:
+            case 28:
                 nearXidVer = reader.readMessage("nearXidVer");
 
                 if (!reader.isLastRead())
@@ -483,7 +483,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 27:
+            case 29:
                 ownedKeys = reader.readCollection("ownedKeys", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -491,7 +491,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 28:
+            case 30:
                 ownedVals = reader.readCollection("ownedVals", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -499,7 +499,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 29:
+            case 31:
                 preloadKeys = reader.readBitSet("preloadKeys");
 
                 if (!reader.isLastRead())
@@ -507,7 +507,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 30:
+            case 32:
                 subjId = reader.readUuid("subjId");
 
                 if (!reader.isLastRead())
@@ -515,7 +515,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 31:
+            case 33:
                 taskNameHash = reader.readInt("taskNameHash");
 
                 if (!reader.isLastRead())
@@ -523,7 +523,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 32:
+            case 34:
                 topVer = reader.readMessage("topVer");
 
                 if (!reader.isLastRead())
@@ -543,6 +543,6 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 33;
+        return 35;
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
index ce3c678..da03521 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
@@ -243,31 +243,37 @@ public class GridDhtTxPrepareResponse extends GridDistributedTxPrepareResponse {
         }
 
         switch (writer.state()) {
-            case 6:
+            case 8:
                 if (!writer.writeIgniteUuid("futId", futId))
                     return false;
 
                 writer.incrementState();
 
-            case 7:
+            case 9:
                 if (!writer.writeCollection("invalidParts", invalidParts, MessageCollectionItemType.INT))
                     return false;
 
                 writer.incrementState();
 
-            case 8:
+            case 10:
+                if (!writer.writeMap("invalidPartsByCacheId", invalidPartsByCacheId, MessageCollectionItemType.INT, MessageCollectionItemType.INT_ARR))
+                    return false;
+
+                writer.incrementState();
+
+            case 11:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
-            case 9:
+            case 12:
                 if (!writer.writeCollection("nearEvicted", nearEvicted, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 10:
+            case 13:
                 if (!writer.writeCollection("preloadEntries", preloadEntries, MessageCollectionItemType.MSG))
                     return false;
 
@@ -289,7 +295,7 @@ public class GridDhtTxPrepareResponse extends GridDistributedTxPrepareResponse {
             return false;
 
         switch (reader.state()) {
-            case 6:
+            case 8:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
@@ -297,7 +303,7 @@ public class GridDhtTxPrepareResponse extends GridDistributedTxPrepareResponse {
 
                 reader.incrementState();
 
-            case 7:
+            case 9:
                 invalidParts = reader.readCollection("invalidParts", MessageCollectionItemType.INT);
 
                 if (!reader.isLastRead())
@@ -305,7 +311,15 @@ public class GridDhtTxPrepareResponse extends GridDistributedTxPrepareResponse {
 
                 reader.incrementState();
 
-            case 8:
+            case 10:
+                invalidPartsByCacheId = reader.readMap("invalidPartsByCacheId", MessageCollectionItemType.INT, MessageCollectionItemType.INT_ARR, false);
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 11:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -313,7 +327,7 @@ public class GridDhtTxPrepareResponse extends GridDistributedTxPrepareResponse {
 
                 reader.incrementState();
 
-            case 9:
+            case 12:
                 nearEvicted = reader.readCollection("nearEvicted", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -321,7 +335,7 @@ public class GridDhtTxPrepareResponse extends GridDistributedTxPrepareResponse {
 
                 reader.incrementState();
 
-            case 10:
+            case 13:
                 preloadEntries = reader.readCollection("preloadEntries", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -341,6 +355,6 @@ public class GridDhtTxPrepareResponse extends GridDistributedTxPrepareResponse {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 11;
+        return 14;
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtUnlockRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtUnlockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtUnlockRequest.java
index a91a205..eedcdb4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtUnlockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtUnlockRequest.java
@@ -110,7 +110,7 @@ public class GridDhtUnlockRequest extends GridDistributedUnlockRequest {
         }
 
         switch (writer.state()) {
-            case 6:
+            case 8:
                 if (!writer.writeCollection("nearKeys", nearKeys, MessageCollectionItemType.MSG))
                     return false;
 
@@ -132,7 +132,7 @@ public class GridDhtUnlockRequest extends GridDistributedUnlockRequest {
             return false;
 
         switch (reader.state()) {
-            case 6:
+            case 8:
                 nearKeys = reader.readCollection("nearKeys", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -152,6 +152,6 @@ public class GridDhtUnlockRequest extends GridDistributedUnlockRequest {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 7;
+        return 9;
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
index 192b9cd..1174609 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
@@ -346,79 +346,79 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
         }
 
         switch (writer.state()) {
-            case 18:
+            case 20:
                 if (!writer.writeLong("accessTtl", accessTtl))
                     return false;
 
                 writer.incrementState();
 
-            case 19:
+            case 21:
                 if (!writer.writeObjectArray("dhtVers", dhtVers, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 20:
+            case 22:
                 if (!writer.writeObjectArray("filter", filter, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 21:
+            case 23:
                 if (!writer.writeBoolean("firstClientReq", firstClientReq))
                     return false;
 
                 writer.incrementState();
 
-            case 22:
+            case 24:
                 if (!writer.writeBoolean("hasTransforms", hasTransforms))
                     return false;
 
                 writer.incrementState();
 
-            case 23:
+            case 25:
                 if (!writer.writeBoolean("implicitSingleTx", implicitSingleTx))
                     return false;
 
                 writer.incrementState();
 
-            case 24:
+            case 26:
                 if (!writer.writeBoolean("implicitTx", implicitTx))
                     return false;
 
                 writer.incrementState();
 
-            case 25:
+            case 27:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
-            case 26:
+            case 28:
                 if (!writer.writeBoolean("retVal", retVal))
                     return false;
 
                 writer.incrementState();
 
-            case 27:
+            case 29:
                 if (!writer.writeUuid("subjId", subjId))
                     return false;
 
                 writer.incrementState();
 
-            case 28:
+            case 30:
                 if (!writer.writeBoolean("syncCommit", syncCommit))
                     return false;
 
                 writer.incrementState();
 
-            case 29:
+            case 31:
                 if (!writer.writeInt("taskNameHash", taskNameHash))
                     return false;
 
                 writer.incrementState();
 
-            case 30:
+            case 32:
                 if (!writer.writeMessage("topVer", topVer))
                     return false;
 
@@ -440,7 +440,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
             return false;
 
         switch (reader.state()) {
-            case 18:
+            case 20:
                 accessTtl = reader.readLong("accessTtl");
 
                 if (!reader.isLastRead())
@@ -448,7 +448,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 19:
+            case 21:
                 dhtVers = reader.readObjectArray("dhtVers", MessageCollectionItemType.MSG, GridCacheVersion.class);
 
                 if (!reader.isLastRead())
@@ -456,7 +456,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 20:
+            case 22:
                 filter = reader.readObjectArray("filter", MessageCollectionItemType.MSG, CacheEntryPredicate.class);
 
                 if (!reader.isLastRead())
@@ -464,7 +464,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 21:
+            case 23:
                 firstClientReq = reader.readBoolean("firstClientReq");
 
                 if (!reader.isLastRead())
@@ -472,7 +472,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 22:
+            case 24:
                 hasTransforms = reader.readBoolean("hasTransforms");
 
                 if (!reader.isLastRead())
@@ -480,7 +480,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 23:
+            case 25:
                 implicitSingleTx = reader.readBoolean("implicitSingleTx");
 
                 if (!reader.isLastRead())
@@ -488,7 +488,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 24:
+            case 26:
                 implicitTx = reader.readBoolean("implicitTx");
 
                 if (!reader.isLastRead())
@@ -496,7 +496,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 25:
+            case 27:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -504,7 +504,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 26:
+            case 28:
                 retVal = reader.readBoolean("retVal");
 
                 if (!reader.isLastRead())
@@ -512,7 +512,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 27:
+            case 29:
                 subjId = reader.readUuid("subjId");
 
                 if (!reader.isLastRead())
@@ -520,7 +520,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 28:
+            case 30:
                 syncCommit = reader.readBoolean("syncCommit");
 
                 if (!reader.isLastRead())
@@ -528,7 +528,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 29:
+            case 31:
                 taskNameHash = reader.readInt("taskNameHash");
 
                 if (!reader.isLastRead())
@@ -536,7 +536,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 30:
+            case 32:
                 topVer = reader.readMessage("topVer");
 
                 if (!reader.isLastRead())
@@ -556,7 +556,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 31;
+        return 33;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
index 7ab71aa..110501b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
@@ -205,36 +205,42 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
         }
 
         switch (writer.state()) {
-            case 8:
+            case 10:
                 if (!writer.writeMessage("clientRemapVer", clientRemapVer))
                     return false;
 
                 writer.incrementState();
 
-            case 9:
+            case 11:
                 if (!writer.writeObjectArray("dhtVers", dhtVers, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 10:
+            case 12:
                 if (!writer.writeBooleanArray("filterRes", filterRes))
                     return false;
 
                 writer.incrementState();
 
-            case 11:
+            case 13:
                 if (!writer.writeObjectArray("mappedVers", mappedVers, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 12:
+            case 14:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
+            case 15:
+                if (!writer.writeCollection("pending", pending, MessageCollectionItemType.MSG))
+                    return false;
+
+                writer.incrementState();
+
         }
 
         return true;
@@ -251,7 +257,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
             return false;
 
         switch (reader.state()) {
-            case 8:
+            case 10:
                 clientRemapVer = reader.readMessage("clientRemapVer");
 
                 if (!reader.isLastRead())
@@ -259,7 +265,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
 
                 reader.incrementState();
 
-            case 9:
+            case 11:
                 dhtVers = reader.readObjectArray("dhtVers", MessageCollectionItemType.MSG, GridCacheVersion.class);
 
                 if (!reader.isLastRead())
@@ -267,7 +273,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
 
                 reader.incrementState();
 
-            case 10:
+            case 12:
                 filterRes = reader.readBooleanArray("filterRes");
 
                 if (!reader.isLastRead())
@@ -275,7 +281,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
 
                 reader.incrementState();
 
-            case 11:
+            case 13:
                 mappedVers = reader.readObjectArray("mappedVers", MessageCollectionItemType.MSG, GridCacheVersion.class);
 
                 if (!reader.isLastRead())
@@ -283,7 +289,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
 
                 reader.incrementState();
 
-            case 12:
+            case 14:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -291,6 +297,14 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
 
                 reader.incrementState();
 
+            case 15:
+                pending = reader.readCollection("pending", MessageCollectionItemType.MSG);
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
         }
 
         return reader.afterMessageRead(GridNearLockResponse.class);
@@ -303,7 +317,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 13;
+        return 16;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac87ddfe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
index d20b8ea..9ff0e22 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
@@ -183,37 +183,37 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
         }
 
         switch (writer.state()) {
-            case 15:
+            case 18:
                 if (!writer.writeBoolean("explicitLock", explicitLock))
                     return false;
 
                 writer.incrementState();
 
-            case 16:
+            case 19:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
-            case 17:
+            case 20:
                 if (!writer.writeBoolean("storeEnabled", storeEnabled))
                     return false;
 
                 writer.incrementState();
 
-            case 18:
+            case 21:
                 if (!writer.writeUuid("subjId", subjId))
                     return false;
 
                 writer.incrementState();
 
-            case 19:
+            case 22:
                 if (!writer.writeInt("taskNameHash", taskNameHash))
                     return false;
 
                 writer.incrementState();
 
-            case 20:
+            case 23:
                 if (!writer.writeMessage("topVer", topVer))
                     return false;
 
@@ -235,7 +235,7 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
             return false;
 
         switch (reader.state()) {
-            case 15:
+            case 18:
                 explicitLock = reader.readBoolean("explicitLock");
 
                 if (!reader.isLastRead())
@@ -243,7 +243,7 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 16:
+            case 19:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -251,7 +251,7 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 17:
+            case 20:
                 storeEnabled = reader.readBoolean("storeEnabled");
 
                 if (!reader.isLastRead())
@@ -259,7 +259,7 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 18:
+            case 21:
                 subjId = reader.readUuid("subjId");
 
                 if (!reader.isLastRead())
@@ -267,7 +267,7 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 19:
+            case 22:
                 taskNameHash = reader.readInt("taskNameHash");
 
                 if (!reader.isLastRead())
@@ -275,7 +275,7 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 20:
+            case 23:
                 topVer = reader.readMessage("topVer");
 
                 if (!reader.isLastRead())
@@ -295,7 +295,7 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 21;
+        return 24;
     }
 
     /** {@inheritDoc} */


[24/50] [abbrv] ignite git commit: IGNITE-264 - Fixing tests WIP.

Posted by ag...@apache.org.
IGNITE-264 - Fixing tests WIP.


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

Branch: refs/heads/ignite-264
Commit: ed5edc1424afb0d7177dbe733a28a804ce091fb9
Parents: f4b5d2c
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Tue Aug 11 19:28:55 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Tue Aug 11 19:28:55 2015 -0700

----------------------------------------------------------------------
 .../near/GridNearTxFinishFuture.java            | 67 +++++++++++---------
 .../cache/transactions/IgniteTxHandler.java     | 47 ++++++++------
 .../dht/GridCacheTxNodeFailureSelfTest.java     | 47 +++++++++++---
 3 files changed, 103 insertions(+), 58 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/ed5edc14/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
index 568dc0b..94c5150 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
@@ -376,36 +376,45 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
 
                 add(mini);
 
-                GridDhtTxFinishRequest finishReq = new GridDhtTxFinishRequest(
-                    cctx.localNodeId(),
-                    futureId(),
-                    mini.futureId(),
-                    tx.topologyVersion(),
-                    tx.xidVersion(),
-                    tx.commitVersion(),
-                    tx.threadId(),
-                    tx.isolation(),
-                    true,
-                    false,
-                    tx.system(),
-                    tx.ioPolicy(),
-                    false,
-                    true,
-                    true,
-                    0,
-                    null,
-                    0);
-
-                finishReq.checkCommitted(true);
-
-                try {
-                    cctx.io().send(backup, finishReq, tx.ioPolicy());
+                if (backup.isLocal()) {
+                    if (cctx.tm().txHandler().checkDhtRemoteTxCommitted(tx.xidVersion()))
+                        mini.onDone(tx);
+                    else
+                        mini.onDone(new IgniteTxRollbackCheckedException("Failed to commit transaction " +
+                        "(transaction has been rolled back on backup node): " + tx.xidVersion()));
                 }
-                catch (ClusterTopologyCheckedException e) {
-                    mini.onResult(e);
-                }
-                catch (IgniteCheckedException e) {
-                    mini.onResult(e);
+                else {
+                    GridDhtTxFinishRequest finishReq = new GridDhtTxFinishRequest(
+                        cctx.localNodeId(),
+                        futureId(),
+                        mini.futureId(),
+                        tx.topologyVersion(),
+                        tx.xidVersion(),
+                        tx.commitVersion(),
+                        tx.threadId(),
+                        tx.isolation(),
+                        true,
+                        false,
+                        tx.system(),
+                        tx.ioPolicy(),
+                        false,
+                        true,
+                        true,
+                        0,
+                        null,
+                        0);
+
+                    finishReq.checkCommitted(true);
+
+                    try {
+                        cctx.io().send(backup, finishReq, tx.ioPolicy());
+                    }
+                    catch (ClusterTopologyCheckedException e) {
+                        mini.onResult(e);
+                    }
+                    catch (IgniteCheckedException e) {
+                        mini.onResult(e);
+                    }
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/ed5edc14/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index c0c8293..9e927a9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@ -834,6 +834,12 @@ public class IgniteTxHandler {
         if (log.isDebugEnabled())
             log.debug("Processing dht tx finish request [nodeId=" + nodeId + ", req=" + req + ']');
 
+        if (req.checkCommitted()) {
+            sendReply(nodeId, req, checkDhtRemoteTxCommitted(req.version()));
+
+            return;
+        }
+
         GridDhtTxRemote dhtTx = ctx.tm().tx(req.version());
         GridNearTxRemote nearTx = ctx.tm().nearTx(req.version());
 
@@ -841,22 +847,7 @@ public class IgniteTxHandler {
         if (nearTx != null && nearTx.local())
             nearTx = null;
 
-        if (req.checkCommitted()) {
-            assert dhtTx == null || dhtTx.onePhaseCommit() : "Invalid transaction: " + dhtTx;
-
-            boolean committed = true;
-
-            if (dhtTx == null) {
-                if (ctx.tm().addRolledbackTx(req.version()))
-                    committed = false;
-            }
-
-            sendReply(nodeId, req, committed);
-
-            return;
-        }
-        else
-            finish(nodeId, dhtTx, req);
+        finish(nodeId, dhtTx, req);
 
         if (nearTx != null)
             finish(nodeId, nearTx, req);
@@ -884,15 +875,33 @@ public class IgniteTxHandler {
                 completeFut.listen(new CI1<IgniteInternalFuture<IgniteInternalTx>>() {
                     @Override
                     public void apply(IgniteInternalFuture<IgniteInternalTx> igniteTxIgniteFuture) {
-                        sendReply(nodeId, req, req.commit());
+                        sendReply(nodeId, req, true);
                     }
                 });
             }
             else
-                sendReply(nodeId, req, req.commit());
+                sendReply(nodeId, req, true);
         }
         else
-            sendReply(nodeId, req, req.commit());
+            sendReply(nodeId, req, true);
+    }
+
+    /**
+     * Checks whether DHT remote transaction with given version has been committed. If not, will add version
+     * to rollback version set so that late response will not falsely commit this transaction.
+     *
+     * @param writeVer Write version to check.
+     * @return {@code True} if transaction has been committed, {@code false} otherwise.
+     */
+    public boolean checkDhtRemoteTxCommitted(GridCacheVersion writeVer) {
+        assert writeVer != null;
+
+        boolean committed = true;
+
+        if (ctx.tm().addRolledbackTx(writeVer))
+            committed = false;
+
+        return committed;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/ed5edc14/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
index 43e2348..773ec25 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
@@ -67,35 +67,56 @@ public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
     /**
      * @throws Exception If failed.
      */
-    public void testPrimaryNodeFailureBackipCommitPessimistic() throws Exception {
-        checkPrimaryNodeFailureBackupCommit(PESSIMISTIC);
+    public void testPrimaryNodeFailureBackupCommitPessimistic() throws Exception {
+        checkPrimaryNodeFailureBackupCommit(PESSIMISTIC, false);
     }
 
     /**
      * @throws Exception If failed.
      */
     public void testPrimaryNodeFailureBackupCommitOptimistic() throws Exception {
-        checkPrimaryNodeFailureBackupCommit(OPTIMISTIC);
+        checkPrimaryNodeFailureBackupCommit(OPTIMISTIC, false);
     }
 
     /**
      * @throws Exception If failed.
      */
-    private void checkPrimaryNodeFailureBackupCommit(final TransactionConcurrency conc) throws Exception {
+    public void testPrimaryNodeFailureBackupCommitPessimisticOnBackup() throws Exception {
+        checkPrimaryNodeFailureBackupCommit(PESSIMISTIC, true);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testPrimaryNodeFailureBackupCommitOptimisticOnBackup() throws Exception {
+        checkPrimaryNodeFailureBackupCommit(OPTIMISTIC, true);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    private void checkPrimaryNodeFailureBackupCommit(final TransactionConcurrency conc, boolean backup) throws Exception {
         startGrids(gridCount());
         awaitPartitionMapExchange();
 
+        for (int i = 0; i < gridCount(); i++)
+            info("Grid " + i + ": " + ignite(i).cluster().localNode().id());
+
         try {
             final Ignite ignite = ignite(0);
 
             final IgniteCache<Object, Object> cache = ignite.cache(null);
 
-            final int key = generateKey(ignite);
+            final int key = generateKey(ignite, backup);
 
             final CountDownLatch commitLatch = new CountDownLatch(1);
 
-            communication(2).bannedClasses(Collections.<Class>singletonList(GridDhtTxPrepareResponse.class));
-            communication(3).bannedClasses(Collections.<Class>singletonList(GridDhtTxPrepareResponse.class));
+            if (!backup) {
+                communication(2).bannedClasses(Collections.<Class>singletonList(GridDhtTxPrepareResponse.class));
+                communication(3).bannedClasses(Collections.<Class>singletonList(GridDhtTxPrepareResponse.class));
+            }
+            else
+                communication(0).bannedClasses(Collections.<Class>singletonList(GridDhtTxPrepareResponse.class));
 
             IgniteInternalFuture<Object> fut = GridTestUtils.runAsync(new Callable<Object>() {
                 @Override public Object call() throws Exception {
@@ -140,12 +161,18 @@ public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
      * @return Generated key that is not primary nor backup for {@code ignite(0)} and primary for
      *      {@code ignite(1)}.
      */
-    private int generateKey(Ignite ignite) {
+    private int generateKey(Ignite ignite, boolean backup) {
         Affinity<Object> aff = ignite.affinity(null);
 
         for (int key = 0;;key++) {
-            if (aff.isPrimaryOrBackup(ignite(0).cluster().localNode(), key))
-                continue;
+            if (backup) {
+                if (!aff.isBackup(ignite(0).cluster().localNode(), key))
+                    continue;
+            }
+            else {
+                if (aff.isPrimaryOrBackup(ignite(0).cluster().localNode(), key))
+                    continue;
+            }
 
             if (aff.isPrimary(ignite(1).cluster().localNode(), key))
                 return key;


[36/50] [abbrv] ignite git commit: IGNITE-264 - Fixed affinity topology version handling for nested internal transaction.

Posted by ag...@apache.org.
IGNITE-264 - Fixed affinity topology version handling for nested internal transaction.


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

Branch: refs/heads/ignite-264
Commit: d7602975835ea790a3a03736ce62d0b52c064097
Parents: cc98802
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Wed Aug 26 17:55:53 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Wed Aug 26 17:55:53 2015 -0700

----------------------------------------------------------------------
 .../processors/cache/GridCacheContext.java      |   2 +-
 .../processors/cache/GridCacheIoManager.java    |   2 +-
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |   2 +-
 .../colocated/GridDhtColocatedLockFuture.java   |   8 +
 .../distributed/near/GridNearLockFuture.java    |   8 +
 .../near/GridNearOptimisticTxPrepareFuture.java |   8 +
 .../cache/transactions/IgniteTxAdapter.java     |   1 +
 .../cache/transactions/IgniteTxManager.java     |   4 +-
 .../datastructures/DataStructuresProcessor.java | 100 ++++---
 ...gniteAtomicLongChangingTopologySelfTest.java | 283 +++++++++++++++++++
 .../IgniteCacheFailoverTestSuite.java           |   1 +
 11 files changed, 377 insertions(+), 42 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d7602975/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
index 5f17746..e1a38c9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
@@ -440,7 +440,7 @@ public class GridCacheContext<K, V> implements Externalizable {
      * @return {@code True} if should use system transactions which are isolated from user transactions.
      */
     public boolean systemTx() {
-        return cacheType == CacheType.UTILITY;
+        return cacheType == CacheType.UTILITY || (cacheType == CacheType.INTERNAL && transactional());
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/d7602975/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 0ef190e..55e133e 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
@@ -603,7 +603,7 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter {
                 if (!cctx.discovery().alive(node.id()) || !cctx.discovery().pingNode(node.id()))
                     throw new ClusterTopologyCheckedException("Node left grid while sending message to: " + node.id(), e);
 
-                if (cnt == retryCnt)
+                if (cnt == retryCnt || cctx.kernalContext().isStopping())
                     throw e;
                 else if (log.isDebugEnabled())
                     log.debug("Failed to send message to node (will retry): " + node.id());

http://git-wip-us.apache.org/repos/asf/ignite/blob/d7602975/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 07ec808..f6bb315 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
@@ -320,7 +320,7 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
     public void map() {
         AffinityTopologyVersion topVer = null;
 
-        IgniteInternalTx tx = cctx.tm().anyActiveThreadTx();
+        IgniteInternalTx tx = cctx.tm().anyActiveThreadTx(null);
 
         if (tx != null && tx.topologyVersionSnapshot() != null)
             topVer = tx.topologyVersionSnapshot();

http://git-wip-us.apache.org/repos/asf/ignite/blob/d7602975/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
index 90ca8df..7a2e717 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
@@ -518,6 +518,14 @@ public final class GridDhtColocatedLockFuture extends GridCompoundIdentityFuture
         // Obtain the topology version to use.
         AffinityTopologyVersion topVer = cctx.mvcc().lastExplicitLockTopologyVersion(threadId);
 
+        // If there is another system transaction in progress, use it's topology version to prevent deadlock.
+        if (topVer == null && tx != null && tx.system()) {
+            IgniteInternalTx tx0 = cctx.tm().anyActiveThreadTx(tx);
+
+            if (tx0 != null)
+                topVer = tx0.topologyVersionSnapshot();
+        }
+
         if (topVer != null && tx != null)
             tx.topologyVersion(topVer);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/d7602975/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
index 2815194..daec1ae 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
@@ -657,6 +657,14 @@ public final class GridNearLockFuture extends GridCompoundIdentityFuture<Boolean
         // Obtain the topology version to use.
         AffinityTopologyVersion topVer = cctx.mvcc().lastExplicitLockTopologyVersion(Thread.currentThread().getId());
 
+        // If there is another system transaction in progress, use it's topology version to prevent deadlock.
+        if (topVer == null && tx != null && tx.system()) {
+            IgniteInternalTx tx0 = cctx.tm().anyActiveThreadTx(tx);
+
+            if (tx0 != null)
+                topVer = tx0.topologyVersionSnapshot();
+        }
+
         if (topVer != null && tx != null)
             tx.topologyVersion(topVer);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/d7602975/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
index e51dcb0..4111c41 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
@@ -234,6 +234,14 @@ public class GridNearOptimisticTxPrepareFuture extends GridNearTxPrepareFutureAd
         // Obtain the topology version to use.
         AffinityTopologyVersion topVer = cctx.mvcc().lastExplicitLockTopologyVersion(Thread.currentThread().getId());
 
+        // If there is another system transaction in progress, use it's topology version to prevent deadlock.
+        if (topVer == null && tx != null && tx.system()) {
+            IgniteInternalTx tx0 = cctx.tm().anyActiveThreadTx(tx);
+
+            if (tx0 != null)
+                topVer = tx0.topologyVersionSnapshot();
+        }
+
         if (topVer != null) {
             tx.topologyVersion(topVer);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/d7602975/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
index f9b2437..907a251 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
@@ -184,6 +184,7 @@ public abstract class IgniteTxAdapter extends GridMetadataAwareAdapter
     private AtomicReference<GridFutureAdapter<IgniteInternalTx>> finFut = new AtomicReference<>();
 
     /** Topology version. */
+    @GridToStringInclude
     protected AtomicReference<AffinityTopologyVersion> topVer = new AtomicReference<>(AffinityTopologyVersion.NONE);
 
     /** Mutex. */

http://git-wip-us.apache.org/repos/asf/ignite/blob/d7602975/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
index 4554c6f..c96edd4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
@@ -646,7 +646,7 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
     /**
      * @return Any transaction associated with the current thread.
      */
-    public IgniteInternalTx anyActiveThreadTx() {
+    public IgniteInternalTx anyActiveThreadTx(IgniteInternalTx ignore) {
         long threadId = Thread.currentThread().getId();
 
         IgniteInternalTx tx = threadMap.get(threadId);
@@ -660,7 +660,7 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
 
             tx = sysThreadMap.get(new TxThreadKey(threadId, cacheCtx.cacheId()));
 
-            if (tx != null && tx.topologyVersionSnapshot() != null)
+            if (tx != null && tx != ignore && tx.topologyVersionSnapshot() != null)
                 return tx;
         }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/d7602975/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
index 57b16f0..87c5208 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
@@ -445,18 +445,28 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
         if (!create)
             return c.applyx();
 
-        try (IgniteInternalTx tx = utilityCache.txStartEx(PESSIMISTIC, REPEATABLE_READ)) {
-            err = utilityCache.invoke(DATA_STRUCTURES_KEY, new AddAtomicProcessor(dsInfo)).get();
+        while (true) {
+            try (IgniteInternalTx tx = utilityCache.txStartEx(PESSIMISTIC, REPEATABLE_READ)) {
+                err = utilityCache.invoke(DATA_STRUCTURES_KEY, new AddAtomicProcessor(dsInfo)).get();
 
-            if (err != null)
-                throw err;
+                if (err != null)
+                    throw err;
 
-            dataStructure = c.applyx();
+                dataStructure = c.applyx();
 
-            tx.commit();
-        }
+                tx.commit();
+
+                return dataStructure;
+            }
+            catch (ClusterTopologyCheckedException e) {
+                IgniteInternalFuture<?> fut = e.retryReadyFuture();
 
-        return dataStructure;
+                fut.get();
+            }
+            catch (IgniteTxRollbackCheckedException ignore) {
+                // Safe to retry right away.
+            }
+        }
     }
 
     /**
@@ -512,31 +522,39 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
         if (err != null)
             throw err;
 
-        T rmvInfo;
+        while (true) {
+            try (IgniteInternalTx tx = utilityCache.txStartEx(PESSIMISTIC, REPEATABLE_READ)) {
+                T2<Boolean, IgniteCheckedException> res =
+                    utilityCache.invoke(DATA_STRUCTURES_KEY, new RemoveDataStructureProcessor(dsInfo)).get();
 
-        try (IgniteInternalTx tx = utilityCache.txStartEx(PESSIMISTIC, REPEATABLE_READ)) {
-            T2<Boolean, IgniteCheckedException> res =
-                utilityCache.invoke(DATA_STRUCTURES_KEY, new RemoveDataStructureProcessor(dsInfo)).get();
+                err = res.get2();
 
-            err = res.get2();
+                if (err != null)
+                    throw err;
 
-            if (err != null)
-                throw err;
+                assert res.get1() != null;
 
-            assert res.get1() != null;
+                boolean exists = res.get1();
 
-            boolean exists = res.get1();
+                if (!exists)
+                    return;
 
-            if (!exists)
-                return;
+                T rmvInfo = c.applyx();
 
-            rmvInfo = c.applyx();
+                tx.commit();
 
-            tx.commit();
-        }
+                if (afterRmv != null && rmvInfo != null)
+                    afterRmv.applyx(rmvInfo);
+            }
+            catch (ClusterTopologyCheckedException e) {
+                IgniteInternalFuture<?> fut = e.retryReadyFuture();
 
-        if (afterRmv != null && rmvInfo != null)
-            afterRmv.applyx(rmvInfo);
+                fut.get();
+            }
+            catch (IgniteTxRollbackCheckedException ignore) {
+                // Safe to retry right away.
+            }
+        }
     }
 
     /**
@@ -906,27 +924,35 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
             return c.applyx(cacheCtx);
         }
 
-        T col;
+        while (true) {
+            try (IgniteInternalTx tx = utilityCache.txStartEx(PESSIMISTIC, REPEATABLE_READ)) {
+                T2<String, IgniteCheckedException> res =
+                    utilityCache.invoke(DATA_STRUCTURES_KEY, new AddCollectionProcessor(dsInfo)).get();
 
-        try (IgniteInternalTx tx = utilityCache.txStartEx(PESSIMISTIC, REPEATABLE_READ)) {
-            T2<String, IgniteCheckedException> res =
-                utilityCache.invoke(DATA_STRUCTURES_KEY, new AddCollectionProcessor(dsInfo)).get();
+                err = res.get2();
 
-            err = res.get2();
+                if (err != null)
+                    throw err;
 
-            if (err != null)
-                throw err;
+                String cacheName = res.get1();
 
-            String cacheName = res.get1();
+                final GridCacheContext cacheCtx = ctx.cache().internalCache(cacheName).context();
 
-            final GridCacheContext cacheCtx = ctx.cache().internalCache(cacheName).context();
+                T col = c.applyx(cacheCtx);
 
-            col = c.applyx(cacheCtx);
+                tx.commit();
 
-            tx.commit();
-        }
+                return col;
+            }
+            catch (ClusterTopologyCheckedException e) {
+                IgniteInternalFuture<?> fut = e.retryReadyFuture();
 
-        return col;
+                fut.get();
+            }
+            catch (IgniteTxRollbackCheckedException ignore) {
+                // Safe to retry right away.
+            }
+        }
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/d7602975/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteAtomicLongChangingTopologySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteAtomicLongChangingTopologySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteAtomicLongChangingTopologySelfTest.java
new file mode 100644
index 0000000..cee54b8
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteAtomicLongChangingTopologySelfTest.java
@@ -0,0 +1,283 @@
+/*
+ * 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;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cache.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.testframework.*;
+import org.apache.ignite.testframework.junits.common.*;
+
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+/**
+ *
+ */
+public class IgniteAtomicLongChangingTopologySelfTest extends GridCommonAbstractTest {
+    /**
+     * Grid count.
+     */
+    private static final int GRID_CNT = 5;
+
+    /**
+     * Restart count.
+     */
+    private static final int RESTART_CNT = 15;
+
+    /**
+     * Atomic long name.
+     */
+    private static final String ATOMIC_LONG_NAME = "test-atomic-long";
+
+    /**
+     * Queue.
+     */
+    private final Queue<Long> queue = new ConcurrentLinkedQueue<>();
+
+    /** */
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+        IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+        TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
+
+        discoSpi.setIpFinder(IP_FINDER);
+
+        cfg.setDiscoverySpi(discoSpi);
+
+        AtomicConfiguration atomicCfg = new AtomicConfiguration();
+        atomicCfg.setCacheMode(CacheMode.PARTITIONED);
+        atomicCfg.setBackups(1);
+
+        cfg.setAtomicConfiguration(atomicCfg);
+
+        return cfg;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected void afterTest() throws Exception {
+        stopAllGrids();
+
+        queue.clear();
+    }
+
+    /**
+     *
+     */
+    public void testQueueCreateNodesJoin() throws Exception {
+        CountDownLatch startLatch = new CountDownLatch(GRID_CNT);
+        final AtomicBoolean run = new AtomicBoolean(true);
+
+        Collection<IgniteInternalFuture<?>> futs = new ArrayList<>();
+
+        for (int i = 0; i < GRID_CNT; i++)
+            futs.add(startNodeAndCreaterThread(i, startLatch, run));
+
+        startLatch.await();
+
+        info("All nodes started.");
+
+        Thread.sleep(10_000);
+
+        run.set(false);
+
+        for (IgniteInternalFuture<?> fut : futs)
+            fut.get();
+
+        info("Increments: " + queue.size());
+
+        assert !queue.isEmpty();
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testIncrementConsistency() throws Exception {
+        startGrids(GRID_CNT);
+
+        final AtomicBoolean run = new AtomicBoolean(true);
+
+        IgniteInternalFuture<Long> fut = GridTestUtils.runMultiThreadedAsync(new Callable<Void>() {
+            /** {@inheritDoc} */
+            @Override
+            public Void call() throws Exception {
+                IgniteAtomicLong cntr = ignite(0).atomicLong(ATOMIC_LONG_NAME, 0, true);
+
+                while (run.get())
+                    queue.add(cntr.getAndIncrement());
+
+                return null;
+            }
+        }, 4, "increment-runner");
+
+        for (int i = 0; i < RESTART_CNT; i++) {
+            int restartIdx = ThreadLocalRandom.current().nextInt(GRID_CNT - 1) + 1;
+
+            stopGrid(restartIdx);
+
+            U.sleep(500);
+
+            startGrid(restartIdx);
+        }
+
+        run.set(false);
+
+        fut.get();
+
+        info("Increments: " + queue.size());
+
+        checkQueue();
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testQueueClose() throws Exception {
+        startGrids(GRID_CNT);
+
+        int threads = 4;
+
+        final AtomicBoolean run = new AtomicBoolean(true);
+        final AtomicInteger idx = new AtomicInteger();
+        final AtomicReferenceArray<Exception> arr = new AtomicReferenceArray<>(threads);
+
+        IgniteInternalFuture<Long> fut = GridTestUtils.runMultiThreadedAsync(new Callable<Void>() {
+            /** {@inheritDoc} */
+            @Override
+            public Void call() throws Exception {
+                int base = idx.getAndIncrement();
+
+                try {
+                    int delta = 0;
+
+                    while (run.get()) {
+                        IgniteAtomicLong cntr = ignite(0).atomicLong(ATOMIC_LONG_NAME + "-" + base + "-" + delta, 0, true);
+
+                        for (int i = 0; i < 5; i++)
+                            queue.add(cntr.getAndIncrement());
+
+                        cntr.close();
+
+                        delta++;
+                    }
+                }
+                catch (Exception e) {
+                    arr.set(base, e);
+
+                    throw e;
+                }
+                finally {
+                    info("RUNNER THREAD IS STOPPING");
+                }
+
+                return null;
+            }
+        }, threads, "increment-runner");
+
+        for (int i = 0; i < RESTART_CNT; i++) {
+            int restartIdx = ThreadLocalRandom.current().nextInt(GRID_CNT - 1) + 1;
+
+            stopGrid(restartIdx);
+
+            U.sleep(500);
+
+            startGrid(restartIdx);
+        }
+
+        run.set(false);
+
+        fut.get();
+
+        for (int i = 0; i < threads; i++) {
+            Exception err = arr.get(i);
+
+            if (err != null)
+                throw err;
+        }
+    }
+
+    /**
+     *
+     */
+    private void checkQueue() {
+        List<Long> list = new ArrayList<>(queue);
+
+        Collections.sort(list);
+
+        boolean failed = false;
+
+        int delta = 0;
+
+        for (int i = 0; i < list.size(); i++) {
+            Long exp = (long)(i + delta);
+
+            Long actual = list.get(i);
+
+            if (!exp.equals(actual)) {
+                failed = true;
+
+                delta++;
+
+                info(">>> Expected " + exp + ", actual " + actual);
+            }
+        }
+
+        assertFalse(failed);
+    }
+
+    /**
+     * @param i Node index.
+     */
+    private IgniteInternalFuture<?> startNodeAndCreaterThread(final int i, final CountDownLatch startLatch, final AtomicBoolean run)
+        throws Exception {
+        return multithreadedAsync(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    Ignite ignite = startGrid(i);
+
+                    startLatch.countDown();
+
+                    while (run.get()) {
+                        IgniteAtomicLong cntr = ignite.atomicLong(ATOMIC_LONG_NAME, 0, true);
+
+                        queue.add(cntr.getAndIncrement());
+                    }
+                }
+                catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }, 1, "grunner-" + i);
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/d7602975/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
index b64471b..42e0f6f 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
@@ -81,6 +81,7 @@ public class IgniteCacheFailoverTestSuite extends TestSuite {
         suite.addTestSuite(IgniteCacheSizeFailoverTest.class);
 
         suite.addTestSuite(IgniteCacheTopologySafeGetSelfTest.class);
+        suite.addTestSuite(IgniteAtomicLongChangingTopologySelfTest.class);
 
         return suite;
     }


[08/50] [abbrv] ignite git commit: Merge branch sprint-3 into ignite-264

Posted by ag...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
----------------------------------------------------------------------
diff --cc modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
index 8467382,9551680..de9d112
--- a/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
+++ b/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
@@@ -139,12 -141,8 +141,12 @@@ public class MessageCodeGenerator 
  
          MessageCodeGenerator gen = new MessageCodeGenerator(srcDir);
  
-         gen.generateAll(true);
+         gen.generateAndWrite(DataStreamerEntry.class);
  
 +//        gen.generateAndWrite(GridDistributedUnlockRequest.class);
 +//        gen.generateAndWrite(GridNearUnlockRequest.class);
 +//        gen.generateAndWrite(GridDhtUnlockRequest.class);
 +//
  //        gen.generateAndWrite(GridDistributedLockRequest.class);
  //        gen.generateAndWrite(GridDistributedLockResponse.class);
  //        gen.generateAndWrite(GridNearLockRequest.class);

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvcc.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvcc.java
index 18bcc05,b0f5b2e..ca6ca1a
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvcc.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvcc.java
@@@ -553,10 -650,15 +554,10 @@@ public final class GridCacheMvcc 
       *
       * @param ver Version to mark as ready.
       * @param mappedVer Mapped dht version.
 -     * @param committedVers Committed versions.
 -     * @param rolledBackVers Rolled back versions.
 -     * @param pending Pending dht versions that are not owned and which version is less then mapped.
       * @return Lock owner after reassignment.
       */
-     @Nullable public GridCacheMvccCandidate<K> readyNearLocal(GridCacheVersion ver, GridCacheVersion mappedVer) {
-         GridCacheMvccCandidate<K> cand = candidate(locs, ver);
 -    @Nullable public GridCacheMvccCandidate readyNearLocal(GridCacheVersion ver, GridCacheVersion mappedVer,
 -        Collection<GridCacheVersion> committedVers, Collection<GridCacheVersion> rolledBackVers,
 -        Collection<GridCacheVersion> pending) {
++    @Nullable public GridCacheMvccCandidate readyNearLocal(GridCacheVersion ver, GridCacheVersion mappedVer) {
+         GridCacheMvccCandidate cand = candidate(locs, ver);
  
          if (cand != null) {
              assert cand.nearLocal() : "Near local candidate is not marked as near local: " + cand;
@@@ -610,10 -730,16 +611,10 @@@
       * Sets remote candidate to done.
       *
       * @param ver Version.
 -     * @param pending Pending versions.
 -     * @param committed Committed versions.
 -     * @param rolledback Rolledback versions.
       * @return Lock owner.
       */
-     @Nullable public GridCacheMvccCandidate<K> doneRemote(
+     @Nullable public GridCacheMvccCandidate doneRemote(
 -        GridCacheVersion ver,
 -        Collection<GridCacheVersion> pending,
 -        Collection<GridCacheVersion> committed,
 -        Collection<GridCacheVersion> rolledback) {
 +        GridCacheVersion ver) {
          assert ver != null;
  
          if (log.isDebugEnabled())
@@@ -708,13 -843,9 +709,13 @@@
              }
          }
  
 +        // No assignment can happen in near local cache when remote candidate is present.
 +        if (cctx.isNear() && firstRmt != null)
 +            return;
 +
          if (locs != null) {
-             for (ListIterator<GridCacheMvccCandidate<K>> it = locs.listIterator(); it.hasNext(); ) {
-                 GridCacheMvccCandidate<K> cand = it.next();
+             for (ListIterator<GridCacheMvccCandidate> it = locs.listIterator(); it.hasNext(); ) {
+                 GridCacheMvccCandidate cand = it.next();
  
                  if (cand.owner())
                      return;

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxFuture.java
index 429023b,6d3007b..f6bcc14
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxFuture.java
@@@ -154,9 -153,10 +154,13 @@@ public class GridCacheOptimisticCheckPr
  
                      add(fut);
  
-                     GridCacheOptimisticCheckPreparedTxRequest<K, V>
-                         req = new GridCacheOptimisticCheckPreparedTxRequest<>(tx,
-                         nodeTransactions(id), futureId(), fut.futureId(), false);
 -                    GridCacheOptimisticCheckPreparedTxRequest req = new GridCacheOptimisticCheckPreparedTxRequest(tx,
 -                        nodeTransactions(id),
 -                        futureId(),
 -                        fut.futureId());
++                    GridCacheOptimisticCheckPreparedTxRequest req = new GridCacheOptimisticCheckPreparedTxRequest(
++                        tx,
++                        nodeTransactions(id), 
++                        futureId(), 
++                        fut.futureId(), 
++                        false
++                    );
  
                      try {
                          cctx.io().send(id, req, tx.ioPolicy());
@@@ -176,8 -176,8 +180,13 @@@
  
                  add(fut);
  
-                 GridCacheOptimisticCheckPreparedTxRequest<K, V> req = new GridCacheOptimisticCheckPreparedTxRequest<>(
-                     tx, nodeTransactions(nodeId), futureId(), fut.futureId(), false);
+                 GridCacheOptimisticCheckPreparedTxRequest req = new GridCacheOptimisticCheckPreparedTxRequest(
 -                    tx, nodeTransactions(nodeId), futureId(), fut.futureId());
++                    tx, 
++                    nodeTransactions(nodeId), 
++                    futureId(), 
++                    fut.futureId(),
++                    false
++                );
  
                  try {
                      cctx.io().send(nodeId, req, tx.ioPolicy());

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxRequest.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxRequest.java
index 4b61b7e,e83db66..677d2dc
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxRequest.java
@@@ -65,13 -62,8 +65,13 @@@ public class GridCacheOptimisticCheckPr
       * @param futId Future ID.
       * @param miniId Mini future ID.
       */
 -    public GridCacheOptimisticCheckPreparedTxRequest(IgniteInternalTx tx, int txNum, IgniteUuid futId,
 -        IgniteUuid miniId) {
 +    public GridCacheOptimisticCheckPreparedTxRequest(
-         IgniteInternalTx<K, V> tx,
++        IgniteInternalTx tx,
 +        int txNum,
 +        IgniteUuid futId,
 +        IgniteUuid miniId,
 +        boolean nearCheck
 +    ) {
          super(tx.xidVersion(), 0);
  
          nearXidVer = tx.nearXidVersion();

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxResponse.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheEntry.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheEntry.java
index cb7207d,a1d83d5..8b424ee
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheEntry.java
@@@ -163,13 -170,13 +169,13 @@@ public class GridDistributedCacheEntry 
          GridCacheVersion ver,
          long timeout,
          boolean tx,
 -        boolean implicitSingle,
 -        @Nullable GridCacheVersion owned) throws GridDistributedLockCancelledException,
 +        boolean implicitSingle
 +    ) throws GridDistributedLockCancelledException,
          GridCacheEntryRemovedException {
-         GridCacheMvccCandidate<K> prev;
-         GridCacheMvccCandidate<K> owner;
+         GridCacheMvccCandidate prev;
+         GridCacheMvccCandidate owner;
  
-         V val;
+         CacheObject val;
  
          synchronized (this) {
              // Check removed locks prior to obsolete flag.
@@@ -499,12 -512,14 +505,12 @@@
       *
       * @throws GridCacheEntryRemovedException If entry is removed.
       */
-     @Nullable public GridCacheMvccCandidate<K> readyNearLock(GridCacheVersion ver, GridCacheVersion mapped)
 -    @Nullable public GridCacheMvccCandidate readyNearLock(GridCacheVersion ver, GridCacheVersion mapped,
 -        Collection<GridCacheVersion> committed,
 -        Collection<GridCacheVersion> rolledBack,
 -        Collection<GridCacheVersion> pending) throws GridCacheEntryRemovedException {
++    @Nullable public GridCacheMvccCandidate readyNearLock(GridCacheVersion ver, GridCacheVersion mapped)
 +        throws GridCacheEntryRemovedException {
-         GridCacheMvccCandidate<K> prev = null;
-         GridCacheMvccCandidate<K> owner = null;
+         GridCacheMvccCandidate prev = null;
+         GridCacheMvccCandidate owner = null;
  
-         V val;
+         CacheObject val;
  
          synchronized (this) {
              checkObsolete();
@@@ -547,14 -609,40 +553,14 @@@
       * @throws GridCacheEntryRemovedException If entry has been removed.
       * @return Owner.
       */
-     @Nullable public GridCacheMvccCandidate<K> doneRemote(
+     @Nullable public GridCacheMvccCandidate doneRemote(
          GridCacheVersion lockVer,
          GridCacheVersion baseVer,
 -        Collection<GridCacheVersion> committedVers,
 -        Collection<GridCacheVersion> rolledbackVers,
 -        boolean sysInvalidate) throws GridCacheEntryRemovedException {
 -        return doneRemote(lockVer, baseVer, Collections.<GridCacheVersion>emptySet(), committedVers,
 -            rolledbackVers, sysInvalidate);
 -    }
 -
 -    /**
 -     *
 -     * @param lockVer Done version.
 -     * @param baseVer Base version.
 -     * @param pendingVers Pending versions that are less than lock version.
 -     * @param committedVers Completed versions for reordering.
 -     * @param rolledbackVers Rolled back versions for reordering.
 -     * @param sysInvalidate Flag indicating if this entry is done from invalidated transaction (in case of tx
 -     *      salvage). In this case all locks before salvaged lock will marked as used and corresponding
 -     *      transactions will be invalidated.
 -     * @throws GridCacheEntryRemovedException If entry has been removed.
 -     * @return Owner.
 -     */
 -    @Nullable public GridCacheMvccCandidate doneRemote(
 -        GridCacheVersion lockVer,
 -        GridCacheVersion baseVer,
 -        @Nullable Collection<GridCacheVersion> pendingVers,
 -        Collection<GridCacheVersion> committedVers,
 -        Collection<GridCacheVersion> rolledbackVers,
          boolean sysInvalidate) throws GridCacheEntryRemovedException {
-         GridCacheMvccCandidate<K> prev = null;
-         GridCacheMvccCandidate<K> owner = null;
+         GridCacheMvccCandidate prev = null;
+         GridCacheMvccCandidate owner = null;
  
-         V val;
+         CacheObject val;
  
          synchronized (this) {
              checkObsolete();

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
index 1da0e0f,37b34e7..58a93ee
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
@@@ -284,19 -295,27 +260,21 @@@ public class GridDistributedLockReques
  
      /** {@inheritDoc}
       * @param ctx*/
-     @Override public void prepareMarshal(GridCacheSharedContext<K, V> ctx) throws IgniteCheckedException {
+     @Override public void prepareMarshal(GridCacheSharedContext ctx) throws IgniteCheckedException {
          super.prepareMarshal(ctx);
  
-         if (keyBytes == null && keys != null)
-             keyBytes = marshalCollection(keys, ctx);
+         GridCacheContext cctx = ctx.cacheContext(cacheId);
+ 
+         prepareMarshalCacheObjects(keys, cctx);
 -
 -        if (grpLockKey != null)
 -            grpLockKey.prepareMarshal(cctx);
      }
  
      /** {@inheritDoc} */
-     @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, ClassLoader ldr) throws IgniteCheckedException {
+     @Override public void finishUnmarshal(GridCacheSharedContext ctx, ClassLoader ldr) throws IgniteCheckedException {
          super.finishUnmarshal(ctx, ldr);
  
-         if (keys == null)
-             keys = unmarshalCollection(keyBytes, ctx, ldr);
+         GridCacheContext cctx = ctx.cacheContext(cacheId);
+ 
+         finishUnmarshalCacheObjects(keys, cctx, ldr);
 -
 -        if (grpLockKey != null)
 -            grpLockKey.finishUnmarshal(cctx, ldr);
      }
  
      /** {@inheritDoc} */
@@@ -344,8 -369,8 +322,8 @@@
  
                  writer.incrementState();
  
 -            case 14:
 +            case 11:
-                 if (!writer.writeCollection("keyBytes", keyBytes, MessageCollectionItemType.BYTE_ARR))
+                 if (!writer.writeCollection("keys", keys, MessageCollectionItemType.MSG))
                      return false;
  
                  writer.incrementState();
@@@ -446,8 -485,8 +424,8 @@@
  
                  reader.incrementState();
  
 -            case 14:
 +            case 11:
-                 keyBytes = reader.readCollection("keyBytes", MessageCollectionItemType.BYTE_ARR);
+                 keys = reader.readCollection("keys", MessageCollectionItemType.MSG);
  
                  if (!reader.isLastRead())
                      return false;

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
index 0560234,b5e8d61..0fb1854
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
@@@ -170,10 -164,15 +164,10 @@@ public class GridDistributedLockRespons
      /**
       * @param idx Candidates index.
       * @param cands Collection of candidates.
 -     * @param committedVers Committed versions relative to lock version.
 -     * @param rolledbackVers Rolled back versions relative to lock version.
       */
-     public void setCandidates(int idx, Collection<GridCacheMvccCandidate<K>> cands) {
 -    public void setCandidates(int idx, Collection<GridCacheMvccCandidate> cands,
 -        Collection<GridCacheVersion> committedVers, Collection<GridCacheVersion> rolledbackVers) {
++    public void setCandidates(int idx, Collection<GridCacheMvccCandidate> cands) {
          assert idx >= 0;
  
 -        completedVersions(committedVers, rolledbackVers);
 -
          candidatesByIndex(idx, cands);
      }
  
@@@ -298,8 -255,8 +250,8 @@@
  
                  writer.incrementState();
  
 -            case 10:
 +            case 8:
-                 if (!writer.writeCollection("valBytes", valBytes, MessageCollectionItemType.MSG))
+                 if (!writer.writeCollection("vals", vals, MessageCollectionItemType.MSG))
                      return false;
  
                  writer.incrementState();
@@@ -336,8 -293,8 +288,8 @@@
  
                  reader.incrementState();
  
 -            case 10:
 +            case 8:
-                 valBytes = reader.readCollection("valBytes", MessageCollectionItemType.MSG);
+                 vals = reader.readCollection("vals", MessageCollectionItemType.MSG);
  
                  if (!reader.isLastRead())
                      return false;

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
index fbdcde5,9672a75..18ae318
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
@@@ -57,9 -63,18 +62,12 @@@ public class GridDistributedTxFinishReq
      /** Expected txSize. */
      private int txSize;
  
 -    /** Group lock key. */
 -    private IgniteTxKey grpLockKey;
 -
 -    /** System transaction flag. */
 +    /** System flag. */
      private boolean sys;
  
+     /** IO policy. */
+     private GridIoPolicy plc;
+ 
      /**
       * Empty constructor required by {@link Externalizable}.
       */
@@@ -74,8 -89,13 +82,9 @@@
       * @param commitVer Commit version.
       * @param commit Commit flag.
       * @param invalidate Invalidate flag.
 -     * @param sys System transaction flag.
 +     * @param sys System flag.
+      * @param plc IO policy.
 -     * @param baseVer Base version.
 -     * @param committedVers Committed versions.
 -     * @param rolledbackVers Rolled back versions.
       * @param txSize Expected transaction size.
 -     * @param grpLockKey Group lock key if this is a group-lock transaction.
       */
      public GridDistributedTxFinishRequest(
          GridCacheVersion xidVer,
@@@ -85,9 -105,14 +94,10 @@@
          boolean commit,
          boolean invalidate,
          boolean sys,
+         GridIoPolicy plc,
          boolean syncCommit,
          boolean syncRollback,
 -        GridCacheVersion baseVer,
 -        Collection<GridCacheVersion> committedVers,
 -        Collection<GridCacheVersion> rolledbackVers,
 -        int txSize,
 -        @Nullable IgniteTxKey grpLockKey
 +        int txSize
      ) {
          super(xidVer, 0);
          assert xidVer != null;
@@@ -98,9 -123,14 +108,10 @@@
          this.commit = commit;
          this.invalidate = invalidate;
          this.sys = sys;
+         this.plc = plc;
          this.syncCommit = syncCommit;
          this.syncRollback = syncRollback;
 -        this.baseVer = baseVer;
          this.txSize = txSize;
 -        this.grpLockKey = grpLockKey;
 -
 -        completedVersions(committedVers, rolledbackVers);
      }
  
      /**
@@@ -292,15 -401,27 +310,10 @@@
  
                  reader.incrementState();
  
 -            case 14:
 -                byte plcOrd;
 -
 -                plcOrd = reader.readByte("plc");
 -
 -                if (!reader.isLastRead())
 -                    return false;
 -
 -                plc = GridIoPolicy.fromOrdinal(plcOrd);
 -
 -                reader.incrementState();
 -
 -            case 15:
 +            case 10:
                  syncCommit = reader.readBoolean("syncCommit");
--
--                if (!reader.isLastRead())
--                    return false;
--
--                reader.incrementState();
--
 -            case 16:
++                
 +            case 11:
                  syncRollback = reader.readBoolean("syncRollback");
  
                  if (!reader.isLastRead())

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
index 2e99ef5,ec02e6e..1ecbb4e
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
@@@ -85,12 -78,28 +78,16 @@@ public class GridDistributedTxPrepareRe
      /** DHT versions to verify. */
      @GridToStringInclude
      @GridDirectTransient
-     private Map<IgniteTxKey<K>, GridCacheVersion> dhtVers;
+     private Map<IgniteTxKey, GridCacheVersion> dhtVers;
  
-     /** Serialized map. */
-     @GridToStringExclude
-     private byte[] dhtVersBytes;
+     /** */
+     @GridDirectCollection(IgniteTxKey.class)
+     private Collection<IgniteTxKey> dhtVerKeys;
+ 
+     /** */
+     @GridDirectCollection(GridCacheVersion.class)
+     private Collection<GridCacheVersion> dhtVerVals;
  
 -    /** Group lock key, if any. */
 -    @GridToStringInclude
 -    @GridDirectTransient
 -    private IgniteTxKey grpLockKey;
 -
 -    /** Group lock key bytes. */
 -    @GridToStringExclude
 -    private byte[] grpLockKeyBytes;
 -
 -    /** Partition lock flag. */
 -    private boolean partLock;
 -
      /** Expected transaction size. */
      private int txSize;
  
@@@ -122,9 -136,11 +122,9 @@@
       * @param onePhaseCommit One phase commit flag.
       */
      public GridDistributedTxPrepareRequest(
-         IgniteInternalTx<K, V> tx,
-         @Nullable Collection<IgniteTxEntry<K, V>> reads,
-         Collection<IgniteTxEntry<K, V>> writes,
+         IgniteInternalTx tx,
+         @Nullable Collection<IgniteTxEntry> reads,
+         Collection<IgniteTxEntry> writes,
 -        IgniteTxKey grpLockKey,
 -        boolean partLock,
          Map<UUID, Collection<UUID>> txNodes,
          boolean onePhaseCommit
      ) {
@@@ -261,119 -301,66 +269,60 @@@
  
      /** {@inheritDoc}
       * @param ctx*/
-     @Override public void prepareMarshal(GridCacheSharedContext<K, V> ctx) throws IgniteCheckedException {
+     @Override public void prepareMarshal(GridCacheSharedContext ctx) throws IgniteCheckedException {
          super.prepareMarshal(ctx);
  
-         if (writes != null) {
+         if (writes != null)
              marshalTx(writes, ctx);
  
-             writesBytes = new ArrayList<>(writes.size());
- 
-             for (IgniteTxEntry<K, V> e : writes)
-                 writesBytes.add(ctx.marshaller().marshal(e));
-         }
- 
-         if (reads != null) {
+         if (reads != null)
              marshalTx(reads, ctx);
  
-             readsBytes = new ArrayList<>(reads.size());
 -        if (grpLockKey != null && grpLockKeyBytes == null)
 -            grpLockKeyBytes = ctx.marshaller().marshal(grpLockKey);
 -
+         if (dhtVers != null) {
+             for (IgniteTxKey key : dhtVers.keySet()) {
+                 GridCacheContext cctx = ctx.cacheContext(key.cacheId());
  
-             for (IgniteTxEntry<K, V> e : reads)
-                 readsBytes.add(ctx.marshaller().marshal(e));
-         }
+                 key.prepareMarshal(cctx);
+             }
  
-         if (dhtVers != null && dhtVersBytes == null)
-             dhtVersBytes = ctx.marshaller().marshal(dhtVers);
+             dhtVerKeys = dhtVers.keySet();
+             dhtVerVals = dhtVers.values();
+         }
  
          if (txNodes != null)
              txNodesBytes = ctx.marshaller().marshal(txNodes);
      }
  
      /** {@inheritDoc} */
-     @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, ClassLoader ldr) throws IgniteCheckedException {
+     @Override public void finishUnmarshal(GridCacheSharedContext ctx, ClassLoader ldr) throws IgniteCheckedException {
          super.finishUnmarshal(ctx, ldr);
  
-         if (writesBytes != null) {
-             writes = new ArrayList<>(writesBytes.size());
- 
-             for (byte[] arr : writesBytes)
-                 writes.add(ctx.marshaller().<IgniteTxEntry<K, V>>unmarshal(arr, ldr));
- 
+         if (writes != null)
              unmarshalTx(writes, false, ctx, ldr);
-         }
- 
-         if (readsBytes != null) {
-             reads = new ArrayList<>(readsBytes.size());
- 
-             for (byte[] arr : readsBytes)
-                 reads.add(ctx.marshaller().<IgniteTxEntry<K, V>>unmarshal(arr, ldr));
  
+         if (reads != null)
              unmarshalTx(reads, false, ctx, ldr);
-         }
  
-         if (dhtVersBytes != null && dhtVers == null)
-             dhtVers = ctx.marshaller().unmarshal(dhtVersBytes, ldr);
 -        if (grpLockKeyBytes != null && grpLockKey == null)
 -            grpLockKey = ctx.marshaller().unmarshal(grpLockKeyBytes, ldr);
 -
+         if (dhtVerKeys != null && dhtVers == null) {
+             assert dhtVerVals != null;
+             assert dhtVerKeys.size() == dhtVerVals.size();
  
-         if (txNodesBytes != null)
-             txNodes = ctx.marshaller().unmarshal(txNodesBytes, ldr);
-     }
+             Iterator<IgniteTxKey> keyIt = dhtVerKeys.iterator();
+             Iterator<GridCacheVersion> verIt = dhtVerVals.iterator();
  
-     /**
-      *
-      * @param out Output.
-      * @param col Set to write.
-      * @throws IOException If write failed.
-      */
-     private void writeCollection(ObjectOutput out, Collection<IgniteTxEntry<K, V>> col) throws IOException {
-         boolean empty = F.isEmpty(col);
- 
-         if (!empty) {
-             out.writeInt(col.size());
- 
-             for (IgniteTxEntry<K, V> e : col) {
-                 V val = e.value();
-                 boolean hasWriteVal = e.hasWriteValue();
-                 boolean hasReadVal = e.hasReadValue();
- 
-                 try {
-                     // Don't serialize value if invalidate is set to true.
-                     if (invalidate)
-                         e.value(null, false, false);
- 
-                     out.writeObject(e);
-                 }
-                 finally {
-                     // Set original value back.
-                     e.value(val, hasWriteVal, hasReadVal);
-                 }
-             }
-         }
-         else
-             out.writeInt(-1);
-     }
- 
-     /**
-      * @param in Input.
-      * @return Deserialized set.
-      * @throws IOException If deserialization failed.
-      * @throws ClassNotFoundException If deserialized class could not be found.
-      */
-     @SuppressWarnings({"unchecked"})
-     @Nullable private Collection<IgniteTxEntry<K, V>> readCollection(ObjectInput in) throws IOException,
-         ClassNotFoundException {
-         List<IgniteTxEntry<K, V>> col = null;
+             dhtVers = U.newHashMap(dhtVerKeys.size());
  
-         int size = in.readInt();
+             while (keyIt.hasNext()) {
+                 IgniteTxKey key = keyIt.next();
  
-         // Check null flag.
-         if (size != -1) {
-             col = new ArrayList<>(size);
+                 key.finishUnmarshal(ctx.cacheContext(key.cacheId()), ldr);
  
-             for (int i = 0; i < size; i++)
-                 col.add((IgniteTxEntry<K, V>)in.readObject());
+                 dhtVers.put(key, verIt.next());
+             }
          }
  
-         return col == null ? Collections.<IgniteTxEntry<K,V>>emptyList() : col;
+         if (txNodesBytes != null)
+             txNodes = ctx.marshaller().unmarshal(txNodesBytes, ldr);
      }
  
      /** {@inheritDoc} */
@@@ -403,7 -396,13 +358,7 @@@
  
                  writer.incrementState();
  
-             case 8:
 -            case 11:
 -                if (!writer.writeByteArray("grpLockKeyBytes", grpLockKeyBytes))
 -                    return false;
 -
 -                writer.incrementState();
 -
+             case 12:
                  if (!writer.writeBoolean("invalidate", invalidate))
                      return false;
  
@@@ -421,8 -420,14 +376,8 @@@
  
                  writer.incrementState();
  
-             case 11:
-                 if (!writer.writeCollection("readsBytes", readsBytes, MessageCollectionItemType.BYTE_ARR))
 -            case 15:
 -                if (!writer.writeBoolean("partLock", partLock))
 -                    return false;
 -
 -                writer.incrementState();
 -
+             case 16:
+                 if (!writer.writeByte("plc", plc != null ? (byte)plc.ordinal() : -1))
                      return false;
  
                  writer.incrementState();

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
index e6c5893,ceb8a7c..7ae4835
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
@@@ -188,9 -195,23 +192,13 @@@ public class GridDistributedTxRemoteAda
          // No-op.
      }
  
 -    /**
 -     * Adds group lock key to remote transaction.
 -     *
 -     * @param key Key.
 -     */
 -    public void groupLockKey(IgniteTxKey key) {
 -        if (grpLockKey == null)
 -            grpLockKey = key;
 -    }
 -
      /** {@inheritDoc} */
-     @Override public GridTuple<V> peek(GridCacheContext<K, V> cacheCtx, boolean failFast, K key,
-         IgnitePredicate<Cache.Entry<K, V>>[] filter) throws GridCacheFilterFailedException {
+     @Override public <K, V> GridTuple<CacheObject> peek(GridCacheContext cacheCtx,
+         boolean failFast,
+         KeyCacheObject key,
+         CacheEntryPredicate[] filter)
+         throws GridCacheFilterFailedException
+     {
          assert false : "Method peek can only be called on user transaction: " + this;
  
          throw new IllegalStateException("Method peek can only be called on user transaction: " + this);
@@@ -218,16 -239,19 +226,16 @@@
  
      /**
       * @param baseVer Base version.
 -     * @param committedVers Committed versions.
 -     * @param rolledbackVers Rolled back versions.
       */
 -    @Override public void doneRemote(GridCacheVersion baseVer, Collection<GridCacheVersion> committedVers,
 -        Collection<GridCacheVersion> rolledbackVers, Collection<GridCacheVersion> pendingVers) {
 +    @Override public void doneRemote(GridCacheVersion baseVer) {
          if (readMap != null && !readMap.isEmpty()) {
-             for (IgniteTxEntry<K, V> txEntry : readMap.values())
+             for (IgniteTxEntry txEntry : readMap.values())
 -                doneRemote(txEntry, baseVer, committedVers, rolledbackVers, pendingVers);
 +                doneRemote(txEntry, baseVer);
          }
  
          if (writeMap != null && !writeMap.isEmpty()) {
-             for (IgniteTxEntry<K, V> txEntry : writeMap.values())
+             for (IgniteTxEntry txEntry : writeMap.values())
 -                doneRemote(txEntry, baseVer, committedVers, rolledbackVers, pendingVers);
 +                doneRemote(txEntry, baseVer);
          }
      }
  
@@@ -236,10 -260,15 +244,10 @@@
       *
       * @param txEntry Entry.
       * @param baseVer Base version for completed versions.
 -     * @param committedVers Completed versions relative to base version.
 -     * @param rolledbackVers Rolled back versions relative to base version.
 -     * @param pendingVers Pending versions.
       */
-     private void doneRemote(IgniteTxEntry<K, V> txEntry, GridCacheVersion baseVer) {
 -    private void doneRemote(IgniteTxEntry txEntry, GridCacheVersion baseVer,
 -        Collection<GridCacheVersion> committedVers, Collection<GridCacheVersion> rolledbackVers,
 -        Collection<GridCacheVersion> pendingVers) {
++    private void doneRemote(IgniteTxEntry txEntry, GridCacheVersion baseVer) {
          while (true) {
-             GridDistributedCacheEntry<K, V> entry = (GridDistributedCacheEntry<K, V>)txEntry.cached();
+             GridDistributedCacheEntry entry = (GridDistributedCacheEntry)txEntry.cached();
  
              try {
                  // Handle explicit locks.
@@@ -409,9 -438,9 +416,9 @@@
                  assert txEntry != null : "Missing transaction entry for tx: " + this;
  
                  while (true) {
-                     GridCacheEntryEx<K, V> entry = txEntry.cached();
 -                    GridCacheEntryEx Entry = txEntry.cached();
++                    GridCacheEntryEx entry = txEntry.cached();
  
 -                    assert Entry != null : "Missing cached entry for transaction entry: " + txEntry;
 +                    assert entry != null : "Missing cached entry for transaction entry: " + txEntry;
  
                      try {
                          GridCacheVersion ver = txEntry.explicitVersion() != null ? txEntry.explicitVersion() : xidVer;

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
index 98fbd47,a38a51e..be200d7
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
@@@ -304,27 -329,7 +329,27 @@@ public class GridClientPartitionTopolog
      }
  
      /** {@inheritDoc} */
 +    @Override public GridDhtPartitionState partitionState(UUID nodeId, int part) {
 +        lock.readLock().lock();
 +
 +        try {
 +            GridDhtPartitionMap partMap = node2part.get(nodeId);
 +
 +            if (partMap != null) {
 +                GridDhtPartitionState state = partMap.get(part);
 +
 +                return state == null ? EVICTED : state;
 +            }
 +
 +            return EVICTED;
 +        }
 +        finally {
 +            lock.readLock().unlock();
 +        }
 +    }
 +
 +    /** {@inheritDoc} */
-     @Override public Collection<ClusterNode> nodes(int p, long topVer) {
+     @Override public Collection<ClusterNode> nodes(int p, AffinityTopologyVersion topVer) {
          lock.readLock().lock();
  
          try {

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

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
index 53c13ba,718e565..1af96e9
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
@@@ -741,14 -742,16 +742,14 @@@ public final class GridDhtLockFuture<K
              if (log.isDebugEnabled())
                  log.debug("Mapping entry for DHT lock future: " + this);
  
 -            boolean hasRmtNodes = false;
 -
              // Assign keys to primary nodes.
-             for (GridDhtCacheEntry<K, V> entry : entries) {
+             for (GridDhtCacheEntry entry : entries) {
                  try {
                      while (true) {
                          try {
 -                            hasRmtNodes = cctx.dhtMap(nearNodeId, topVer, entry, log, dhtMap, null);
 +                            cctx.dhtMap(nearNodeId, topVer, entry, log, dhtMap, null);
  
-                             GridCacheMvccCandidate<K> cand = entry.mappings(lockVer);
+                             GridCacheMvccCandidate cand = entry.mappings(lockVer);
  
                              // Possible in case of lock cancellation.
                              if (cand == null) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
index d4c0350,0574f17..41b5489
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
@@@ -19,11 -19,13 +19,11 @@@ package org.apache.ignite.internal.proc
  
  import org.apache.ignite.*;
  import org.apache.ignite.internal.*;
+ import org.apache.ignite.internal.processors.affinity.*;
  import org.apache.ignite.internal.processors.cache.*;
  import org.apache.ignite.internal.processors.cache.distributed.*;
 -import org.apache.ignite.internal.processors.cache.transactions.*;
  import org.apache.ignite.internal.processors.cache.version.*;
 -import org.apache.ignite.internal.util.*;
  import org.apache.ignite.internal.util.tostring.*;
- import org.apache.ignite.internal.util.typedef.*;
  import org.apache.ignite.internal.util.typedef.internal.*;
  import org.apache.ignite.lang.*;
  import org.apache.ignite.plugin.extensions.communication.*;
@@@ -57,8 -54,16 +52,8 @@@ public class GridDhtLockRequest extend
      /** Mini future ID. */
      private IgniteUuid miniId;
  
 -    /** Owner mapped version, if any. */
 -    @GridToStringInclude
 -    @GridDirectTransient
 -    private Map<KeyCacheObject, GridCacheVersion> owned;
 -
 -    /** Owner mapped version bytes. */
 -    private byte[] ownedBytes;
 -
      /** Topology version. */
-     private long topVer;
+     private AffinityTopologyVersion topVer;
  
      /** Subject ID. */
      private UUID subjId;
@@@ -278,18 -294,23 +257,17 @@@
  
      /** {@inheritDoc}
       * @param ctx*/
-     @Override public void prepareMarshal(GridCacheSharedContext<K, V> ctx) throws IgniteCheckedException {
+     @Override public void prepareMarshal(GridCacheSharedContext ctx) throws IgniteCheckedException {
          super.prepareMarshal(ctx);
  
-         assert F.isEmpty(nearKeys) || !F.isEmpty(nearKeyBytes);
+         prepareMarshalCacheObjects(nearKeys, ctx.cacheContext(cacheId));
 -
 -        if (owned != null)
 -            ownedBytes = CU.marshal(ctx, owned);
      }
  
      /** {@inheritDoc} */
-     @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, ClassLoader ldr) throws IgniteCheckedException {
+     @Override public void finishUnmarshal(GridCacheSharedContext ctx, ClassLoader ldr) throws IgniteCheckedException {
          super.finishUnmarshal(ctx, ldr);
  
-         if (nearKeys == null && nearKeyBytes != null)
-             nearKeys = unmarshalCollection(nearKeyBytes, ctx, ldr);
+         finishUnmarshalCacheObjects(nearKeys, ctx.cacheContext(cacheId), ldr);
 -
 -        if (ownedBytes != null)
 -            owned = ctx.marshaller().unmarshal(ownedBytes, ldr);
      }
  
      /** {@inheritDoc} */

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

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

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
index 40fde60,c33ffcb..899c580
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
@@@ -572,27 -602,7 +602,27 @@@ class GridDhtPartitionTopologyImpl<K, V
      }
  
      /** {@inheritDoc} */
 +    @Override public GridDhtPartitionState partitionState(UUID nodeId, int part) {
 +        lock.readLock().lock();
 +
 +        try {
 +            GridDhtPartitionMap partMap = node2part.get(nodeId);
 +
 +            if (partMap != null) {
 +                GridDhtPartitionState state = partMap.get(part);
 +
 +                return state == null ? EVICTED : state;
 +            }
 +
 +            return EVICTED;
 +        }
 +        finally {
 +            lock.readLock().unlock();
 +        }
 +    }
 +
 +    /** {@inheritDoc} */
-     @Override public Collection<ClusterNode> nodes(int p, long topVer) {
+     @Override public Collection<ClusterNode> nodes(int p, AffinityTopologyVersion topVer) {
          Collection<ClusterNode> affNodes = cctx.affinity().nodes(p, topVer);
  
          lock.readLock().lock();

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
index 6a4ff97,737e3ed..fa679ef
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
@@@ -666,19 -675,31 +670,19 @@@ public abstract class GridDhtTransactio
  
          IgniteInternalFuture<Object> keyFut = null;
  
 -        if (req.onePhaseCommit()) {
 -            boolean forceKeys = req.hasTransforms() || req.filter() != null;
 -
 -            if (!forceKeys) {
 -                for (int i = 0; i < req.keysCount() && !forceKeys; i++)
 -                    forceKeys |= req.returnValue(i);
 -            }
 -
 -            if (forceKeys)
 -                keyFut = ctx.dht().dhtPreloader().request(keys, req.topologyVersion());
 -        }
 -
          if (keyFut == null)
-             keyFut = new GridFinishedFutureEx<>();
+             keyFut = new GridFinishedFuture<>();
  
-         return new GridEmbeddedFuture<>(true, keyFut,
-             new C2<Object, Exception, IgniteInternalFuture<GridNearLockResponse<K,V>>>() {
-                 @Override public IgniteInternalFuture<GridNearLockResponse<K, V>> apply(Object o, Exception exx) {
+         return new GridEmbeddedFuture<>(keyFut,
+             new C2<Object, Exception, IgniteInternalFuture<GridNearLockResponse>>() {
+                 @Override public IgniteInternalFuture<GridNearLockResponse> apply(Object o, Exception exx) {
                      if (exx != null)
-                         return new GridDhtFinishedFuture<>(ctx.kernalContext(), exx);
+                         return new GridDhtFinishedFuture<>(exx);
  
-                     IgnitePredicate<Cache.Entry<K, V>>[] filter = filter0;
+                     CacheEntryPredicate[] filter = filter0;
  
                      // Set message into thread context.
-                     GridDhtTxLocal<K, V> tx = null;
+                     GridDhtTxLocal tx = null;
  
                      try {
                          int cnt = keys.size();
@@@ -808,20 -832,22 +814,21 @@@
                              if (log.isDebugEnabled())
                                  log.debug("Performing DHT lock [tx=" + tx + ", entries=" + entries + ']');
  
-                             IgniteInternalFuture<GridCacheReturn<V>> txFut = tx.lockAllAsync(
+                             IgniteInternalFuture<GridCacheReturn> txFut = tx.lockAllAsync(
                                  cacheCtx,
                                  entries,
 -                                req.onePhaseCommit(),
                                  req.messageId(),
                                  req.txRead(),
+                                 req.needReturnValue(),
                                  req.accessTtl());
  
-                             final GridDhtTxLocal<K, V> t = tx;
+                             final GridDhtTxLocal t = tx;
  
-                             return new GridDhtEmbeddedFuture<>(
+                             return new GridDhtEmbeddedFuture(
                                  txFut,
-                                 new C2<GridCacheReturn<V>, Exception, IgniteInternalFuture<GridNearLockResponse<K, V>>>() {
-                                     @Override public IgniteInternalFuture<GridNearLockResponse<K, V>> apply(
-                                         GridCacheReturn<V> o, Exception e) {
+                                 new C2<GridCacheReturn, Exception, IgniteInternalFuture<GridNearLockResponse>>() {
+                                     @Override public IgniteInternalFuture<GridNearLockResponse> apply(
+                                         GridCacheReturn o, Exception e) {
                                          if (e != null)
                                              e = U.unwrap(e);
  
@@@ -943,10 -968,17 +949,10 @@@
                  req.version(), req.futureId(), req.miniId(), tx != null && tx.onePhaseCommit(), entries.size(), err);
  
              if (err == null) {
 -                res.pending(localDhtPendingVersions(entries, mappedVer));
 -
 -                // We have to add completed versions for cases when nearLocal and remote transactions
 -                // execute concurrently.
 -                res.completedVersions(ctx.tm().committedVersions(req.version()),
 -                    ctx.tm().rolledbackVersions(req.version()));
 -
                  int i = 0;
  
-                 for (ListIterator<GridCacheEntryEx<K, V>> it = entries.listIterator(); it.hasNext();) {
-                     GridCacheEntryEx<K, V> e = it.next();
+                 for (ListIterator<GridCacheEntryEx> it = entries.listIterator(); it.hasNext();) {
+                     GridCacheEntryEx e = it.next();
  
                      assert e != null;
  
@@@ -1330,13 -1399,16 +1336,13 @@@
              }
          }
  
 -        Collection<GridCacheVersion> committed = ctx.tm().committedVersions(ver);
 -        Collection<GridCacheVersion> rolledback = ctx.tm().rolledbackVersions(ver);
 -
          // Backups.
-         for (Map.Entry<ClusterNode, List<T2<K, byte[]>>> entry : dhtMap.entrySet()) {
+         for (Map.Entry<ClusterNode, List<KeyCacheObject>> entry : dhtMap.entrySet()) {
              ClusterNode n = entry.getKey();
  
-             List<T2<K, byte[]>> keyBytes = entry.getValue();
+             List<KeyCacheObject> keyBytes = entry.getValue();
  
-             GridDhtUnlockRequest<K, V> req = new GridDhtUnlockRequest<>(ctx.cacheId(), keyBytes.size());
+             GridDhtUnlockRequest req = new GridDhtUnlockRequest(ctx.cacheId(), keyBytes.size());
  
              req.version(dhtVer);
  
@@@ -1347,9 -1419,11 +1353,9 @@@
                  keyBytes = nearMap.get(n);
  
                  if (keyBytes != null)
-                     for (T2<K, byte[]> key : keyBytes)
-                         req.addNearKey(key.get1(), key.get2(), ctx.shared());
+                     for (KeyCacheObject key : keyBytes)
+                         req.addNearKey(key, ctx.shared());
  
 -                req.completedVersions(committed, rolledback);
 -
                  ctx.io().send(n, req, ctx.ioPolicy());
              }
              catch (ClusterTopologyCheckedException ignore) {
@@@ -1373,9 -1447,11 +1379,9 @@@
                  req.version(dhtVer);
  
                  try {
-                     for (T2<K, byte[]> key : keyBytes)
-                         req.addNearKey(key.get1(), key.get2(), ctx.shared());
+                     for (KeyCacheObject key : keyBytes)
+                         req.addNearKey(key, ctx.shared());
  
 -                    req.completedVersions(committed, rolledback);
 -
                      ctx.io().send(n, req, ctx.ioPolicy());
                  }
                  catch (ClusterTopologyCheckedException ignore) {

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

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
index 60211e5,d20a7c3..0e9bdff
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
@@@ -17,12 -17,17 +17,18 @@@
  
  package org.apache.ignite.internal.processors.cache.distributed.dht;
  
+ import org.apache.ignite.internal.*;
+ import org.apache.ignite.internal.processors.affinity.*;
+ import org.apache.ignite.internal.managers.communication.*;
  import org.apache.ignite.internal.processors.cache.distributed.*;
 -import org.apache.ignite.internal.processors.cache.transactions.*;
  import org.apache.ignite.internal.processors.cache.version.*;
 +import org.apache.ignite.lang.*;
 +import org.apache.ignite.transactions.*;
+ import org.apache.ignite.internal.util.tostring.*;
  import org.apache.ignite.internal.util.typedef.internal.*;
+ import org.apache.ignite.lang.*;
  import org.apache.ignite.plugin.extensions.communication.*;
+ import org.apache.ignite.transactions.*;
  import org.jetbrains.annotations.*;
  
  import java.io.*;
@@@ -49,10 -54,12 +55,10 @@@ public class GridDhtTxFinishRequest ext
      private boolean sysInvalidate;
  
      /** Topology version. */
-     private long topVer;
+     private AffinityTopologyVersion topVer;
  
 -    /** Pending versions with order less than one for this message (needed for commit ordering). */
 -    @GridToStringInclude
 -    @GridDirectCollection(GridCacheVersion.class)
 -    private Collection<GridCacheVersion> pendingVers;
 +    /** Check comitted flag. */
 +    private boolean checkCommitted;
  
      /** One phase commit write version. */
      private GridCacheVersion writeVer;
@@@ -108,7 -125,9 +115,19 @@@
          @Nullable UUID subjId,
          int taskNameHash
      ) {
-         super(xidVer, futId, commitVer, threadId, commit, invalidate, sys, syncCommit, syncRollback, txSize);
 -        super(xidVer, futId, commitVer, threadId, commit, invalidate, sys, plc, syncCommit, syncRollback, baseVer,
 -            committedVers, rolledbackVers, txSize, grpLockKey);
++        super(
++            xidVer, 
++            futId, 
++            commitVer, 
++            threadId, 
++            commit, 
++            invalidate, 
++            sys, 
++            plc, 
++            syncCommit, 
++            syncRollback, 
++            txSize
++        );
  
          assert miniId != null;
          assert nearNodeId != null;
@@@ -185,24 -205,20 +204,31 @@@
      }
  
      /**
 -     * @return Topology version.
 +     * @return Check committed flag.
       */
+     @Override public AffinityTopologyVersion topologyVersion() {
+         return topVer;
+     }
+ 
+     /**
 -     * Gets versions of not acquired locks with version less then one of transaction being committed.
 -     *
 -     * @return Versions of locks for entries participating in transaction that have not been acquired yet
 -     *      have version less then one of transaction being committed.
++     * @return Check committed flag.
++     */
 +    public boolean checkCommitted() {
 +        return checkCommitted;
 +    }
 +
 +    /**
 +     * @param checkCommitted Check committed flag.
       */
 -    public Collection<GridCacheVersion> pendingVersions() {
 -        return pendingVers == null ? Collections.<GridCacheVersion>emptyList() : pendingVers;
 +    public void checkCommitted(boolean checkCommitted) {
 +        this.checkCommitted = checkCommitted;
 +    }
 +
 +    /**
 +     * @return Topology version.
 +     */
 +    @Override public long topologyVersion() {
 +        return topVer;
      }
  
      /** {@inheritDoc} */
@@@ -249,7 -259,13 +269,7 @@@
  
                  writer.incrementState();
  
-             case 19:
 -            case 23:
 -                if (!writer.writeCollection("pendingVers", pendingVers, MessageCollectionItemType.MSG))
 -                    return false;
 -
 -                writer.incrementState();
 -
+             case 24:
                  if (!writer.writeUuid("subjId", subjId))
                      return false;
  
@@@ -331,7 -339,15 +343,7 @@@
  
                  reader.incrementState();
  
-             case 19:
 -            case 23:
 -                pendingVers = reader.readCollection("pendingVers", MessageCollectionItemType.MSG);
 -
 -                if (!reader.isLastRead())
 -                    return false;
 -
 -                reader.incrementState();
 -
+             case 24:
                  subjId = reader.readUuid("subjId");
  
                  if (!reader.isLastRead())

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

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

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
index c9be37a,d76a730..cc15429
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
@@@ -80,9 -87,11 +81,9 @@@ public abstract class GridDhtTxLocalAda
       * @param isolation Isolation.
       * @param timeout Timeout.
       * @param txSize Expected transaction size.
 -     * @param grpLockKey Group lock key if this is a group-lock transaction.
 -     * @param partLock If this is a group-lock transaction and the whole partition should be locked.
       */
      protected GridDhtTxLocalAdapter(
-         GridCacheSharedContext<K, V> cctx,
+         GridCacheSharedContext cctx,
          GridCacheVersion xidVer,
          boolean implicit,
          boolean implicitSingle,
@@@ -97,8 -106,10 +99,23 @@@
          @Nullable UUID subjId,
          int taskNameHash
      ) {
-         super(cctx, xidVer, implicit, implicitSingle, sys, concurrency, isolation, timeout, invalidate, storeEnabled,
-             onePhaseCommit, txSize, subjId, taskNameHash);
 -        super(cctx, xidVer, implicit, implicitSingle, sys, plc, concurrency, isolation, timeout, invalidate,
 -            storeEnabled, txSize, grpLockKey, partLock, subjId, taskNameHash);
++        super(
++            cctx, 
++            xidVer, 
++            implicit, 
++            implicitSingle, 
++            sys, 
++            plc, 
++            concurrency, 
++            isolation, 
++            timeout, 
++            invalidate,
++            storeEnabled,
++            onePhaseCommit,
++            txSize, 
++            subjId, 
++            taskNameHash
++        );
  
          assert cctx != null;
  
@@@ -478,11 -502,13 +481,12 @@@
       * @return Lock future.
       */
      @SuppressWarnings("ForLoopReplaceableByForEach")
-     IgniteInternalFuture<GridCacheReturn<V>> lockAllAsync(
-         GridCacheContext<K, V> cacheCtx,
-         List<GridCacheEntryEx<K, V>> entries,
+     IgniteInternalFuture<GridCacheReturn> lockAllAsync(
+         GridCacheContext cacheCtx,
+         List<GridCacheEntryEx> entries,
 -        boolean onePhaseCommit,
          long msgId,
          final boolean read,
+         final boolean needRetVal,
          long accessTtl
      ) {
          try {

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
index 33ee64c,db2742e..1b097b6
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
@@@ -294,10 -292,10 +292,10 @@@ public final class GridDhtTxPrepareFutu
  
                  boolean hasFilters = !F.isEmptyOrNulls(txEntry.filters()) && !F.isAlwaysTrue(txEntry.filters());
  
 -                if (hasFilters || retVal || txEntry.op() == GridCacheOperation.DELETE) {
 +                if (hasFilters || retVal || txEntry.op() == DELETE || txEntry.op() == TRANSFORM) {
                      cached.unswap(true, retVal);
  
-                     V val = cached.innerGet(
+                     CacheObject val = cached.innerGet(
                          tx,
                          /*swap*/true,
                          /*read through*/(retVal || hasFilters) && cacheCtx.config().isLoadPreviousValue(),
@@@ -311,9 -309,11 +309,11 @@@
                          null,
                          null);
  
 -                    if (retVal) {
 +                    if (retVal || txEntry.op() == TRANSFORM) {
                          if (!F.isEmpty(txEntry.entryProcessors())) {
-                             K key = txEntry.key();
+                             invoke = true;
+ 
+                             KeyCacheObject key = txEntry.key();
  
                              Object procRes = null;
                              Exception err = null;
@@@ -335,11 -336,8 +336,10 @@@
                                  }
                              }
  
 +                            txEntry.entryProcessorCalculatedValue(val);
 +
                              if (err != null || procRes != null)
-                                 ret.addEntryProcessResult(key,
-                                     err == null ? new CacheInvokeResult<>(procRes) : new CacheInvokeResult<>(err));
+                                 ret.addEntryProcessResult(txEntry.context(), key, null, procRes, err);
                              else
                                  ret.invokeResult(true);
                          }
@@@ -413,24 -411,27 +413,24 @@@
          if (log.isDebugEnabled())
              log.debug("Marking all local candidates as ready: " + this);
  
 -        Iterable<IgniteTxEntry> checkEntries = tx.groupLock() ?
 -            Collections.singletonList(tx.groupLockEntry()) : writes;
 +        Iterable<IgniteTxEntry<K, V>> checkEntries = writes;
  
-         for (IgniteTxEntry<K, V> txEntry : checkEntries) {
-             GridCacheContext<K, V> cacheCtx = txEntry.context();
+         for (IgniteTxEntry txEntry : checkEntries) {
+             GridCacheContext cacheCtx = txEntry.context();
  
              if (cacheCtx.isLocal())
                  continue;
  
-             GridDistributedCacheEntry<K, V> entry = (GridDistributedCacheEntry<K, V>)txEntry.cached();
+             GridDistributedCacheEntry entry = (GridDistributedCacheEntry)txEntry.cached();
  
              if (entry == null) {
-                 entry = (GridDistributedCacheEntry<K, V>)cacheCtx.cache().entryEx(txEntry.key());
+                 entry = (GridDistributedCacheEntry)cacheCtx.cache().entryEx(txEntry.key());
  
-                 txEntry.cached(entry, txEntry.keyBytes());
+                 txEntry.cached(entry);
              }
  
 -            if (tx.optimistic() && txEntry.explicitVersion() == null) {
 -                if (!tx.groupLock() || tx.groupLockKey().equals(entry.txKey()))
 -                    lockKeys.add(txEntry.txKey());
 -            }
 +            if (tx.optimistic() && txEntry.explicitVersion() == null)
 +                lockKeys.add(txEntry.txKey());
  
              while (true) {
                  try {
@@@ -561,15 -560,9 +563,15 @@@
      /**
       * @throws IgniteCheckedException If failed to send response.
       */
-     private void sendPrepareResponse(GridNearTxPrepareResponse<K, V> res) throws IgniteCheckedException {
+     private void sendPrepareResponse(GridNearTxPrepareResponse res) throws IgniteCheckedException {
 -        if (!tx.nearNodeId().equals(cctx.localNodeId()))
 +        if (!tx.nearNodeId().equals(cctx.localNodeId())) {
 +            Throwable err = this.err.get();
 +
 +            if (err != null && err instanceof IgniteFutureCancelledException)
 +                return;
 +
              cctx.io().send(tx.nearNodeId(), res, tx.ioPolicy());
 +        }
          else {
              assert completeCb != null;
  
@@@ -605,39 -604,15 +607,39 @@@
      }
  
      /**
 +     * Checks if transaction involves a near-enabled cache on originating node.
 +     *
 +     * @return {@code True} if originating node has a near cache enabled and that cache participates in
 +     *      the transaction.
 +     */
 +    private boolean originatingNodeHasNearCache() {
 +        ClusterNode node = cctx.discovery().node(tx.originatingNodeId());
 +
 +        if (node == null)
 +            return false;
 +
 +        GridCacheAttributes[] attrs = node.attribute(IgniteNodeAttributes.ATTR_CACHE);
 +
 +        for (GridCacheAttributes attr : attrs) {
 +            if (attr.nearCacheEnabled()) {
 +                if (tx.activeCacheIds().contains(CU.cacheId(attr.cacheName())))
 +                    return true;
 +            }
 +        }
 +
 +        return false;
 +    }
 +
 +    /**
       * @param res Response being sent.
       */
-     private void addDhtValues(GridNearTxPrepareResponse<K, V> res) {
+     private void addDhtValues(GridNearTxPrepareResponse res) {
          // Interceptor on near node needs old values to execute callbacks.
          if (!F.isEmpty(writes)) {
-             for (IgniteTxEntry<K, V> e : writes) {
-                 IgniteTxEntry<K, V> txEntry = tx.entry(e.txKey());
+             for (IgniteTxEntry e : writes) {
+                 IgniteTxEntry txEntry = tx.entry(e.txKey());
  
-                 GridCacheContext<K, V> cacheCtx = txEntry.context();
+                 GridCacheContext cacheCtx = txEntry.context();
  
                  assert txEntry != null : "Missing tx entry for key [tx=" + tx + ", key=" + e.txKey() + ']';
  
@@@ -790,30 -741,31 +768,33 @@@
              return;
  
          try {
+             // We are holding transaction-level locks for entries here, so we can get next write version.
              onEntriesLocked();
  
+             tx.writeVersion(cctx.versions().next(tx.topologyVersion()));
+ 
              {
-                 Map<UUID, GridDistributedTxMapping<K, V>> futDhtMap = new HashMap<>();
-                 Map<UUID, GridDistributedTxMapping<K, V>> futNearMap = new HashMap<>();
+                 Map<UUID, GridDistributedTxMapping> futDhtMap = new HashMap<>();
+                 Map<UUID, GridDistributedTxMapping> futNearMap = new HashMap<>();
  
 -                boolean hasRemoteNodes = false;
 -
                  // Assign keys to primary nodes.
                  if (!F.isEmpty(writes)) {
-                     for (IgniteTxEntry<K, V> write : writes)
+                     for (IgniteTxEntry write : writes)
 -                        hasRemoteNodes |= map(tx.entry(write.txKey()), futDhtMap, futNearMap);
 +                        map(tx.entry(write.txKey()), futDhtMap, futNearMap);
                  }
  
                  if (!F.isEmpty(reads)) {
-                     for (IgniteTxEntry<K, V> read : reads)
+                     for (IgniteTxEntry read : reads)
 -                        hasRemoteNodes |= map(tx.entry(read.txKey()), futDhtMap, futNearMap);
 +                        map(tx.entry(read.txKey()), futDhtMap, futNearMap);
                  }
 -
 -                tx.needsCompletedVersions(hasRemoteNodes);
              }
  
 +            // We are holding transaction-level locks for entries here, so we can get next write version.
 +            if (tx.onePhaseCommit())
 +                tx.writeVersion(tx.nearXidVersion());
 +            else
 +                tx.writeVersion(cctx.versions().next(tx.topologyVersion()));
 +
              if (isDone())
                  return;
  
@@@ -866,11 -820,11 +847,11 @@@
                              GridCacheContext<K, V> cacheCtx = cached.context();
  
                              if (entry.explicitVersion() == null) {
-                                 GridCacheMvccCandidate<K> added = cached.candidate(version());
+                                 GridCacheMvccCandidate added = cached.candidate(version());
  
 -                                assert added != null || entry.groupLockEntry() : "Null candidate for non-group-lock entry " +
 +                                assert added != null : "Null candidate for non-group-lock entry " +
                                      "[added=" + added + ", entry=" + entry + ']';
 -                                assert added == null || added.dhtLocal() : "Got non-dht-local candidate for prepare future" +
 +                                assert added.dhtLocal() : "Got non-dht-local candidate for prepare future" +
                                      "[added=" + added + ", entry=" + entry + ']';
  
                                  if (added != null && added.ownerVersion() != null)
@@@ -954,13 -910,13 +935,13 @@@
                              tx.subjectId(),
                              tx.taskNameHash());
  
-                         for (IgniteTxEntry<K, V> entry : nearMapping.writes()) {
+                         for (IgniteTxEntry entry : nearMapping.writes()) {
                              try {
-                                 GridCacheMvccCandidate<K> added = entry.cached().candidate(version());
+                                 GridCacheMvccCandidate added = entry.cached().candidate(version());
  
 -                                assert added != null || entry.groupLockEntry() : "Null candidate for non-group-lock entry " +
 +                                assert added != null : "Null candidate for non-group-lock entry " +
                                      "[added=" + added + ", entry=" + entry + ']';
 -                                assert added == null || added.dhtLocal() : "Got non-dht-local candidate for prepare future" +
 +                                assert added.dhtLocal() : "Got non-dht-local candidate for prepare future" +
                                      "[added=" + added + ", entry=" + entry + ']';
  
                                  if (added != null && added.ownerVersion() != null)
@@@ -1001,10 -957,9 +982,10 @@@
       * @return {@code True} if mapped.
       */
      private boolean map(
-         IgniteTxEntry<K, V> entry,
-         Map<UUID, GridDistributedTxMapping<K, V>> futDhtMap,
-         Map<UUID, GridDistributedTxMapping<K, V>> futNearMap
+         IgniteTxEntry entry,
+         Map<UUID, GridDistributedTxMapping> futDhtMap,
 -        Map<UUID, GridDistributedTxMapping> futNearMap) {
++        Map<UUID, GridDistributedTxMapping> futNearMap
 +    ) {
          if (entry.cached().isLocal())
              return false;
  
@@@ -1071,33 -1026,16 +1052,33 @@@
       * @param locMap Exclude map.
       * @return {@code True} if mapped.
       */
 -    private boolean map(IgniteTxEntry entry, Iterable<ClusterNode> nodes,
 -        Map<UUID, GridDistributedTxMapping> globalMap, Map<UUID, GridDistributedTxMapping> locMap) {
 +    private boolean map(
-         IgniteTxEntry<K, V> entry,
++        IgniteTxEntry entry,
 +        Iterable<ClusterNode> nodes,
-         Map<UUID, GridDistributedTxMapping<K, V>> globalMap,
-         Map<UUID, GridDistributedTxMapping<K, V>> locMap
++        Map<UUID, GridDistributedTxMapping> globalMap,
++        Map<UUID, GridDistributedTxMapping> locMap
 +    ) {
          boolean ret = false;
  
          if (nodes != null) {
              for (ClusterNode n : nodes) {
-                 GridDistributedTxMapping<K, V> global = globalMap.get(n.id());
+                 GridDistributedTxMapping global = globalMap.get(n.id());
  
 +                if (!F.isEmpty(entry.entryProcessors())) {
 +                    GridDhtPartitionState state = entry.context().topology().partitionState(n.id(),
 +                        entry.cached().partition());
 +
 +                    if (state != GridDhtPartitionState.OWNING && state != GridDhtPartitionState.EVICTED) {
 +                        V procVal = entry.entryProcessorCalculatedValue();
 +
 +                        entry.op(procVal == null ? DELETE : UPDATE);
 +                        entry.value(procVal, true, false);
 +                        entry.entryProcessors(null);
 +                    }
 +                }
 +
                  if (global == null)
-                     globalMap.put(n.id(), global = new GridDistributedTxMapping<>(n));
+                     globalMap.put(n.id(), global = new GridDistributedTxMapping(n));
  
                  global.add(entry);
  
@@@ -1115,9 -1053,35 +1096,9 @@@
          return ret;
      }
  
 -    /**
 -     * Collects versions of pending candidates versions less than base.
 -     *
 -     * @param entries Tx entries to process.
 -     * @param baseVer Base version.
 -     * @return Collection of pending candidates versions.
 -     */
 -    private Collection<GridCacheVersion> localDhtPendingVersions(Iterable<IgniteTxEntry> entries,
 -        GridCacheVersion baseVer) {
 -        Collection<GridCacheVersion> lessPending = new GridLeanSet<>(5);
 -
 -        for (IgniteTxEntry entry : entries) {
 -            try {
 -                for (GridCacheMvccCandidate cand : entry.cached().localCandidates()) {
 -                    if (cand.version().isLess(baseVer))
 -                        lessPending.add(cand.version());
 -                }
 -            }
 -            catch (GridCacheEntryRemovedException ignored) {
 -                // No-op, no candidates.
 -            }
 -        }
 -
 -        return lessPending;
 -    }
 -
      /** {@inheritDoc} */
      @Override public String toString() {
-         return S.toString(GridDhtTxPrepareFuture.class, this, "super", super.toString());
+         return S.toString(GridDhtTxPrepareFuture.class, this, "xid", tx.xidVersion(), "super", super.toString());
      }
  
      /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
index 795764f,c033273..c5db487
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
@@@ -110,10 -114,12 +112,10 @@@ public class GridDhtTxPrepareRequest ex
      public GridDhtTxPrepareRequest(
          IgniteUuid futId,
          IgniteUuid miniId,
-         long topVer,
-         GridDhtTxLocalAdapter<K, V> tx,
-         Collection<IgniteTxEntry<K, V>> dhtWrites,
-         Collection<IgniteTxEntry<K, V>> nearWrites,
+         AffinityTopologyVersion topVer,
+         GridDhtTxLocalAdapter tx,
+         Collection<IgniteTxEntry> dhtWrites,
+         Collection<IgniteTxEntry> nearWrites,
 -        IgniteTxKey grpLockKey,
 -        boolean partLock,
          Map<UUID, Collection<UUID>> txNodes,
          GridCacheVersion nearXidVer,
          boolean last,

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

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxRemote.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxRemote.java
index ed37ae4,ffbc0a2..9441b3a
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxRemote.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxRemote.java
@@@ -98,8 -103,8 +101,22 @@@ public class GridDhtTxRemote extends Gr
          @Nullable UUID subjId,
          int taskNameHash
      ) {
-         super(ctx, nodeId, rmtThreadId, xidVer, commitVer, sys, concurrency, isolation, invalidate, timeout, txSize,
-             subjId, taskNameHash);
 -        super(ctx, nodeId, rmtThreadId, xidVer, commitVer, sys, plc, concurrency, isolation, invalidate, timeout,
 -            txSize, grpLockKey, subjId, taskNameHash);
++        super(
++            ctx, 
++            nodeId, 
++            rmtThreadId, 
++            xidVer, 
++            commitVer, 
++            sys,
++            plc,
++            concurrency, 
++            isolation, 
++            invalidate, 
++            timeout, 
++            txSize,
++            subjId, 
++            taskNameHash
++        );
  
          assert nearNodeId != null;
          assert rmtFutId != null;
@@@ -134,9 -139,10 +151,9 @@@
       * @param timeout Timeout.
       * @param ctx Cache context.
       * @param txSize Expected transaction size.
 -     * @param grpLockKey Group lock key if transaction is group-lock.
       */
      public GridDhtTxRemote(
-         GridCacheSharedContext<K, V> ctx,
+         GridCacheSharedContext ctx,
          UUID nearNodeId,
          IgniteUuid rmtFutId,
          UUID nodeId,
@@@ -154,8 -161,9 +172,22 @@@
          @Nullable UUID subjId,
          int taskNameHash
      ) {
-         super(ctx, nodeId, rmtThreadId, xidVer, commitVer, sys, concurrency, isolation, invalidate, timeout, txSize,
-             subjId, taskNameHash);
 -        super(ctx, nodeId, rmtThreadId, xidVer, commitVer, sys, plc, concurrency, isolation, invalidate, timeout,
 -            txSize, grpLockKey, subjId, taskNameHash);
++        super(
++            ctx, 
++            nodeId, 
++            rmtThreadId, 
++            xidVer, 
++            commitVer, 
++            sys,
++            plc,
++            concurrency, 
++            isolation, 
++            invalidate, 
++            timeout, 
++            txSize,
++            subjId, 
++            taskNameHash
++        );
  
          assert nearNodeId != null;
          assert rmtFutId != null;

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

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
index a17d011,cdf1638..49c1fb6
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
@@@ -557,12 -575,17 +575,12 @@@ public class GridDhtColocatedCache<K, V
              if (map == null || map.isEmpty())
                  return;
  
-             for (Map.Entry<ClusterNode, GridNearUnlockRequest<K, V>> mapping : map.entrySet()) {
 -            Collection<GridCacheVersion> committed = ctx.tm().committedVersions(ver);
 -            Collection<GridCacheVersion> rolledback = ctx.tm().rolledbackVersions(ver);
 -
+             for (Map.Entry<ClusterNode, GridNearUnlockRequest> mapping : map.entrySet()) {
                  ClusterNode n = mapping.getKey();
  
-                 GridDistributedUnlockRequest<K, V> req = mapping.getValue();
+                 GridDistributedUnlockRequest req = mapping.getValue();
  
-                 if (!F.isEmpty(req.keyBytes()) || !F.isEmpty(req.keys())) {
+                 if (!F.isEmpty(req.keys())) {
 -                    req.completedVersions(committed, rolledback);
 -
                      // We don't wait for reply to this message.
                      ctx.io().send(n, req, ctx.ioPolicy());
                  }

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
index bd51b8c,3087dff..a0ce0eb
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
@@@ -1029,8 -1028,12 +1026,8 @@@ public final class GridDhtColocatedLock
              // If primary node left the grid before lock acquisition, fail the whole future.
              throw newTopologyException(null, primary.id());
  
 -        if (inTx() && tx.groupLock() && !primary.isLocal())
 -            throw new IgniteCheckedException("Failed to start group lock transaction (local node is not primary for " +
 -                " key) [key=" + key + ", primaryNodeId=" + primary.id() + ']');
 -
          if (mapping == null || !primary.id().equals(mapping.node().id()))
-             mapping = new GridNearLockMapping<>(primary, key);
+             mapping = new GridNearLockMapping(primary, key);
          else
              mapping.addKey(key);
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
index bdb52d1,c3d138e..ce614cb
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
@@@ -1028,9 -1017,10 +1015,9 @@@ public final class GridNearLockFuture<K
  
                                          // Lock is held at this point, so we can set the
                                          // returned value if any.
-                                         entry.resetFromPrimary(newVal, newBytes, lockVer, dhtVer, node.id());
+                                         entry.resetFromPrimary(newVal, lockVer, dhtVer, node.id());
  
 -                                        entry.readyNearLock(lockVer, mappedVer, res.committedVersions(),
 -                                            res.rolledbackVersions(), res.pending());
 +                                        entry.readyNearLock(lockVer, mappedVer);
  
                                          if (inTx() && implicitTx() && tx.onePhaseCommit()) {
                                              boolean pass = res.filterResult(i);
@@@ -1157,8 -1150,12 +1147,8 @@@
              // If primary node left the grid before lock acquisition, fail the whole future.
              throw newTopologyException(null, primary.id());
  
 -        if (inTx() && tx.groupLock() && !primary.isLocal())
 -            throw new IgniteCheckedException("Failed to start group lock transaction (local node is not primary for " +
 -                " key) [key=" + key + ", primaryNodeId=" + primary.id() + ']');
 -
          if (mapping == null || !primary.id().equals(mapping.node().id()))
-             mapping = new GridNearLockMapping<>(primary, key);
+             mapping = new GridNearLockMapping(primary, key);
          else
              mapping.addKey(key);
  
@@@ -1390,10 -1374,11 +1367,10 @@@
                              if (inTx() && implicitTx() && tx.onePhaseCommit()) {
                                  boolean pass = res.filterResult(i);
  
-                                 tx.entry(cctx.txKey(k)).filters(pass ? CU.<K, V>empty() : CU.<K, V>alwaysFalse());
+                                 tx.entry(cctx.txKey(k)).filters(pass ? CU.empty0() : CU.alwaysFalse0Arr());
                              }
  
 -                            entry.readyNearLock(lockVer, mappedVer, res.committedVersions(), res.rolledbackVersions(),
 -                                res.pending());
 +                            entry.readyNearLock(lockVer, mappedVer);
  
                              if (retval) {
                                  if (readRecordable)

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
index 6bc286e,696cea4..c86e773
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
@@@ -18,9 -18,10 +18,9 @@@
  package org.apache.ignite.internal.processors.cache.distributed.near;
  
  import org.apache.ignite.*;
- import org.apache.ignite.internal.*;
+ import org.apache.ignite.internal.processors.affinity.*;
  import org.apache.ignite.internal.processors.cache.*;
  import org.apache.ignite.internal.processors.cache.distributed.*;
 -import org.apache.ignite.internal.processors.cache.transactions.*;
  import org.apache.ignite.internal.processors.cache.version.*;
  import org.apache.ignite.internal.util.tostring.*;
  import org.apache.ignite.internal.util.typedef.internal.*;
@@@ -141,9 -148,11 +140,9 @@@ public class GridNearLockRequest extend
              isInvalidate,
              timeout,
              keyCnt,
 -            txSize,
 -            grpLockKey,
 -            partLock);
 +            txSize);
  
-         assert topVer > 0;
+         assert topVer.compareTo(AffinityTopologyVersion.ZERO) > 0;
  
          this.topVer = topVer;
          this.implicitTx = implicitTx;
@@@ -410,8 -463,8 +439,8 @@@
  
                  reader.incrementState();
  
 -            case 24:
 +            case 20:
-                 filterBytes = reader.readObjectArray("filterBytes", MessageCollectionItemType.BYTE_ARR, byte[].class);
+                 filter = reader.readObjectArray("filter", MessageCollectionItemType.MSG, CacheEntryPredicate.class);
  
                  if (!reader.isLastRead())
                      return false;
@@@ -474,8 -543,8 +503,8 @@@
  
                  reader.incrementState();
  
 -            case 34:
 +            case 28:
-                 topVer = reader.readLong("topVer");
+                 topVer = reader.readMessage("topVer");
  
                  if (!reader.isLastRead())
                      return false;

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
----------------------------------------------------------------------


[06/50] [abbrv] ignite git commit: Merge branch sprint-3 into ignite-264

Posted by ag...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/jsr166/ConcurrentLinkedHashMap.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/jsr166/ConcurrentLinkedHashMap.java
index 0000000,2eb27a1..37eb942
mode 000000,100644..100644
--- a/modules/core/src/main/java/org/jsr166/ConcurrentLinkedHashMap.java
+++ b/modules/core/src/main/java/org/jsr166/ConcurrentLinkedHashMap.java
@@@ -1,0 -1,2141 +1,2146 @@@
+ /*
+  * Written by Doug Lea with assistance from members of JCP JSR-166
+  * Expert Group and released to the public domain, as explained at
+  * http://creativecommons.org/publicdomain/zero/1.0/
+  */
+ 
+ /*
+  * The initial version of this file was copied from JSR-166:
+  * http://gee.cs.oswego.edu/dl/concurrency-interest/
+  */
+ 
+ package org.jsr166;
+ 
+ import java.util.*;
+ import java.util.concurrent.*;
+ import java.util.concurrent.locks.*;
+ 
+ import static org.jsr166.ConcurrentLinkedHashMap.QueuePolicy.*;
+ 
+ /**
+  * A hash table supporting full concurrency of retrievals and
+  * adjustable expected concurrency for updates. This class obeys the
+  * same functional specification as {@link java.util.Hashtable}, and
+  * includes versions of methods corresponding to each method of
+  * <tt>Hashtable</tt>. However, even though all operations are
+  * thread-safe, retrieval operations do <em>not</em> entail locking,
+  * and there is <em>not</em> any support for locking the entire table
+  * in a way that prevents all access.  This class is fully
+  * interoperable with <tt>Hashtable</tt> in programs that rely on its
+  * thread safety but not on its synchronization details.
+  *
+  * <p> Retrieval operations (including <tt>get</tt>) generally do not
+  * block, so may overlap with update operations (including
+  * <tt>put</tt> and <tt>remove</tt>). Retrievals reflect the results
+  * of the most recently <em>completed</em> update operations holding
+  * upon their onset.  For aggregate operations such as <tt>putAll</tt>
+  * and <tt>clear</tt>, concurrent retrievals may reflect insertion or
+  * removal of only some entries.  Similarly, Iterators and
+  * Enumerations return elements reflecting the state of the hash table
+  * at some point at or since the creation of the iterator/enumeration.
+  * They do <em>not</em> throw {@link ConcurrentModificationException}.
+  * However, iterators are designed to be used by only one thread at a time.
+  *
+  * <p> The allowed concurrency among update operations is guided by
+  * the optional <tt>concurrencyLevel</tt> constructor argument
+  * (default <tt>16</tt>), which is used as a hint for internal sizing.  The
+  * table is internally partitioned to try to permit the indicated
+  * number of concurrent updates without contention. Because placement
+  * in hash tables is essentially random, the actual concurrency will
+  * vary.  Ideally, you should choose a value to accommodate as many
+  * threads as will ever concurrently modify the table. Using a
+  * significantly higher value than you need can waste space and time,
+  * and a significantly lower value can lead to thread contention. But
+  * overestimates and underestimates within an order of magnitude do
+  * not usually have much noticeable impact. A value of one is
+  * appropriate when it is known that only one thread will modify and
+  * all others will only read. Also, resizing this or any other kind of
+  * hash table is a relatively slow operation, so, when possible, it is
+  * a good idea to provide estimates of expected table sizes in
+  * constructors.
+  *
+  * <p/> This implementation differs from
+  * <tt>HashMap</tt> in that it maintains a doubly-linked list running through
+  * all of its entries.  This linked list defines the iteration ordering,
+  * which is the order in which keys were inserted into the map
+  * (<i>insertion-order</i>).
+  *
+  * <p> NOTE: Access order is not supported by this map.
+  *
+  * Note that insertion order is not affected
+  * if a key is <i>re-inserted</i> into the map. (A key <tt>k</tt> is
+  * reinserted into a map <tt>m</tt> if <tt>m.put(k, v)</tt> is invoked when
+  * <tt>m.containsKey(k)</tt> would return <tt>true</tt> immediately prior to
+  * the invocation.)
+  *
+  * <p>An optional {@code maxCap} may be passed to the map constructor to
+  * create bounded map that will remove stale mappings automatically when new mappings
+  * are added to the map.
+  *
+  * <p/>When iterating over the key set in insertion order one should note that iterator
+  * will see all removes done since the iterator was created, but will see <b>no</b>
+  * inserts to map.
+  *
+  * <p>This class and its views and iterators implement all of the
+  * <em>optional</em> methods of the {@link Map} and {@link Iterator}
+  * interfaces.
+  *
+  * <p> Like {@link Hashtable} but unlike {@link HashMap}, this class
+  * does <em>not</em> allow <tt>null</tt> to be used as a key or value.
+  *
+  * @author Doug Lea
+  * @param <K> the type of keys maintained by this map
+  * @param <V> the type of mapped values
+  */
+ @SuppressWarnings("NullableProblems")
+ public class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V> implements ConcurrentMap<K, V> {
+     /*
+      * The basic strategy is to subdivide the table among Segments,
+      * each of which itself is a concurrently readable hash table.
+      */
+ 
+     /* ---------------- Constants -------------- */
+ 
+     /**
+      * The default initial capacity for this table,
+      * used when not otherwise specified in a constructor.
+      */
+     public static final int DFLT_INIT_CAP = 16;
+ 
+     /**
+      * The default load factor for this table, used when not
+      * otherwise specified in a constructor.
+      */
+     public static final float DFLT_LOAD_FACTOR = 0.75f;
+ 
+     /**
+      * The default concurrency level for this table, used when not
+      * otherwise specified in a constructor.
+      */
+     public static final int DFLT_CONCUR_LVL = 16;
+ 
+     /**
+      * The maximum capacity, used if a higher value is implicitly
+      * specified by either of the constructors with arguments.  MUST
+      * be a power of two <= 1<<30 to ensure that entries are indexable
+      * using ints.
+      */
+     public static final int MAX_CAP_LIMIT = 1 << 30;
+ 
+     /**
+      * The maximum number of segments to allow; used to bound
+      * constructor arguments.
+      */
+     public static final int MAX_SEGS = 1 << 16; // slightly conservative
+ 
+     /**
+      * Number of unsynchronized retries in {@link #size} and {@link #containsValue}
+      * methods before resorting to locking. This is used to avoid
+      * unbounded retries if tables undergo continuous modification
+      * which would make it impossible to obtain an accurate result.
+      */
+     public static final int RETRIES_BEFORE_LOCK = 2;
+ 
+     /* ---------------- Fields -------------- */
+ 
+     /**
+      * Mask value for indexing into segments. The upper bits of a
+      * key's hash code are used to choose the segment.
+      */
+     private final int segmentMask;
+ 
+     /** Shift value for indexing within segments. */
+     private final int segmentShift;
+ 
+     /** The segments, each of which is a specialized hash table. */
+     private final Segment<K, V>[] segments;
+ 
+     /** Key set. */
+     private Set<K> keySet;
+ 
+     /** Key set. */
+     private Set<K> descKeySet;
+ 
+     /** Entry set */
+     private Set<Map.Entry<K, V>> entrySet;
+ 
+     /** Entry set in descending order. */
+     private Set<Map.Entry<K, V>> descEntrySet;
+ 
+     /** Values collection. */
+     private Collection<V> vals;
+ 
+     /** Values collection in descending order. */
+     private Collection<V> descVals;
+ 
+     /** Queue containing order of entries. */
+     private final ConcurrentLinkedDeque8<HashEntry<K, V>> entryQ;
+ 
+     /** Atomic variable containing map size. */
+     private final LongAdder8 size = new LongAdder8();
+ 
+     /** */
+     private final LongAdder8 modCnt = new LongAdder8();
+ 
+     /** */
+     private final int maxCap;
+ 
+     /** */
+     private final QueuePolicy qPlc;
+ 
+     /* ---------------- Small Utilities -------------- */
+ 
+     /**
+      * Applies a supplemental hash function to a given hashCode, which
+      * defends against poor quality hash functions.  This is critical
+      * because ConcurrentHashMap uses power-of-two length hash tables,
+      * that otherwise encounter collisions for hashCodes that do not
+      * differ in lower or upper bits.
+      *
+      * @param h Input hash.
+      * @return Hash.
+      */
+     private static int hash(int h) {
+         // Apply base step of MurmurHash; see http://code.google.com/p/smhasher/
+         // Despite two multiplies, this is often faster than others
+         // with comparable bit-spread properties.
+         h ^= h >>> 16;
+         h *= 0x85ebca6b;
+         h ^= h >>> 13;
+         h *= 0xc2b2ae35;
+ 
+         return ((h >>> 16) ^ h);
+     }
+ 
+     /**
+      * Returns the segment that should be used for key with given hash.
+      *
+      * @param hash the hash code for the key
+      * @return the segment
+      */
+     private Segment<K, V> segmentFor(int hash) {
+         return segments[(hash >>> segmentShift) & segmentMask];
+     }
+ 
+     /* ---------------- Inner Classes -------------- */
+ 
+     /**
+      * ConcurrentHashMap list entry. Note that this is never exported
+      * out as a user-visible Map.Entry.
+      *
+      * Because the value field is volatile, not final, it is legal wrt
+      * the Java Memory Model for an unsynchronized reader to see null
+      * instead of initial value when read via a data race.  Although a
+      * reordering leading to this is not likely to ever actually
+      * occur, the Segment.readValueUnderLock method is used as a
+      * backup in case a null (pre-initialized) value is ever seen in
+      * an unsynchronized access method.
+      */
+     @SuppressWarnings({"PublicInnerClass"})
+     public static final class HashEntry<K, V> {
+         /** Key. */
+         private final K key;
+ 
+         /** Hash of the key after {@code hash()} method is applied. */
+         private final int hash;
+ 
+         /** Value. */
+         private volatile V val;
+ 
+         /** Reference to a node in queue for fast removal operations. */
+         private volatile ConcurrentLinkedDeque8.Node node;
+ 
+         /** Modification count of the map for duplicates exclusion. */
+         private volatile int modCnt;
+ 
+         /** Link to the next entry in a bucket */
+         private final HashEntry<K, V> next;
+ 
+         /**
+          * @param key Key.
+          * @param hash Key hash.
+          * @param next Link to next.
+          * @param val Value.
+          */
+         HashEntry(K key, int hash, HashEntry<K, V> next, V val) {
+             this.key = key;
+             this.hash = hash;
+             this.next = next;
+             this.val = val;
+         }
+ 
+         /**
+          * @param key Key.
+          * @param hash Key hash.
+          * @param next Link to next.
+          * @param val Value.
+          * @param node Queue node.
+          * @param modCnt Mod count.
+          */
+         HashEntry(K key, int hash, HashEntry<K, V> next, V val, ConcurrentLinkedDeque8.Node node, int modCnt) {
+             this.key = key;
+             this.hash = hash;
+             this.next = next;
+             this.val = val;
+             this.node = node;
+             this.modCnt = modCnt;
+         }
+ 
+         /**
+          * Returns key of this entry.
+          *
+          * @return Key.
+          */
+         public K getKey() {
+             return key;
+         }
+ 
+         /**
+          * Return value of this entry.
+          *
+          * @return Value.
+          */
+         public V getValue() {
+             return val;
+         }
+ 
+         /**
+          * Creates new array of entries.
+          *
+          * @param i Size of array.
+          * @param <K> Key type.
+          * @param <V> Value type.
+          * @return Empty array.
+          */
+         @SuppressWarnings("unchecked")
+         static <K, V> HashEntry<K, V>[] newArray(int i) {
+             return new HashEntry[i];
+         }
+     }
+ 
+     /**
+      * Segments are specialized versions of hash tables.  This
+      * subclasses from ReentrantLock opportunistically, just to
+      * simplify some locking and avoid separate construction.
+      */
+     @SuppressWarnings({"TransientFieldNotInitialized"})
+     private final class Segment<K, V> extends ReentrantReadWriteLock {
+         /*
+          * Segments maintain a table of entry lists that are ALWAYS
+          * kept in a consistent state, so can be read without locking.
+          * Next fields of nodes are immutable (final).  All list
+          * additions are performed at the front of each bin. This
+          * makes it easy to check changes, and also fast to traverse.
+          * When nodes would otherwise be changed, new nodes are
+          * created to replace them. This works well for hash tables
+          * since the bin lists tend to be short. (The average length
+          * is less than two for the default load factor threshold.)
+          *
+          * Read operations can thus proceed without locking, but rely
+          * on selected uses of volatiles to ensure that completed
+          * write operations performed by other threads are
+          * noticed. For most purposes, the "count" field, tracking the
+          * number of elements, serves as that volatile variable
+          * ensuring visibility.  This is convenient because this field
+          * needs to be read in many read operations anyway:
+          *
+          *   - All (unsynchronized) read operations must first read the
+          *     "count" field, and should not look at table entries if
+          *     it is 0.
+          *
+          *   - All (synchronized) write operations should write to
+          *     the "count" field after structurally changing any bin.
+          *     The operations must not take any action that could even
+          *     momentarily cause a concurrent read operation to see
+          *     inconsistent data. This is made easier by the nature of
+          *     the read operations in Map. For example, no operation
+          *     can reveal that the table has grown but the threshold
+          *     has not yet been updated, so there are no atomicity
+          *     requirements for this with respect to reads.
+          *
+          * As a guide, all critical volatile reads and writes to the
+          * count field are marked in code comments.
+          */
+ 
+         /** The number of elements in this segment's region. */
+         private transient volatile int cnt;
+ 
+         /**
+          * Number of updates that alter the size of the table. This is
+          * used during bulk-read methods to make sure they see a
+          * consistent snapshot: If modCounts change during a traversal
+          * of segments computing size or checking containsValue, then
+          * we might have an inconsistent view of state so (usually)
+          * must retry.
+          */
+         private transient int modCnt;
+ 
+         /**
+          * The table is rehashed when its size exceeds this threshold.
+          * (The value of this field is always <tt>(int)(capacity *
+          * loadFactor)</tt>.)
+          */
+         private transient int threshold;
+ 
+         /** The per-segment table. */
+         private transient volatile HashEntry<K, V>[] tbl;
+ 
+         /**
+          * The load factor for the hash table.  Even though this value
+          * is same for all segments, it is replicated to avoid needing
+          * links to outer object.
+          */
+         private final float loadFactor;
+ 
+         /** */
+         private final Queue<HashEntry<K, V>> segEntryQ;
+ 
+         /**
+          * @param initCap Segment initial capacity.
+          * @param loadFactor Segment load factor,
+          */
+         Segment(int initCap, float loadFactor) {
+             this.loadFactor = loadFactor;
+ 
+             segEntryQ = qPlc == PER_SEGMENT_Q ? new ArrayDeque<HashEntry<K, V>>() :
+                 qPlc == PER_SEGMENT_Q_OPTIMIZED_RMV ? new ConcurrentLinkedDeque8<HashEntry<K, V>>() : null;
+ 
+             setTable(HashEntry.<K, V>newArray(initCap));
+         }
+ 
+         /**
+          * Sets table to new HashEntry array.
+          * Call only while holding lock or in constructor.
+          *
+          * @param newTbl New hash table
+          */
+         void setTable(HashEntry<K, V>[] newTbl) {
+             threshold = (int)(newTbl.length * loadFactor);
+             tbl = newTbl;
+         }
+ 
+         /**
+          * Returns properly casted first entry of bin for given hash.
+          *
+          * @param hash Hash of the key.
+          * @return Head of bin's linked list.
+          */
+         HashEntry<K, V> getFirst(int hash) {
+             HashEntry<K, V>[] tab = tbl;
+ 
+             return tab[hash & (tab.length - 1)];
+         }
+ 
+         /**
+          * Reads value field of an entry under lock. Called if value
+          * field ever appears to be null. This is possible only if a
+          * compiler happens to reorder a HashEntry initialization with
+          * its table assignment, which is legal under memory model
+          * but is not known to ever occur.
+          *
+          * @param e Entry that needs to be read.
+          * @return Value of entry.
+          */
+         V readValueUnderLock(HashEntry<K, V> e) {
+             readLock().lock();
+ 
+             try {
+                 return e.val;
+             }
+             finally {
+                 readLock().unlock();
+             }
+         }
+ 
+         /* Specialized implementations of map methods */
+ 
+         /**
+          * Performs lock-free read of value for given key.
+          *
+          * @param key Key to be read.
+          * @param hash Hash of the key
+          * @return Stored value
+          */
+         V get(Object key, int hash) {
+             if (cnt != 0) { // read-volatile
+                 HashEntry<K, V> e = getFirst(hash);
+ 
+                 while (e != null) {
+                     if (e.hash == hash && key.equals(e.key)) {
+                         V v = e.val;
+ 
+                         if (v != null)
+                             return v;
+ 
+                         v = readValueUnderLock(e);
+ 
+                         return v; // recheck
+                     }
+ 
+                     e = e.next;
+                 }
+             }
+ 
+             return null;
+         }
+ 
+         /**
+          * Performs lock-based read of value for given key.
+          * In contrast with {@link #get(Object, int)} it is guaranteed
+          * to be consistent with order-based iterators.
+          *
+          * @param key Key to be read.
+          * @param hash Hash of the key
+          * @return Stored value
+          */
+         V getSafe(Object key, int hash) {
+             readLock().lock();
+ 
+             try {
+                 HashEntry<K, V> e = getFirst(hash);
+ 
+                 while (e != null) {
+                     if (e.hash == hash && key.equals(e.key))
+                         return e.val;
+ 
+                     e = e.next;
+                 }
+ 
+                 return null;
+             }
+             finally {
+                 readLock().unlock();
+             }
+         }
+ 
+         /**
+          * Performs lock-free check of key presence.
+          *
+          * @param key Key to lookup.
+          * @param hash Hash of the key.
+          * @return {@code true} if segment contains this key.
+          */
+         boolean containsKey(Object key, int hash) {
+             if (cnt != 0) { // read-volatile
+                 HashEntry<K, V> e = getFirst(hash);
+ 
+                 while (e != null) {
+                     if (e.hash == hash && key.equals(e.key))
+                         return true;
+ 
+                     e = e.next;
+                 }
+             }
+ 
+             return false;
+         }
+ 
+         /**
+          * Performs lock-free check of value presence.
+          *
+          * @param val Value.
+          * @return {@code true} if segment contains this key.
+          */
+         @SuppressWarnings("ForLoopReplaceableByForEach")
+         boolean containsValue(Object val) {
+             if (cnt != 0) { // read-volatile
+                 HashEntry<K, V>[] tab = tbl;
+ 
+                 int len = tab.length;
+ 
+                 for (int i = 0 ; i < len; i++) {
+                     for (HashEntry<K, V> e = tab[i]; e != null; e = e.next) {
+                         V v = e.val;
+ 
+                         if (v == null) // recheck
+                             v = readValueUnderLock(e);
+ 
+                         if (val.equals(v))
+                             return true;
+                     }
+                 }
+             }
+ 
+             return false;
+         }
+ 
+         /**
+          * Performs value replacement for a given key with old value check.
+          *
+          * @param key Key to replace.
+          * @param hash Hash of the key.
+          * @param oldVal Old value.
+          * @param newVal New value
+          * @return {@code true} If value was replaced.
+          */
+         @SuppressWarnings({"unchecked"})
+         boolean replace(K key, int hash, V oldVal, V newVal) {
+             writeLock().lock();
+ 
+             boolean replaced = false;
+ 
+             try {
+                 HashEntry<K, V> e = getFirst(hash);
+ 
+                 while (e != null && (e.hash != hash || !key.equals(e.key)))
+                     e = e.next;
+ 
+                 if (e != null && oldVal.equals(e.val)) {
+                     replaced = true;
+ 
+                     e.val = newVal;
+                 }
+             }
+             finally {
+                 writeLock().unlock();
+             }
+ 
+             return replaced;
+         }
+ 
+         /**
+          * Performs value replacement for a given key with old value check.
+          *
+          * @param key Key to replace.
+          * @param hash Hash of the key.
+          * @param oldVal Old value.
+          * @param newVal New value
+          * @return {@code oldVal}, if value was replaced, non-null object if map
+          *         contained some other value and {@code null} if there were no such key.
+          */
+         @SuppressWarnings({"unchecked"})
+         V replacex(K key, int hash, V oldVal, V newVal) {
+             writeLock().lock();
+ 
+             V replaced = null;
+ 
+             try {
+                 HashEntry<K, V> e = getFirst(hash);
+ 
+                 while (e != null && (e.hash != hash || !key.equals(e.key)))
+                     e = e.next;
+ 
+                 if (e != null) {
+                     if (oldVal.equals(e.val)) {
+                         replaced = oldVal;
+ 
+                         e.val = newVal;
+                     }
+                     else
+                         replaced = e.val;
+                 }
+             }
+             finally {
+                 writeLock().unlock();
+             }
+ 
+             return replaced;
+         }
+ 
+         @SuppressWarnings({"unchecked"})
+         V replace(K key, int hash, V newVal) {
+             writeLock().lock();
+ 
+             V oldVal = null;
+ 
+             try {
+                 HashEntry<K, V> e = getFirst(hash);
+ 
+                 while (e != null && (e.hash != hash || !key.equals(e.key)))
+                     e = e.next;
+ 
+                 if (e != null) {
+                     oldVal = e.val;
+ 
+                     e.val = newVal;
+                 }
+             }
+             finally {
+                 writeLock().unlock();
+             }
+ 
+             return oldVal;
+         }
+ 
+         @SuppressWarnings({"unchecked"})
+         V put(K key, int hash, V val, boolean onlyIfAbsent) {
+             writeLock().lock();
+ 
+             V oldVal;
+ 
+             boolean added = false;
+ 
+             try {
+                 int c = cnt;
+ 
+                 if (c++ > threshold) // ensure capacity
+                     rehash();
+ 
+                 HashEntry<K, V>[] tab = tbl;
+ 
+                 int idx = hash & (tab.length - 1);
+ 
+                 HashEntry<K, V> first = tab[idx];
+ 
+                 HashEntry<K, V> e = first;
+ 
+                 while (e != null && (e.hash != hash || !key.equals(e.key)))
+                     e = e.next;
+ 
+                 boolean modified = false;
+ 
+                 if (e != null) {
+                     oldVal = e.val;
+ 
+                     if (!onlyIfAbsent) {
+                         e.val = val;
+ 
++                        HashEntry<K, V> qEntry = (HashEntry<K, V>)e.node.item();
++
++                        if (qEntry != null && qEntry != e)
++                            qEntry.val = val;
++
+                         modified = true;
+                     }
+                 }
+                 else {
+                     oldVal = null;
+ 
+                     ++modCnt;
+ 
+                     size.increment();
+ 
+                     e = tab[idx] = new HashEntry<>(key, hash, first, val);
+ 
+                     ConcurrentLinkedHashMap.this.modCnt.increment();
+ 
+                     e.modCnt = ConcurrentLinkedHashMap.this.modCnt.intValue();
+ 
+                     cnt = c; // write-volatile
+ 
+                     added = true;
+                 }
+ 
+                 assert !(added && modified);
+ 
+                 if (added) {
+                     switch (qPlc) {
+                         case PER_SEGMENT_Q_OPTIMIZED_RMV:
+                             recordInsert(e, (ConcurrentLinkedDeque8)segEntryQ);
+ 
+                             if (maxCap > 0)
+                                 checkRemoveEldestEntrySegment();
+ 
+                             break;
+ 
+                         case PER_SEGMENT_Q:
+                             segEntryQ.add(e);
+ 
+                             if (maxCap > 0)
+                                 checkRemoveEldestEntrySegment();
+ 
+                             break;
+ 
+                         default:
+                             assert qPlc == SINGLE_Q;
+ 
+                             recordInsert(e, entryQ);
+                     }
+                 }
+             }
+             finally {
+                 writeLock().unlock();
+             }
+ 
+             if (qPlc == SINGLE_Q && added && maxCap > 0)
+                 checkRemoveEldestEntry();
+ 
+             return oldVal;
+         }
+ 
+         /**
+          *
+          */
+         private void checkRemoveEldestEntrySegment() {
+             assert maxCap > 0;
+ 
+             int rmvCnt = sizex() - maxCap;
+ 
+             for (int i = 0; i < rmvCnt; i++) {
+                 HashEntry<K, V> e0 = segEntryQ.poll();
+ 
+                 if (e0 == null)
+                     break;
+ 
+                 removeLocked(e0.key, e0.hash, null /*no need to compare*/, false);
+ 
+                 if (sizex() <= maxCap)
+                     break;
+             }
+         }
+ 
+         /**
+          * This method is called under the segment lock.
+          */
+         @SuppressWarnings({"ForLoopReplaceableByForEach", "unchecked"})
+         void rehash() {
+             HashEntry<K, V>[] oldTbl = tbl;
+             int oldCap = oldTbl.length;
+ 
+             if (oldCap >= MAX_CAP_LIMIT)
+                 return;
+ 
+             /*
+              * Reclassify nodes in each list to new Map.  Because we are
+              * using power-of-two expansion, the elements from each bin
+              * must either stay at same index, or move with a power of two
+              * offset. We eliminate unnecessary node creation by catching
+              * cases where old nodes can be reused because their next
+              * fields won't change. Statistically, at the default
+              * threshold, only about one-sixth of them need cloning when
+              * a table doubles. The nodes they replace will be garbage
+              * collectable as soon as they are no longer referenced by any
+              * reader thread that may be in the midst of traversing table
+              * right now.
+              */
+ 
+             int c = cnt;
+ 
+             HashEntry<K, V>[] newTbl = HashEntry.newArray(oldCap << 1);
+ 
+             threshold = (int)(newTbl.length * loadFactor);
+ 
+             int sizeMask = newTbl.length - 1;
+ 
+             for (int i = 0; i < oldCap; i++) {
+                 // We need to guarantee that any existing reads of old Map can
+                 //  proceed. So we cannot yet null out each bin.
+                 HashEntry<K, V> e = oldTbl[i];
+ 
+                 if (e != null) {
+                     HashEntry<K, V> next = e.next;
+ 
+                     int idx = e.hash & sizeMask;
+ 
+                     //  Single node on list
+                     if (next == null)
+                         newTbl[idx] = e;
+ 
+                     else {
+                         // Reuse trailing consecutive sequence at same slot
+                         HashEntry<K, V> lastRun = e;
+ 
+                         int lastIdx = idx;
+ 
+                         for (HashEntry<K, V> last = next; last != null; last = last.next) {
+                             int k = last.hash & sizeMask;
+ 
+                             if (k != lastIdx) {
+                                 lastIdx = k;
+                                 lastRun = last;
+                             }
+                         }
+ 
+                         newTbl[lastIdx] = lastRun;
+ 
+                         // Clone all remaining nodes
+                         for (HashEntry<K, V> p = e; p != lastRun; p = p.next) {
+                             int k = p.hash & sizeMask;
+ 
+                             HashEntry<K, V> n = newTbl[k];
+ 
+                             HashEntry<K, V> e0 = new HashEntry<>(p.key, p.hash, n, p.val, p.node, p.modCnt);
+ 
+                             newTbl[k] = e0;
+                         }
+                     }
+                 }
+             }
+ 
+             cnt = c;
+ 
+             tbl = newTbl;
+         }
+ 
+         /**
+          * Remove; match on key only if value null, else match both.
+          *
+          * @param key Key to be removed.
+          * @param hash Hash of the key.
+          * @param val Value to match.
+          * @param cleanupQ {@code True} if need to cleanup queue.
+          * @return Old value, if entry existed, {@code null} otherwise.
+          */
+         V remove(Object key, int hash, Object val, boolean cleanupQ) {
+             writeLock().lock();
+ 
+             try {
+                 return removeLocked(key, hash, val, cleanupQ);
+             }
+             finally {
+                 writeLock().unlock();
+             }
+         }
+ 
+         /**
+          * Locked version of remove. Match on key only if value null, else match both.
+          *
+          * @param key Key to be removed.
+          * @param hash Hash of the key.
+          * @param val Value to match.
+          * @param cleanupQ {@code True} if need to cleanup queue.
+          * @return Old value, if entry existed, {@code null} otherwise.
+          */
+         @SuppressWarnings({"unchecked"})
+         V removeLocked(Object key, int hash, Object val, boolean cleanupQ) {
+             int c = cnt - 1;
+ 
+             HashEntry<K, V>[] tab = tbl;
+ 
+             int idx = hash & (tab.length - 1);
+ 
+             HashEntry<K, V> first = tab[idx];
+ 
+             HashEntry<K, V> e = first;
+ 
+             while (e != null && (e.hash != hash || !key.equals(e.key)))
+                 e = e.next;
+ 
+             V oldVal = null;
+ 
+             if (e != null) {
+                 V v = e.val;
+ 
+                 if (val == null || val.equals(v)) {
+                     oldVal = v;
+ 
+                     // All entries following removed node can stay
+                     // in list, but all preceding ones need to be
+                     // cloned.
+                     ++modCnt;
+ 
+                     ConcurrentLinkedHashMap.this.modCnt.increment();
+ 
+                     HashEntry<K, V> newFirst = e.next;
+ 
+                     for (HashEntry<K, V> p = first; p != e; p = p.next)
+                         newFirst = new HashEntry<>(p.key, p.hash, newFirst, p.val, p.node, p.modCnt);
+ 
+                     tab[idx] = newFirst;
+ 
+                     cnt = c; // write-volatile
+ 
+                     size.decrement();
+                 }
+             }
+ 
+             if (oldVal != null && cleanupQ) {
+                 switch (qPlc) {
+                     case PER_SEGMENT_Q_OPTIMIZED_RMV:
+                         ((ConcurrentLinkedDeque8)segEntryQ).unlinkx(e.node);
+ 
+                         e.node = null;
+ 
+                         break;
+ 
+                     case PER_SEGMENT_Q:
+                         // Linear time method call.
+                         segEntryQ.remove(e);
+ 
+                         break;
+ 
+                     default:
+                         assert qPlc == SINGLE_Q;
+ 
+                         entryQ.unlinkx(e.node);
+ 
+                         e.node = null;
+                 }
+             }
+ 
+             return oldVal;
+         }
+ 
+         /**
+          *
+          */
+         void clear() {
+             if (cnt != 0) {
+                 writeLock().lock();
+ 
+                 try {
+                     HashEntry<K, V>[] tab = tbl;
+ 
+                     for (int i = 0; i < tab.length ; i++)
+                         tab[i] = null;
+ 
+                     ++modCnt;
+ 
+                     cnt = 0; // write-volatile
+                 }
+                 finally {
+                     writeLock().unlock();
+                 }
+             }
+         }
+     }
+ 
+     /* ---------------- Public operations -------------- */
+ 
+     /**
+      * Creates a new, empty map with the specified initial
+      * capacity, load factor, concurrency level and max capacity.
+      *
+      * @param initCap the initial capacity. The implementation
+      *      performs internal sizing to accommodate this many elements.
+      * @param loadFactor  the load factor threshold, used to control resizing.
+      *      Resizing may be performed when the average number of elements per
+      *      bin exceeds this threshold.
+      * @param concurLvl the estimated number of concurrently
+      *      updating threads. The implementation performs internal sizing
+      *      to try to accommodate this many threads.
+      * @param maxCap Max capacity ({@code 0} for unbounded).
+      * @param qPlc Queue policy.
+      * @throws IllegalArgumentException if the initial capacity is
+      *      negative or the load factor or concurLvl are
+      *      non-positive.
+      */
+     @SuppressWarnings({"unchecked"})
+     public ConcurrentLinkedHashMap(int initCap, float loadFactor, int concurLvl, int maxCap, QueuePolicy qPlc) {
+         if (!(loadFactor > 0) || initCap < 0 || concurLvl <= 0)
+             throw new IllegalArgumentException();
+ 
+         if (concurLvl > MAX_SEGS)
+             concurLvl = MAX_SEGS;
+ 
+         this.maxCap = maxCap;
+         this.qPlc = qPlc;
+ 
+         entryQ = qPlc == SINGLE_Q ? new ConcurrentLinkedDeque8<HashEntry<K, V>>() : null;
+ 
+         // Find power-of-two sizes best matching arguments
+         int sshift = 0;
+ 
+         int ssize = 1;
+ 
+         while (ssize < concurLvl) {
+             ++sshift;
+             ssize <<= 1;
+         }
+ 
+         segmentShift = 32 - sshift;
+ 
+         segmentMask = ssize - 1;
+ 
+         segments = new Segment[ssize];
+ 
+         if (initCap > MAX_CAP_LIMIT)
+             initCap = MAX_CAP_LIMIT;
+ 
+         int c = initCap / ssize;
+ 
+         if (c * ssize < initCap)
+             ++c;
+ 
+         int cap = 1;
+ 
+         while (cap < c)
+             cap <<= 1;
+ 
+         for (int i = 0; i < segments.length; ++i)
+             segments[i] = new Segment<>(cap, loadFactor);
+     }
+ 
+     /**
+      * Creates a new, empty map with the specified initial
+      * capacity, load factor, concurrency level and max capacity.
+      *
+      * @param initCap the initial capacity. The implementation
+      *      performs internal sizing to accommodate this many elements.
+      * @param loadFactor  the load factor threshold, used to control resizing.
+      *      Resizing may be performed when the average number of elements per
+      *      bin exceeds this threshold.
+      * @param concurLvl the estimated number of concurrently
+      *      updating threads. The implementation performs internal sizing
+      *      to try to accommodate this many threads.
+      * @param maxCap Max capacity ({@code 0} for unbounded).
+      * @throws IllegalArgumentException if the initial capacity is
+      *      negative or the load factor or concurLvl are
+      *      non-positive.
+      */
+     public ConcurrentLinkedHashMap(int initCap, float loadFactor, int concurLvl, int maxCap) {
+         this(initCap, loadFactor, concurLvl, maxCap, SINGLE_Q);
+     }
+ 
+     /**
+      * Creates a new, empty map with the specified initial
+      * capacity, load factor and concurrency level.
+      *
+      * @param initCap the initial capacity. The implementation
+      *      performs internal sizing to accommodate this many elements.
+      * @param loadFactor  the load factor threshold, used to control resizing.
+      *      Resizing may be performed when the average number of elements per
+      *      bin exceeds this threshold.
+      * @param concurLvl the estimated number of concurrently
+      *      updating threads. The implementation performs internal sizing
+      *      to try to accommodate this many threads.
+      * @throws IllegalArgumentException if the initial capacity is
+      *      negative or the load factor or concurLvl are
+      *      non-positive.
+      */
+     @SuppressWarnings({"unchecked"})
+     public ConcurrentLinkedHashMap(int initCap, float loadFactor, int concurLvl) {
+         this(initCap, loadFactor, concurLvl, 0);
+     }
+ 
+     /**
+      * Creates a new, empty map with the specified initial capacity
+      * and load factor and with the default concurrencyLevel (16).
+      *
+      * @param initCap The implementation performs internal
+      * sizing to accommodate this many elements.
+      * @param loadFactor  the load factor threshold, used to control resizing.
+      * Resizing may be performed when the average number of elements per
+      * bin exceeds this threshold.
+      * @throws IllegalArgumentException if the initial capacity of
+      * elements is negative or the load factor is non-positive
+      *
+      * @since 1.6
+      */
+     public ConcurrentLinkedHashMap(int initCap, float loadFactor) {
+         this(initCap, loadFactor, DFLT_CONCUR_LVL);
+     }
+ 
+     /**
+      * Creates a new, empty map with the specified initial capacity,
+      * and with default load factor (0.75) and concurrencyLevel (16).
+      *
+      * @param initCap the initial capacity. The implementation
+      * performs internal sizing to accommodate this many elements.
+      * @throws IllegalArgumentException if the initial capacity of
+      * elements is negative.
+      */
+     public ConcurrentLinkedHashMap(int initCap) {
+         this(initCap, DFLT_LOAD_FACTOR, DFLT_CONCUR_LVL);
+     }
+ 
+     /**
+      * Creates a new, empty map with a default initial capacity (16),
+      * load factor (0.75) and concurrencyLevel (16).
+      */
+     public ConcurrentLinkedHashMap() {
+         this(DFLT_INIT_CAP, DFLT_LOAD_FACTOR, DFLT_CONCUR_LVL);
+     }
+ 
+     /**
+      * Creates a new map with the same mappings as the given map.
+      * The map is created with a capacity of 1.5 times the number
+      * of mappings in the given map or 16 (whichever is greater),
+      * and a default load factor (0.75) and concurrencyLevel (16).
+      *
+      * @param m the map
+      */
+     public ConcurrentLinkedHashMap(Map<? extends K, ? extends V> m) {
+         this(Math.max((int) (m.size() / DFLT_LOAD_FACTOR) + 1, DFLT_INIT_CAP),
+             DFLT_LOAD_FACTOR, DFLT_CONCUR_LVL);
+ 
+         putAll(m);
+     }
+ 
+     /**
+      * Returns <tt>true</tt> if this map contains no key-value mappings.
+      *
+      * @return <tt>true</tt> if this map contains no key-value mappings.
+      */
+     @Override public boolean isEmpty() {
+         Segment<K, V>[] segments = this.segments;
+         /*
+          * We keep track of per-segment modCounts to avoid ABA
+          * problems in which an element in one segment was added and
+          * in another removed during traversal, in which case the
+          * table was never actually empty at any point. Note the
+          * similar use of modCounts in the size() and containsValue()
+          * methods, which are the only other methods also susceptible
+          * to ABA problems.
+          */
+         int[] mc = new int[segments.length];
+         int mcsum = 0;
+ 
+         for (int i = 0; i < segments.length; ++i) {
+             if (segments[i].cnt != 0)
+                 return false;
+             else
+                 mcsum += mc[i] = segments[i].modCnt;
+         }
+ 
+         // If mcsum happens to be zero, then we know we got a snapshot
+         // before any modifications at all were made.  This is
+         // probably common enough to bother tracking.
+         if (mcsum != 0) {
+             for (int i = 0; i < segments.length; ++i) {
+                 if (segments[i].cnt != 0 ||
+                     mc[i] != segments[i].modCnt)
+                     return false;
+             }
+         }
+ 
+         return true;
+     }
+ 
+     /**
+      * Returns the number of key-value mappings in this map.  If the
+      * map contains more than <tt>Integer.MAX_VALUE</tt> elements, returns
+      * <tt>Integer.MAX_VALUE</tt>.
+      *
+      * @return the number of key-value mappings in this map
+      */
+     @SuppressWarnings({"LockAcquiredButNotSafelyReleased"})
+     @Override public int size() {
+         Segment<K, V>[] segments = this.segments;
+         long sum = 0;
+         long check = 0;
+         int[] mc = new int[segments.length];
+ 
+         // Try a few times to get accurate count. On failure due to
+         // continuous async changes in table, resort to locking.
+         for (int k = 0; k < RETRIES_BEFORE_LOCK; ++k) {
+             check = 0;
+             sum = 0;
+             int mcsum = 0;
+ 
+             for (int i = 0; i < segments.length; ++i) {
+                 sum += segments[i].cnt;
+                 mcsum += mc[i] = segments[i].modCnt;
+             }
+ 
+             if (mcsum != 0) {
+                 for (int i = 0; i < segments.length; ++i) {
+                     check += segments[i].cnt;
+ 
+                     if (mc[i] != segments[i].modCnt) {
+                         check = -1; // force retry
+ 
+                         break;
+                     }
+                 }
+             }
+ 
+             if (check == sum)
+                 break;
+         }
+ 
+         if (check != sum) { // Resort to locking all segments
+             sum = 0;
+ 
+             for (Segment<K, V> segment : segments)
+                 segment.readLock().lock();
+ 
+             for (Segment<K, V> segment : segments)
+                 sum += segment.cnt;
+ 
+             for (Segment<K, V> segment : segments)
+                 segment.readLock().unlock();
+         }
+ 
+         return sum > Integer.MAX_VALUE ? Integer.MAX_VALUE : (int)sum;
+     }
+ 
+     /**
+      * @return The number of key-value mappings in this map (constant-time).
+      */
+     public int sizex() {
+         int i = size.intValue();
+ 
+         return i > 0 ? i : 0;
+     }
+ 
+     /**
+      * @return <tt>true</tt> if this map contains no key-value mappings
+      */
+     public boolean isEmptyx() {
+         return sizex() == 0;
+     }
+ 
+     /**
+      * Returns the value to which the specified key is mapped,
+      * or {@code null} if this map contains no mapping for the key.
+      *
+      * <p>More formally, if this map contains a mapping from a key
+      * {@code k} to a value {@code v} such that {@code key.equals(k)},
+      * then this method returns {@code v}; otherwise it returns
+      * {@code null}.  (There can be at most one such mapping.)
+      *
+      * @throws NullPointerException if the specified key is null
+      */
+     @Override public V get(Object key) {
+         int hash = hash(key.hashCode());
+ 
+         return segmentFor(hash).get(key, hash);
+     }
+ 
+     /**
+      * Returns the value to which the specified key is mapped,
+      * or {@code null} if this map contains no mapping for the key.
+      *
+      * <p>More formally, if this map contains a mapping from a key
+      * {@code k} to a value {@code v} such that {@code key.equals(k)},
+      * then this method returns {@code v}; otherwise it returns
+      * {@code null}.  (There can be at most one such mapping.)
+      *
+      * In contrast with {@link #get(Object)} this method acquires
+      * read lock on segment where the key is mapped.
+      *
+      * @throws NullPointerException if the specified key is null
+      */
+     public V getSafe(Object key) {
+         int hash = hash(key.hashCode());
+ 
+         return segmentFor(hash).getSafe(key, hash);
+     }
+ 
+     /**
+      * Tests if the specified object is a key in this table.
+      *
+      * @param  key   possible key
+      * @return <tt>true</tt> if and only if the specified object
+      *         is a key in this table, as determined by the
+      *         <tt>equals</tt> method; <tt>false</tt> otherwise.
+      * @throws NullPointerException if the specified key is null
+      */
+     @Override public boolean containsKey(Object key) {
+         int hash = hash(key.hashCode());
+ 
+         return segmentFor(hash).containsKey(key, hash);
+     }
+ 
+     /**
+      * Returns <tt>true</tt> if this map maps one or more keys to the
+      * specified value. Note: This method requires a full internal
+      * traversal of the hash table, and so is much slower than
+      * method <tt>containsKey</tt>.
+      *
+      * @param val value whose presence in this map is to be tested
+      * @return <tt>true</tt> if this map maps one or more keys to the
+      *         specified value
+      * @throws NullPointerException if the specified value is null
+      */
+     @SuppressWarnings({"LockAcquiredButNotSafelyReleased"})
+     @Override public boolean containsValue(Object val) {
+         if (val == null)
+             throw new NullPointerException();
+ 
+         // See explanation of modCount use above
+ 
+         Segment<K, V>[] segments = this.segments;
+         int[] mc = new int[segments.length];
+ 
+         // Try a few times without locking
+         for (int k = 0; k < RETRIES_BEFORE_LOCK; ++k) {
+             int mcsum = 0;
+ 
+             for (int i = 0; i < segments.length; ++i) {
+                 mcsum += mc[i] = segments[i].modCnt;
+ 
+                 if (segments[i].containsValue(val))
+                     return true;
+             }
+ 
+             boolean cleanSweep = true;
+ 
+             if (mcsum != 0) {
+                 for (int i = 0; i < segments.length; ++i) {
+                     if (mc[i] != segments[i].modCnt) {
+                         cleanSweep = false;
+ 
+                         break;
+                     }
+                 }
+             }
+ 
+             if (cleanSweep)
+                 return false;
+         }
+ 
+         // Resort to locking all segments
+         for (Segment<K, V> segment : segments)
+             segment.readLock().lock();
+ 
+         boolean found = false;
+ 
+         try {
+             for (Segment<K, V> segment : segments) {
+                 if (segment.containsValue(val)) {
+                     found = true;
+ 
+                     break;
+                 }
+             }
+         } finally {
+             for (Segment<K, V> segment : segments)
+                 segment.readLock().unlock();
+         }
+ 
+         return found;
+     }
+ 
+     /**
+      * Legacy method testing if some key maps into the specified value
+      * in this table.  This method is identical in functionality to
+      * {@link #containsValue}, and exists solely to ensure
+      * full compatibility with class {@link java.util.Hashtable},
+      * which supported this method prior to introduction of the
+      * Java Collections framework.
+ 
+      * @param  val a value to search for
+      * @return <tt>true</tt> if and only if some key maps to the
+      *         <tt>value</tt> argument in this table as
+      *         determined by the <tt>equals</tt> method;
+      *         <tt>false</tt> otherwise
+      * @throws NullPointerException if the specified value is null
+      */
+     public boolean contains(Object val) {
+         return containsValue(val);
+     }
+ 
+     /**
+      * Maps the specified key to the specified value in this table.
+      * Neither the key nor the value can be null.
+      *
+      * <p> The value can be retrieved by calling the <tt>get</tt> method
+      * with a key that is equal to the original key.
+      *
+      * @param key key with which the specified value is to be associated
+      * @param val value to be associated with the specified key
+      * @return the previous value associated with <tt>key</tt>, or
+      *         <tt>null</tt> if there was no mapping for <tt>key</tt>
+      * @throws NullPointerException if the specified key or value is null
+      */
+     @Override public V put(K key, V val) {
+         if (val == null)
+             throw new NullPointerException();
+ 
+         int hash = hash(key.hashCode());
+ 
+         return segmentFor(hash).put(key, hash, val, false);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      *
+      * @return the previous value associated with the specified key,
+      *         or <tt>null</tt> if there was no mapping for the key
+      * @throws NullPointerException if the specified key or value is null
+      */
+     @Override public V putIfAbsent(K key, V val) {
+         if (val == null)
+             throw new NullPointerException();
+ 
+         int hash = hash(key.hashCode());
+ 
+         return segmentFor(hash).put(key, hash, val, true);
+     }
+ 
+     /**
+      * Copies all of the mappings from the specified map to this one.
+      * These mappings replace any mappings that this map had for any of the
+      * keys currently in the specified map.
+      *
+      * @param m mappings to be stored in this map
+      */
+     @Override public void putAll(Map<? extends K, ? extends V> m) {
+         for (Map.Entry<? extends K, ? extends V> e : m.entrySet())
+             put(e.getKey(), e.getValue());
+     }
+ 
+     /**
+      * Removes the key (and its corresponding value) from this map.
+      * This method does nothing if the key is not in the map.
+      *
+      * @param  key the key that needs to be removed
+      * @return the previous value associated with <tt>key</tt>, or
+      *         <tt>null</tt> if there was no mapping for <tt>key</tt>
+      * @throws NullPointerException if the specified key is null
+      */
+     @Override public V remove(Object key) {
+         int hash = hash(key.hashCode());
+ 
+         return segmentFor(hash).remove(key, hash, null, true);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      *
+      * @throws NullPointerException if the specified key is null
+      */
+     @SuppressWarnings("NullableProblems")
+     @Override public boolean remove(Object key, Object val) {
+         int hash = hash(key.hashCode());
+ 
+         return val != null && segmentFor(hash).remove(key, hash, val, true) != null;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      *
+      * @throws NullPointerException if any of the arguments are null
+      */
+     @SuppressWarnings("NullableProblems")
+     @Override public boolean replace(K key, V oldVal, V newVal) {
+         if (oldVal == null || newVal == null)
+             throw new NullPointerException();
+ 
+         int hash = hash(key.hashCode());
+ 
+         return segmentFor(hash).replace(key, hash, oldVal, newVal);
+     }
+ 
+     /**
+      * Replaces the entry for a key only if currently mapped to a given value.
+      * This is equivalent to
+      * <pre>
+      *   if (map.containsKey(key)) {
+      *       if (map.get(key).equals(oldValue)) {
+      *           map.put(key, newValue);
+      *           return oldValue;
+      *      } else
+      *          return map.get(key);
+      *   } else return null;</pre>
+      * except that the action is performed atomically.
+      *
+      * @param key key with which the specified value is associated
+      * @param oldVal value expected to be associated with the specified key
+      * @param newVal value to be associated with the specified key
+      * @return {@code oldVal}, if value was replaced, non-null previous value if map
+      *        contained some other value and {@code null} if there were no such key.
+      */
+     public V replacex(K key, V oldVal, V newVal) {
+         if (oldVal == null || newVal == null)
+             throw new NullPointerException();
+ 
+         int hash = hash(key.hashCode());
+ 
+         return segmentFor(hash).replacex(key, hash, oldVal, newVal);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      *
+      * @return the previous value associated with the specified key,
+      *         or <tt>null</tt> if there was no mapping for the key
+      * @throws NullPointerException if the specified key or value is null
+      */
+     @SuppressWarnings("NullableProblems")
+     @Override public V replace(K key, V val) {
+         if (val == null)
+             throw new NullPointerException();
+ 
+         int hash = hash(key.hashCode());
+ 
+         return segmentFor(hash).replace(key, hash, val);
+     }
+ 
+     /**
+      * Removes all of the mappings from this map.
+      */
+     @Override public void clear() {
+         for (Segment<K, V> segment : segments)
+             segment.clear();
+     }
+ 
+     /**
+      * Returns a {@link Set} view of the keys contained in this map.
+      * The set is backed by the map, so changes to the map are
+      * reflected in the set, and vice-versa.  The set supports element
+      * removal, which removes the corresponding mapping from this map,
+      * via the <tt>Iterator.remove</tt>, <tt>Set.remove</tt>,
+      * <tt>removeAll</tt>, <tt>retainAll</tt>, and <tt>clear</tt>
+      * operations.  It does not support the <tt>add</tt> or
+      * <tt>addAll</tt> operations.
+      *
+      * <p>The view's <tt>iterator</tt> is a "weakly consistent" iterator
+      * that will never throw {@link ConcurrentModificationException},
+      * and guarantees to traverse elements as they existed upon
+      * construction of the iterator, and may (but is not guaranteed to)
+      * reflect any modifications subsequent to construction.
+      */
+     @Override public Set<K> keySet() {
+         Set<K> ks = keySet;
+ 
+         return (ks != null) ? ks : (keySet = new KeySet());
+     }
+ 
+     /**
+      * Returns a {@link Set} view of the keys contained in this map
+      * in descending order.
+      * The set is backed by the map, so changes to the map are
+      * reflected in the set, and vice-versa.  The set supports element
+      * removal, which removes the corresponding mapping from this map,
+      * via the <tt>Iterator.remove</tt>, <tt>Set.remove</tt>,
+      * <tt>removeAll</tt>, <tt>retainAll</tt>, and <tt>clear</tt>
+      * operations.  It does not support the <tt>add</tt> or
+      * <tt>addAll</tt> operations.
+      *
+      * <p>The view's <tt>iterator</tt> is a "weakly consistent" iterator
+      * that will never throw {@link ConcurrentModificationException},
+      * and guarantees to traverse elements as they existed upon
+      * construction of the iterator, and may (but is not guaranteed to)
+      * reflect any modifications subsequent to construction.
+      */
+     public Set<K> descendingKeySet() {
+         Set<K> ks = descKeySet;
+ 
+         return (ks != null) ? ks : (descKeySet = new KeySetDescending());
+     }
+ 
+     /**
+      * Returns a {@link Collection} view of the values contained in this map.
+      * The collection is backed by the map, so changes to the map are
+      * reflected in the collection, and vice-versa.  The collection
+      * supports element removal, which removes the corresponding
+      * mapping from this map, via the <tt>Iterator.remove</tt>,
+      * <tt>Collection.remove</tt>, <tt>removeAll</tt>,
+      * <tt>retainAll</tt>, and <tt>clear</tt> operations.  It does not
+      * support the <tt>add</tt> or <tt>addAll</tt> operations.
+      *
+      * <p>The view's <tt>iterator</tt> is a "weakly consistent" iterator
+      * that will never throw {@link ConcurrentModificationException},
+      * and guarantees to traverse elements as they existed upon
+      * construction of the iterator, and may (but is not guaranteed to)
+      * reflect any modifications subsequent to construction.
+      */
+     @Override public Collection<V> values() {
+         Collection<V> vs = vals;
+ 
+         return (vs != null) ? vs : (vals = new Values());
+     }
+ 
+     /**
+      * Returns a {@link Collection} view of the values contained in this map
+      * in descending order.
+      * The collection is backed by the map, so changes to the map are
+      * reflected in the collection, and vice-versa.  The collection
+      * supports element removal, which removes the corresponding
+      * mapping from this map, via the <tt>Iterator.remove</tt>,
+      * <tt>Collection.remove</tt>, <tt>removeAll</tt>,
+      * <tt>retainAll</tt>, and <tt>clear</tt> operations.  It does not
+      * support the <tt>add</tt> or <tt>addAll</tt> operations.
+      *
+      * <p>The view's <tt>iterator</tt> is a "weakly consistent" iterator
+      * that will never throw {@link ConcurrentModificationException},
+      * and guarantees to traverse elements as they existed upon
+      * construction of the iterator, and may (but is not guaranteed to)
+      * reflect any modifications subsequent to construction.
+      */
+     public Collection<V> descendingValues() {
+         Collection<V> vs = descVals;
+ 
+         return (vs != null) ? vs : (descVals = new ValuesDescending());
+     }
+ 
+     /**
+      * Returns a {@link Set} view of the mappings contained in this map.
+      * The set is backed by the map, so changes to the map are
+      * reflected in the set, and vice-versa.  The set supports element
+      * removal, which removes the corresponding mapping from the map,
+      * via the <tt>Iterator.remove</tt>, <tt>Set.remove</tt>,
+      * <tt>removeAll</tt>, <tt>retainAll</tt>, and <tt>clear</tt>
+      * operations.  It does not support the <tt>add</tt> or
+      * <tt>addAll</tt> operations.
+      *
+      * <p>The view's <tt>iterator</tt> is a "weakly consistent" iterator
+      * that will never throw {@link ConcurrentModificationException},
+      * and guarantees to traverse elements as they existed upon
+      * construction of the iterator, and may (but is not guaranteed to)
+      * reflect any modifications subsequent to construction.
+      */
+     @Override public Set<Map.Entry<K, V>> entrySet() {
+         Set<Map.Entry<K, V>> es = entrySet;
+ 
+         return (es != null) ? es : (entrySet = new EntrySet());
+     }
+ 
+     /**
+      * Returns a {@link Set} view of the mappings contained in this map
+      * in descending order.
+      * The set is backed by the map, so changes to the map are
+      * reflected in the set, and vice-versa.  The set supports element
+      * removal, which removes the corresponding mapping from the map,
+      * via the <tt>Iterator.remove</tt>, <tt>Set.remove</tt>,
+      * <tt>removeAll</tt>, <tt>retainAll</tt>, and <tt>clear</tt>
+      * operations.  It does not support the <tt>add</tt> or
+      * <tt>addAll</tt> operations.
+      *
+      * <p>The view's <tt>iterator</tt> is a "weakly consistent" iterator
+      * that will never throw {@link ConcurrentModificationException},
+      * and guarantees to traverse elements as they existed upon
+      * construction of the iterator, and may (but is not guaranteed to)
+      * reflect any modifications subsequent to construction.
+      */
+     public Set<Map.Entry<K, V>> descendingEntrySet() {
+         Set<Map.Entry<K, V>> es = descEntrySet;
+ 
+         return (es != null) ? es : (descEntrySet = new EntrySetDescending());
+     }
+ 
+     /**
+      * Returns an enumeration of the keys in this table.
+      *
+      * @return an enumeration of the keys in this table.
+      * @see #keySet()
+      */
+     public Enumeration<K> keys() {
+         return new KeyIterator(true);
+     }
+ 
+     /**
+      * Returns an enumeration of the keys in this table in descending order.
+      *
+      * @return an enumeration of the keys in this table in descending order.
+      * @see #keySet()
+      */
+     public Enumeration<K> descendingKeys() {
+         return new KeyIterator(false);
+     }
+ 
+     /**
+      * Returns an enumeration of the values in this table.
+      *
+      * @return an enumeration of the values in this table.
+      * @see #values()
+      */
+     public Enumeration<V> elements() {
+         return new ValueIterator(true);
+     }
+ 
+     /**
+      * Returns an enumeration of the values in this table in descending order.
+      *
+      * @return an enumeration of the values in this table in descending order.
+      * @see #values()
+      */
+     public Enumeration<V> descendingElements() {
+         return new ValueIterator(false);
+     }
+ 
+     /**
+      * This method is called by hash map whenever a new entry is inserted into map.
+      * <p>
+      * This method is called outside the segment-protection lock and may be called concurrently.
+      *
+      * @param e The new inserted entry.
+      */
+     @SuppressWarnings({"unchecked"})
+     private void recordInsert(HashEntry e, ConcurrentLinkedDeque8 q) {
+         e.node = q.addx(e);
+     }
+ 
+     /**
+      * Concurrently removes eldest entry from the map.
+      */
+     private void checkRemoveEldestEntry() {
+         assert maxCap > 0;
+         assert qPlc == SINGLE_Q;
+ 
+         int sizex = sizex();
+ 
+         for (int i = maxCap; i < sizex; i++) {
+             HashEntry<K, V> e = entryQ.poll();
+ 
+             if (e != null)
+                 segmentFor(e.hash).remove(e.key, e.hash, e.val, false);
+             else
+                 return;
+ 
+             if (sizex() <= maxCap)
+                 return;
+         }
+     }
+ 
+     /**
+      * This method is intended for test purposes only.
+      *
+      * @return Queue.
+      */
+     public ConcurrentLinkedDeque8<HashEntry<K, V>> queue() {
+         return entryQ;
+     }
+ 
+     /**
+      * @return Queue policy.
+      */
+     public QueuePolicy policy() {
+         return qPlc;
+     }
+ 
+     /**
+      * Class implementing iteration over map entries.
+      */
+     private abstract class HashIterator {
+         /** Underlying collection iterator. */
+         private Iterator<HashEntry<K, V>> delegate;
+ 
+         /** Last returned entry, used in {@link #remove()} method. */
+         private HashEntry<K, V> lastReturned;
+ 
+         /** Next entry to return */
+         private HashEntry<K, V> nextEntry;
+ 
+         /** The map modification count at the creation time. */
+         private int modCnt;
+ 
+         /**
+          * @param asc {@code True} for ascending iterator.
+          */
+         HashIterator(boolean asc) {
+             // TODO GG-4788 - Need to fix iterators for ConcurrentLinkedHashMap in perSegment mode
+             if (qPlc != SINGLE_Q)
+                 throw new IllegalStateException("Iterators are not supported in 'perSegmentQueue' modes.");
+ 
+             modCnt = ConcurrentLinkedHashMap.this.modCnt.intValue();
+ 
+             // Init delegate.
+             delegate = asc ? entryQ.iterator() : entryQ.descendingIterator();
+ 
+             advance();
+         }
+ 
+         /**
+          * @return Copy of the queue.
+          */
+         private Deque<HashEntry<K, V>> copyQueue() {
+             int i = entryQ.sizex();
+ 
+             Deque<HashEntry<K, V>> res = new ArrayDeque<>(i);
+ 
+             Iterator<HashEntry<K, V>> iter = entryQ.iterator();
+ 
+             while (iter.hasNext() && i-- >= 0)
+                 res.add(iter.next());
+ 
+             assert !iter.hasNext() : "Entries queue has been modified.";
+ 
+             return res;
+         }
+ 
+         /**
+          * @return {@code true} If iterator has elements to iterate.
+          */
+         public boolean hasMoreElements() {
+             return hasNext();
+         }
+ 
+         /**
+          * @return {@code true} If iterator has elements to iterate.
+          */
+         public boolean hasNext() {
+             return nextEntry != null;
+         }
+ 
+         /**
+          * @return Next entry.
+          */
+         HashEntry<K, V> nextEntry() {
+             if (nextEntry == null)
+                 throw new NoSuchElementException();
+ 
+             lastReturned = nextEntry;
+ 
+             advance();
+ 
+             return lastReturned;
+         }
+ 
+         /**
+          * Removes entry returned by {@link #nextEntry()}.
+          */
+         public void remove() {
+             if (lastReturned == null)
+                 throw new IllegalStateException();
+ 
+             ConcurrentLinkedHashMap.this.remove(lastReturned.key);
+ 
+             lastReturned = null;
+         }
+ 
+         /**
+          * Moves iterator to the next position.
+          */
+         private void advance() {
+             nextEntry = null;
+ 
+             while (delegate.hasNext()) {
+                 HashEntry<K, V> n = delegate.next();
+ 
+                 if (n.modCnt <= modCnt) {
+                     nextEntry = n;
+ 
+                     break;
+                 }
+             }
+         }
+     }
+ 
+     /**
+      * Key iterator implementation.
+      */
+     private final class KeyIterator extends HashIterator implements Iterator<K>, Enumeration<K> {
+         /**
+          * @param asc {@code True} for ascending iterator.
+          */
+         private KeyIterator(boolean asc) {
+             super(asc);
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public K next() {
+             return nextEntry().key;
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public K nextElement() {
+             return nextEntry().key;
+         }
+     }
+ 
+     /**
+      * Value iterator implementation.
+      */
+     private final class ValueIterator extends HashIterator implements Iterator<V>, Enumeration<V> {
+         /**
+          * @param asc {@code True} for ascending iterator.
+          */
+         private ValueIterator(boolean asc) {
+             super(asc);
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public V next() {
+             return nextEntry().val;
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public V nextElement() {
+             return nextEntry().val;
+         }
+     }
+ 
+     /**
+      * Custom Entry class used by EntryIterator.next(), that relays
+      * setValue changes to the underlying map.
+      */
+     private final class WriteThroughEntry extends AbstractMap.SimpleEntry<K, V> {
+         /**
+          * @param k Key
+          * @param v Value
+          */
+         WriteThroughEntry(K k, V v) {
+             super(k,v);
+         }
+ 
+         /**
+          * Set our entry's value and write through to the map. The
+          * value to return is somewhat arbitrary here. Since a
+          * WriteThroughEntry does not necessarily track asynchronous
+          * changes, the most recent "previous" value could be
+          * different from what we return (or could even have been
+          * removed in which case the put will re-establish). We do not
+          * and cannot guarantee more.
+          */
+         @Override public V setValue(V val) {
+             if (val == null)
+                 throw new NullPointerException();
+ 
+             V v = super.setValue(val);
+ 
+             put(getKey(), val);
+ 
+             return v;
+         }
+     }
+ 
+     /**
+      * Entry iterator implementation.
+      */
+     private final class EntryIterator extends HashIterator implements Iterator<Entry<K, V>> {
+         /**
+          * @param asc {@code True} for ascending iterator.
+          */
+         private EntryIterator(boolean asc) {
+             super(asc);
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public Map.Entry<K, V> next() {
+             HashEntry<K, V> e = nextEntry();
+ 
+             return new WriteThroughEntry(e.key, e.val);
+         }
+     }
+ 
+     /**
+      * Key set of the map.
+      */
+     private abstract class AbstractKeySet extends AbstractSet<K> {
+         /** {@inheritDoc} */
+         @Override public int size() {
+             return ConcurrentLinkedHashMap.this.size();
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public boolean contains(Object o) {
+             return containsKey(o);
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public boolean remove(Object o) {
+             return ConcurrentLinkedHashMap.this.remove(o) != null;
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public void clear() {
+             ConcurrentLinkedHashMap.this.clear();
+         }
+     }
+ 
+     /**
+      * Key set of the map.
+      */
+     private final class KeySet extends AbstractKeySet {
+         /** {@inheritDoc} */
+         @Override public Iterator<K> iterator() {
+             return new KeyIterator(true);
+         }
+     }
+ 
+     /**
+      * Key set of the map.
+      */
+     private final class KeySetDescending extends AbstractKeySet {
+         /** {@inheritDoc} */
+         @Override public Iterator<K> iterator() {
+             return new KeyIterator(false);
+         }
+     }
+ 
+     /**
+      * Values collection of the map.
+      */
+     private abstract class AbstractValues extends AbstractCollection<V> {
+         /** {@inheritDoc} */
+         @Override public int size() {
+             return ConcurrentLinkedHashMap.this.size();
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public boolean contains(Object o) {
+             return containsValue(o);
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public void clear() {
+             ConcurrentLinkedHashMap.this.clear();
+         }
+     }
+ 
+     /**
+      * Values collection of the map.
+      */
+     private final class Values extends AbstractValues {
+         /** {@inheritDoc} */
+         @Override public Iterator<V> iterator() {
+             return new ValueIterator(true);
+         }
+     }
+ 
+     /**
+      * Values collection of the map.
+      */
+     private final class ValuesDescending extends AbstractValues {
+         /** {@inheritDoc} */
+         @Override public Iterator<V> iterator() {
+             return new ValueIterator(false);
+         }
+     }
+ 
+     /**
+      * Entry set implementation.
+      */
+     private abstract class AbstractEntrySet extends AbstractSet<Map.Entry<K, V>> {
+         /** {@inheritDoc} */
+         @Override public boolean contains(Object o) {
+             if (!(o instanceof Map.Entry))
+                 return false;
+ 
+             Map.Entry<?,?> e = (Map.Entry<?,?>)o;
+ 
+             V v = get(e.getKey());
+ 
+             return v != null && v.equals(e.getValue());
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public boolean remove(Object o) {
+             if (!(o instanceof Map.Entry))
+                 return false;
+ 
+             Map.Entry<?,?> e = (Map.Entry<?,?>)o;
+ 
+             return ConcurrentLinkedHashMap.this.remove(e.getKey(), e.getValue());
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public int size() {
+             return ConcurrentLinkedHashMap.this.size();
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public void clear() {
+             ConcurrentLinkedHashMap.this.clear();
+         }
+     }
+ 
+     /**
+      * Entry set implementation.
+      */
+     private final class EntrySet extends AbstractEntrySet {
+         /** {@inheritDoc} */
+         @Override public Iterator<Map.Entry<K, V>> iterator() {
+             return new EntryIterator(true);
+         }
+     }
+ 
+     /**
+      * Entry set implementation.
+      */
+     private final class EntrySetDescending extends AbstractEntrySet {
+         /** {@inheritDoc} */
+         @Override public Iterator<Map.Entry<K, V>> iterator() {
+             return new EntryIterator(false);
+         }
+     }
+ 
+     /**
+      * Defines queue policy for this hash map.
+      */
+     @SuppressWarnings("PublicInnerClass")
+     public enum QueuePolicy {
+         /**
+          * Default policy. Single queue is maintained. Iteration order is preserved.
+          */
+         SINGLE_Q,
+ 
+         /**
+          * Instance of {@code ArrayDeque} is created for each segment. This gives
+          * the fastest &quot;natural&quot; evicts for bounded maps.
+          * <p>
+          * NOTE: Remove operations on map are slower than with other policies.
+          */
+         PER_SEGMENT_Q,
+ 
+         /**
+          * Instance of {@code GridConcurrentLinkedDequeue} is created for each segment. This gives
+          * faster &quot;natural&quot; evicts for bounded queues and better remove operation times.
+          */
+         PER_SEGMENT_Q_OPTIMIZED_RMV
+     }
+ }

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccPartitionedSelfTest.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccPartitionedSelfTest.java
index 7dddd3a,c0054ac..5b7ebef
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccPartitionedSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccPartitionedSelfTest.java
@@@ -138,10 -191,10 +136,10 @@@ public class GridCacheMvccPartitionedSe
          GridCacheVersion ver1 = version(1);
          GridCacheVersion ver2 = version(2);
  
-         GridCacheMvccCandidate<String> c1 = entry.addNearLocal(node1, 1, ver1, 0, true);
-         GridCacheMvccCandidate<String> c2 = entry.addNearLocal(node1, 1, ver2, 0, true);
+         GridCacheMvccCandidate c1 = entry.addNearLocal(node1, 1, ver1, 0, true);
+         GridCacheMvccCandidate c2 = entry.addNearLocal(node1, 1, ver2, 0, true);
  
 -        entry.readyNearLocal(ver2, ver2,  empty(), empty(), empty());
 +        entry.readyNearLocal(ver2, ver2);
  
          checkLocalOwner(c2, ver2, false);
          checkLocal(c1, ver1, false, false, false);
@@@ -287,13 -497,10 +285,13 @@@
          rmtCands = entry.remoteMvccSnapshot();
  
          assertNull(entry.anyOwner());
 -        assertEquals(ver3, rmtCands.iterator().next().version());
 +
 +        entry.doneRemote(ver1);
 +
 +        assertEquals(ver1, rmtCands.iterator().next().version());
          assertTrue(rmtCands.iterator().next().owner());
  
-         GridCacheMvccCandidate<String> cand = nearLocCands.iterator().next();
+         GridCacheMvccCandidate cand = nearLocCands.iterator().next();
  
          assertTrue(cand.ready());
          assertFalse(cand.owner());
@@@ -335,9 -543,9 +333,9 @@@
  
          assertNull(entry.anyOwner());
          assertEquals(ver1, rmtCands.iterator().next().version());
 -        assertTrue(rmtCands.iterator().next().owner());
 +        assertFalse(rmtCands.iterator().next().owner());
  
-         GridCacheMvccCandidate<String> cand = nearLocCands.iterator().next();
+         GridCacheMvccCandidate cand = nearLocCands.iterator().next();
  
          assertTrue(cand.ready());
          assertFalse(cand.used());

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java
index c197102,be7e3c9..4f03d5b
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java
@@@ -392,10 -532,8 +392,10 @@@ public class GridCacheMvccSelfTest exte
          entry.addRemote(node2, 7, ver7, 0, false, true);
          entry.addRemote(node2, 8, ver8, 0, false, true);
  
-         GridCacheMvccCandidate<String> doomed = entry.addRemote(node2, 6, ver6, 0, false, true);
+         GridCacheMvccCandidate doomed = entry.addRemote(node2, 6, ver6, 0, false, true);
  
 +        entry.doneRemote(ver6);
 +
          // No reordering happens.
          checkOrder(entry.remoteMvccSnapshot(), ver1, ver2, ver3, ver4, ver5, ver7, ver8, ver6);
  
@@@ -582,10 -807,10 +582,10 @@@
      /**
       *
       */
 -    public void testCompletedWithBaseNotPresentInTheMiddle() {
 +    public void testNoReordering() {
          GridCacheAdapter<String, String> cache = grid.internalCache();
  
-         GridCacheTestEntryEx<String, String> entry = new GridCacheTestEntryEx<>(cache.context(), "1");
+         GridCacheTestEntryEx entry = new GridCacheTestEntryEx(cache.context(), "1");
  
          UUID node1 = UUID.randomUUID();
          UUID node2 = UUID.randomUUID();
@@@ -1195,8 -1645,8 +1195,8 @@@
       * @param cands Candidates to check order for.
       * @param vers Ordered versions.
       */
-     private void checkOrder(Collection<GridCacheMvccCandidate<String>> cands, GridCacheVersion... vers) {
+     private void checkOrder(Collection<GridCacheMvccCandidate> cands, GridCacheVersion... vers) {
 -        assert cands.size() == vers.length;
 +        assertEquals(vers.length, cands.size());
  
          int i = 0;
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
index 8263f76,bacd832..91b53cf
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
@@@ -214,10 -239,15 +215,10 @@@ public class GridCacheTestEntryEx exten
      /**
       * @param ver Ready near lock version.
       * @param mapped Mapped version.
 -     * @param committedVers Committed versions.
 -     * @param rolledbackVers Rolled back versions.
 -     * @param pending Pending versions.
       * @return Lock owner.
       */
-     @Nullable public GridCacheMvccCandidate<K> readyNearLocal(GridCacheVersion ver, GridCacheVersion mapped) {
 -    @Nullable public GridCacheMvccCandidate readyNearLocal(GridCacheVersion ver, GridCacheVersion mapped,
 -        Collection<GridCacheVersion> committedVers, Collection<GridCacheVersion> rolledbackVers,
 -        Collection<GridCacheVersion> pending) {
 -        return mvcc.readyNearLocal(ver, mapped, committedVers, rolledbackVers, pending);
++    @Nullable public GridCacheMvccCandidate readyNearLocal(GridCacheVersion ver, GridCacheVersion mapped) {
 +        return mvcc.readyNearLocal(ver, mapped);
      }
  
      /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/test/java/org/apache/ignite/lang/utils/GridConcurrentLinkedHashMapSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/jta/src/main/java/org/apache/ignite/internal/processors/cache/jta/CacheJtaManager.java
----------------------------------------------------------------------


[39/50] [abbrv] ignite git commit: IGNITE-264 - Corrected test.

Posted by ag...@apache.org.
IGNITE-264 - Corrected test.


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

Branch: refs/heads/ignite-264
Commit: 556514a7fe9821f5608ec96125712a5f1b6c73fa
Parents: 19cf9fc
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Thu Aug 27 11:46:16 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Thu Aug 27 11:46:16 2015 -0700

----------------------------------------------------------------------
 .../internal/processors/cache/IgniteInternalCacheTypesTest.java    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/556514a7/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteInternalCacheTypesTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteInternalCacheTypesTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteInternalCacheTypesTest.java
index 8c2a0f8..8c80446 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteInternalCacheTypesTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteInternalCacheTypesTest.java
@@ -129,7 +129,7 @@ public class IgniteInternalCacheTypesTest extends GridCommonAbstractTest {
 
         checkCache(ignite, CU.MARSH_CACHE_NAME, MARSH_CACHE_POOL, false, false);
 
-        checkCache(ignite, CU.ATOMICS_CACHE_NAME, SYSTEM_POOL, false, false);
+        checkCache(ignite, CU.ATOMICS_CACHE_NAME, SYSTEM_POOL, false, true);
 
         for (String cache : userCaches)
             checkCache(ignite, cache, SYSTEM_POOL, true, false);


[43/50] [abbrv] ignite git commit: Merge branch master into ignite-264

Posted by ag...@apache.org.
Merge branch master into ignite-264


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

Branch: refs/heads/ignite-264
Commit: 22d15de31b482ae81a11cf4f742a8afb8eac9476
Parents: 7dc3309 9e42600
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Mon Aug 31 12:43:45 2015 -0700
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Mon Aug 31 12:43:45 2015 -0700

----------------------------------------------------------------------
 DEVNOTES.txt                                    |   22 +-
 DISCLAIMER.txt                                  |   15 -
 LICENSE                                         |    2 +-
 NOTICE                                          |    2 +-
 assembly/LICENSE_FABRIC                         |    2 +-
 assembly/LICENSE_HADOOP                         |    2 +-
 assembly/NOTICE_FABRIC                          |    2 +-
 assembly/NOTICE_HADOOP                          |    2 +-
 assembly/release-base.xml                       |    5 -
 dev-tools/slurp.sh                              |    2 +-
 dev-tools/src/main/groovy/jiraslurp.groovy      |    2 +-
 .../org/apache/ignite/schema/CacheConfig.java   |    9 +-
 .../java/org/apache/ignite/schema/Demo.java     |   22 +-
 .../java/org/apache/ignite/schema/DemoNode.java |    5 +-
 .../java/org/apache/ignite/schema/Person.java   |    1 -
 .../org/apache/ignite/schema/PersonKey.java     |    1 -
 .../ignite/examples/ExampleNodeStartup.java     |    5 +-
 .../apache/ignite/examples/ExamplesUtils.java   |   11 +-
 .../computegrid/ComputeAsyncExample.java        |   16 +-
 .../computegrid/ComputeBroadcastExample.java    |   16 +-
 .../computegrid/ComputeCallableExample.java     |   14 +-
 .../computegrid/ComputeClosureExample.java      |   14 +-
 .../ComputeContinuousMapperExample.java         |   32 +-
 .../ComputeFibonacciContinuationExample.java    |   32 +-
 .../computegrid/ComputeReducerExample.java      |   16 +-
 .../computegrid/ComputeRunnableExample.java     |   11 +-
 .../computegrid/ComputeTaskMapExample.java      |   23 +-
 .../computegrid/ComputeTaskSplitExample.java    |   20 +-
 .../cluster/ClusterGroupExample.java            |   16 +-
 .../computegrid/cluster/package-info.java       |    2 +-
 .../failover/ComputeFailoverExample.java        |   23 +-
 .../failover/ComputeFailoverNodeStartup.java    |   17 +-
 .../computegrid/failover/package-info.java      |    2 +-
 .../examples/computegrid/montecarlo/Credit.java |    4 +-
 .../montecarlo/CreditRiskExample.java           |   16 +-
 .../montecarlo/CreditRiskManager.java           |    5 +-
 .../computegrid/montecarlo/package-info.java    |    2 +-
 .../examples/computegrid/package-info.java      |    2 +-
 .../examples/datagrid/CacheAffinityExample.java |   20 +-
 .../examples/datagrid/CacheApiExample.java      |   15 +-
 .../examples/datagrid/CacheAsyncApiExample.java |   16 +-
 .../datagrid/CacheContinuousQueryExample.java   |   22 +-
 .../datagrid/CacheDataStreamerExample.java      |   11 +-
 .../examples/datagrid/CacheEventsExample.java   |   21 +-
 .../examples/datagrid/CachePutGetExample.java   |   13 +-
 .../examples/datagrid/CacheQueryExample.java    |   33 +-
 .../datagrid/CacheTransactionExample.java       |   25 +-
 .../hibernate/HibernateL2CacheExample.java      |   35 +-
 .../examples/datagrid/hibernate/Post.java       |   10 +-
 .../examples/datagrid/hibernate/User.java       |   13 +-
 .../datagrid/hibernate/package-info.java        |    2 +-
 .../ignite/examples/datagrid/package-info.java  |    2 +-
 .../starschema/CacheStarSchemaExample.java      |   26 +-
 .../datagrid/starschema/DimProduct.java         |    6 +-
 .../examples/datagrid/starschema/DimStore.java  |    6 +-
 .../datagrid/starschema/FactPurchase.java       |    6 +-
 .../datagrid/starschema/package-info.java       |    2 +-
 .../ignite/examples/datagrid/store/Person.java  |    3 +-
 .../store/auto/CacheAutoStoreExample.java       |   18 +-
 .../auto/CacheAutoStoreLoadDataExample.java     |   16 +-
 .../datagrid/store/auto/CacheConfig.java        |   27 +-
 .../datagrid/store/auto/DbH2ServerStartup.java  |   15 +-
 .../datagrid/store/auto/package-info.java       |    2 +-
 .../store/dummy/CacheDummyPersonStore.java      |   24 +-
 .../store/dummy/CacheDummyStoreExample.java     |   25 +-
 .../datagrid/store/dummy/package-info.java      |    2 +-
 .../hibernate/CacheHibernatePersonStore.java    |   22 +-
 .../hibernate/CacheHibernateStoreExample.java   |   30 +-
 .../datagrid/store/hibernate/package-info.java  |    2 +-
 .../store/jdbc/CacheJdbcPersonStore.java        |   29 +-
 .../store/jdbc/CacheJdbcStoreExample.java       |   30 +-
 .../datagrid/store/jdbc/package-info.java       |    2 +-
 .../examples/datagrid/store/package-info.java   |    2 +-
 .../store/spring/CacheSpringPersonStore.java    |   31 +-
 .../store/spring/CacheSpringStoreExample.java   |   30 +-
 .../datagrid/store/spring/package-info.java     |    2 +-
 .../datastructures/IgniteAtomicLongExample.java |   13 +-
 .../IgniteAtomicReferenceExample.java           |   13 +-
 .../IgniteAtomicSequenceExample.java            |   10 +-
 .../IgniteAtomicStampedExample.java             |   13 +-
 .../IgniteCountDownLatchExample.java            |   13 +-
 .../IgniteExecutorServiceExample.java           |   13 +-
 .../datastructures/IgniteQueueExample.java      |   18 +-
 .../datastructures/IgniteSetExample.java        |   22 +-
 .../examples/datastructures/package-info.java   |    2 +-
 .../ignite/examples/events/EventsExample.java   |   25 +-
 .../ignite/examples/events/package-info.java    |    2 +-
 .../ignite/examples/igfs/IgfsExample.java       |   20 +-
 .../examples/igfs/IgfsMapReduceExample.java     |   35 +-
 .../ignite/examples/igfs/IgfsNodeStartup.java   |    5 +-
 .../ignite/examples/igfs/package-info.java      |    2 +-
 .../examples/messaging/MessagingExample.java    |   21 +-
 .../messaging/MessagingPingPongExample.java     |   18 +-
 .../MessagingPingPongListenActorExample.java    |   20 +-
 .../ignite/examples/messaging/package-info.java |    2 +-
 .../client/memcache/MemcacheRestExample.java    |   17 +-
 .../MemcacheRestExampleNodeStartup.java         |   28 +-
 .../misc/client/memcache/package-info.java      |    2 +-
 .../examples/misc/client/package-info.java      |    2 +-
 .../misc/deployment/DeploymentExample.java      |   25 +-
 .../examples/misc/deployment/package-info.java  |    2 +-
 .../misc/lifecycle/LifecycleExample.java        |   16 +-
 .../examples/misc/lifecycle/package-info.java   |    2 +-
 .../ignite/examples/misc/package-info.java      |    2 +-
 .../misc/schedule/ComputeScheduleExample.java   |   15 +-
 .../examples/misc/schedule/package-info.java    |    2 +-
 .../misc/springbean/SpringBeanExample.java      |   13 +-
 .../examples/misc/springbean/package-info.java  |    2 +-
 .../apache/ignite/examples/package-info.java    |    2 +-
 .../examples/servicegrid/ServicesExample.java   |   16 +-
 .../examples/servicegrid/SimpleMapService.java  |    2 +-
 .../servicegrid/SimpleMapServiceImpl.java       |   12 +-
 .../examples/servicegrid/package-info.java      |    2 +-
 .../streaming/StreamTransformerExample.java     |   22 +-
 .../streaming/StreamVisitorExample.java         |   25 +-
 .../ignite/examples/streaming/package-info.java |    2 +-
 .../streaming/wordcount/CacheConfig.java        |   14 +-
 .../streaming/wordcount/QueryWords.java         |   16 +-
 .../streaming/wordcount/StreamWords.java        |   17 +-
 .../streaming/wordcount/package-info.java       |    2 +-
 .../socket/WordsSocketStreamerClient.java       |   19 +-
 .../socket/WordsSocketStreamerServer.java       |   30 +-
 .../wordcount/socket/package-info.java          |    2 +-
 .../java8/cluster/ClusterGroupExample.java      |   12 +-
 .../examples/java8/cluster/package-info.java    |    2 +-
 .../java8/computegrid/ComputeAsyncExample.java  |   16 +-
 .../computegrid/ComputeBroadcastExample.java    |   11 +-
 .../computegrid/ComputeCallableExample.java     |   14 +-
 .../computegrid/ComputeClosureExample.java      |   12 +-
 .../computegrid/ComputeRunnableExample.java     |   13 +-
 .../java8/computegrid/package-info.java         |    2 +-
 .../java8/datagrid/CacheAffinityExample.java    |   11 +-
 .../java8/datagrid/CacheApiExample.java         |   16 +-
 .../java8/datagrid/CacheAsyncApiExample.java    |   19 +-
 .../examples/java8/datagrid/package-info.java   |    2 +-
 .../IgniteExecutorServiceExample.java           |   13 +-
 .../java8/datastructures/package-info.java      |    2 +-
 .../examples/java8/events/EventsExample.java    |   25 +-
 .../examples/java8/events/package-info.java     |    2 +-
 .../java8/messaging/MessagingExample.java       |    8 +-
 .../messaging/MessagingPingPongExample.java     |   14 +-
 .../examples/java8/messaging/package-info.java  |    2 +-
 .../misc/schedule/ComputeScheduleExample.java   |   10 +-
 .../java8/misc/schedule/package-info.java       |    2 +-
 .../ignite/examples/java8/package-info.java     |    2 +-
 .../streaming/StreamTransformerExample.java     |   20 +-
 .../java8/streaming/StreamVisitorExample.java   |   24 +-
 .../examples/java8/streaming/package-info.java  |    2 +-
 .../BasicExamplesMultiNodeSelfTest.java         |    2 +-
 .../ignite/examples/BasicExamplesSelfTest.java  |   14 +-
 .../CacheExamplesMultiNodeSelfTest.java         |    2 +-
 .../ignite/examples/CacheExamplesSelfTest.java  |   24 +-
 .../examples/CheckpointExamplesSelfTest.java    |    7 +-
 .../examples/ClusterGroupExampleSelfTest.java   |    6 +-
 .../ContinuationExamplesMultiNodeSelfTest.java  |    2 +-
 .../examples/ContinuationExamplesSelfTest.java  |    6 +-
 ...ntinuousMapperExamplesMultiNodeSelfTest.java |    2 +-
 .../ContinuousMapperExamplesSelfTest.java       |    6 +-
 .../DeploymentExamplesMultiNodeSelfTest.java    |    2 +-
 .../examples/DeploymentExamplesSelfTest.java    |    6 +-
 .../EventsExamplesMultiNodeSelfTest.java        |    2 +-
 .../ignite/examples/EventsExamplesSelfTest.java |    6 +-
 ...ibernateL2CacheExampleMultiNodeSelfTest.java |    4 +-
 .../HibernateL2CacheExampleSelfTest.java        |    6 +-
 .../ignite/examples/IgfsExamplesSelfTest.java   |    8 +-
 .../examples/LifecycleExamplesSelfTest.java     |    6 +-
 .../MemcacheRestExamplesMultiNodeSelfTest.java  |    4 +-
 .../examples/MemcacheRestExamplesSelfTest.java  |    7 +-
 .../examples/MessagingExamplesSelfTest.java     |    8 +-
 .../MonteCarloExamplesMultiNodeSelfTest.java    |    2 +-
 .../examples/MonteCarloExamplesSelfTest.java    |    6 +-
 .../examples/SpringBeanExamplesSelfTest.java    |    6 +-
 .../examples/TaskExamplesMultiNodeSelfTest.java |    2 +-
 .../ignite/examples/TaskExamplesSelfTest.java   |    7 +-
 .../testsuites/IgniteExamplesSelfTestSuite.java |   35 +-
 .../BasicExamplesMultiNodeSelfTest.java         |    2 +-
 .../java8/examples/BasicExamplesSelfTest.java   |    3 +-
 .../CacheExamplesMultiNodeSelfTest.java         |    2 +-
 .../java8/examples/CacheExamplesSelfTest.java   |    4 +-
 .../examples/CheckpointExamplesSelfTest.java    |    3 +-
 .../examples/ClusterGroupExampleSelfTest.java   |    4 +-
 .../ContinuationExamplesMultiNodeSelfTest.java  |    2 +-
 .../examples/ContinuationExamplesSelfTest.java  |    3 +-
 ...ntinuousMapperExamplesMultiNodeSelfTest.java |    2 +-
 .../ContinuousMapperExamplesSelfTest.java       |    4 +-
 .../DeploymentExamplesMultiNodeSelfTest.java    |    2 +-
 .../examples/DeploymentExamplesSelfTest.java    |    3 +-
 .../EventsExamplesMultiNodeSelfTest.java        |    2 +-
 .../java8/examples/EventsExamplesSelfTest.java  |    3 +-
 ...ibernateL2CacheExampleMultiNodeSelfTest.java |    2 +-
 .../HibernateL2CacheExampleSelfTest.java        |    3 +-
 .../java8/examples/IgfsExamplesSelfTest.java    |    3 +-
 .../examples/LifecycleExamplesSelfTest.java     |    3 +-
 .../MemcacheRestExamplesMultiNodeSelfTest.java  |    2 +-
 .../examples/MemcacheRestExamplesSelfTest.java  |    3 +-
 .../examples/MessagingExamplesSelfTest.java     |    3 +-
 .../MonteCarloExamplesMultiNodeSelfTest.java    |    2 +-
 .../examples/MonteCarloExamplesSelfTest.java    |    3 +-
 .../examples/SpringBeanExamplesSelfTest.java    |    3 +-
 .../examples/TaskExamplesMultiNodeSelfTest.java |    2 +-
 .../java8/examples/TaskExamplesSelfTest.java    |    3 +-
 .../IgniteExamplesJ8SelfTestSuite.java          |    6 +-
 .../aop/aspectj/GridifyAspectJAspect.java       |   32 +-
 .../aspectj/GridifySetToSetAspectJAspect.java   |   34 +-
 .../aspectj/GridifySetToValueAspectJAspect.java |   34 +-
 .../aop/spring/GridifySetToSetSpringAspect.java |   30 +-
 .../spring/GridifySetToValueSpringAspect.java   |   30 +-
 .../gridify/aop/spring/GridifySpringAspect.java |   28 +-
 .../aop/spring/GridifySpringEnhancer.java       |    6 +-
 .../aop/spring/GridifySpringPointcut.java       |   13 +-
 .../apache/ignite/gridify/AbstractAopTest.java  |   35 +-
 .../apache/ignite/gridify/BasicAopSelfTest.java |   21 +-
 .../ignite/gridify/GridifySetToSetTarget.java   |   17 +-
 .../gridify/GridifySetToSetTargetInterface.java |   11 +-
 .../ignite/gridify/GridifySetToValueTarget.java |   14 +-
 .../GridifySetToValueTargetInterface.java       |   10 +-
 .../GridifySetToXXXNonSpringAopSelfTest.java    |   13 +-
 .../GridifySetToXXXSpringAopSelfTest.java       |   15 +-
 .../ignite/gridify/NonSpringAopSelfTest.java    |    4 +-
 .../ignite/gridify/SpringAopSelfTest.java       |    6 +-
 .../apache/ignite/gridify/TestAopTarget.java    |   10 +-
 .../ignite/gridify/TestAopTargetInterface.java  |    7 +-
 .../ignite/gridify/TestGridifyException.java    |    2 +-
 .../apache/ignite/gridify/TestGridifyJob.java   |   11 +-
 .../apache/ignite/gridify/TestGridifyTask.java  |   14 +-
 .../gridify/hierarchy/GridifyHierarchyTest.java |    4 +-
 .../ignite/gridify/hierarchy/SuperTarget.java   |    4 +-
 .../apache/ignite/gridify/hierarchy/Target.java |    2 +-
 .../optimized/OptimizedMarshallerAopTest.java   |   20 +-
 .../apache/ignite/p2p/P2PGridifySelfTest.java   |   22 +-
 .../testsuites/IgniteAopSelfTestSuite.java      |   16 +-
 .../singlesplit/SingleSplitTestJobTarget.java   |    8 +-
 .../direct/singlesplit/SingleSplitTestTask.java |   22 +-
 .../singlesplit/SingleSplitsLoadTest.java       |   29 +-
 .../gridify/GridifyLoadTestJobTarget.java       |    4 +-
 .../loadtests/gridify/GridifyLoadTestTask.java  |   18 +-
 .../gridify/GridifySingleSplitLoadTest.java     |   31 +-
 .../org/test/gridify/ExternalAopTarget.java     |   10 +-
 .../test/gridify/ExternalGridifyException.java  |    2 +-
 .../org/test/gridify/ExternalGridifyTask.java   |   20 +-
 .../gridify/ExternalNonSpringAopSelfTest.java   |   17 +-
 modules/apache-license-gen/pom.xml              |   13 +-
 .../spi/checkpoint/s3/S3CheckpointData.java     |    9 +-
 .../spi/checkpoint/s3/S3CheckpointSpi.java      |   60 +-
 .../spi/checkpoint/s3/S3CheckpointSpiMBean.java |    6 +-
 .../ignite/spi/checkpoint/s3/S3TimeData.java    |    4 +-
 .../tcp/ipfinder/s3/TcpDiscoveryS3IpFinder.java |   46 +-
 .../s3/S3CheckpointManagerSelfTest.java         |   11 +-
 .../s3/S3CheckpointSpiConfigSelfTest.java       |    5 +-
 .../checkpoint/s3/S3CheckpointSpiSelfTest.java  |   32 +-
 .../s3/S3CheckpointSpiStartStopSelfTest.java    |   11 +-
 .../s3/S3SessionCheckpointSelfTest.java         |   12 +-
 .../s3/TcpDiscoveryS3IpFinderSelfTest.java      |   16 +-
 .../ignite/testsuites/IgniteS3TestSuite.java    |   12 +-
 .../internal/TaskEventSubjectIdSelfTest.java    |   53 +-
 .../ClientAbstractMultiThreadedSelfTest.java    |   62 +-
 .../client/ClientDefaultCacheSelfTest.java      |   35 +-
 .../internal/client/ClientGetAffinityTask.java  |   19 +-
 .../ignite/internal/client/ClientHttpTask.java  |   19 +-
 .../internal/client/ClientNodeStartup.java      |    9 +-
 .../client/ClientReconnectionSelfTest.java      |   16 +-
 .../internal/client/ClientSslNodeStartup.java   |    9 +-
 .../internal/client/ClientStartNodeTask.java    |   38 +-
 .../internal/client/ClientStopNodeTask.java     |   26 +-
 .../internal/client/ClientStringLengthTask.java |   16 +-
 .../client/ClientTcpMultiThreadedSelfTest.java  |    4 +-
 .../ClientTcpSslAuthenticationSelfTest.java     |   30 +-
 .../ClientTcpSslMultiThreadedSelfTest.java      |    6 +-
 .../ignite/internal/client/ClientTcpTask.java   |   16 +-
 ...skExecutionAfterTopologyRestartSelfTest.java |   10 +-
 .../internal/client/ClientTestRestServer.java   |   43 +-
 .../ignite/internal/client/HashMapStore.java    |   12 +-
 .../ignite/internal/client/SleepTestTask.java   |   16 +-
 .../client/TaskSingleJobSplitAdapter.java       |   14 +-
 .../client/impl/ClientCacheFlagsCodecTest.java  |   19 +-
 .../client/impl/ClientComputeImplSelfTest.java  |   16 +-
 .../client/impl/ClientDataImplSelfTest.java     |   11 +-
 .../impl/ClientFutureAdapterSelfTest.java       |   14 +-
 .../ClientPropertiesConfigurationSelfTest.java  |   41 +-
 .../ClientAbstractConnectivitySelfTest.java     |   35 +-
 .../ClientAbstractMultiNodeSelfTest.java        |  100 +-
 .../integration/ClientAbstractSelfTest.java     |   86 +-
 .../integration/ClientPreferDirectSelfTest.java |   43 +-
 .../ClientTcpConnectivitySelfTest.java          |   15 +-
 .../ClientTcpDirectMultiNodeSelfTest.java       |   11 +-
 .../integration/ClientTcpDirectSelfTest.java    |   11 +-
 .../integration/ClientTcpMultiNodeSelfTest.java |    4 +-
 .../client/integration/ClientTcpSelfTest.java   |    6 +-
 .../ClientTcpSslDirectMultiNodeSelfTest.java    |   15 +-
 .../integration/ClientTcpSslDirectSelfTest.java |   13 +-
 .../ClientTcpSslMultiNodeSelfTest.java          |    8 +-
 .../integration/ClientTcpSslSelfTest.java       |    8 +-
 .../ClientTcpUnreachableMultiNodeSelfTest.java  |   22 +-
 .../client/router/ClientFailedInitSelfTest.java |   50 +-
 .../client/router/RouterFactorySelfTest.java    |   23 +-
 .../router/TcpRouterAbstractSelfTest.java       |   22 +-
 .../router/TcpRouterMultiNodeSelfTest.java      |   23 +-
 .../client/router/TcpRouterSelfTest.java        |    4 +-
 .../client/router/TcpSslRouterSelfTest.java     |    8 +-
 .../client/suite/IgniteClientTestSuite.java     |   50 +-
 .../client/util/ClientByteUtilsTest.java        |   24 +-
 .../util/ClientConsistentHashSelfTest.java      |   19 +-
 .../client/util/ClientJavaHasherSelfTest.java   |    9 +-
 .../rest/AbstractRestProcessorSelfTest.java     |   16 +-
 .../rest/ClientMemcachedProtocolSelfTest.java   |   27 +-
 .../JettyRestProcessorAbstractSelfTest.java     |   44 +-
 .../rest/JettyRestProcessorSignedSelfTest.java  |   16 +-
 .../JettyRestProcessorUnsignedSelfTest.java     |    2 +-
 .../rest/MemcacheRestProcessorTest.java         |   15 +-
 .../rest/RestBinaryProtocolSelfTest.java        |   52 +-
 .../rest/RestMemcacheProtocolSelfTest.java      |   29 +-
 .../rest/RestProcessorMultiStartSelfTest.java   |    7 +-
 .../rest/RestProcessorStartSelfTest.java        |   34 +-
 .../processors/rest/RestProcessorTest.java      |   30 +-
 .../rest/TaskCommandHandlerSelfTest.java        |   59 +-
 .../processors/rest/TestBinaryClient.java       |   64 +-
 .../processors/rest/TestMemcacheClient.java     |   34 +-
 .../internal/processors/rest/TestTask1.java     |   16 +-
 .../internal/processors/rest/TestTask2.java     |   16 +-
 .../rest/protocols/tcp/MockNioSession.java      |   15 +-
 .../protocols/tcp/TcpRestParserSelfTest.java    |   43 +-
 .../ignite/jdbc/JdbcComplexQuerySelfTest.java   |   37 +-
 .../ignite/jdbc/JdbcConnectionSelfTest.java     |   25 +-
 .../ignite/jdbc/JdbcEmptyCacheSelfTest.java     |   25 +-
 .../ignite/jdbc/JdbcLocalCachesSelfTest.java    |   31 +-
 .../ignite/jdbc/JdbcMetadataSelfTest.java       |   45 +-
 .../jdbc/JdbcPreparedStatementSelfTest.java     |   53 +-
 .../ignite/jdbc/JdbcResultSetSelfTest.java      |   47 +-
 .../ignite/jdbc/JdbcStatementSelfTest.java      |   34 +-
 .../jdbc/suite/IgniteJdbcDriverTestSuite.java   |   13 +-
 .../loadtests/client/ClientCacheBenchmark.java  |   28 +-
 .../client/ClientMarshallerBenchmarkTest.java   |   27 +-
 .../loadtests/client/ClientTcpSslLoadTest.java  |    8 +-
 .../cloud/TcpDiscoveryCloudIpFinder.java        |   59 +-
 .../TcpDiscoveryCloudIpFinderSelfTest.java      |   15 +-
 .../ignite/testsuites/IgniteCloudTestSuite.java |    9 +-
 .../ignite/codegen/MessageCodeGenerator.java    |   49 +-
 modules/core/src/main/java/META-INF/LICENSE     |    2 +-
 modules/core/src/main/java/META-INF/NOTICE      |    2 +-
 .../src/main/java/org/apache/ignite/Ignite.java |   28 +-
 .../org/apache/ignite/IgniteAtomicLong.java     |    4 +-
 .../apache/ignite/IgniteAtomicReference.java    |    4 +-
 .../org/apache/ignite/IgniteAtomicSequence.java |    4 +-
 .../org/apache/ignite/IgniteAtomicStamped.java  |    7 +-
 .../ignite/IgniteAuthenticationException.java   |    2 +-
 .../java/org/apache/ignite/IgniteCache.java     |   65 +-
 .../apache/ignite/IgniteCheckedException.java   |    6 +-
 .../IgniteClientDisconnectedException.java      |    6 +-
 .../java/org/apache/ignite/IgniteCluster.java   |   23 +-
 .../java/org/apache/ignite/IgniteCompute.java   |   33 +-
 .../org/apache/ignite/IgniteCountDownLatch.java |    6 +-
 .../org/apache/ignite/IgniteDataStreamer.java   |   15 +-
 .../ignite/IgniteDeploymentException.java       |    4 +-
 .../java/org/apache/ignite/IgniteEvents.java    |   18 +-
 .../java/org/apache/ignite/IgniteException.java |    6 +-
 .../org/apache/ignite/IgniteFileSystem.java     |   25 +-
 .../ignite/IgniteIllegalStateException.java     |    6 +-
 .../ignite/IgniteInterruptedException.java      |    2 +-
 .../org/apache/ignite/IgniteJdbcDriver.java     |   18 +-
 .../java/org/apache/ignite/IgniteLogger.java    |    6 +-
 .../java/org/apache/ignite/IgniteMessaging.java |   17 +-
 .../java/org/apache/ignite/IgnitePortables.java |   26 +-
 .../java/org/apache/ignite/IgniteQueue.java     |   10 +-
 .../java/org/apache/ignite/IgniteScheduler.java |   13 +-
 .../java/org/apache/ignite/IgniteServices.java  |   20 +-
 .../main/java/org/apache/ignite/IgniteSet.java  |    8 +-
 .../java/org/apache/ignite/IgniteState.java     |    6 +-
 .../apache/ignite/IgniteSystemProperties.java   |   11 +-
 .../org/apache/ignite/IgniteTransactions.java   |   12 +-
 .../main/java/org/apache/ignite/Ignition.java   |   22 +-
 .../org/apache/ignite/IgnitionListener.java     |    7 +-
 .../CacheAtomicUpdateTimeoutException.java      |    4 +-
 .../ignite/cache/CacheAtomicWriteOrderMode.java |    4 +-
 .../apache/ignite/cache/CacheAtomicityMode.java |    6 +-
 .../org/apache/ignite/cache/CacheEntry.java     |   11 +-
 .../CacheEntryEventSerializableFilter.java      |    6 +-
 .../ignite/cache/CacheEntryProcessor.java       |    6 +-
 .../ignite/cache/CacheExistsException.java      |    7 +-
 .../apache/ignite/cache/CacheInterceptor.java   |   15 +-
 .../ignite/cache/CacheInterceptorAdapter.java   |    9 +-
 .../org/apache/ignite/cache/CacheManager.java   |   55 +-
 .../apache/ignite/cache/CacheMemoryMode.java    |    4 +-
 .../org/apache/ignite/cache/CacheMetrics.java   |   10 +-
 .../java/org/apache/ignite/cache/CacheMode.java |    8 +-
 .../cache/CachePartialUpdateException.java      |    9 +-
 .../org/apache/ignite/cache/CachePeekMode.java  |    6 +-
 .../apache/ignite/cache/CacheRebalanceMode.java |    6 +-
 .../cache/CacheServerNotFoundException.java     |    4 +-
 .../ignite/cache/CacheTypeFieldMetadata.java    |    7 +-
 .../apache/ignite/cache/CacheTypeMetadata.java  |   19 +-
 .../cache/CacheWriteSynchronizationMode.java    |    6 +-
 .../apache/ignite/cache/CachingProvider.java    |   30 +-
 .../apache/ignite/cache/affinity/Affinity.java  |   10 +-
 .../affinity/AffinityCentralizedFunction.java   |    7 +-
 .../ignite/cache/affinity/AffinityFunction.java |   10 +-
 .../cache/affinity/AffinityFunctionContext.java |   13 +-
 .../ignite/cache/affinity/AffinityKey.java      |   15 +-
 .../cache/affinity/AffinityKeyMapped.java       |   10 +-
 .../cache/affinity/AffinityKeyMapper.java       |    4 +-
 .../AffinityNodeAddressHashResolver.java        |   11 +-
 .../affinity/AffinityNodeHashResolver.java      |    9 +-
 .../affinity/AffinityNodeIdHashResolver.java    |   11 +-
 .../ignite/cache/affinity/AffinityUuid.java     |    6 +-
 .../affinity/fair/FairAffinityFunction.java     |   34 +-
 .../rendezvous/RendezvousAffinityFunction.java  |   49 +-
 .../ignite/cache/eviction/EvictableEntry.java   |    7 +-
 .../ignite/cache/eviction/EvictionFilter.java   |    7 +-
 .../ignite/cache/eviction/EvictionPolicy.java   |   10 +-
 .../cache/eviction/fifo/FifoEvictionPolicy.java |   27 +-
 .../eviction/fifo/FifoEvictionPolicyMBean.java  |    4 +-
 .../cache/eviction/igfs/IgfsEvictionFilter.java |    9 +-
 .../igfs/IgfsPerBlockLruEvictionPolicy.java     |   35 +-
 .../IgfsPerBlockLruEvictionPolicyMXBean.java    |    9 +-
 .../cache/eviction/lru/LruEvictionPolicy.java   |   27 +-
 .../eviction/lru/LruEvictionPolicyMBean.java    |    4 +-
 .../eviction/random/RandomEvictionPolicy.java   |   24 +-
 .../random/RandomEvictionPolicyMBean.java       |    4 +-
 .../eviction/sorted/SortedEvictionPolicy.java   |   36 +-
 .../sorted/SortedEvictionPolicyMBean.java       |    4 +-
 .../ignite/cache/query/ContinuousQuery.java     |   11 +-
 .../org/apache/ignite/cache/query/Query.java    |    9 +-
 .../apache/ignite/cache/query/QueryCursor.java  |    4 +-
 .../apache/ignite/cache/query/QueryMetrics.java |    4 +-
 .../apache/ignite/cache/query/ScanQuery.java    |   13 +-
 .../org/apache/ignite/cache/query/SpiQuery.java |   13 +-
 .../ignite/cache/query/SqlFieldsQuery.java      |   12 +-
 .../org/apache/ignite/cache/query/SqlQuery.java |   14 +-
 .../apache/ignite/cache/query/TextQuery.java    |   12 +-
 .../query/annotations/QueryGroupIndex.java      |    7 +-
 .../cache/query/annotations/QuerySqlField.java  |   11 +-
 .../query/annotations/QuerySqlFunction.java     |    8 +-
 .../cache/query/annotations/QueryTextField.java |   11 +-
 .../cache/store/CacheLoadOnlyStoreAdapter.java  |   36 +-
 .../apache/ignite/cache/store/CacheStore.java   |   20 +-
 .../ignite/cache/store/CacheStoreAdapter.java   |   12 +-
 .../ignite/cache/store/CacheStoreSession.java   |   11 +-
 .../cache/store/CacheStoreSessionListener.java  |   12 +-
 .../store/jdbc/CacheAbstractJdbcStore.java      |   83 +-
 .../cache/store/jdbc/CacheJdbcBlobStore.java    |   57 +-
 .../store/jdbc/CacheJdbcBlobStoreFactory.java   |   24 +-
 .../cache/store/jdbc/CacheJdbcPojoStore.java    |   31 +-
 .../store/jdbc/CacheJdbcPojoStoreFactory.java   |   23 +-
 .../jdbc/CacheJdbcStoreSessionListener.java     |   22 +-
 .../store/jdbc/dialect/BasicJdbcDialect.java    |   10 +-
 .../cache/store/jdbc/dialect/DB2Dialect.java    |    8 +-
 .../cache/store/jdbc/dialect/H2Dialect.java     |    7 +-
 .../cache/store/jdbc/dialect/JdbcDialect.java   |    6 +-
 .../cache/store/jdbc/dialect/MySQLDialect.java  |    8 +-
 .../cache/store/jdbc/dialect/OracleDialect.java |    8 +-
 .../store/jdbc/dialect/SQLServerDialect.java    |    8 +-
 .../org/apache/ignite/cluster/ClusterGroup.java |   17 +-
 .../cluster/ClusterGroupEmptyException.java     |    4 +-
 .../apache/ignite/cluster/ClusterMetrics.java   |    6 +-
 .../org/apache/ignite/cluster/ClusterNode.java  |   20 +-
 .../ignite/cluster/ClusterStartNodeResult.java  |    4 +-
 .../cluster/ClusterTopologyException.java       |    8 +-
 .../ComputeExecutionRejectedException.java      |    6 +-
 .../org/apache/ignite/compute/ComputeJob.java   |   10 +-
 .../ignite/compute/ComputeJobAdapter.java       |    9 +-
 .../ignite/compute/ComputeJobAfterSend.java     |    8 +-
 .../compute/ComputeJobBeforeFailover.java       |    8 +-
 .../ignite/compute/ComputeJobContext.java       |   10 +-
 .../ignite/compute/ComputeJobContinuation.java  |    4 +-
 .../compute/ComputeJobContinuationAdapter.java  |    6 +-
 .../compute/ComputeJobFailoverException.java    |   12 +-
 .../compute/ComputeJobMasterLeaveAware.java     |    4 +-
 .../apache/ignite/compute/ComputeJobResult.java |   10 +-
 .../ignite/compute/ComputeJobResultPolicy.java  |    7 +-
 .../ignite/compute/ComputeJobSibling.java       |    9 +-
 .../ignite/compute/ComputeLoadBalancer.java     |   12 +-
 .../org/apache/ignite/compute/ComputeTask.java  |   14 +-
 .../ignite/compute/ComputeTaskAdapter.java      |    9 +-
 .../compute/ComputeTaskCancelledException.java  |    6 +-
 .../compute/ComputeTaskContinuousMapper.java    |   11 +-
 .../ignite/compute/ComputeTaskFuture.java       |   10 +-
 .../ignite/compute/ComputeTaskMapAsync.java     |   10 +-
 .../apache/ignite/compute/ComputeTaskName.java  |    8 +-
 .../compute/ComputeTaskNoResultCache.java       |   10 +-
 .../ignite/compute/ComputeTaskSession.java      |   15 +-
 .../ComputeTaskSessionAttributeListener.java    |    4 +-
 .../compute/ComputeTaskSessionFullSupport.java  |   10 +-
 .../ignite/compute/ComputeTaskSessionScope.java |    4 +-
 .../apache/ignite/compute/ComputeTaskSpis.java  |    8 +-
 .../ignite/compute/ComputeTaskSplitAdapter.java |   17 +-
 .../compute/ComputeTaskTimeoutException.java    |    6 +-
 .../compute/ComputeUserUndeclaredException.java |    6 +-
 .../apache/ignite/compute/gridify/Gridify.java  |   15 +-
 .../ignite/compute/gridify/GridifyArgument.java |    4 +-
 .../ignite/compute/gridify/GridifyInput.java    |    8 +-
 .../compute/gridify/GridifyInterceptor.java     |    7 +-
 .../compute/gridify/GridifyNodeFilter.java      |    8 +-
 .../gridify/GridifyRuntimeException.java        |    4 +-
 .../ignite/compute/gridify/GridifySetToSet.java |   10 +-
 .../compute/gridify/GridifySetToValue.java      |   10 +-
 .../compute/gridify/GridifyTaskAdapter.java     |    7 +-
 .../gridify/GridifyTaskSplitAdapter.java        |    7 +-
 .../gridify/aop/GridifyArgumentAdapter.java     |    7 +-
 .../gridify/aop/GridifyDefaultRangeTask.java    |   46 +-
 .../compute/gridify/aop/GridifyDefaultTask.java |   27 +-
 .../aop/GridifySetToSetAbstractAspect.java      |   27 +-
 .../aop/GridifySetToValueAbstractAspect.java    |   29 +-
 .../ignite/configuration/AddressResolver.java   |    9 +-
 .../configuration/AtomicConfiguration.java      |   10 +-
 .../configuration/CacheConfiguration.java       |   51 +-
 .../configuration/CollectionConfiguration.java  |   23 +-
 .../configuration/ConnectorConfiguration.java   |   18 +-
 .../ConnectorMessageInterceptor.java            |    4 +-
 .../ignite/configuration/DeploymentMode.java    |    4 +-
 .../configuration/FileSystemConfiguration.java  |   17 +-
 .../configuration/HadoopConfiguration.java      |    6 +-
 .../configuration/IgniteConfiguration.java      |  106 +-
 .../configuration/IgniteReflectionFactory.java  |   18 +-
 .../configuration/NearCacheConfiguration.java   |   13 +-
 .../configuration/PlatformConfiguration.java    |    2 +-
 .../ignite/configuration/TopologyValidator.java |    9 +-
 .../configuration/TransactionConfiguration.java |    9 +-
 .../org/apache/ignite/events/CacheEvent.java    |   18 +-
 .../ignite/events/CacheQueryExecutedEvent.java  |   18 +-
 .../ignite/events/CacheQueryReadEvent.java      |   18 +-
 .../ignite/events/CacheRebalancingEvent.java    |    8 +-
 .../apache/ignite/events/CheckpointEvent.java   |    7 +-
 .../apache/ignite/events/DeploymentEvent.java   |    7 +-
 .../apache/ignite/events/DiscoveryEvent.java    |   12 +-
 .../java/org/apache/ignite/events/Event.java    |   11 +-
 .../org/apache/ignite/events/EventAdapter.java  |   12 +-
 .../apache/ignite/events/EventLocalOrder.java   |    4 +-
 .../org/apache/ignite/events/EventType.java     |    9 +-
 .../org/apache/ignite/events/IgfsEvent.java     |   19 +-
 .../java/org/apache/ignite/events/JobEvent.java |   12 +-
 .../apache/ignite/events/SwapSpaceEvent.java    |    9 +-
 .../org/apache/ignite/events/TaskEvent.java     |   14 +-
 .../apache/ignite/igfs/IgfsBlockLocation.java   |    5 +-
 .../IgfsConcurrentModificationException.java    |    4 +-
 .../ignite/igfs/IgfsCorruptedFileException.java |    4 +-
 .../igfs/IgfsDirectoryNotEmptyException.java    |    4 +-
 .../org/apache/ignite/igfs/IgfsException.java   |    6 +-
 .../java/org/apache/ignite/igfs/IgfsFile.java   |    7 +-
 .../igfs/IgfsGroupDataBlocksKeyMapper.java      |    9 +-
 .../org/apache/ignite/igfs/IgfsInputStream.java |    5 +-
 .../igfs/IgfsInvalidHdfsVersionException.java   |    4 +-
 .../ignite/igfs/IgfsInvalidPathException.java   |    4 +-
 .../igfs/IgfsIpcEndpointConfiguration.java      |   10 +-
 .../apache/ignite/igfs/IgfsIpcEndpointType.java |    2 +-
 .../org/apache/ignite/igfs/IgfsMetrics.java     |    2 +-
 .../java/org/apache/ignite/igfs/IgfsMode.java   |    4 +-
 .../ignite/igfs/IgfsOutOfSpaceException.java    |    4 +-
 .../apache/ignite/igfs/IgfsOutputStream.java    |    6 +-
 .../java/org/apache/ignite/igfs/IgfsPath.java   |   23 +-
 .../igfs/IgfsPathAlreadyExistsException.java    |    5 +-
 .../igfs/IgfsPathIsDirectoryException.java      |    4 +-
 .../igfs/IgfsPathIsNotDirectoryException.java   |    4 +-
 .../ignite/igfs/IgfsPathNotFoundException.java  |    4 +-
 .../org/apache/ignite/igfs/IgfsPathSummary.java |   10 +-
 .../org/apache/ignite/igfs/IgfsUserContext.java |   11 +-
 .../ignite/igfs/mapreduce/IgfsFileRange.java    |    6 +-
 .../mapreduce/IgfsInputStreamJobAdapter.java    |   12 +-
 .../apache/ignite/igfs/mapreduce/IgfsJob.java   |   10 +-
 .../ignite/igfs/mapreduce/IgfsJobAdapter.java   |    2 +-
 .../igfs/mapreduce/IgfsRangeInputStream.java    |   12 +-
 .../igfs/mapreduce/IgfsRecordResolver.java      |   13 +-
 .../apache/ignite/igfs/mapreduce/IgfsTask.java  |   32 +-
 .../ignite/igfs/mapreduce/IgfsTaskArgs.java     |    7 +-
 .../igfs/mapreduce/IgfsTaskNoReduceAdapter.java |    7 +-
 .../IgfsByteDelimiterRecordResolver.java        |   31 +-
 .../records/IgfsFixedLengthRecordResolver.java  |   18 +-
 .../records/IgfsNewLineRecordResolver.java      |    7 +-
 .../IgfsStringDelimiterRecordResolver.java      |   11 +-
 .../igfs/secondary/IgfsSecondaryFileSystem.java |   15 +-
 ...fsSecondaryFileSystemPositionedReadable.java |    5 +-
 .../ignite/internal/AsyncSupportAdapter.java    |    9 +-
 .../ClusterLocalNodeMetricsMXBeanImpl.java      |    8 +-
 .../ignite/internal/ClusterMetricsSnapshot.java |   24 +-
 .../internal/ComputeTaskInternalFuture.java     |   35 +-
 .../ignite/internal/GridCachePluginContext.java |   13 +-
 .../ignite/internal/GridClosureCallMode.java    |    4 +-
 .../apache/ignite/internal/GridComponent.java   |   17 +-
 .../apache/ignite/internal/GridDiagnostic.java  |   20 +-
 .../ignite/internal/GridDirectCollection.java   |   10 +-
 .../apache/ignite/internal/GridDirectMap.java   |    7 +-
 .../ignite/internal/GridDirectTransient.java    |    7 +-
 .../internal/GridEventConsumeHandler.java       |   54 +-
 .../ignite/internal/GridInternalException.java  |    9 +-
 .../ignite/internal/GridInternalWrapper.java    |    2 +-
 .../ignite/internal/GridJobCancelRequest.java   |   17 +-
 .../ignite/internal/GridJobContextImpl.java     |   35 +-
 .../ignite/internal/GridJobExecuteRequest.java  |   32 +-
 .../ignite/internal/GridJobExecuteResponse.java |   24 +-
 .../ignite/internal/GridJobResultImpl.java      |   19 +-
 .../ignite/internal/GridJobSessionImpl.java     |   24 +-
 .../ignite/internal/GridJobSiblingImpl.java     |   30 +-
 .../ignite/internal/GridJobSiblingsRequest.java |   15 +-
 .../internal/GridJobSiblingsResponse.java       |   23 +-
 .../ignite/internal/GridKernalContext.java      |   96 +-
 .../ignite/internal/GridKernalContextImpl.java  |  133 +-
 .../ignite/internal/GridKernalGateway.java      |    7 +-
 .../ignite/internal/GridKernalGatewayImpl.java  |   23 +-
 .../apache/ignite/internal/GridKernalState.java |    4 +-
 .../apache/ignite/internal/GridLoggerProxy.java |   31 +-
 .../internal/GridMessageListenHandler.java      |   27 +-
 .../internal/GridNodeOrderComparator.java       |    9 +-
 .../internal/GridPerformanceSuggestions.java    |   18 +-
 .../ignite/internal/GridPluginComponent.java    |   20 +-
 .../ignite/internal/GridPluginContext.java      |   18 +-
 .../ignite/internal/GridProxyListener.java      |    4 +-
 .../ignite/internal/GridTaskCancelRequest.java  |   15 +-
 .../ignite/internal/GridTaskNameHashKey.java    |   10 +-
 .../ignite/internal/GridTaskSessionImpl.java    |   36 +-
 .../internal/GridTaskSessionInternal.java       |   11 +-
 .../ignite/internal/GridTaskSessionRequest.java |   17 +-
 .../org/apache/ignite/internal/GridTopic.java   |   20 +-
 .../ignite/internal/GridUpdateNotifier.java     |   52 +-
 ...gniteClientDisconnectedCheckedException.java |    6 +-
 .../internal/IgniteCodeGeneratingFail.java      |    7 +-
 .../ignite/internal/IgniteComponentType.java    |   13 +-
 .../ignite/internal/IgniteComputeImpl.java      |   52 +-
 .../IgniteDeploymentCheckedException.java       |    6 +-
 .../ignite/internal/IgniteEventsImpl.java       |   32 +-
 .../org/apache/ignite/internal/IgniteEx.java    |   22 +-
 .../IgniteFutureCancelledCheckedException.java  |    6 +-
 .../IgniteFutureTimeoutCheckedException.java    |    6 +-
 .../ignite/internal/IgniteInternalFuture.java   |   21 +-
 .../IgniteInterruptedCheckedException.java      |    4 +-
 .../apache/ignite/internal/IgniteKernal.java    |  278 +++-
 .../ignite/internal/IgniteMessagingImpl.java    |   31 +-
 .../ignite/internal/IgniteNodeAttributes.java   |    5 +-
 .../ignite/internal/IgniteProperties.java       |    7 +-
 .../ignite/internal/IgniteSchedulerImpl.java    |   21 +-
 .../ignite/internal/IgniteServicesImpl.java     |   28 +-
 .../ignite/internal/IgniteTransactionsEx.java   |   11 +-
 .../ignite/internal/IgniteVersionUtils.java     |    9 +-
 .../org/apache/ignite/internal/IgnitionEx.java  |  184 ++-
 .../ignite/internal/IgnitionMXBeanAdapter.java  |    7 +-
 .../internal/MarshallerContextAdapter.java      |   34 +-
 .../ignite/internal/MarshallerContextImpl.java  |   31 +-
 .../org/apache/ignite/internal/SkipDaemon.java  |    7 +-
 .../internal/ThreadPoolMXBeanAdapter.java       |   13 +-
 .../ignite/internal/client/GridClient.java      |    5 +-
 .../GridClientAuthenticationException.java      |    2 +-
 .../internal/client/GridClientCacheFlag.java    |    4 +-
 .../internal/client/GridClientCacheMode.java    |    2 +-
 .../client/GridClientClosedException.java       |    2 +-
 .../internal/client/GridClientCompute.java      |   11 +-
 .../client/GridClientConfiguration.java         |   35 +-
 .../ignite/internal/client/GridClientData.java  |    7 +-
 .../internal/client/GridClientDataAffinity.java |    4 +-
 .../client/GridClientDataConfiguration.java     |    5 +-
 .../internal/client/GridClientDataMetrics.java  |    4 +-
 .../client/GridClientDisconnectedException.java |    2 +-
 .../internal/client/GridClientException.java    |    6 +-
 .../internal/client/GridClientFactory.java      |   13 +-
 .../internal/client/GridClientFuture.java       |    4 +-
 .../client/GridClientFutureListener.java        |    2 +-
 .../GridClientFutureTimeoutException.java       |    2 +-
 .../client/GridClientHandshakeException.java    |    2 +-
 .../ignite/internal/client/GridClientNode.java  |   12 +-
 .../internal/client/GridClientNodeMetrics.java  |    4 +-
 .../client/GridClientPartitionAffinity.java     |   15 +-
 .../internal/client/GridClientPredicate.java    |    2 +-
 .../internal/client/GridClientProtocol.java     |    2 +-
 .../client/GridClientTopologyListener.java      |    2 +-
 .../client/GridServerUnreachableException.java  |    2 +-
 .../balancer/GridClientBalancerAdapter.java     |   11 +-
 .../client/balancer/GridClientLoadBalancer.java |    8 +-
 .../balancer/GridClientRandomBalancer.java      |   10 +-
 .../balancer/GridClientRoundRobinBalancer.java  |   18 +-
 .../impl/GridClientAbstractProjection.java      |   39 +-
 .../client/impl/GridClientAndPredicate.java     |    4 +-
 .../client/impl/GridClientComputeImpl.java      |   30 +-
 .../client/impl/GridClientDataImpl.java         |   32 +-
 .../impl/GridClientDataMetricsAdapter.java      |    4 +-
 .../client/impl/GridClientFutureAdapter.java    |   20 +-
 .../client/impl/GridClientFutureCallback.java   |    5 +-
 .../internal/client/impl/GridClientImpl.java    |   66 +-
 .../client/impl/GridClientNodeImpl.java         |   23 +-
 .../impl/GridClientNodeMetricsAdapter.java      |    4 +-
 .../client/impl/GridClientThreadFactory.java    |    9 +-
 .../impl/connection/GridClientConnection.java   |   29 +-
 .../GridClientConnectionCloseReason.java        |    2 +-
 .../connection/GridClientConnectionManager.java |   15 +-
 .../GridClientConnectionManagerAdapter.java     |   79 +-
 .../GridClientConnectionManagerOsImpl.java      |   13 +-
 .../GridClientConnectionResetException.java     |    4 +-
 .../connection/GridClientNioTcpConnection.java  |  105 +-
 .../impl/connection/GridClientTopology.java     |   45 +-
 .../GridConnectionIdleClosedException.java      |    2 +-
 .../client/marshaller/GridClientMarshaller.java |    6 +-
 .../marshaller/jdk/GridClientJdkMarshaller.java |   16 +-
 .../GridClientOptimizedMarshaller.java          |   24 +-
 .../client/router/GridRouterFactory.java        |   17 +-
 .../internal/client/router/GridTcpRouter.java   |    4 +-
 .../router/GridTcpRouterConfiguration.java      |   22 +-
 .../client/router/GridTcpRouterMBean.java       |    7 +-
 .../router/impl/GridRouterClientImpl.java       |   40 +-
 .../impl/GridRouterCommandLineStartup.java      |   32 +-
 .../client/router/impl/GridTcpRouterImpl.java   |   52 +-
 .../impl/GridTcpRouterNioListenerAdapter.java   |   41 +-
 .../impl/GridTcpRouterNioListenerOsImpl.java    |    4 +-
 .../router/impl/GridTcpRouterNioParser.java     |   28 +-
 .../client/ssl/GridSslBasicContextFactory.java  |   27 +-
 .../client/ssl/GridSslContextFactory.java       |    7 +-
 .../client/util/GridClientConsistentHash.java   |   25 +-
 .../client/util/GridClientStripedLock.java      |    5 +-
 .../internal/client/util/GridClientUtils.java   |   22 +-
 .../client/util/GridConcurrentHashSet.java      |    9 +-
 .../internal/cluster/ClusterGroupAdapter.java   |   60 +-
 .../ClusterGroupEmptyCheckedException.java      |    4 +-
 .../ignite/internal/cluster/ClusterGroupEx.java |   10 +-
 .../cluster/ClusterNodeLocalMapImpl.java        |   21 +-
 .../cluster/ClusterStartNodeResultImpl.java     |    4 +-
 .../ClusterTopologyCheckedException.java        |    8 +-
 .../ClusterTopologyServerNotFoundException.java |    2 +-
 .../cluster/IgniteClusterAsyncImpl.java         |   34 +-
 .../internal/cluster/IgniteClusterEx.java       |    4 +-
 .../internal/cluster/IgniteClusterImpl.java     |   70 +-
 .../ignite/internal/cluster/IgniteKillTask.java |   24 +-
 .../ComputeTaskCancelledCheckedException.java   |    6 +-
 .../ComputeTaskTimeoutCheckedException.java     |    6 +-
 .../internal/direct/DirectByteBufferStream.java |   32 +-
 .../internal/direct/DirectMessageReader.java    |   20 +-
 .../internal/direct/DirectMessageWriter.java    |   18 +-
 .../direct/DirectMessageWriterState.java        |    4 +-
 .../internal/events/DiscoveryCustomEvent.java   |   11 +-
 .../internal/executor/GridExecutorService.java  |   47 +-
 .../igfs/common/IgfsControlResponse.java        |   42 +-
 .../igfs/common/IgfsDataInputStream.java        |    7 +-
 .../igfs/common/IgfsDataOutputStream.java       |    8 +-
 .../igfs/common/IgfsHandshakeRequest.java       |    6 +-
 .../internal/igfs/common/IgfsIpcCommand.java    |    5 +-
 .../ignite/internal/igfs/common/IgfsLogger.java |   34 +-
 .../internal/igfs/common/IgfsMarshaller.java    |   26 +-
 .../internal/igfs/common/IgfsMessage.java       |    2 +-
 .../igfs/common/IgfsPathControlRequest.java     |   13 +-
 .../internal/igfs/common/IgfsStatusRequest.java |    4 +-
 .../igfs/common/IgfsStreamControlRequest.java   |    6 +-
 .../ignite/internal/jdbc/JdbcConnection.java    |   47 +-
 .../internal/jdbc/JdbcConnectionInfo.java       |    2 +-
 .../internal/jdbc/JdbcDatabaseMetadata.java     |   30 +-
 .../internal/jdbc/JdbcPreparedStatement.java    |   27 +-
 .../ignite/internal/jdbc/JdbcResultSet.java     |   38 +-
 .../internal/jdbc/JdbcResultSetMetadata.java    |    7 +-
 .../ignite/internal/jdbc/JdbcStatement.java     |   25 +-
 .../apache/ignite/internal/jdbc/JdbcUtils.java  |   37 +-
 .../ignite/internal/managers/GridManager.java   |    6 +-
 .../internal/managers/GridManagerAdapter.java   |   69 +-
 .../checkpoint/GridCheckpointManager.java       |   65 +-
 .../checkpoint/GridCheckpointRequest.java       |   15 +-
 .../GridCollisionJobContextAdapter.java         |   11 +-
 .../collision/GridCollisionManager.java         |   23 +-
 .../communication/GridDisconnectListener.java   |    4 +-
 .../managers/communication/GridIoManager.java   |  118 +-
 .../managers/communication/GridIoMessage.java   |   17 +-
 .../communication/GridIoMessageFactory.java     |  142 +-
 .../managers/communication/GridIoPolicy.java    |    2 +-
 .../communication/GridIoUserMessage.java        |   31 +-
 .../GridLifecycleAwareMessageFilter.java        |    6 +-
 .../communication/GridMessageListener.java      |    5 +-
 .../managers/deployment/GridDeployment.java     |   50 +-
 .../deployment/GridDeploymentClassLoader.java   |   40 +-
 .../deployment/GridDeploymentCommunication.java |   50 +-
 .../managers/deployment/GridDeploymentInfo.java |   10 +-
 .../deployment/GridDeploymentInfoBean.java      |   29 +-
 .../deployment/GridDeploymentLocalStore.java    |   59 +-
 .../deployment/GridDeploymentManager.java       |   46 +-
 .../deployment/GridDeploymentMetadata.java      |   17 +-
 .../GridDeploymentPerLoaderStore.java           |   49 +-
 .../GridDeploymentPerVersionStore.java          |   65 +-
 .../deployment/GridDeploymentRequest.java       |   24 +-
 .../deployment/GridDeploymentResponse.java      |   15 +-
 .../deployment/GridDeploymentStore.java         |   13 +-
 .../deployment/GridDeploymentStoreAdapter.java  |   20 +-
 .../protocol/gg/GridProtocolHandler.java        |   11 +-
 .../protocol/gg/GridUrlConnection.java          |   14 +-
 .../managers/discovery/CustomEventListener.java |    4 +-
 .../discovery/CustomMessageWrapper.java         |    6 +-
 .../discovery/DiscoveryCustomMessage.java       |   11 +-
 .../discovery/GridDiscoveryManager.java         |  169 ++-
 .../GridDiscoveryTopologySnapshot.java          |   11 +-
 .../managers/discovery/GridLocalMetrics.java    |    4 +-
 .../eventstorage/GridEventStorageManager.java   |   86 +-
 .../eventstorage/GridEventStorageMessage.java   |   30 +-
 .../eventstorage/GridLocalEventListener.java    |    7 +-
 .../failover/GridFailoverContextImpl.java       |   22 +-
 .../managers/failover/GridFailoverManager.java  |   20 +-
 .../managers/indexing/GridIndexingManager.java  |   22 +-
 .../loadbalancer/GridLoadBalancerAdapter.java   |   12 +-
 .../loadbalancer/GridLoadBalancerManager.java   |   27 +-
 .../swapspace/GridSwapSpaceManager.java         |   46 +-
 .../internal/mxbean/IgniteStandardMXBean.java   |   21 +-
 .../portable/GridPortableMarshaller.java        |   10 +-
 .../portable/PortableAbstractLazyValue.java     |    2 +-
 .../internal/portable/PortableBuilderEnum.java  |    6 +-
 .../internal/portable/PortableBuilderImpl.java  |   34 +-
 .../portable/PortableBuilderReader.java         |   15 +-
 .../PortableBuilderSerializationAware.java      |    2 +-
 .../portable/PortableBuilderSerializer.java     |   11 +-
 .../portable/PortableClassDescriptor.java       |   43 +-
 .../internal/portable/PortableContext.java      |  201 ++-
 .../portable/PortableEnumArrayLazyValue.java    |    7 +-
 .../portable/PortableLazyArrayList.java         |    7 +-
 .../portable/PortableLazyLinkedList.java        |    9 +-
 .../internal/portable/PortableLazyMap.java      |   12 +-
 .../internal/portable/PortableLazyMapEntry.java |    4 +-
 .../internal/portable/PortableLazySet.java      |    8 +-
 .../internal/portable/PortableLazyValue.java    |    2 +-
 .../portable/PortableMetaDataCollector.java     |   23 +-
 .../portable/PortableMetaDataHandler.java       |    5 +-
 .../internal/portable/PortableMetaDataImpl.java |   28 +-
 .../portable/PortableObjectArrayLazyValue.java  |    6 +-
 .../internal/portable/PortableObjectEx.java     |   21 +-
 .../internal/portable/PortableObjectImpl.java   |   36 +-
 .../portable/PortableObjectOffheapImpl.java     |   33 +-
 .../portable/PortablePlainLazyValue.java        |    2 +-
 .../portable/PortablePlainPortableObject.java   |    4 +-
 .../internal/portable/PortablePrimitives.java   |   10 +-
 .../internal/portable/PortableRawReaderEx.java  |    8 +-
 .../internal/portable/PortableRawWriterEx.java  |   10 +-
 .../portable/PortableReaderContext.java         |   13 +-
 .../internal/portable/PortableReaderExImpl.java |  109 +-
 .../PortableThreadLocalMemoryAllocator.java     |   11 +-
 .../ignite/internal/portable/PortableUtils.java |   65 +-
 .../portable/PortableValueWithType.java         |    6 +-
 .../internal/portable/PortableWriterExImpl.java |   81 +-
 .../streams/PortableAbstractInputStream.java    |    4 +-
 .../streams/PortableAbstractOutputStream.java   |    2 +-
 .../streams/PortableAbstractStream.java         |   10 +-
 .../streams/PortableHeapInputStream.java        |    4 +-
 .../streams/PortableHeapOutputStream.java       |    5 +-
 .../portable/streams/PortableInputStream.java   |    2 +-
 .../streams/PortableMemoryAllocator.java        |    2 +-
 .../streams/PortableOffheapInputStream.java     |    2 +-
 .../streams/PortableOffheapOutputStream.java    |    2 +-
 .../portable/streams/PortableOutputStream.java  |    2 +-
 .../streams/PortableSimpleMemoryAllocator.java  |    7 +-
 .../portable/streams/PortableStream.java        |    2 +-
 .../internal/processors/GridProcessor.java      |    6 +-
 .../processors/GridProcessorAdapter.java        |   23 +-
 .../affinity/AffinityTopologyVersion.java       |   16 +-
 .../affinity/GridAffinityAssignment.java        |   17 +-
 .../affinity/GridAffinityAssignmentCache.java   |   47 +-
 .../GridAffinityFunctionContextImpl.java        |   14 +-
 .../affinity/GridAffinityMessage.java           |   21 +-
 .../affinity/GridAffinityProcessor.java         |   80 +-
 .../processors/affinity/GridAffinityUtils.java  |   41 +-
 ...acheAtomicUpdateTimeoutCheckedException.java |    4 +-
 .../processors/cache/CacheEntryImpl.java        |   14 +-
 .../processors/cache/CacheEntryImpl0.java       |   11 +-
 .../processors/cache/CacheEntryImplEx.java      |   13 +-
 .../cache/CacheEntryInfoCollection.java         |   15 +-
 .../processors/cache/CacheEntryPredicate.java   |    8 +-
 .../cache/CacheEntryPredicateAdapter.java       |   13 +-
 .../cache/CacheEntryPredicateContainsValue.java |   17 +-
 .../cache/CacheEntryPredicateHasValue.java      |    2 +-
 .../cache/CacheEntryPredicateNoValue.java       |    2 +-
 .../cache/CacheEntrySerializablePredicate.java  |   14 +-
 .../cache/CacheEvictableEntryImpl.java          |   23 +-
 .../processors/cache/CacheEvictionEntry.java    |   15 +-
 .../cache/CacheInvokeDirectResult.java          |   22 +-
 .../processors/cache/CacheInvokeEntry.java      |   14 +-
 .../processors/cache/CacheInvokeResult.java     |   17 +-
 .../cache/CacheIteratorConverter.java           |    2 +-
 .../processors/cache/CacheLazyEntry.java        |   12 +-
 .../processors/cache/CacheLockImpl.java         |   21 +-
 .../processors/cache/CacheMetricsImpl.java      |   19 +-
 .../cache/CacheMetricsMXBeanImpl.java           |    6 +-
 .../processors/cache/CacheMetricsSnapshot.java  |   14 +-
 .../internal/processors/cache/CacheObject.java  |    8 +-
 .../processors/cache/CacheObjectAdapter.java    |   19 +-
 .../cache/CacheObjectByteArrayImpl.java         |   22 +-
 .../processors/cache/CacheObjectContext.java    |   11 +-
 .../processors/cache/CacheObjectImpl.java       |    7 +-
 .../processors/cache/CacheOperationContext.java |   15 +-
 .../cache/CacheOsConflictResolutionManager.java |    8 +-
 .../CachePartialUpdateCheckedException.java     |   11 +-
 .../processors/cache/CachePeekModes.java        |    4 +-
 .../cache/CacheStoreBalancingWrapper.java       |   30 +-
 .../cache/CacheStorePartialUpdateException.java |    7 +-
 .../internal/processors/cache/CacheType.java    |    5 +-
 .../cache/CacheWeakQueryIteratorsHolder.java    |   21 +-
 .../cache/DynamicCacheChangeBatch.java          |   17 +-
 .../cache/DynamicCacheChangeRequest.java        |   16 +-
 .../cache/DynamicCacheDescriptor.java           |   20 +-
 .../processors/cache/GridCacheAdapter.java      |  195 ++-
 .../cache/GridCacheAffinityManager.java         |   31 +-
 .../processors/cache/GridCacheAtomicFuture.java |   14 +-
 .../cache/GridCacheAtomicVersionComparator.java |    4 +-
 .../processors/cache/GridCacheAttributes.java   |   30 +-
 .../cache/GridCacheBatchSwapEntry.java          |   11 +-
 .../cache/GridCacheClearAllRunnable.java        |   18 +-
 .../cache/GridCacheConcurrentMap.java           |   60 +-
 .../processors/cache/GridCacheContext.java      |  142 +-
 .../GridCacheDefaultAffinityKeyMapper.java      |   29 +-
 .../cache/GridCacheDeploymentManager.java       |   68 +-
 .../processors/cache/GridCacheEntryEx.java      |   34 +-
 .../processors/cache/GridCacheEntryInfo.java    |   20 +-
 .../GridCacheEntryInfoCollectSwapListener.java  |   10 +-
 .../processors/cache/GridCacheEntrySet.java     |   22 +-
 .../processors/cache/GridCacheEventManager.java |   30 +-
 .../cache/GridCacheEvictionManager.java         |  121 +-
 .../cache/GridCacheEvictionRequest.java         |   28 +-
 .../cache/GridCacheEvictionResponse.java        |   22 +-
 .../cache/GridCacheExplicitLockSpan.java        |   28 +-
 .../cache/GridCacheFilterFailedException.java   |    4 +-
 .../processors/cache/GridCacheFuture.java       |   14 +-
 .../processors/cache/GridCacheGateway.java      |   24 +-
 .../cache/GridCacheIndexUpdateException.java    |    6 +-
 .../processors/cache/GridCacheInternal.java     |    2 +-
 .../processors/cache/GridCacheIoManager.java    |   92 +-
 .../processors/cache/GridCacheIterator.java     |   14 +-
 .../processors/cache/GridCacheKeySet.java       |   18 +-
 .../cache/GridCacheLoaderWriterStore.java       |   22 +-
 .../GridCacheLoaderWriterStoreFactory.java      |   12 +-
 .../processors/cache/GridCacheLogger.java       |   23 +-
 .../processors/cache/GridCacheManager.java      |    6 +-
 .../cache/GridCacheManagerAdapter.java          |   12 +-
 .../processors/cache/GridCacheMapEntry.java     |   85 +-
 .../cache/GridCacheMapEntryFactory.java         |    6 +-
 .../processors/cache/GridCacheMessage.java      |   37 +-
 .../cache/GridCacheMultiTxFuture.java           |   25 +-
 .../processors/cache/GridCacheMvcc.java         |   30 +-
 .../processors/cache/GridCacheMvccCallback.java |    4 +-
 .../cache/GridCacheMvccCandidate.java           |   47 +-
 .../processors/cache/GridCacheMvccFuture.java   |    2 +-
 .../processors/cache/GridCacheMvccManager.java  |  140 +-
 .../cache/GridCacheOffheapSwapEntry.java        |   15 +-
 .../GridCachePartitionExchangeManager.java      |  105 +-
 .../processors/cache/GridCachePreloader.java    |   18 +-
 .../cache/GridCachePreloaderAdapter.java        |   23 +-
 .../processors/cache/GridCacheProcessor.java    |  186 ++-
 .../processors/cache/GridCacheProxyImpl.java    |   54 +-
 .../processors/cache/GridCacheReturn.java       |   35 +-
 .../cache/GridCacheSharedContext.java           |   74 +-
 .../cache/GridCacheSharedManager.java           |    6 +-
 .../cache/GridCacheSharedManagerAdapter.java    |   12 +-
 .../processors/cache/GridCacheSwapEntry.java    |    8 +-
 .../cache/GridCacheSwapEntryImpl.java           |   20 +-
 .../processors/cache/GridCacheSwapListener.java |    4 +-
 .../processors/cache/GridCacheSwapManager.java  |   75 +-
 .../cache/GridCacheTryPutFailedException.java   |    4 +-
 .../processors/cache/GridCacheTtlManager.java   |   24 +-
 .../cache/GridCacheUpdateAtomicResult.java      |   16 +-
 .../cache/GridCacheUpdateTxResult.java          |    8 +-
 .../processors/cache/GridCacheUtilityKey.java   |    4 +-
 .../processors/cache/GridCacheUtils.java        |  130 +-
 .../cache/GridCacheValueCollection.java         |   22 +-
 .../cache/IgniteCacheExpiryPolicy.java          |   15 +-
 .../processors/cache/IgniteCacheFutureImpl.java |   17 +-
 .../processors/cache/IgniteCacheProxy.java      |   96 +-
 .../processors/cache/IgniteInternalCache.java   |   53 +-
 .../processors/cache/KeyCacheObject.java        |    2 +-
 .../processors/cache/KeyCacheObjectImpl.java    |    6 +-
 .../processors/cache/QueryCursorImpl.java       |   14 +-
 .../cache/affinity/GridCacheAffinityImpl.java   |   28 +-
 .../cache/affinity/GridCacheAffinityProxy.java  |   22 +-
 .../CacheDataStructuresManager.java             |   78 +-
 .../distributed/GridCacheCommittedTxInfo.java   |   22 +-
 .../distributed/GridCacheMappedVersion.java     |    6 +-
 .../distributed/GridCacheTtlUpdateRequest.java  |   30 +-
 .../distributed/GridCacheTxFinishSync.java      |   27 +-
 .../distributed/GridCacheTxRecoveryFuture.java  |   38 +-
 .../distributed/GridCacheTxRecoveryRequest.java |   18 +-
 .../GridCacheTxRecoveryResponse.java            |   16 +-
 .../distributed/GridDistributedBaseMessage.java |   32 +-
 .../GridDistributedCacheAdapter.java            |   72 +-
 .../distributed/GridDistributedCacheEntry.java  |   33 +-
 .../distributed/GridDistributedLockRequest.java |   40 +-
 .../GridDistributedLockResponse.java            |   36 +-
 .../GridDistributedTxFinishRequest.java         |   22 +-
 .../GridDistributedTxFinishResponse.java        |   18 +-
 .../distributed/GridDistributedTxMapping.java   |   34 +-
 .../GridDistributedTxPrepareRequest.java        |   42 +-
 .../GridDistributedTxPrepareResponse.java       |   21 +-
 .../GridDistributedTxRemoteAdapter.java         |   83 +-
 .../GridDistributedUnlockRequest.java           |   26 +-
 .../GridFutureRemapTimeoutObject.java           |   13 +-
 .../IgniteExternalizableExpiryPolicy.java       |   18 +-
 .../dht/GridClientPartitionTopology.java        |   48 +-
 .../dht/GridDhtAffinityAssignmentRequest.java   |   16 +-
 .../dht/GridDhtAffinityAssignmentResponse.java  |   29 +-
 .../dht/GridDhtAssignmentFetchFuture.java       |   37 +-
 .../cache/distributed/dht/GridDhtCache.java     |   15 +-
 .../distributed/dht/GridDhtCacheAdapter.java    |   91 +-
 .../distributed/dht/GridDhtCacheEntry.java      |   49 +-
 .../distributed/dht/GridDhtEmbeddedFuture.java  |   16 +-
 .../distributed/dht/GridDhtFinishedFuture.java  |   10 +-
 .../cache/distributed/dht/GridDhtFuture.java    |    7 +-
 .../cache/distributed/dht/GridDhtGetFuture.java |   52 +-
 .../dht/GridDhtInvalidPartitionException.java   |    2 +-
 .../distributed/dht/GridDhtLocalPartition.java  |   73 +-
 .../distributed/dht/GridDhtLockFuture.java      |   84 +-
 .../distributed/dht/GridDhtLockRequest.java     |   47 +-
 .../distributed/dht/GridDhtLockResponse.java    |   38 +-
 .../dht/GridDhtOffHeapCacheEntry.java           |    9 +-
 .../distributed/dht/GridDhtPartitionState.java  |    4 +-
 .../dht/GridDhtPartitionTopology.java           |   22 +-
 .../dht/GridDhtPartitionTopologyImpl.java       |   59 +-
 .../dht/GridDhtPartitionsReservation.java       |   16 +-
 .../distributed/dht/GridDhtTopologyFuture.java  |    8 +-
 .../dht/GridDhtTransactionalCacheAdapter.java   |   90 +-
 .../distributed/dht/GridDhtTxFinishFuture.java  |   50 +-
 .../distributed/dht/GridDhtTxFinishRequest.java |   32 +-
 .../dht/GridDhtTxFinishResponse.java            |   25 +-
 .../cache/distributed/dht/GridDhtTxLocal.java   |   63 +-
 .../distributed/dht/GridDhtTxLocalAdapter.java  |   77 +-
 .../cache/distributed/dht/GridDhtTxMapping.java |   21 +-
 .../distributed/dht/GridDhtTxPrepareFuture.java |  103 +-
 .../dht/GridDhtTxPrepareRequest.java            |   45 +-
 .../dht/GridDhtTxPrepareResponse.java           |   40 +-
 .../cache/distributed/dht/GridDhtTxRemote.java  |   47 +-
 .../distributed/dht/GridDhtUnlockRequest.java   |   25 +-
 .../GridDhtUnreservedPartitionException.java    |    6 +-
 .../distributed/dht/GridNoStorageCacheMap.java  |   20 +-
 .../dht/GridPartitionedGetFuture.java           |   70 +-
 .../cache/distributed/dht/GridReservable.java   |    2 +-
 .../dht/atomic/GridDhtAtomicCache.java          |  154 +-
 .../dht/atomic/GridDhtAtomicCacheEntry.java     |   14 +-
 .../GridDhtAtomicDeferredUpdateResponse.java    |   22 +-
 .../atomic/GridDhtAtomicOffHeapCacheEntry.java  |    9 +-
 .../dht/atomic/GridDhtAtomicUpdateFuture.java   |   66 +-
 .../dht/atomic/GridDhtAtomicUpdateRequest.java  |   46 +-
 .../dht/atomic/GridDhtAtomicUpdateResponse.java |   32 +-
 .../dht/atomic/GridNearAtomicUpdateFuture.java  | 1310 +++++++++---------
 .../dht/atomic/GridNearAtomicUpdateRequest.java |   58 +-
 .../atomic/GridNearAtomicUpdateResponse.java    |   41 +-
 .../dht/colocated/GridDhtColocatedCache.java    |   78 +-
 .../colocated/GridDhtColocatedCacheEntry.java   |   13 +-
 .../colocated/GridDhtColocatedLockFuture.java   |   79 +-
 .../GridDhtColocatedOffHeapCacheEntry.java      |    9 +-
 .../colocated/GridDhtDetachedCacheEntry.java    |   17 +-
 .../dht/preloader/GridDhtForceKeysFuture.java   |   70 +-
 .../dht/preloader/GridDhtForceKeysRequest.java  |   33 +-
 .../dht/preloader/GridDhtForceKeysResponse.java |   34 +-
 .../GridDhtPartitionDemandMessage.java          |   30 +-
 .../preloader/GridDhtPartitionDemandPool.java   |   93 +-
 .../preloader/GridDhtPartitionExchangeId.java   |   31 +-
 .../dht/preloader/GridDhtPartitionFullMap.java  |   16 +-
 .../dht/preloader/GridDhtPartitionMap.java      |   22 +-
 .../GridDhtPartitionSupplyMessage.java          |   35 +-
 .../preloader/GridDhtPartitionSupplyPool.java   |   56 +-
 .../GridDhtPartitionsAbstractMessage.java       |   18 +-
 .../GridDhtPartitionsExchangeFuture.java        |   95 +-
 .../preloader/GridDhtPartitionsFullMessage.java |   30 +-
 .../GridDhtPartitionsSingleMessage.java         |   27 +-
 .../GridDhtPartitionsSingleRequest.java         |   12 +-
 .../dht/preloader/GridDhtPreloader.java         |   72 +-
 .../preloader/GridDhtPreloaderAssignments.java  |   12 +-
 .../distributed/near/CacheVersionedValue.java   |   21 +-
 .../distributed/near/GridNearAtomicCache.java   |   75 +-
 .../distributed/near/GridNearCacheAdapter.java  |   72 +-
 .../near/GridNearCacheClearAllRunnable.java     |    9 +-
 .../distributed/near/GridNearCacheEntry.java    |   40 +-
 .../distributed/near/GridNearGetFuture.java     |   77 +-
 .../distributed/near/GridNearGetRequest.java    |   43 +-
 .../distributed/near/GridNearGetResponse.java   |   40 +-
 .../distributed/near/GridNearLockFuture.java    |   76 +-
 .../distributed/near/GridNearLockMapping.java   |   17 +-
 .../distributed/near/GridNearLockRequest.java   |   38 +-
 .../distributed/near/GridNearLockResponse.java  |   33 +-
 .../near/GridNearOffHeapCacheEntry.java         |    7 +-
 .../near/GridNearOptimisticTxPrepareFuture.java |  159 ++-
 .../GridNearPessimisticTxPrepareFuture.java     |   52 +-
 .../near/GridNearTransactionalCache.java        |   64 +-
 .../near/GridNearTxFinishFuture.java            |   64 +-
 .../near/GridNearTxFinishRequest.java           |   24 +-
 .../near/GridNearTxFinishResponse.java          |   26 +-
 .../cache/distributed/near/GridNearTxLocal.java |   88 +-
 .../near/GridNearTxPrepareFutureAdapter.java    |   47 +-
 .../near/GridNearTxPrepareRequest.java          |   37 +-
 .../near/GridNearTxPrepareResponse.java         |   45 +-
 .../distributed/near/GridNearTxRemote.java      |   37 +-
 .../distributed/near/GridNearUnlockRequest.java |   14 +-
 .../cache/dr/GridCacheDrExpirationInfo.java     |    8 +-
 .../processors/cache/dr/GridCacheDrInfo.java    |   15 +-
 .../processors/cache/dr/GridCacheDrManager.java |   16 +-
 .../cache/dr/GridOsCacheDrManager.java          |   18 +-
 .../extras/GridCacheAttributesEntryExtras.java  |    8 +-
 .../GridCacheAttributesMvccEntryExtras.java     |   10 +-
 ...dCacheAttributesMvccObsoleteEntryExtras.java |   10 +-
 ...cheAttributesMvccObsoleteTtlEntryExtras.java |   10 +-
 .../GridCacheAttributesMvccTtlEntryExtras.java  |   10 +-
 .../GridCacheAttributesObsoleteEntryExtras.java |    8 +-
 ...idCacheAttributesObsoleteTtlEntryExtras.java |    8 +-
 .../GridCacheAttributesTtlEntryExtras.java      |    8 +-
 .../cache/extras/GridCacheEntryExtras.java      |    8 +-
 .../extras/GridCacheEntryExtrasAdapter.java     |    6 +-
 .../cache/extras/GridCacheMvccEntryExtras.java  |    8 +-
 .../GridCacheMvccObsoleteEntryExtras.java       |    8 +-
 .../GridCacheMvccObsoleteTtlEntryExtras.java    |    8 +-
 .../extras/GridCacheMvccTtlEntryExtras.java     |    7 +-
 .../extras/GridCacheObsoleteEntryExtras.java    |    8 +-
 .../extras/GridCacheObsoleteTtlEntryExtras.java |    8 +-
 .../cache/extras/GridCacheTtlEntryExtras.java   |    8 +-
 .../cache/jta/CacheJtaManagerAdapter.java       |   11 +-
 .../cache/jta/CacheNoopJtaManager.java          |    8 +-
 .../processors/cache/local/GridLocalCache.java  |   43 +-
 .../cache/local/GridLocalCacheEntry.java        |   21 +-
 .../cache/local/GridLocalLockCallback.java      |    4 +-
 .../cache/local/GridLocalLockFuture.java        |   42 +-
 .../local/atomic/GridLocalAtomicCache.java      |   91 +-
 .../CacheDefaultPortableAffinityKeyMapper.java  |   12 +-
 .../portable/CacheObjectPortableContext.java    |   23 +-
 .../portable/CacheObjectPortableProcessor.java  |   18 +-
 .../CacheObjectPortableProcessorImpl.java       |  138 +-
 .../cache/portable/IgnitePortablesImpl.java     |   19 +-
 .../cache/portable/PortableMetaDataKey.java     |   12 +-
 .../processors/cache/query/CacheQuery.java      |   18 +-
 .../CacheQueryCloseableScanBiPredicate.java     |    4 +-
 .../cache/query/CacheQueryFuture.java           |   11 +-
 .../processors/cache/query/CacheQueryType.java  |    2 +-
 .../GridCacheDistributedFieldsQueryFuture.java  |   20 +-
 .../query/GridCacheDistributedQueryFuture.java  |   25 +-
 .../query/GridCacheDistributedQueryManager.java |   58 +-
 .../query/GridCacheLocalFieldsQueryFuture.java  |   17 +-
 .../cache/query/GridCacheLocalQueryFuture.java  |   18 +-
 .../cache/query/GridCacheLocalQueryManager.java |   17 +-
 .../cache/query/GridCacheQueryAdapter.java      |   65 +-
 .../cache/query/GridCacheQueryBean.java         |    9 +-
 .../cache/query/GridCacheQueryErrorFuture.java  |   13 +-
 .../query/GridCacheQueryFutureAdapter.java      |   50 +-
 .../cache/query/GridCacheQueryInfo.java         |   12 +-
 .../cache/query/GridCacheQueryManager.java      |  149 +-
 .../query/GridCacheQueryMetadataAware.java      |    9 +-
 .../query/GridCacheQueryMetricsAdapter.java     |   12 +-
 .../cache/query/GridCacheQueryMetricsKey.java   |   14 +-
 .../cache/query/GridCacheQueryRequest.java      |   41 +-
 .../cache/query/GridCacheQueryResponse.java     |   34 +-
 .../query/GridCacheQueryResponseEntry.java      |   12 +-
 .../cache/query/GridCacheQueryType.java         |    4 +-
 .../cache/query/GridCacheSqlIndexMetadata.java  |    6 +-
 .../cache/query/GridCacheSqlMetadata.java       |   12 +-
 .../cache/query/GridCacheSqlQuery.java          |   24 +-
 .../cache/query/GridCacheTwoStepQuery.java      |   11 +-
 .../processors/cache/query/QueryCursorEx.java   |   11 +-
 .../continuous/CacheContinuousQueryEntry.java   |   29 +-
 .../continuous/CacheContinuousQueryEvent.java   |   14 +-
 .../CacheContinuousQueryFilterEx.java           |    4 +-
 .../continuous/CacheContinuousQueryHandler.java |   55 +-
 .../CacheContinuousQueryListener.java           |    2 +-
 .../continuous/CacheContinuousQueryManager.java |   73 +-
 .../jdbc/GridCacheQueryJdbcMetadataTask.java    |   46 +-
 .../query/jdbc/GridCacheQueryJdbcTask.java      |   62 +-
 .../jdbc/GridCacheQueryJdbcValidationTask.java  |   25 +-
 .../processors/cache/store/CacheLocalStore.java |    8 +-
 .../cache/store/CacheOsStoreManager.java        |    8 +-
 .../cache/store/CacheStoreManager.java          |   24 +-
 .../store/GridCacheStoreManagerAdapter.java     |   69 +-
 .../cache/store/GridCacheWriteBehindStore.java  |   55 +-
 .../cache/transactions/IgniteInternalTx.java    |   40 +-
 .../transactions/IgniteTransactionsImpl.java    |   24 +-
 .../cache/transactions/IgniteTxAdapter.java     |  111 +-
 .../cache/transactions/IgniteTxEntry.java       |   61 +-
 .../cache/transactions/IgniteTxHandler.java     |   91 +-
 .../cache/transactions/IgniteTxKey.java         |   20 +-
 .../transactions/IgniteTxLocalAdapter.java      |  129 +-
 .../cache/transactions/IgniteTxLocalEx.java     |   26 +-
 .../cache/transactions/IgniteTxManager.java     |  117 +-
 .../cache/transactions/IgniteTxMap.java         |   23 +-
 .../cache/transactions/IgniteTxRemoteEx.java    |    7 +-
 .../transactions/TransactionMetricsAdapter.java |   13 +-
 .../cache/transactions/TransactionProxy.java    |    4 +-
 .../transactions/TransactionProxyImpl.java      |   38 +-
 .../cache/transactions/TxEntryValueHolder.java  |   31 +-
 .../version/CacheVersionConflictResolver.java   |    4 +-
 .../version/GridCachePlainVersionedEntry.java   |    6 +-
 .../version/GridCacheRawVersionedEntry.java     |   29 +-
 .../cache/version/GridCacheVersion.java         |   20 +-
 .../cache/version/GridCacheVersionAware.java    |    2 +-
 .../GridCacheVersionConflictContext.java        |   10 +-
 .../cache/version/GridCacheVersionEx.java       |   13 +-
 .../cache/version/GridCacheVersionManager.java  |   26 +-
 .../cache/version/GridCacheVersionable.java     |    2 +-
 .../cache/version/GridCacheVersionedEntry.java  |    4 +-
 .../version/GridCacheVersionedEntryEx.java      |    2 +-
 .../cacheobject/IgniteCacheObjectProcessor.java |   18 +-
 .../IgniteCacheObjectProcessorImpl.java         |   46 +-
 .../clock/GridClockDeltaSnapshot.java           |   20 +-
 .../clock/GridClockDeltaSnapshotMessage.java    |   21 +-
 .../processors/clock/GridClockDeltaVersion.java |   16 +-
 .../processors/clock/GridClockMessage.java      |   10 +-
 .../processors/clock/GridClockServer.java       |   24 +-
 .../processors/clock/GridClockSource.java       |    2 +-
 .../clock/GridClockSyncProcessor.java           |   52 +-
 .../processors/clock/GridJvmClockSource.java    |    2 +-
 .../processors/closure/AffinityTask.java        |    4 +-
 .../processors/closure/GridClosurePolicy.java   |    4 +-
 .../closure/GridClosureProcessor.java           |   80 +-
 .../closure/GridPeerDeployAwareTaskAdapter.java |   10 +-
 .../processors/cluster/ClusterProcessor.java    |   12 +-
 .../continuous/AbstractContinuousMessage.java   |    9 +-
 .../continuous/GridContinuousHandler.java       |   14 +-
 .../continuous/GridContinuousMessage.java       |   30 +-
 .../continuous/GridContinuousMessageType.java   |    4 +-
 .../continuous/GridContinuousProcessor.java     |   96 +-
 .../processors/continuous/StartRequestData.java |   23 +-
 .../StartRoutineAckDiscoveryMessage.java        |   15 +-
 .../StartRoutineDiscoveryMessage.java           |   13 +-
 .../StopRoutineAckDiscoveryMessage.java         |   11 +-
 .../continuous/StopRoutineDiscoveryMessage.java |   11 +-
 .../datastreamer/DataStreamProcessor.java       |   48 +-
 .../datastreamer/DataStreamerCacheUpdaters.java |   20 +-
 .../datastreamer/DataStreamerEntry.java         |   19 +-
 .../datastreamer/DataStreamerFuture.java        |   10 +-
 .../datastreamer/DataStreamerImpl.java          |  125 +-
 .../datastreamer/DataStreamerRequest.java       |   30 +-
 .../datastreamer/DataStreamerResponse.java      |   11 +-
 .../datastreamer/DataStreamerUpdateJob.java     |   25 +-
 .../CacheDataStructuresCacheKey.java            |   10 +-
 .../CacheDataStructuresConfigurationKey.java    |   10 +-
 .../datastructures/DataStructuresProcessor.java |  101 +-
 .../GridAtomicCacheQueueImpl.java               |   20 +-
 .../GridCacheAnnotationHelper.java              |   23 +-
 .../datastructures/GridCacheAtomicLongEx.java   |    4 +-
 .../datastructures/GridCacheAtomicLongImpl.java |   39 +-
 .../GridCacheAtomicLongValue.java               |   12 +-
 .../GridCacheAtomicReferenceEx.java             |    4 +-
 .../GridCacheAtomicReferenceImpl.java           |   38 +-
 .../GridCacheAtomicReferenceValue.java          |   14 +-
 .../GridCacheAtomicSequenceEx.java              |    4 +-
 .../GridCacheAtomicSequenceImpl.java            |   52 +-
 .../GridCacheAtomicSequenceValue.java           |   12 +-
 .../GridCacheAtomicStampedEx.java               |    4 +-
 .../GridCacheAtomicStampedImpl.java             |   44 +-
 .../GridCacheAtomicStampedValue.java            |   18 +-
 .../GridCacheCountDownLatchEx.java              |    4 +-
 .../GridCacheCountDownLatchImpl.java            |   44 +-
 .../GridCacheCountDownLatchValue.java           |   12 +-
 .../datastructures/GridCacheInternalKey.java    |    4 +-
 .../GridCacheInternalKeyImpl.java               |   15 +-
 .../datastructures/GridCacheQueueAdapter.java   |   49 +-
 .../datastructures/GridCacheQueueHeader.java    |   24 +-
 .../datastructures/GridCacheQueueHeaderKey.java |   13 +-
 .../datastructures/GridCacheQueueItemKey.java   |   15 +-
 .../datastructures/GridCacheQueueProxy.java     |   33 +-
 .../datastructures/GridCacheRemovable.java      |    2 +-
 .../datastructures/GridCacheSetHeader.java      |   15 +-
 .../datastructures/GridCacheSetHeaderKey.java   |   13 +-
 .../datastructures/GridCacheSetImpl.java        |   57 +-
 .../datastructures/GridCacheSetItemKey.java     |   17 +-
 .../datastructures/GridCacheSetProxy.java       |   34 +-
 .../datastructures/GridSetQueryPredicate.java   |   19 +-
 .../GridTransactionalCacheQueueImpl.java        |   33 +-
 .../internal/processors/dr/GridDrType.java      |    2 +-
 .../dr/IgniteDrDataStreamerCacheUpdater.java    |   40 +-
 .../internal/processors/hadoop/Hadoop.java      |   12 +-
 .../processors/hadoop/HadoopFileBlock.java      |   16 +-
 .../processors/hadoop/HadoopInputSplit.java     |    4 +-
 .../internal/processors/hadoop/HadoopJob.java   |    8 +-
 .../internal/processors/hadoop/HadoopJobId.java |   14 +-
 .../processors/hadoop/HadoopJobInfo.java        |   10 +-
 .../processors/hadoop/HadoopJobPhase.java       |    2 +-
 .../processors/hadoop/HadoopJobProperty.java    |    4 +-
 .../processors/hadoop/HadoopJobStatus.java      |   11 +-
 .../processors/hadoop/HadoopMapReducePlan.java  |   10 +-
 .../hadoop/HadoopMapReducePlanner.java          |   11 +-
 .../processors/hadoop/HadoopNoopProcessor.java  |   13 +-
 .../processors/hadoop/HadoopPartitioner.java    |    2 +-
 .../hadoop/HadoopProcessorAdapter.java          |   13 +-
 .../processors/hadoop/HadoopSerialization.java  |   10 +-
 .../internal/processors/hadoop/HadoopTask.java  |    7 +-
 .../processors/hadoop/HadoopTaskContext.java    |   12 +-
 .../processors/hadoop/HadoopTaskInfo.java       |   12 +-
 .../processors/hadoop/HadoopTaskInput.java      |    7 +-
 .../processors/hadoop/HadoopTaskOutput.java     |    4 +-
 .../processors/hadoop/HadoopTaskType.java       |    4 +-
 .../hadoop/counter/HadoopCounter.java           |    2 +-
 .../hadoop/counter/HadoopCounterWriter.java     |    6 +-
 .../hadoop/counter/HadoopCounters.java          |    4 +-
 .../processors/igfs/IgfsAckMessage.java         |   20 +-
 .../internal/processors/igfs/IgfsAsyncImpl.java |   34 +-
 .../processors/igfs/IgfsAttributes.java         |   16 +-
 .../internal/processors/igfs/IgfsBlockKey.java  |   26 +-
 .../processors/igfs/IgfsBlockLocationImpl.java  |   28 +-
 .../processors/igfs/IgfsBlocksMessage.java      |   17 +-
 .../processors/igfs/IgfsClientSession.java      |   13 +-
 .../igfs/IgfsCommunicationMessage.java          |   15 +-
 .../internal/processors/igfs/IgfsContext.java   |   23 +-
 .../processors/igfs/IgfsDataManager.java        |  286 ++--
 .../processors/igfs/IgfsDeleteMessage.java      |   22 +-
 .../processors/igfs/IgfsDeleteWorker.java       |   46 +-
 .../ignite/internal/processors/igfs/IgfsEx.java |   19 +-
 .../processors/igfs/IgfsFileAffinityRange.java  |   25 +-
 .../internal/processors/igfs/IgfsFileImpl.java  |   22 +-
 .../internal/processors/igfs/IgfsFileInfo.java  |   29 +-
 .../internal/processors/igfs/IgfsFileMap.java   |   28 +-
 .../processors/igfs/IgfsFileWorkerBatch.java    |   18 +-
 .../igfs/IgfsFragmentizerManager.java           |   71 +-
 .../igfs/IgfsFragmentizerRequest.java           |   21 +-
 .../igfs/IgfsFragmentizerResponse.java          |   12 +-
 .../processors/igfs/IgfsHandshakeResponse.java  |   10 +-
 .../internal/processors/igfs/IgfsHelper.java    |    6 +-
 .../processors/igfs/IgfsHelperImpl.java         |   14 +-
 .../internal/processors/igfs/IgfsImpl.java      |  134 +-
 .../processors/igfs/IgfsInputStreamAdapter.java |    9 +-
 .../igfs/IgfsInputStreamDescriptor.java         |    7 +-
 .../processors/igfs/IgfsInputStreamImpl.java    |   39 +-
 .../igfs/IgfsInvalidRangeException.java         |    4 +-
 .../processors/igfs/IgfsIpcHandler.java         |   45 +-
 .../internal/processors/igfs/IgfsJobImpl.java   |   24 +-
 .../processors/igfs/IgfsListingEntry.java       |   15 +-
 .../processors/igfs/IgfsLocalMetrics.java       |    8 +-
 .../internal/processors/igfs/IgfsManager.java   |    8 +-
 .../processors/igfs/IgfsMetaManager.java        |  142 +-
 .../processors/igfs/IgfsMetricsAdapter.java     |   12 +-
 .../processors/igfs/IgfsModeResolver.java       |   20 +-
 .../processors/igfs/IgfsNoopHelper.java         |    6 +-
 .../processors/igfs/IgfsNoopProcessor.java      |   23 +-
 .../igfs/IgfsOutputStreamAdapter.java           |   18 +-
 .../processors/igfs/IgfsOutputStreamImpl.java   |   42 +-
 .../internal/processors/igfs/IgfsPaths.java     |   21 +-
 .../internal/processors/igfs/IgfsProcessor.java |   67 +-
 .../processors/igfs/IgfsProcessorAdapter.java   |   22 +-
 .../processors/igfs/IgfsSamplingKey.java        |   15 +-
 .../igfs/IgfsSecondaryFileSystemImpl.java       |   19 +-
 .../IgfsSecondaryInputStreamDescriptor.java     |    4 +-
 .../IgfsSecondaryOutputStreamDescriptor.java    |    7 +-
 .../internal/processors/igfs/IgfsServer.java    |   47 +-
 .../processors/igfs/IgfsServerHandler.java      |   13 +-
 .../processors/igfs/IgfsServerManager.java      |   35 +-
 .../internal/processors/igfs/IgfsStatus.java    |    7 +-
 .../processors/igfs/IgfsSyncMessage.java        |   12 +-
 .../processors/igfs/IgfsTaskArgsImpl.java       |   18 +-
 .../internal/processors/igfs/IgfsThread.java    |    4 +-
 .../internal/processors/igfs/IgfsUtils.java     |   70 +-
 .../processors/job/GridJobEventListener.java    |    4 +-
 .../processors/job/GridJobHoldListener.java     |    4 +-
 .../processors/job/GridJobProcessor.java        |  112 +-
 .../internal/processors/job/GridJobWorker.java  |   75 +-
 .../processors/jobmetrics/GridJobMetrics.java   |    4 +-
 .../jobmetrics/GridJobMetricsProcessor.java     |   21 +-
 .../jobmetrics/GridJobMetricsSnapshot.java      |    5 +-
 .../DiscoveryNodeValidationProcessor.java       |    4 +-
 .../OsDiscoveryNodeValidationProcessor.java     |   19 +-
 .../offheap/GridOffHeapProcessor.java           |   34 +-
 .../platform/PlatformAwareEventFilter.java      |   12 +-
 .../processors/platform/PlatformContext.java    |  278 ++++
 .../platform/PlatformLocalEventListener.java    |    2 +-
 .../platform/PlatformNoopProcessor.java         |   83 +-
 .../processors/platform/PlatformProcessor.java  |  128 +-
 .../processors/platform/PlatformTarget.java     |  116 ++
 .../cache/PlatformCacheEntryFilter.java         |   29 +
 .../cache/query/PlatformContinuousQuery.java    |   57 +
 .../callback/PlatformCallbackGateway.java       |  942 +++++++++++++
 .../callback/PlatformCallbackUtils.java         |  489 +++++++
 .../platform/compute/PlatformJob.java           |   39 +
 .../platform/memory/PlatformInputStream.java    |   30 +
 .../platform/memory/PlatformMemory.java         |   77 +
 .../platform/memory/PlatformMemoryManager.java  |   46 +
 .../platform/memory/PlatformOutputStream.java   |   30 +
 .../platform/services/PlatformService.java      |   44 +
 .../processors/plugin/CachePluginManager.java   |   33 +-
 .../plugin/IgnitePluginProcessor.java           |   37 +-
 .../processors/port/GridPortListener.java       |    4 +-
 .../processors/port/GridPortProcessor.java      |   21 +-
 .../processors/port/GridPortRecord.java         |    6 +-
 .../query/GridQueryCacheObjectsIterator.java    |    9 +-
 .../query/GridQueryFieldMetadata.java           |    4 +-
 .../processors/query/GridQueryFieldsResult.java |    7 +-
 .../query/GridQueryFieldsResultAdapter.java     |   10 +-
 .../query/GridQueryIndexDescriptor.java         |    4 +-
 .../processors/query/GridQueryIndexType.java    |    2 +-
 .../processors/query/GridQueryIndexing.java     |   36 +-
 .../processors/query/GridQueryProcessor.java    |   99 +-
 .../query/GridQueryTypeDescriptor.java          |    7 +-
 .../messages/GridQueryCancelRequest.java        |   11 +-
 .../twostep/messages/GridQueryFailResponse.java |   11 +-
 .../messages/GridQueryNextPageRequest.java      |   11 +-
 .../messages/GridQueryNextPageResponse.java     |   22 +-
 .../h2/twostep/messages/GridQueryRequest.java   |   26 +-
 .../resource/GridNoImplicitInjection.java       |    2 +-
 .../resource/GridResourceBasicInjector.java     |    8 +-
 .../processors/resource/GridResourceField.java  |   13 +-
 .../resource/GridResourceInjector.java          |    6 +-
 .../processors/resource/GridResourceIoc.java    |   34 +-
 .../GridResourceJobContextInjector.java         |    9 +-
 .../resource/GridResourceLoggerInjector.java    |    9 +-
 .../processors/resource/GridResourceMethod.java |   11 +-
 .../resource/GridResourceProcessor.java         |   54 +-
 .../resource/GridResourceServiceInjector.java   |   14 +-
 .../processors/resource/GridResourceUtils.java  |   13 +-
 .../resource/GridSpringResourceContext.java     |    5 +-
 .../processors/rest/GridRestCommand.java        |    8 +-
 .../processors/rest/GridRestProcessor.java      |   84 +-
 .../processors/rest/GridRestProtocol.java       |    9 +-
 .../rest/GridRestProtocolHandler.java           |    8 +-
 .../processors/rest/GridRestResponse.java       |   15 +-
 .../message/GridClientAbstractMessage.java      |   13 +-
 .../GridClientAuthenticationRequest.java        |    9 +-
 .../client/message/GridClientCacheRequest.java  |   15 +-
 .../message/GridClientHandshakeRequest.java     |    7 +-
 .../message/GridClientHandshakeResponse.java    |    4 +-
 .../rest/client/message/GridClientMessage.java  |    6 +-
 .../rest/client/message/GridClientNodeBean.java |   15 +-
 .../message/GridClientNodeMetricsBean.java      |    7 +-
 .../client/message/GridClientPingPacket.java    |    4 +-
 .../message/GridClientPortableMetaData.java     |    7 +-
 .../rest/client/message/GridClientResponse.java |    9 +-
 .../client/message/GridClientTaskRequest.java   |    9 +-
 .../message/GridClientTaskResultBean.java       |   10 +-
 .../message/GridClientTopologyRequest.java      |   11 +-
 .../rest/client/message/GridRouterRequest.java  |    9 +-
 .../rest/client/message/GridRouterResponse.java |    9 +-
 .../rest/handlers/GridRestCommandHandler.java   |   12 +-
 .../handlers/GridRestCommandHandlerAdapter.java |    6 +-
 .../handlers/cache/GridCacheCommandHandler.java |  103 +-
 .../handlers/cache/GridCacheRestMetrics.java    |    7 +-
 .../handlers/cache/GridCacheRestResponse.java   |   12 +-
 .../DataStructuresCommandHandler.java           |   32 +-
 .../query/CacheQueryFieldsMetaResult.java       |   12 +-
 .../rest/handlers/query/CacheQueryResult.java   |   13 +-
 .../handlers/query/QueryCommandHandler.java     |   48 +-
 .../handlers/task/GridTaskCommandHandler.java   |  102 +-
 .../handlers/task/GridTaskResultRequest.java    |   15 +-
 .../handlers/task/GridTaskResultResponse.java   |   13 +-
 .../top/GridTopologyCommandHandler.java         |   61 +-
 .../version/GridVersionCommandHandler.java      |   24 +-
 .../rest/protocols/GridRestProtocolAdapter.java |   36 +-
 .../protocols/tcp/GridClientPacketType.java     |    2 +-
 .../protocols/tcp/GridMemcachedMessage.java     |   12 +-
 .../tcp/GridTcpMemcachedNioListener.java        |   65 +-
 .../protocols/tcp/GridTcpRestNioListener.java   |   83 +-
 .../rest/protocols/tcp/GridTcpRestParser.java   |   62 +-
 .../rest/protocols/tcp/GridTcpRestProtocol.java |   63 +-
 .../rest/request/DataStructuresRequest.java     |    2 +-
 .../rest/request/GridRestCacheRequest.java      |    7 +-
 .../rest/request/GridRestLogRequest.java        |    4 +-
 .../rest/request/GridRestRequest.java           |   13 +-
 .../rest/request/GridRestTaskRequest.java       |    7 +-
 .../rest/request/GridRestTopologyRequest.java   |    7 +-
 .../rest/request/RestSqlQueryRequest.java       |    2 +-
 .../schedule/GridScheduleStatistics.java        |    5 +-
 .../schedule/IgniteNoopScheduleProcessor.java   |   11 +-
 .../IgniteScheduleProcessorAdapter.java         |   11 +-
 .../security/GridSecurityProcessor.java         |   19 +-
 .../processors/security/SecurityContext.java    |    5 +-
 .../security/os/GridOsSecurityProcessor.java    |   25 +-
 .../segmentation/GridSegmentationProcessor.java |    4 +-
 .../os/GridOsSegmentationProcessor.java         |    8 +-
 .../service/GridServiceAssignments.java         |   22 +-
 .../service/GridServiceAssignmentsKey.java      |    6 +-
 .../service/GridServiceDeployment.java          |   13 +-
 .../service/GridServiceDeploymentFuture.java    |    8 +-
 .../service/GridServiceDeploymentKey.java       |    6 +-
 .../GridServiceMethodNotFoundException.java     |    7 +-
 .../service/GridServiceMethodReflectKey.java    |    4 +-
 .../service/GridServiceNotFoundException.java   |    4 +-
 .../service/GridServiceProcessor.java           |  105 +-
 .../processors/service/GridServiceProxy.java    |   54 +-
 .../processors/service/ServiceContextImpl.java  |   20 +-
 .../service/ServiceDescriptorImpl.java          |   15 +-
 .../session/GridTaskSessionProcessor.java       |   28 +-
 .../internal/processors/task/GridInternal.java  |    8 +-
 .../processors/task/GridTaskEventListener.java  |    8 +-
 .../processors/task/GridTaskProcessor.java      |   99 +-
 .../task/GridTaskThreadContextKey.java          |    2 +-
 .../processors/task/GridTaskWorker.java         |  113 +-
 .../timeout/GridSpiTimeoutObject.java           |   10 +-
 .../processors/timeout/GridTimeoutObject.java   |    4 +-
 .../timeout/GridTimeoutObjectAdapter.java       |    6 +-
 .../timeout/GridTimeoutProcessor.java           |   29 +-
 .../internal/tck/TCKMBeanServerBuilder.java     |   14 +-
 .../IgniteTxHeuristicCheckedException.java      |    4 +-
 .../IgniteTxOptimisticCheckedException.java     |    4 +-
 .../IgniteTxRollbackCheckedException.java       |    4 +-
 .../IgniteTxTimeoutCheckedException.java        |    4 +-
 .../org/apache/ignite/internal/util/F0.java     |   29 +-
 .../internal/util/GridAnnotationsCache.java     |   17 +-
 .../ignite/internal/util/GridArgumentCheck.java |    7 +-
 .../internal/util/GridAtomicInitializer.java    |   12 +-
 .../ignite/internal/util/GridAtomicInteger.java |    7 +-
 .../ignite/internal/util/GridAtomicLong.java    |    7 +-
 .../GridBoundedConcurrentLinkedHashMap.java     |    8 +-
 .../GridBoundedConcurrentLinkedHashSet.java     |   18 +-
 .../util/GridBoundedConcurrentOrderedMap.java   |   18 +-
 .../util/GridBoundedConcurrentOrderedSet.java   |    9 +-
 .../internal/util/GridBoundedLinkedHashMap.java |    5 +-
 .../internal/util/GridBoundedLinkedHashSet.java |    7 +-
 .../ignite/internal/util/GridBusyLock.java      |    7 +-
 .../ignite/internal/util/GridByteArrayList.java |   26 +-
 .../internal/util/GridCircularBuffer.java       |   23 +-
 .../internal/util/GridClassLoaderCache.java     |   13 +-
 .../internal/util/GridClientByteUtils.java      |    7 +-
 .../util/GridCloseableIteratorAdapter.java      |   10 +-
 .../util/GridCloseableIteratorAdapterEx.java    |   12 +-
 .../ignite/internal/util/GridCollections.java   |   14 +-
 .../internal/util/GridConcurrentFactory.java    |   11 +-
 .../internal/util/GridConcurrentHashSet.java    |   13 +-
 .../util/GridConcurrentLinkedHashSet.java       |   16 +-
 .../util/GridConcurrentPhantomHashSet.java      |   25 +-
 .../util/GridConcurrentSkipListSet.java         |   22 +-
 .../util/GridConcurrentWeakHashSet.java         |   25 +-
 .../internal/util/GridConfigurationFinder.java  |   19 +-
 .../internal/util/GridConsistentHash.java       |   32 +-
 .../apache/ignite/internal/util/GridDebug.java  |   33 +-
 .../util/GridEmptyCloseableIterator.java        |    6 +-
 .../ignite/internal/util/GridEmptyIterator.java |    9 +-
 .../ignite/internal/util/GridEnumCache.java     |    7 +-
 .../internal/util/GridExecutionStatistics.java  |   19 +-
 .../internal/util/GridFixedSizeInputStream.java |    5 +-
 .../ignite/internal/util/GridHandleTable.java   |    7 +-
 .../ignite/internal/util/GridJavaProcess.java   |   25 +-
 .../ignite/internal/util/GridKeyLock.java       |   11 +-
 .../internal/util/GridLeanIdentitySet.java      |    7 +-
 .../ignite/internal/util/GridLeanMap.java       |   19 +-
 .../ignite/internal/util/GridLeanSet.java       |   10 +-
 .../ignite/internal/util/GridListSet.java       |   19 +-
 .../ignite/internal/util/GridLogThrottle.java   |   17 +-
 .../ignite/internal/util/GridLongList.java      |   26 +-
 .../apache/ignite/internal/util/GridMutex.java  |   10 +-
 .../apache/ignite/internal/util/GridQueue.java  |   16 +-
 .../apache/ignite/internal/util/GridRandom.java |    6 +-
 .../internal/util/GridReflectionCache.java      |   29 +-
 .../util/GridSerializableCollection.java        |    6 +-
 .../internal/util/GridSerializableIterable.java |    4 +-
 .../internal/util/GridSerializableIterator.java |    6 +-
 .../internal/util/GridSerializableList.java     |    6 +-
 .../internal/util/GridSerializableMap.java      |    6 +-
 .../internal/util/GridSerializableSet.java      |    7 +-
 .../ignite/internal/util/GridSetWrapper.java    |   12 +-
 .../ignite/internal/util/GridSnapshotLock.java  |    7 +-
 .../util/GridSpiCloseableIteratorWrapper.java   |    8 +-
 .../ignite/internal/util/GridSpinBusyLock.java  |    4 +-
 .../internal/util/GridSpinReadWriteLock.java    |   12 +-
 .../ignite/internal/util/GridStringBuilder.java |    7 +-
 .../internal/util/GridStringBuilderFactory.java |    4 +-
 .../ignite/internal/util/GridStripedLock.java   |   11 +-
 .../internal/util/GridStripedReadWriteLock.java |   14 +-
 .../internal/util/GridSynchronizedMap.java      |   12 +-
 .../apache/ignite/internal/util/GridTimer.java  |   10 +-
 .../ignite/internal/util/GridTimerTask.java     |    4 +-
 .../apache/ignite/internal/util/GridUnsafe.java |   11 +-
 .../ignite/internal/util/GridWeakIterator.java  |   10 +-
 .../internal/util/IgniteExceptionRegistry.java  |   27 +-
 .../ignite/internal/util/IgniteUtils.java       |  282 +++-
 .../ignite/internal/util/IgniteUuidCache.java   |    6 +-
 .../util/future/GridCompoundFuture.java         |   37 +-
 .../util/future/GridCompoundIdentityFuture.java |   10 +-
 .../util/future/GridEmbeddedFuture.java         |   71 +-
 .../util/future/GridFinishedFuture.java         |   22 +-
 .../internal/util/future/GridFutureAdapter.java |   85 +-
 .../util/future/GridFutureChainListener.java    |    9 +-
 .../util/future/IgniteFinishedFutureImpl.java   |    4 +-
 .../internal/util/future/IgniteFutureImpl.java  |   21 +-
 .../util/gridify/GridifyArgumentBuilder.java    |   20 +-
 .../util/gridify/GridifyJobAdapter.java         |   13 +-
 .../util/gridify/GridifyRangeArgument.java      |    9 +-
 .../internal/util/gridify/GridifyUtils.java     |   35 +-
 .../util/io/GridByteArrayInputStream.java       |    9 +-
 .../util/io/GridByteArrayOutputStream.java      |   13 +-
 .../ignite/internal/util/io/GridDataInput.java  |    6 +-
 .../ignite/internal/util/io/GridDataOutput.java |    6 +-
 .../internal/util/io/GridFilenameUtils.java     |   10 +-
 .../util/io/GridReversedLinesFileReader.java    |   12 +-
 .../internal/util/io/GridUnsafeDataInput.java   |   22 +-
 .../internal/util/io/GridUnsafeDataOutput.java  |   15 +-
 .../ignite/internal/util/ipc/IpcEndpoint.java   |    9 +-
 .../util/ipc/IpcEndpointBindException.java      |    4 +-
 .../internal/util/ipc/IpcEndpointFactory.java   |   13 +-
 .../internal/util/ipc/IpcEndpointType.java      |    2 +-
 .../internal/util/ipc/IpcServerEndpoint.java    |    9 +-
 .../internal/util/ipc/IpcToNioAdapter.java      |   31 +-
 .../util/ipc/loopback/IpcClientTcpEndpoint.java |   16 +-
 .../util/ipc/loopback/IpcServerTcpEndpoint.java |   23 +-
 .../shmem/IpcOutOfSystemResourcesException.java |    6 +-
 .../shmem/IpcSharedMemoryClientEndpoint.java    |   21 +-
 .../ipc/shmem/IpcSharedMemoryInitRequest.java   |    7 +-
 .../ipc/shmem/IpcSharedMemoryInitResponse.java  |   12 +-
 .../ipc/shmem/IpcSharedMemoryInputStream.java   |   10 +-
 .../ipc/shmem/IpcSharedMemoryNativeLoader.java  |   35 +-
 ...cSharedMemoryOperationTimedoutException.java |    6 +-
 .../ipc/shmem/IpcSharedMemoryOutputStream.java  |   10 +-
 .../shmem/IpcSharedMemoryServerEndpoint.java    |   58 +-
 .../util/ipc/shmem/IpcSharedMemorySpace.java    |   19 +-
 .../util/ipc/shmem/IpcSharedMemoryUtils.java    |   18 +-
 .../internal/util/lang/GridAbsClosure.java      |    4 +-
 .../internal/util/lang/GridAbsClosureX.java     |    6 +-
 .../internal/util/lang/GridAbsPredicate.java    |    4 +-
 .../internal/util/lang/GridAbsPredicateX.java   |    6 +-
 .../util/lang/GridCloseableIterator.java        |    6 +-
 .../ignite/internal/util/lang/GridClosure3.java |    4 +-
 .../internal/util/lang/GridClosure3X.java       |    7 +-
 .../util/lang/GridClosureException.java         |    5 +-
 .../util/lang/GridFilteredIterator.java         |    5 +-
 .../ignite/internal/util/lang/GridFunc.java     |   76 +-
 .../internal/util/lang/GridInClosure3.java      |    5 +-
 .../ignite/internal/util/lang/GridIterable.java |    4 +-
 .../internal/util/lang/GridIterableAdapter.java |   10 +-
 .../ignite/internal/util/lang/GridIterator.java |   10 +-
 .../internal/util/lang/GridIteratorAdapter.java |    8 +-
 .../ignite/internal/util/lang/GridMapEntry.java |   13 +-
 .../util/lang/GridMetadataAwareAdapter.java     |   18 +-
 .../internal/util/lang/GridNodePredicate.java   |   24 +-
 .../internal/util/lang/GridPeerDeployAware.java |    4 +-
 .../util/lang/GridPeerDeployAwareAdapter.java   |    4 +-
 .../internal/util/lang/GridPlainAbsClosure.java |    4 +-
 .../internal/util/lang/GridPlainCallable.java   |    4 +-
 .../internal/util/lang/GridPlainClosure.java    |    4 +-
 .../internal/util/lang/GridPlainClosure2.java   |    4 +-
 .../internal/util/lang/GridPlainInClosure.java  |    4 +-
 .../internal/util/lang/GridPlainOutClosure.java |    4 +-
 .../internal/util/lang/GridPlainRunnable.java   |    2 +-
 .../internal/util/lang/GridPredicate3.java      |    4 +-
 .../internal/util/lang/GridPredicate3X.java     |    7 +-
 .../ignite/internal/util/lang/GridTriple.java   |    7 +-
 .../ignite/internal/util/lang/GridTuple.java    |   17 +-
 .../ignite/internal/util/lang/GridTuple3.java   |   19 +-
 .../ignite/internal/util/lang/GridTuple4.java   |   19 +-
 .../ignite/internal/util/lang/GridTuple5.java   |   19 +-
 .../ignite/internal/util/lang/GridTuple6.java   |   19 +-
 .../ignite/internal/util/lang/GridTupleV.java   |   18 +-
 .../internal/util/lang/IgniteClosure2X.java     |    9 +-
 .../internal/util/lang/IgniteClosureX.java      |    9 +-
 .../internal/util/lang/IgniteInClosure2X.java   |    9 +-
 .../internal/util/lang/IgniteInClosureX.java    |    9 +-
 .../internal/util/lang/IgniteOutClosureX.java   |    8 +-
 .../ignite/internal/util/lang/IgnitePair.java   |    9 +-
 .../internal/util/lang/IgnitePredicate2X.java   |    9 +-
 .../internal/util/lang/IgnitePredicateX.java    |    9 +-
 .../internal/util/lang/IgniteReducer2.java      |    6 +-
 .../internal/util/lang/IgniteReducer2X.java     |    7 +-
 .../internal/util/lang/IgniteReducer3.java      |    6 +-
 .../internal/util/lang/IgniteReducer3X.java     |    7 +-
 .../internal/util/lang/IgniteReducerX.java      |    9 +-
 .../nio/GridAbstractCommunicationClient.java    |   10 +-
 .../internal/util/nio/GridBufferedParser.java   |   10 +-
 .../util/nio/GridCommunicationClient.java       |   21 +-
 .../nio/GridConnectionBytesVerifyFilter.java    |   11 +-
 .../internal/util/nio/GridDelimitedParser.java  |    9 +-
 .../internal/util/nio/GridDirectParser.java     |   17 +-
 .../util/nio/GridNioAsyncNotifyFilter.java      |   13 +-
 .../util/nio/GridNioBackPressureControl.java    |    4 +-
 .../internal/util/nio/GridNioCodecFilter.java   |   15 +-
 .../util/nio/GridNioDelimitedBuffer.java        |    9 +-
 .../util/nio/GridNioEmbeddedFuture.java         |   12 +-
 .../internal/util/nio/GridNioException.java     |    6 +-
 .../ignite/internal/util/nio/GridNioFilter.java |    4 +-
 .../internal/util/nio/GridNioFilterAdapter.java |    4 +-
 .../internal/util/nio/GridNioFilterChain.java   |    7 +-
 .../util/nio/GridNioFinishedFuture.java         |   10 +-
 .../ignite/internal/util/nio/GridNioFuture.java |    8 +-
 .../internal/util/nio/GridNioFutureImpl.java    |   10 +-
 .../internal/util/nio/GridNioMessageReader.java |   12 +-
 .../util/nio/GridNioMessageTracker.java         |   12 +-
 .../internal/util/nio/GridNioMessageWriter.java |   14 +-
 .../util/nio/GridNioMetricsListener.java        |    2 +-
 .../ignite/internal/util/nio/GridNioParser.java |   11 +-
 .../util/nio/GridNioRecoveryDescriptor.java     |   20 +-
 .../ignite/internal/util/nio/GridNioServer.java |   82 +-
 .../internal/util/nio/GridNioServerBuffer.java  |    9 +-
 .../util/nio/GridNioServerListener.java         |    4 +-
 .../util/nio/GridNioServerListenerAdapter.java  |    2 +-
 .../internal/util/nio/GridNioSession.java       |    7 +-
 .../internal/util/nio/GridNioSessionImpl.java   |   16 +-
 .../util/nio/GridNioSessionMetaKey.java         |    4 +-
 .../util/nio/GridSelectorNioSessionImpl.java    |   26 +-
 .../util/nio/GridShmemCommunicationClient.java  |   30 +-
 .../util/nio/GridTcpNioCommunicationClient.java |   30 +-
 .../util/nio/ssl/BlockingSslHandler.java        |   35 +-
 .../internal/util/nio/ssl/GridNioSslFilter.java |   30 +-
 .../util/nio/ssl/GridNioSslHandler.java         |   44 +-
 .../util/nodestart/IgniteNodeStartUtils.java    |   30 +-
 .../IgniteRemoteStartSpecification.java         |   11 +-
 .../util/nodestart/IgniteSshHelper.java         |    4 +-
 .../util/nodestart/StartNodeCallable.java       |    7 +-
 .../internal/util/offheap/GridOffHeapEvent.java |    4 +-
 .../util/offheap/GridOffHeapEventListener.java  |    2 +-
 .../util/offheap/GridOffHeapEvictListener.java  |    2 +-
 .../internal/util/offheap/GridOffHeapMap.java   |   11 +-
 .../util/offheap/GridOffHeapMapFactory.java     |    7 +-
 .../GridOffHeapOutOfMemoryException.java        |    2 +-
 .../util/offheap/GridOffHeapPartitionedMap.java |   14 +-
 .../offheap/unsafe/GridOffHeapSmartPointer.java |    2 +-
 .../unsafe/GridOffHeapSmartPointerFactory.java  |    2 +-
 .../offheap/unsafe/GridOffHeapSnapTreeMap.java  |   33 +-
 .../unsafe/GridUnsafeCompoundMemory.java        |    2 +-
 .../util/offheap/unsafe/GridUnsafeGuard.java    |   12 +-
 .../util/offheap/unsafe/GridUnsafeLru.java      |   15 +-
 .../offheap/unsafe/GridUnsafeLruPoller.java     |    2 +-
 .../util/offheap/unsafe/GridUnsafeMap.java      |   36 +-
 .../util/offheap/unsafe/GridUnsafeMemory.java   |   27 +-
 .../unsafe/GridUnsafePartitionedMap.java        |   26 +-
 .../util/portscanner/GridJmxPortFinder.java     |   15 +-
 .../util/snaptree/CopyOnWriteManager.java       |    6 +-
 .../ignite/internal/util/snaptree/Epoch.java    |    2 +-
 .../internal/util/snaptree/EpochNode.java       |    5 +-
 .../internal/util/snaptree/SnapTreeMap.java     |   22 +-
 .../util/spring/IgniteSpringHelper.java         |   19 +-
 .../internal/util/test/GridTestPrintStream.java |   11 +-
 .../util/test/GridTestPrintStreamFactory.java   |    4 +-
 .../util/tostring/GridToStringBuilder.java      |   33 +-
 .../tostring/GridToStringClassDescriptor.java   |    7 +-
 .../util/tostring/GridToStringExclude.java      |    8 +-
 .../tostring/GridToStringFieldDescriptor.java   |    2 +-
 .../util/tostring/GridToStringInclude.java      |    8 +-
 .../util/tostring/GridToStringOrder.java        |    8 +-
 .../util/tostring/GridToStringThreadLocal.java  |    4 +-
 .../apache/ignite/internal/util/typedef/C1.java |    6 +-
 .../apache/ignite/internal/util/typedef/C2.java |    6 +-
 .../apache/ignite/internal/util/typedef/C3.java |    5 +-
 .../apache/ignite/internal/util/typedef/CA.java |    5 +-
 .../ignite/internal/util/typedef/CAX.java       |    5 +-
 .../ignite/internal/util/typedef/CI1.java       |    6 +-
 .../ignite/internal/util/typedef/CI2.java       |    6 +-
 .../ignite/internal/util/typedef/CIX1.java      |    5 +-
 .../ignite/internal/util/typedef/CIX2.java      |    5 +-
 .../ignite/internal/util/typedef/CIX3.java      |    5 +-
 .../apache/ignite/internal/util/typedef/CO.java |    6 +-
 .../ignite/internal/util/typedef/COX.java       |    5 +-
 .../ignite/internal/util/typedef/CX1.java       |    5 +-
 .../ignite/internal/util/typedef/CX2.java       |    5 +-
 .../ignite/internal/util/typedef/CX3.java       |    5 +-
 .../apache/ignite/internal/util/typedef/F.java  |    4 +-
 .../apache/ignite/internal/util/typedef/G.java  |    4 +-
 .../apache/ignite/internal/util/typedef/P1.java |    6 +-
 .../apache/ignite/internal/util/typedef/P2.java |    6 +-
 .../apache/ignite/internal/util/typedef/P3.java |    5 +-
 .../apache/ignite/internal/util/typedef/PA.java |    5 +-
 .../ignite/internal/util/typedef/PAX.java       |    6 +-
 .../ignite/internal/util/typedef/PCE.java       |    9 +-
 .../apache/ignite/internal/util/typedef/PE.java |    8 +-
 .../ignite/internal/util/typedef/PKV.java       |    6 +-
 .../apache/ignite/internal/util/typedef/PN.java |    8 +-
 .../ignite/internal/util/typedef/PX1.java       |    5 +-
 .../ignite/internal/util/typedef/PX2.java       |    5 +-
 .../ignite/internal/util/typedef/PX3.java       |    5 +-
 .../apache/ignite/internal/util/typedef/R1.java |    6 +-
 .../apache/ignite/internal/util/typedef/R2.java |    5 +-
 .../apache/ignite/internal/util/typedef/R3.java |    5 +-
 .../ignite/internal/util/typedef/RX1.java       |    5 +-
 .../ignite/internal/util/typedef/RX2.java       |    5 +-
 .../ignite/internal/util/typedef/RX3.java       |    5 +-
 .../apache/ignite/internal/util/typedef/T1.java |    8 +-
 .../apache/ignite/internal/util/typedef/T2.java |   10 +-
 .../apache/ignite/internal/util/typedef/T3.java |    9 +-
 .../apache/ignite/internal/util/typedef/T4.java |    9 +-
 .../apache/ignite/internal/util/typedef/T5.java |    9 +-
 .../apache/ignite/internal/util/typedef/T6.java |    9 +-
 .../apache/ignite/internal/util/typedef/X.java  |   38 +-
 .../internal/util/typedef/internal/A.java       |    4 +-
 .../internal/util/typedef/internal/CU.java      |    4 +-
 .../internal/util/typedef/internal/D.java       |    4 +-
 .../internal/util/typedef/internal/GPC.java     |    4 +-
 .../internal/util/typedef/internal/GPR.java     |    4 +-
 .../internal/util/typedef/internal/LT.java      |    4 +-
 .../internal/util/typedef/internal/S.java       |    4 +-
 .../internal/util/typedef/internal/SB.java      |    4 +-
 .../internal/util/typedef/internal/U.java       |    4 +-
 .../ignite/internal/util/worker/GridWorker.java |   18 +-
 .../internal/util/worker/GridWorkerFuture.java  |    6 +-
 .../util/worker/GridWorkerListener.java         |    4 +-
 .../util/worker/GridWorkerListenerAdapter.java  |    2 +-
 .../internal/util/worker/GridWorkerPool.java    |   17 +-
 .../apache/ignite/internal/visor/VisorJob.java  |   17 +-
 .../internal/visor/VisorMultiNodeTask.java      |   31 +-
 .../ignite/internal/visor/VisorOneNodeTask.java |   11 +-
 .../internal/visor/VisorTaskArgument.java       |    8 +-
 .../ignite/internal/visor/cache/VisorCache.java |   44 +-
 .../cache/VisorCacheAffinityConfiguration.java  |   17 +-
 .../cache/VisorCacheAggregatedMetrics.java      |   14 +-
 .../visor/cache/VisorCacheClearTask.java        |   23 +-
 .../visor/cache/VisorCacheConfiguration.java    |   25 +-
 .../VisorCacheConfigurationCollectorJob.java    |   17 +-
 .../VisorCacheConfigurationCollectorTask.java   |   12 +-
 .../cache/VisorCacheDefaultConfiguration.java   |    9 +-
 .../cache/VisorCacheEvictionConfiguration.java  |   16 +-
 .../visor/cache/VisorCacheLoadTask.java         |   26 +-
 .../visor/cache/VisorCacheMetadataTask.java     |   21 +-
 .../internal/visor/cache/VisorCacheMetrics.java |   16 +-
 .../cache/VisorCacheMetricsCollectorTask.java   |   25 +-
 .../cache/VisorCacheNearConfiguration.java      |   17 +-
 .../visor/cache/VisorCacheNodesTask.java        |   16 +-
 .../cache/VisorCacheQueryConfiguration.java     |    9 +-
 .../visor/cache/VisorCacheQueryMetrics.java     |    9 +-
 .../cache/VisorCacheRebalanceConfiguration.java |   11 +-
 .../visor/cache/VisorCacheRebalanceTask.java    |   21 +-
 .../visor/cache/VisorCacheResetMetricsTask.java |   11 +-
 .../visor/cache/VisorCacheStartTask.java        |   33 +-
 .../visor/cache/VisorCacheStopTask.java         |   11 +-
 .../cache/VisorCacheStoreConfiguration.java     |   21 +-
 .../visor/cache/VisorCacheSwapBackupsTask.java  |   28 +-
 .../cache/VisorCacheTypeFieldMetadata.java      |    9 +-
 .../visor/cache/VisorCacheTypeMetadata.java     |   20 +-
 .../compute/VisorComputeCancelSessionsTask.java |   24 +-
 .../compute/VisorComputeMonitoringHolder.java   |   14 +-
 .../compute/VisorComputeResetMetricsTask.java   |    9 +-
 .../VisorComputeToggleMonitoringTask.java       |   29 +-
 .../visor/debug/VisorThreadDumpTask.java        |   16 +-
 .../internal/visor/debug/VisorThreadInfo.java   |    6 +-
 .../visor/debug/VisorThreadLockInfo.java        |    6 +-
 .../visor/debug/VisorThreadMonitorInfo.java     |    4 +-
 .../visor/event/VisorGridDeploymentEvent.java   |   11 +-
 .../visor/event/VisorGridDiscoveryEvent.java    |   11 +-
 .../internal/visor/event/VisorGridEvent.java    |   13 +-
 .../visor/event/VisorGridEventsLost.java        |    9 +-
 .../internal/visor/event/VisorGridJobEvent.java |   11 +-
 .../visor/event/VisorGridTaskEvent.java         |   11 +-
 .../internal/visor/file/VisorFileBlock.java     |    7 +-
 .../internal/visor/file/VisorFileBlockTask.java |   26 +-
 .../visor/file/VisorLatestTextFilesTask.java    |   30 +-
 .../ignite/internal/visor/igfs/VisorIgfs.java   |   11 +-
 .../internal/visor/igfs/VisorIgfsEndpoint.java  |    9 +-
 .../visor/igfs/VisorIgfsFormatTask.java         |   11 +-
 .../internal/visor/igfs/VisorIgfsMetrics.java   |    9 +-
 .../internal/visor/igfs/VisorIgfsProfiler.java  |   10 +-
 .../visor/igfs/VisorIgfsProfilerClearTask.java  |   30 +-
 .../visor/igfs/VisorIgfsProfilerEntry.java      |   11 +-
 .../visor/igfs/VisorIgfsProfilerTask.java       |   51 +-
 .../VisorIgfsProfilerUniformityCounters.java    |   12 +-
 .../visor/igfs/VisorIgfsResetMetricsTask.java   |   14 +-
 .../visor/igfs/VisorIgfsSamplingStateTask.java  |   17 +-
 .../ignite/internal/visor/log/VisorLogFile.java |    8 +-
 .../visor/log/VisorLogSearchResult.java         |    9 +-
 .../internal/visor/log/VisorLogSearchTask.java  |   45 +-
 .../internal/visor/misc/VisorAckTask.java       |   16 +-
 .../visor/misc/VisorLatestVersionTask.java      |    9 +-
 .../internal/visor/misc/VisorNopTask.java       |   21 +-
 .../visor/misc/VisorResolveHostNameTask.java    |   23 +-
 .../visor/node/VisorAtomicConfiguration.java    |   11 +-
 .../visor/node/VisorBasicConfiguration.java     |   34 +-
 .../node/VisorExecutorServiceConfiguration.java |   10 +-
 .../visor/node/VisorGridConfiguration.java      |   19 +-
 .../visor/node/VisorIgfsConfiguration.java      |   29 +-
 .../visor/node/VisorLifecycleConfiguration.java |   13 +-
 .../visor/node/VisorMetricsConfiguration.java   |    9 +-
 .../VisorNodeConfigurationCollectorJob.java     |    6 +-
 .../VisorNodeConfigurationCollectorTask.java    |    6 +-
 .../visor/node/VisorNodeDataCollectorJob.java   |   41 +-
 .../node/VisorNodeDataCollectorJobResult.java   |   15 +-
 .../visor/node/VisorNodeDataCollectorTask.java  |   30 +-
 .../node/VisorNodeDataCollectorTaskArg.java     |    4 +-
 .../node/VisorNodeDataCollectorTaskResult.java  |   21 +-
 .../node/VisorNodeEventsCollectorTask.java      |   46 +-
 .../internal/visor/node/VisorNodeGcTask.java    |   24 +-
 .../internal/visor/node/VisorNodePingTask.java  |   21 +-
 .../visor/node/VisorNodeRestartTask.java        |   18 +-
 .../internal/visor/node/VisorNodeStopTask.java  |   18 +-
 .../node/VisorNodeSuppressedErrorsTask.java     |   26 +-
 .../node/VisorPeerToPeerConfiguration.java      |   13 +-
 .../visor/node/VisorRestConfiguration.java      |   22 +-
 .../node/VisorSegmentationConfiguration.java    |   15 +-
 .../visor/node/VisorSpisConfiguration.java      |   27 +-
 .../node/VisorTransactionConfiguration.java     |   12 +-
 .../internal/visor/query/VisorQueryArg.java     |    4 +-
 .../visor/query/VisorQueryCleanupTask.java      |   32 +-
 .../internal/visor/query/VisorQueryCursor.java  |   14 +-
 .../internal/visor/query/VisorQueryField.java   |    9 +-
 .../internal/visor/query/VisorQueryJob.java     |   43 +-
 .../visor/query/VisorQueryNextPageTask.java     |   21 +-
 .../internal/visor/query/VisorQueryResult.java  |    9 +-
 .../visor/query/VisorQueryResultEx.java         |    9 +-
 .../internal/visor/query/VisorQueryTask.java    |   10 +-
 .../internal/visor/query/VisorQueryUtils.java   |   17 +-
 .../util/VisorClusterGroupEmptyException.java   |    4 +-
 .../internal/visor/util/VisorEventMapper.java   |   24 +-
 .../visor/util/VisorExceptionWrapper.java       |    2 +-
 .../internal/visor/util/VisorMimeTypes.java     |   13 +-
 .../internal/visor/util/VisorTaskUtils.java     |   97 +-
 .../apache/ignite/lang/IgniteAsyncSupport.java  |    2 +-
 .../ignite/lang/IgniteAsyncSupported.java       |    8 +-
 .../org/apache/ignite/lang/IgniteBiClosure.java |    4 +-
 .../apache/ignite/lang/IgniteBiInClosure.java   |    4 +-
 .../apache/ignite/lang/IgniteBiPredicate.java   |    4 +-
 .../org/apache/ignite/lang/IgniteBiTuple.java   |   24 +-
 .../org/apache/ignite/lang/IgniteCallable.java  |    6 +-
 .../org/apache/ignite/lang/IgniteClosure.java   |    4 +-
 .../org/apache/ignite/lang/IgniteFuture.java    |    8 +-
 .../lang/IgniteFutureCancelledException.java    |    6 +-
 .../lang/IgniteFutureTimeoutException.java      |    6 +-
 .../org/apache/ignite/lang/IgniteInClosure.java |    4 +-
 .../ignite/lang/IgniteNotPeerDeployable.java    |    8 +-
 .../apache/ignite/lang/IgniteOutClosure.java    |    4 +-
 .../org/apache/ignite/lang/IgnitePredicate.java |    4 +-
 .../ignite/lang/IgniteProductVersion.java       |   21 +-
 .../org/apache/ignite/lang/IgniteReducer.java   |    9 +-
 .../org/apache/ignite/lang/IgniteRunnable.java  |    4 +-
 .../java/org/apache/ignite/lang/IgniteUuid.java |   20 +-
 .../apache/ignite/lifecycle/LifecycleAware.java |    4 +-
 .../apache/ignite/lifecycle/LifecycleBean.java  |    4 +-
 .../ignite/lifecycle/LifecycleEventType.java    |    4 +-
 .../apache/ignite/logger/LoggerNodeIdAware.java |    4 +-
 .../org/apache/ignite/logger/NullLogger.java    |    6 +-
 .../apache/ignite/logger/java/JavaLogger.java   |   40 +-
 .../logger/java/JavaLoggerFileHandler.java      |   22 +-
 .../ignite/logger/java/JavaLoggerFormatter.java |   14 +-
 .../ignite/marshaller/AbstractMarshaller.java   |   13 +-
 .../apache/ignite/marshaller/Marshaller.java    |   12 +-
 .../ignite/marshaller/MarshallerContext.java    |    4 +-
 .../ignite/marshaller/MarshallerExclusions.java |   27 +-
 .../ignite/marshaller/jdk/JdkMarshaller.java    |   20 +-
 .../jdk/JdkMarshallerDummySerializable.java     |    4 +-
 .../jdk/JdkMarshallerInputStreamWrapper.java    |    5 +-
 .../jdk/JdkMarshallerObjectInputStream.java     |    9 +-
 .../jdk/JdkMarshallerObjectOutputStream.java    |   10 +-
 .../jdk/JdkMarshallerOutputStreamWrapper.java   |    5 +-
 .../optimized/OptimizedClassDescriptor.java     |   83 +-
 .../optimized/OptimizedFieldType.java           |    2 +-
 .../optimized/OptimizedMarshaller.java          |   28 +-
 .../optimized/OptimizedMarshallerIdMapper.java  |    2 +-
 .../optimized/OptimizedMarshallerUtils.java     |   32 +-
 .../optimized/OptimizedObjectInputStream.java   |   91 +-
 .../optimized/OptimizedObjectOutputStream.java  |   58 +-
 .../OptimizedObjectStreamRegistry.java          |   17 +-
 .../marshaller/portable/PortableMarshaller.java |   35 +-
 .../ignite/messaging/MessagingListenActor.java  |   22 +-
 .../ignite/mxbean/CacheMetricsMXBean.java       |   10 +-
 .../mxbean/ClusterLocalNodeMetricsMXBean.java   |    4 +-
 .../org/apache/ignite/mxbean/IgniteMXBean.java  |    7 +-
 .../apache/ignite/mxbean/IgnitionMXBean.java    |    2 +-
 .../apache/ignite/mxbean/MXBeanDescription.java |    8 +-
 .../mxbean/MXBeanParametersDescriptions.java    |    8 +-
 .../ignite/mxbean/MXBeanParametersNames.java    |    8 +-
 .../apache/ignite/mxbean/ThreadPoolMXBean.java  |    2 +-
 .../ignite/plugin/CachePluginConfiguration.java |    5 +-
 .../ignite/plugin/CachePluginContext.java       |   10 +-
 .../ignite/plugin/CachePluginProvider.java      |   10 +-
 .../org/apache/ignite/plugin/Extension.java     |    2 +-
 .../apache/ignite/plugin/ExtensionRegistry.java |    2 +-
 .../org/apache/ignite/plugin/IgnitePlugin.java  |    2 +-
 .../ignite/plugin/PluginConfiguration.java      |    2 +-
 .../org/apache/ignite/plugin/PluginContext.java |   16 +-
 .../ignite/plugin/PluginNotFoundException.java  |    4 +-
 .../apache/ignite/plugin/PluginProvider.java    |   16 +-
 .../plugin/PluginValidationException.java       |    7 +-
 .../plugin/extensions/communication/IoPool.java |    7 +-
 .../extensions/communication/Message.java       |    6 +-
 .../MessageCollectionItemType.java              |    4 +-
 .../communication/MessageFactory.java           |    6 +-
 .../communication/MessageFormatter.java         |    4 +-
 .../extensions/communication/MessageReader.java |   13 +-
 .../extensions/communication/MessageWriter.java |   12 +-
 .../plugin/security/AuthenticationContext.java  |    6 +-
 .../plugin/security/SecurityCredentials.java    |   16 +-
 .../SecurityCredentialsBasicProvider.java       |    4 +-
 .../security/SecurityCredentialsProvider.java   |    4 +-
 .../plugin/security/SecurityException.java      |    6 +-
 .../plugin/security/SecurityPermission.java     |    4 +-
 .../plugin/security/SecurityPermissionSet.java  |   10 +-
 .../ignite/plugin/security/SecuritySubject.java |    8 +-
 .../plugin/security/SecuritySubjectType.java    |    6 +-
 .../plugin/segmentation/SegmentationPolicy.java |    2 +-
 .../segmentation/SegmentationResolver.java      |    9 +-
 .../apache/ignite/portable/PortableBuilder.java |    7 +-
 .../ignite/portable/PortableException.java      |    7 +-
 .../ignite/portable/PortableIdMapper.java       |    4 +-
 .../portable/PortableInvalidClassException.java |    4 +-
 .../ignite/portable/PortableMarshalAware.java   |    2 +-
 .../ignite/portable/PortableMetadata.java       |   10 +-
 .../apache/ignite/portable/PortableObject.java  |   17 +-
 .../portable/PortableProtocolVersion.java       |    4 +-
 .../ignite/portable/PortableRawReader.java      |   13 +-
 .../ignite/portable/PortableRawWriter.java      |   13 +-
 .../apache/ignite/portable/PortableReader.java  |   13 +-
 .../ignite/portable/PortableSerializer.java     |    4 +-
 .../portable/PortableTypeConfiguration.java     |   11 +-
 .../apache/ignite/portable/PortableWriter.java  |   13 +-
 .../ignite/resources/CacheNameResource.java     |    8 +-
 .../resources/CacheStoreSessionResource.java    |    8 +-
 .../resources/IgniteInstanceResource.java       |    8 +-
 .../ignite/resources/JobContextResource.java    |    8 +-
 .../ignite/resources/LoadBalancerResource.java  |    8 +-
 .../apache/ignite/resources/LoggerResource.java |    8 +-
 .../ignite/resources/MBeanServerResource.java   |   10 +-
 .../ignite/resources/ServiceResource.java       |    8 +-
 .../SpringApplicationContextResource.java       |   10 +-
 .../apache/ignite/resources/SpringResource.java |   10 +-
 .../resources/TaskContinuousMapperResource.java |    8 +-
 .../ignite/resources/TaskSessionResource.java   |    8 +-
 .../apache/ignite/resources/package-info.java   |    2 +-
 .../ignite/scheduler/SchedulerFuture.java       |   14 +-
 .../org/apache/ignite/services/Service.java     |    4 +-
 .../ignite/services/ServiceConfiguration.java   |   13 +-
 .../apache/ignite/services/ServiceContext.java  |    9 +-
 .../ignite/services/ServiceDescriptor.java      |   10 +-
 .../ignite/spi/IgniteNodeValidationResult.java  |    4 +-
 .../apache/ignite/spi/IgnitePortProtocol.java   |    4 +-
 .../java/org/apache/ignite/spi/IgniteSpi.java   |    9 +-
 .../org/apache/ignite/spi/IgniteSpiAdapter.java |   68 +-
 .../ignite/spi/IgniteSpiCloseableIterator.java  |    9 +-
 .../ignite/spi/IgniteSpiConfiguration.java      |    8 +-
 .../ignite/spi/IgniteSpiConsistencyChecked.java |    8 +-
 .../org/apache/ignite/spi/IgniteSpiContext.java |   27 +-
 .../apache/ignite/spi/IgniteSpiException.java   |    4 +-
 .../ignite/spi/IgniteSpiManagementMBean.java    |    7 +-
 .../ignite/spi/IgniteSpiMultiException.java     |   11 +-
 .../spi/IgniteSpiMultipleInstancesSupport.java  |    9 +-
 .../org/apache/ignite/spi/IgniteSpiNoop.java    |    8 +-
 .../spi/IgniteSpiOperationTimeoutException.java |   10 +-
 .../spi/IgniteSpiOperationTimeoutHelper.java    |   10 +-
 .../org/apache/ignite/spi/IgniteSpiThread.java  |   10 +-
 .../ignite/spi/IgniteSpiThreadFactory.java      |    7 +-
 .../ignite/spi/IgniteSpiTimeoutObject.java      |    4 +-
 .../spi/IgniteSpiVersionCheckException.java     |    2 +-
 .../spi/checkpoint/CheckpointListener.java      |    2 +-
 .../ignite/spi/checkpoint/CheckpointSpi.java    |    7 +-
 .../checkpoint/cache/CacheCheckpointSpi.java    |   37 +-
 .../cache/CacheCheckpointSpiMBean.java          |    6 +-
 .../spi/checkpoint/jdbc/JdbcCheckpointSpi.java  |   32 +-
 .../checkpoint/jdbc/JdbcCheckpointSpiMBean.java |    6 +-
 .../spi/checkpoint/noop/NoopCheckpointSpi.java  |   19 +-
 .../sharedfs/SharedFsCheckpointData.java        |    7 +-
 .../sharedfs/SharedFsCheckpointSpi.java         |   42 +-
 .../sharedfs/SharedFsCheckpointSpiMBean.java    |    9 +-
 .../checkpoint/sharedfs/SharedFsTimeData.java   |    4 +-
 .../sharedfs/SharedFsTimeoutTask.java           |   23 +-
 .../spi/checkpoint/sharedfs/SharedFsUtils.java  |   17 +-
 .../ignite/spi/collision/CollisionContext.java  |    4 +-
 .../collision/CollisionExternalListener.java    |    4 +-
 .../spi/collision/CollisionJobContext.java      |    6 +-
 .../ignite/spi/collision/CollisionSpi.java      |    6 +-
 .../fifoqueue/FifoQueueCollisionSpi.java        |   23 +-
 .../fifoqueue/FifoQueueCollisionSpiMBean.java   |    6 +-
 .../jobstealing/JobStealingCollisionSpi.java    |   69 +-
 .../JobStealingCollisionSpiMBean.java           |   11 +-
 .../jobstealing/JobStealingDisabled.java        |    8 +-
 .../jobstealing/JobStealingRequest.java         |   13 +-
 .../spi/collision/noop/NoopCollisionSpi.java    |   15 +-
 .../PriorityQueueCollisionSpi.java              |   39 +-
 .../PriorityQueueCollisionSpiMBean.java         |    6 +-
 .../communication/CommunicationListener.java    |    9 +-
 .../spi/communication/CommunicationSpi.java     |   14 +-
 .../communication/tcp/TcpCommunicationSpi.java  |  162 ++-
 .../tcp/TcpCommunicationSpiMBean.java           |    6 +-
 .../spi/deployment/DeploymentListener.java      |    2 +-
 .../spi/deployment/DeploymentResource.java      |    2 +-
 .../deployment/DeploymentResourceAdapter.java   |    4 +-
 .../ignite/spi/deployment/DeploymentSpi.java    |    7 +-
 .../IgnoreIfPeerClassLoadingDisabled.java       |    9 +-
 .../deployment/local/LocalDeploymentSpi.java    |   44 +-
 .../local/LocalDeploymentSpiMBean.java          |    6 +-
 .../spi/discovery/DiscoveryMetricsProvider.java |   11 +-
 .../ignite/spi/discovery/DiscoverySpi.java      |   20 +-
 .../discovery/DiscoverySpiCustomMessage.java    |    7 +-
 .../spi/discovery/DiscoverySpiDataExchange.java |    7 +-
 .../discovery/DiscoverySpiHistorySupport.java   |    9 +-
 .../spi/discovery/DiscoverySpiListener.java     |   12 +-
 .../DiscoverySpiNodeAuthenticator.java          |   10 +-
 .../spi/discovery/DiscoverySpiOrderSupport.java |    9 +-
 .../ignite/spi/discovery/tcp/ClientImpl.java    |  123 +-
 .../ignite/spi/discovery/tcp/ServerImpl.java    |  160 ++-
 .../spi/discovery/tcp/TcpDiscoveryImpl.java     |   36 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |  112 +-
 .../spi/discovery/tcp/TcpDiscoverySpiMBean.java |   12 +-
 .../tcp/internal/TcpDiscoveryNode.java          |   50 +-
 .../tcp/internal/TcpDiscoveryNodesRing.java     |   33 +-
 .../tcp/internal/TcpDiscoverySpiState.java      |    2 +-
 .../tcp/internal/TcpDiscoveryStatistics.java    |   26 +-
 .../tcp/ipfinder/TcpDiscoveryIpFinder.java      |   10 +-
 .../ipfinder/TcpDiscoveryIpFinderAdapter.java   |   23 +-
 .../ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java |   42 +-
 .../TcpDiscoveryMulticastIpFinder.java          |   56 +-
 .../sharedfs/TcpDiscoverySharedFsIpFinder.java  |   37 +-
 .../tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java |   31 +-
 .../messages/TcpDiscoveryAbstractMessage.java   |   14 +-
 .../messages/TcpDiscoveryAuthFailedMessage.java |   14 +-
 .../TcpDiscoveryCheckFailedMessage.java         |    7 +-
 .../messages/TcpDiscoveryClientAckResponse.java |   10 +-
 .../TcpDiscoveryClientHeartbeatMessage.java     |   11 +-
 .../messages/TcpDiscoveryClientPingRequest.java |    9 +-
 .../TcpDiscoveryClientPingResponse.java         |    9 +-
 .../TcpDiscoveryClientReconnectMessage.java     |   12 +-
 .../TcpDiscoveryConnectionCheckMessage.java     |   12 +-
 .../TcpDiscoveryCustomEventMessage.java         |   15 +-
 .../messages/TcpDiscoveryDiscardMessage.java    |    9 +-
 .../TcpDiscoveryDuplicateIdMessage.java         |    9 +-
 .../messages/TcpDiscoveryEnsureDelivery.java    |    8 +-
 .../messages/TcpDiscoveryHandshakeRequest.java  |    7 +-
 .../messages/TcpDiscoveryHandshakeResponse.java |    7 +-
 .../messages/TcpDiscoveryHeartbeatMessage.java  |   30 +-
 .../TcpDiscoveryJoinRequestMessage.java         |    9 +-
 .../TcpDiscoveryLoopbackProblemMessage.java     |    8 +-
 .../TcpDiscoveryNodeAddFinishedMessage.java     |   12 +-
 .../messages/TcpDiscoveryNodeAddedMessage.java  |   20 +-
 .../messages/TcpDiscoveryNodeFailedMessage.java |    9 +-
 .../messages/TcpDiscoveryNodeLeftMessage.java   |    7 +-
 .../tcp/messages/TcpDiscoveryPingRequest.java   |    9 +-
 .../tcp/messages/TcpDiscoveryPingResponse.java  |    7 +-
 .../messages/TcpDiscoveryRedirectToClient.java  |    8 +-
 .../TcpDiscoveryStatusCheckMessage.java         |    9 +-
 .../spi/eventstorage/EventStorageSpi.java       |   12 +-
 .../memory/MemoryEventStorageSpi.java           |   34 +-
 .../memory/MemoryEventStorageSpiMBean.java      |    6 +-
 .../ignite/spi/failover/FailoverContext.java    |   18 +-
 .../apache/ignite/spi/failover/FailoverSpi.java |    9 +-
 .../spi/failover/always/AlwaysFailoverSpi.java  |   33 +-
 .../failover/always/AlwaysFailoverSpiMBean.java |    6 +-
 .../jobstealing/JobStealingFailoverSpi.java     |   37 +-
 .../JobStealingFailoverSpiMBean.java            |    6 +-
 .../spi/failover/never/NeverFailoverSpi.java    |   23 +-
 .../failover/never/NeverFailoverSpiMBean.java   |    6 +-
 .../spi/indexing/IndexingQueryFilter.java       |    6 +-
 .../apache/ignite/spi/indexing/IndexingSpi.java |   15 +-
 .../spi/indexing/noop/NoopIndexingSpi.java      |   17 +-
 .../spi/loadbalancing/LoadBalancingSpi.java     |   14 +-
 .../adaptive/AdaptiveCpuLoadProbe.java          |    8 +-
 .../adaptive/AdaptiveJobCountLoadProbe.java     |    7 +-
 .../adaptive/AdaptiveLoadBalancingSpi.java      |   69 +-
 .../adaptive/AdaptiveLoadBalancingSpiMBean.java |    6 +-
 .../adaptive/AdaptiveLoadProbe.java             |    4 +-
 .../AdaptiveProcessingTimeLoadProbe.java        |    7 +-
 .../RoundRobinGlobalLoadBalancer.java           |   39 +-
 .../roundrobin/RoundRobinLoadBalancingSpi.java  |   50 +-
 .../RoundRobinLoadBalancingSpiMBean.java        |    6 +-
 .../RoundRobinPerTaskLoadBalancer.java          |   10 +-
 .../WeightedRandomLoadBalancingSpi.java         |   57 +-
 .../WeightedRandomLoadBalancingSpiMBean.java    |    6 +-
 .../ignite/spi/swapspace/SwapContext.java       |    4 +-
 .../apache/ignite/spi/swapspace/SwapKey.java    |    9 +-
 .../ignite/spi/swapspace/SwapSpaceSpi.java      |   16 +-
 .../spi/swapspace/SwapSpaceSpiListener.java     |    4 +-
 .../spi/swapspace/file/FileSwapArray.java       |    7 +-
 .../spi/swapspace/file/FileSwapSpaceSpi.java    |   83 +-
 .../swapspace/file/FileSwapSpaceSpiMBean.java   |    6 +-
 .../spi/swapspace/noop/NoopSwapSpaceSpi.java    |   33 +-
 .../apache/ignite/ssl/SslContextFactory.java    |   29 +-
 .../ignite/startup/BasicWarmupClosure.java      |   45 +-
 .../ignite/startup/cmdline/AboutDialog.java     |   41 +-
 .../CommandLineRandomNumberGenerator.java       |    4 +-
 .../startup/cmdline/CommandLineStartup.java     |   53 +-
 .../startup/cmdline/CommandLineTransformer.java |    7 +-
 .../org/apache/ignite/startup/package-info.java |    2 +-
 .../org/apache/ignite/stream/StreamAdapter.java |    6 +-
 .../apache/ignite/stream/StreamReceiver.java    |   12 +-
 .../apache/ignite/stream/StreamTransformer.java |   15 +-
 .../ignite/stream/StreamTupleExtractor.java     |    4 +-
 .../org/apache/ignite/stream/StreamVisitor.java |   11 +-
 .../org/apache/ignite/stream/package-info.java  |    2 +-
 .../stream/socket/SocketMessageConverter.java   |    2 +-
 .../ignite/stream/socket/SocketStreamer.java    |   35 +-
 .../thread/IgniteStripedThreadPoolExecutor.java |   18 +-
 .../org/apache/ignite/thread/IgniteThread.java  |    9 +-
 .../ignite/thread/IgniteThreadFactory.java      |    7 +-
 .../ignite/thread/IgniteThreadPoolExecutor.java |   13 +-
 .../apache/ignite/transactions/Transaction.java |   12 +-
 .../transactions/TransactionConcurrency.java    |    4 +-
 .../TransactionHeuristicException.java          |    4 +-
 .../transactions/TransactionIsolation.java      |    4 +-
 .../ignite/transactions/TransactionMetrics.java |    4 +-
 .../TransactionOptimisticException.java         |    4 +-
 .../TransactionRollbackException.java           |    4 +-
 .../ignite/transactions/TransactionState.java   |    4 +-
 .../TransactionTimeoutException.java            |    4 +-
 .../java/org/jetbrains/annotations/NotNull.java |    8 +-
 .../java/org/jsr166/ConcurrentHashMap8.java     |   20 +-
 .../java/org/jsr166/ConcurrentLinkedDeque8.java |   18 +-
 .../org/jsr166/ConcurrentLinkedHashMap.java     |   28 +-
 .../src/main/java/org/jsr166/LongAdder8.java    |    8 +-
 .../src/main/java/org/jsr166/Striped64_8.java   |    4 +-
 .../GridCacheAffinityBackupsSelfTest.java       |   20 +-
 .../ignite/GridSuppressedExceptionSelfTest.java |    9 +-
 .../java/org/apache/ignite/GridTestIoUtils.java |   28 +-
 .../java/org/apache/ignite/GridTestJob.java     |    6 +-
 .../org/apache/ignite/GridTestJobContext.java   |   12 +-
 .../org/apache/ignite/GridTestJobResult.java    |   11 +-
 .../org/apache/ignite/GridTestNodeStartup.java  |    7 +-
 .../apache/ignite/GridTestStoreNodeStartup.java |    8 +-
 .../java/org/apache/ignite/GridTestTask.java    |   13 +-
 .../org/apache/ignite/GridTestTaskSession.java  |   20 +-
 .../ignite/IgniteCacheAffinitySelfTest.java     |   30 +-
 .../IgniteExternalizableAbstractTest.java       |   16 +-
 .../cache/IgniteWarmupClosureSelfTest.java      |   15 +-
 .../affinity/IgniteClientNodeAffinityTest.java  |   34 +-
 .../GridFairAffinityFunctionNodesSelfTest.java  |   25 +-
 .../fair/GridFairAffinityFunctionSelfTest.java  |   26 +-
 .../IgniteFairAffinityDynamicCacheSelfTest.java |   25 +-
 ...cheStoreSessionListenerAbstractSelfTest.java |   36 +-
 ...heStoreSessionListenerLifecycleSelfTest.java |   40 +-
 .../store/GridCacheBalancingStoreSelfTest.java  |   34 +-
 .../GridCacheLoadOnlyStoreAdapterSelfTest.java  |   18 +-
 .../cache/store/GridGeneratingTestStore.java    |   19 +-
 .../IgniteCacheExpiryStoreLoadSelfTest.java     |   39 +-
 .../CacheJdbcPojoStoreMultitreadedSelfTest.java |    4 +-
 .../store/jdbc/CacheJdbcPojoStoreTest.java      |   57 +-
 ...eJdbcStoreAbstractMultithreadedSelfTest.java |   67 +-
 .../CacheJdbcStoreSessionListenerSelfTest.java  |   28 +-
 ...CacheJdbcBlobStoreMultithreadedSelfTest.java |   55 +-
 .../jdbc/GridCacheJdbcBlobStoreSelfTest.java    |    9 +-
 .../cache/store/jdbc/model/Organization.java    |    3 +-
 .../cache/store/jdbc/model/OrganizationKey.java |    3 +-
 .../ignite/cache/store/jdbc/model/Person.java   |    3 +-
 .../store/jdbc/model/PersonComplexKey.java      |    4 +-
 .../cache/store/jdbc/model/PersonKey.java       |    3 +-
 .../ignite/igfs/IgfsEventsAbstractSelfTest.java |   64 +-
 .../igfs/IgfsFragmentizerAbstractSelfTest.java  |   30 +-
 .../ignite/igfs/IgfsFragmentizerSelfTest.java   |   23 +-
 .../igfs/IgfsFragmentizerTopologySelfTest.java  |    4 +-
 .../apache/ignite/igfs/IgfsPathSelfTest.java    |   26 +-
 .../ignite/igfs/IgfsTestInputGenerator.java     |    7 +-
 .../internal/ClusterGroupAbstractTest.java      |   64 +-
 .../internal/ClusterGroupHostsSelfTest.java     |   24 +-
 .../ignite/internal/ClusterGroupSelfTest.java   |   21 +-
 .../ignite/internal/ClusterMetricsSelfTest.java |   34 +-
 .../internal/ClusterNodeMetricsSelfTest.java    |   41 +-
 .../ignite/internal/GridAffinityMappedTest.java |   33 +-
 .../internal/GridAffinityP2PSelfTest.java       |   41 +-
 .../ignite/internal/GridAffinitySelfTest.java   |   34 +-
 .../GridAlwaysFailoverSpiFailSelfTest.java      |   32 +-
 .../internal/GridCancelOnGridStopSelfTest.java  |   27 +-
 .../internal/GridCancelUnusedJobSelfTest.java   |   39 +-
 .../GridCancelledJobsMetricsSelfTest.java       |   47 +-
 .../GridCollisionJobsContextSelfTest.java       |   28 +-
 .../internal/GridCommunicationSelfTest.java     |   19 +-
 .../GridContinuousJobAnnotationSelfTest.java    |   36 +-
 .../GridContinuousJobSiblingsSelfTest.java      |   29 +-
 .../internal/GridContinuousTaskSelfTest.java    |   44 +-
 .../GridDeploymentMultiThreadedSelfTest.java    |   29 +-
 .../ignite/internal/GridDeploymentSelfTest.java |   43 +-
 .../internal/GridDiscoveryEventSelfTest.java    |   48 +-
 .../ignite/internal/GridDiscoverySelfTest.java  |   60 +-
 .../GridEventStorageCheckAllEventsSelfTest.java |   67 +-
 ...ventStorageRuntimeConfigurationSelfTest.java |   38 +-
 .../internal/GridEventStorageSelfTest.java      |   38 +-
 .../internal/GridFactoryVmShutdownTest.java     |   21 +-
 ...ridFailFastNodeFailureDetectionSelfTest.java |   37 +-
 .../GridFailedInputParametersSelfTest.java      |   14 +-
 .../GridFailoverCustomTopologySelfTest.java     |   38 +-
 .../ignite/internal/GridFailoverSelfTest.java   |   36 +-
 .../GridFailoverTaskWithPredicateSelfTest.java  |   41 +-
 .../internal/GridFailoverTopologySelfTest.java  |   34 +-
 .../ignite/internal/GridHomePathSelfTest.java   |   13 +-
 .../GridJobCheckpointCleanupSelfTest.java       |   35 +-
 .../GridJobCollisionCancelSelfTest.java         |   41 +-
 .../ignite/internal/GridJobContextSelfTest.java |   26 +-
 .../GridJobMasterLeaveAwareSelfTest.java        |   71 +-
 .../internal/GridJobStealingSelfTest.java       |   51 +-
 .../GridJobStealingZeroActiveJobsSelfTest.java  |   36 +-
 .../internal/GridJobSubjectIdSelfTest.java      |   32 +-
 .../GridKernalConcurrentAccessStopSelfTest.java |   12 +-
 .../ignite/internal/GridKernalTestUtils.java    |    4 +-
 .../internal/GridLifecycleAwareSelfTest.java    |   28 +-
 .../internal/GridLifecycleBeanSelfTest.java     |   37 +-
 .../internal/GridListenActorSelfTest.java       |   21 +-
 .../GridLocalEventListenerSelfTest.java         |   18 +-
 .../internal/GridMultipleJobsSelfTest.java      |   41 +-
 .../internal/GridMultipleSpisSelfTest.java      |   40 +-
 .../GridMultipleVersionsDeploymentSelfTest.java |   48 +-
 .../GridMultithreadedJobStealingSelfTest.java   |   41 +-
 .../ignite/internal/GridNodeFilterSelfTest.java |   13 +-
 .../ignite/internal/GridNodeLocalSelfTest.java  |   17 +-
 .../GridNodeVisorAttributesSelfTest.java        |   11 +-
 .../internal/GridNonHistoryMetricsSelfTest.java |   37 +-
 .../GridProjectionForCachesSelfTest.java        |   36 +-
 ...ectionLocalJobMultipleArgumentsSelfTest.java |   33 +-
 .../ignite/internal/GridReduceSelfTest.java     |   20 +-
 .../internal/GridReleaseTypeSelfTest.java       |   22 +-
 .../internal/GridRuntimeExceptionSelfTest.java  |   40 +-
 .../internal/GridSameVmStartupSelfTest.java     |   29 +-
 .../apache/ignite/internal/GridSelfTest.java    |   24 +-
 .../internal/GridSpiExceptionSelfTest.java      |   33 +-
 .../ignite/internal/GridStartStopSelfTest.java  |   31 +-
 .../apache/ignite/internal/GridStartupMain.java |    9 +-
 .../apache/ignite/internal/GridStartupTest.java |   12 +-
 .../internal/GridStopWithCancelSelfTest.java    |   28 +-
 .../internal/GridStopWithWaitSelfTest.java      |   46 +-
 .../GridTaskCancelSingleNodeSelfTest.java       |   41 +-
 .../GridTaskContinuousMapperSelfTest.java       |   31 +-
 .../GridTaskExecutionContextSelfTest.java       |   34 +-
 .../internal/GridTaskExecutionSelfTest.java     |   11 +-
 .../GridTaskFailoverAffinityRunTest.java        |   38 +-
 .../internal/GridTaskFailoverSelfTest.java      |   25 +-
 .../GridTaskFutureImplStopGridSelfTest.java     |   34 +-
 .../GridTaskInstanceExecutionSelfTest.java      |   23 +-
 .../internal/GridTaskInstantiationSelfTest.java |   26 +-
 .../internal/GridTaskJobRejectSelfTest.java     |   46 +-
 .../internal/GridTaskListenerSelfTest.java      |   28 +-
 .../internal/GridTaskMapAsyncSelfTest.java      |   33 +-
 .../GridTaskNameAnnotationSelfTest.java         |   30 +-
 .../internal/GridTaskResultCacheSelfTest.java   |   23 +-
 .../internal/GridTaskTimeoutSelfTest.java       |   42 +-
 .../GridTopicExternalizableSelfTest.java        |   14 +-
 .../internal/GridUpdateNotifierSelfTest.java    |   23 +-
 .../ignite/internal/GridVersionSelfTest.java    |   10 +-
 .../IgniteClientReconnectAbstractTest.java      |   66 +-
 .../IgniteClientReconnectApiExceptionTest.java  |   57 +-
 .../IgniteClientReconnectAtomicsTest.java       |   18 +-
 .../IgniteClientReconnectCacheTest.java         |  102 +-
 .../IgniteClientReconnectCollectionsTest.java   |   26 +-
 .../IgniteClientReconnectComputeTest.java       |   17 +-
 ...eClientReconnectContinuousProcessorTest.java |   29 +-
 ...IgniteClientReconnectDiscoveryStateTest.java |   24 +-
 ...niteClientReconnectFailoverAbstractTest.java |   38 +-
 .../IgniteClientReconnectFailoverTest.java      |   34 +-
 .../IgniteClientReconnectServicesTest.java      |   23 +-
 .../internal/IgniteClientReconnectStopTest.java |   21 +-
 .../IgniteClientReconnectStreamerTest.java      |   28 +-
 .../IgniteComputeEmptyClusterGroupTest.java     |   35 +-
 .../IgniteComputeTopologyExceptionTest.java     |   25 +-
 .../internal/IgniteExecutorServiceTest.java     |   25 +-
 ...gniteExplicitImplicitDeploymentSelfTest.java |   43 +-
 .../internal/IgniteInternalCacheRemoveTest.java |    6 +-
 .../IgniteSlowClientDetectionSelfTest.java      |   47 +-
 .../managers/GridManagerStopSelfTest.java       |   64 +-
 .../managers/GridNoopManagerSelfTest.java       |   19 +-
 .../GridCheckpointManagerAbstractSelfTest.java  |   77 +-
 .../GridCheckpointManagerSelfTest.java          |    4 +-
 .../checkpoint/GridCheckpointTaskSelfTest.java  |   49 +-
 ...idCommunicationManagerListenersSelfTest.java |   26 +-
 .../GridCommunicationSendMessageSelfTest.java   |   35 +-
 .../communication/GridIoManagerSelfTest.java    |   45 +-
 .../GridDeploymentManagerStopSelfTest.java      |   25 +-
 .../GridDeploymentMessageCountSelfTest.java     |   45 +-
 .../managers/deployment/GridTestDeployment.java |    6 +-
 .../GridDiscoveryManagerAliveCacheSelfTest.java |   49 +-
 .../GridDiscoveryManagerAttributesSelfTest.java |   69 +-
 .../discovery/GridDiscoveryManagerSelfTest.java |   29 +-
 .../IgniteTopologyPrintFormatSelfTest.java      |   32 +-
 .../events/GridEventStorageManagerSelfTest.java |   24 +-
 .../GridSwapSpaceCustomLocalValue.java          |    7 +-
 .../swapspace/GridSwapSpaceManagerSelfTest.java |   38 +-
 .../GridPortableAffinityKeySelfTest.java        |   45 +-
 .../GridPortableBuilderAdditionalSelfTest.java  |   63 +-
 .../portable/GridPortableBuilderSelfTest.java   |   45 +-
 ...eBuilderStringAsCharsAdditionalSelfTest.java |    2 +-
 ...ridPortableBuilderStringAsCharsSelfTest.java |    2 +-
 ...idPortableMarshallerCtxDisabledSelfTest.java |   14 +-
 .../GridPortableMarshallerSelfTest.java         |   77 +-
 .../GridPortableMetaDataDisabledSelfTest.java   |   19 +-
 .../portable/GridPortableMetaDataSelfTest.java  |   27 +-
 .../portable/GridPortableWildcardsSelfTest.java |   18 +-
 .../GridPortableMarshalerAwareTestClass.java    |   13 +-
 .../mutabletest/GridPortableTestClasses.java    |   23 +-
 .../portable/test/GridPortableTestClass1.java   |    2 +-
 .../portable/test/GridPortableTestClass2.java   |    2 +-
 .../test/subpackage/GridPortableTestClass3.java |    2 +-
 .../GridCacheTxLoadFromStoreOnLockSelfTest.java |   36 +-
 .../GridAffinityProcessorAbstractSelfTest.java  |   32 +-
 ...GridAffinityProcessorRendezvousSelfTest.java |    6 +-
 .../cache/CacheAffinityCallSelfTest.java        |   42 +-
 .../cache/CacheClientStoreSelfTest.java         |   33 +-
 ...cheDhtLocalPartitionAfterRemoveSelfTest.java |   13 +-
 .../cache/CacheFutureExceptionSelfTest.java     |   32 +-
 .../processors/cache/CacheGetFromJobTest.java   |   19 +-
 .../CacheMetricsForClusterGroupSelfTest.java    |   31 +-
 ...cheNearUpdateTopologyChangeAbstractTest.java |   27 +-
 .../cache/CacheOffheapMapEntrySelfTest.java     |   36 +-
 .../CacheReadThroughAtomicRestartSelfTest.java  |    6 +-
 ...heReadThroughLocalAtomicRestartSelfTest.java |    6 +-
 .../CacheReadThroughLocalRestartSelfTest.java   |    6 +-
 ...dThroughReplicatedAtomicRestartSelfTest.java |    6 +-
 ...cheReadThroughReplicatedRestartSelfTest.java |    6 +-
 .../cache/CacheReadThroughRestartSelfTest.java  |   28 +-
 .../cache/CacheRemoveAllSelfTest.java           |   17 +-
 .../cache/CacheStopAndDestroySelfTest.java      |   50 +-
 .../CacheStoreUsageMultinodeAbstractTest.java   |   62 +-
 ...eUsageMultinodeDynamicStartAbstractTest.java |    8 +-
 ...oreUsageMultinodeDynamicStartAtomicTest.java |    6 +-
 ...heStoreUsageMultinodeDynamicStartTxTest.java |    6 +-
 ...reUsageMultinodeStaticStartAbstractTest.java |    9 +-
 ...toreUsageMultinodeStaticStartAtomicTest.java |    6 +-
 ...cheStoreUsageMultinodeStaticStartTxTest.java |    6 +-
 .../cache/CrossCacheTxRandomOperationsTest.java |   59 +-
 ...ridCacheAbstractByteArrayValuesSelfTest.java |   12 +-
 .../GridCacheAbstractFailoverSelfTest.java      |   42 +-
 .../GridCacheAbstractFailoverTxSelfTest.java    |    9 +-
 ...cheAbstractFullApiMultithreadedSelfTest.java |   35 +-
 .../cache/GridCacheAbstractFullApiSelfTest.java |  130 +-
 .../GridCacheAbstractIteratorsSelfTest.java     |   14 +-
 .../GridCacheAbstractLocalStoreSelfTest.java    |   73 +-
 .../cache/GridCacheAbstractMetricsSelfTest.java |   42 +-
 .../GridCacheAbstractRemoveFailureTest.java     |   45 +-
 .../cache/GridCacheAbstractSelfTest.java        |   70 +-
 .../cache/GridCacheAbstractTxReadTest.java      |   14 +-
 ...acheAbstractUsersAffinityMapperSelfTest.java |   37 +-
 .../cache/GridCacheAffinityApiSelfTest.java     |   34 +-
 .../cache/GridCacheAffinityMapperSelfTest.java  |   14 +-
 .../cache/GridCacheAffinityRoutingSelfTest.java |   45 +-
 .../cache/GridCacheAlwaysEvictionPolicy.java    |   11 +-
 .../GridCacheAsyncOperationsLimitSelfTest.java  |   15 +-
 .../GridCacheAtomicMessageCountSelfTest.java    |   49 +-
 ...dCacheAtomicUsersAffinityMapperSelfTest.java |    7 +-
 .../cache/GridCacheBasicApiAbstractTest.java    |   50 +-
 .../cache/GridCacheBasicStoreAbstractTest.java  |   47 +-
 ...acheBasicStoreMultithreadedAbstractTest.java |   29 +-
 .../cache/GridCacheClearAllSelfTest.java        |   31 +-
 .../cache/GridCacheClearLocallySelfTest.java    |   42 +-
 ...dCacheColocatedTxStoreExceptionSelfTest.java |    8 +-
 .../cache/GridCacheConcurrentMapSelfTest.java   |   35 +-
 .../cache/GridCacheConcurrentMapTest.java       |   28 +-
 .../GridCacheConcurrentTxMultiNodeTest.java     |   97 +-
 ...idCacheConfigurationConsistencySelfTest.java |   85 +-
 ...ridCacheConfigurationValidationSelfTest.java |   27 +-
 .../GridCacheDaemonNodeAbstractSelfTest.java    |   35 +-
 .../GridCacheDeploymentOffHeapSelfTest.java     |    9 +-
 .../cache/GridCacheDeploymentSelfTest.java      |   42 +-
 .../cache/GridCacheEntryMemorySizeSelfTest.java |   47 +-
 .../cache/GridCacheEntryVersionSelfTest.java    |   37 +-
 .../GridCacheEvictionEventAbstractTest.java     |   39 +-
 .../GridCacheFinishPartitionsSelfTest.java      |   42 +-
 ...CacheFullTextQueryMultithreadedSelfTest.java |   29 +-
 .../cache/GridCacheGenericTestStore.java        |   29 +-
 ...idCacheGetAndTransformStoreAbstractTest.java |   40 +-
 .../cache/GridCacheIncrementTransformTest.java  |   46 +-
 .../GridCacheInterceptorAbstractSelfTest.java   |   57 +-
 ...cheInterceptorAtomicNearEnabledSelfTest.java |    4 +-
 ...erceptorAtomicPrimaryWriteOrderSelfTest.java |   14 +-
 ...omicReplicatedPrimaryWriteOrderSelfTest.java |   14 +-
 ...acheInterceptorAtomicReplicatedSelfTest.java |   14 +-
 .../GridCacheInterceptorAtomicSelfTest.java     |   14 +-
 ...ceptorAtomicWithStoreReplicatedSelfTest.java |    2 +-
 ...CacheInterceptorAtomicWithStoreSelfTest.java |    2 +-
 ...GridCacheInterceptorLocalAtomicSelfTest.java |   14 +-
 ...InterceptorLocalAtomicWithStoreSelfTest.java |    2 +-
 .../GridCacheInterceptorLocalSelfTest.java      |    9 +-
 ...dCacheInterceptorLocalWithStoreSelfTest.java |    2 +-
 ...GridCacheInterceptorNearEnabledSelfTest.java |    6 +-
 .../GridCacheInterceptorReplicatedSelfTest.java |    9 +-
 ...eInterceptorReplicatedWithStoreSelfTest.java |    2 +-
 .../cache/GridCacheInterceptorSelfTest.java     |    9 +-
 .../GridCacheInterceptorWithStoreSelfTest.java  |    2 +-
 .../cache/GridCacheIteratorPerformanceTest.java |   27 +-
 .../GridCacheKeyCheckNearEnabledSelfTest.java   |    4 +-
 .../cache/GridCacheKeyCheckSelfTest.java        |   25 +-
 .../processors/cache/GridCacheLeakTest.java     |   33 +-
 .../cache/GridCacheLifecycleAwareSelfTest.java  |   52 +-
 .../GridCacheLocalTxStoreExceptionSelfTest.java |    6 +-
 .../cache/GridCacheLuceneQueryIndexTest.java    |   42 +-
 .../GridCacheMarshallerTxAbstractTest.java      |   28 +-
 .../GridCacheMarshallingNodeJoinSelfTest.java   |   50 +-
 .../cache/GridCacheMemoryModeSelfTest.java      |   37 +-
 .../GridCacheMissingCommitVersionSelfTest.java  |   33 +-
 ...GridCacheMixedPartitionExchangeSelfTest.java |   47 +-
 .../cache/GridCacheMultiUpdateLockSelfTest.java |   46 +-
 ...ridCacheMultinodeUpdateAbstractSelfTest.java |   26 +-
 ...ultinodeUpdateAtomicNearEnabledSelfTest.java |    8 +-
 .../GridCacheMultinodeUpdateAtomicSelfTest.java |    8 +-
 ...inodeUpdateNearEnabledNoBackupsSelfTest.java |    4 +-
 ...CacheMultinodeUpdateNearEnabledSelfTest.java |    8 +-
 .../cache/GridCacheMultinodeUpdateSelfTest.java |    8 +-
 .../cache/GridCacheMvccFlagsTest.java           |   16 +-
 .../cache/GridCacheMvccManagerSelfTest.java     |   31 +-
 .../cache/GridCacheMvccPartitionedSelfTest.java |   29 +-
 .../processors/cache/GridCacheMvccSelfTest.java |   28 +-
 .../GridCacheNearTxStoreExceptionSelfTest.java  |    6 +-
 .../cache/GridCacheNestedTxAbstractTest.java    |   40 +-
 .../cache/GridCacheObjectToStringSelfTest.java  |   41 +-
 ...ffHeapAtomicMultiThreadedUpdateSelfTest.java |    6 +-
 ...HeapMultiThreadedUpdateAbstractSelfTest.java |   34 +-
 ...CacheOffHeapMultiThreadedUpdateSelfTest.java |   18 +-
 .../processors/cache/GridCacheOffHeapTest.java  |   35 +-
 .../GridCacheOffHeapTieredAbstractSelfTest.java |   49 +-
 .../GridCacheOffHeapTieredAtomicSelfTest.java   |    6 +-
 ...heOffHeapTieredEvictionAbstractSelfTest.java |   34 +-
 ...acheOffHeapTieredEvictionAtomicSelfTest.java |    6 +-
 .../GridCacheOffHeapTieredEvictionSelfTest.java |    6 +-
 .../cache/GridCacheOffHeapTieredSelfTest.java   |    6 +-
 .../cache/GridCacheOffheapUpdateSelfTest.java   |   26 +-
 .../GridCacheOnCopyFlagAbstractSelfTest.java    |   40 +-
 .../GridCacheOnCopyFlagAtomicSelfTest.java      |    9 +-
 .../cache/GridCacheOnCopyFlagLocalSelfTest.java |    9 +-
 .../GridCacheOnCopyFlagReplicatedSelfTest.java  |    9 +-
 ...ridCacheOnCopyFlagTxPartitionedSelfTest.java |    9 +-
 .../GridCacheOrderedPreloadingSelfTest.java     |   29 +-
 .../cache/GridCacheP2PUndeploySelfTest.java     |   50 +-
 .../GridCachePartitionedAffinitySpreadTest.java |   19 +-
 .../cache/GridCachePartitionedGetSelfTest.java  |   42 +-
 .../GridCachePartitionedLocalStoreSelfTest.java |   11 +-
 ...chePartitionedOffHeapLocalStoreSelfTest.java |   11 +-
 ...hePartitionedProjectionAffinitySelfTest.java |   31 +-
 .../cache/GridCachePartitionedWritesTest.java   |   28 +-
 .../GridCachePreloadingEvictionsSelfTest.java   |   61 +-
 .../cache/GridCachePutAllFailoverSelfTest.java  |   77 +-
 .../processors/cache/GridCachePutAllTask.java   |   37 +-
 .../cache/GridCacheQueryEmbeddedValue.java      |    9 +-
 .../GridCacheQueryIndexingDisabledSelfTest.java |   20 +-
 .../GridCacheQueryInternalKeysSelfTest.java     |   33 +-
 .../GridCacheReferenceCleanupSelfTest.java      |   45 +-
 .../cache/GridCacheReloadSelfTest.java          |   29 +-
 .../GridCacheReplicatedLocalStoreSelfTest.java  |   11 +-
 ...ridCacheReplicatedSynchronousCommitTest.java |   50 +-
 ...CacheReplicatedTxStoreExceptionSelfTest.java |    8 +-
 ...heReplicatedUsersAffinityMapperSelfTest.java |    7 +-
 .../GridCacheReturnValueTransferSelfTest.java   |   35 +-
 .../cache/GridCacheSlowTxWarnTest.java          |   26 +-
 .../processors/cache/GridCacheStopSelfTest.java |   35 +-
 .../cache/GridCacheStorePutxSelfTest.java       |   39 +-
 .../cache/GridCacheStoreValueBytesSelfTest.java |   24 +-
 .../cache/GridCacheSwapPreloadSelfTest.java     |   46 +-
 .../cache/GridCacheSwapReloadSelfTest.java      |   54 +-
 ...acheTcpClientDiscoveryMultiThreadedTest.java |   31 +-
 .../processors/cache/GridCacheTestEntryEx.java  |   32 +-
 .../processors/cache/GridCacheTestKey.java      |    7 +-
 .../processors/cache/GridCacheTestStore.java    |   45 +-
 .../processors/cache/GridCacheTestValue.java    |    9 +-
 .../processors/cache/GridCacheTestValue2.java   |   11 +-
 ...cheTransactionalAbstractMetricsSelfTest.java |   22 +-
 .../cache/GridCacheTtlManagerLoadTest.java      |   23 +-
 .../cache/GridCacheTtlManagerSelfTest.java      |   35 +-
 ...ridCacheTxPartitionedLocalStoreSelfTest.java |   11 +-
 .../GridCacheTxUsersAffinityMapperSelfTest.java |    7 +-
 .../cache/GridCacheUtilsSelfTest.java           |   18 +-
 .../GridCacheValueBytesPreloadingSelfTest.java  |   26 +-
 ...idCacheValueConsistencyAbstractSelfTest.java |   37 +-
 ...istencyTransactionalNearEnabledSelfTest.java |    4 +-
 ...heValueConsistencyTransactionalSelfTest.java |    6 +-
 .../GridCacheVariableTopologySelfTest.java      |   43 +-
 .../cache/GridCacheVersionMultinodeTest.java    |   39 +-
 .../cache/GridCacheVersionSelfTest.java         |   16 +-
 ...ProjectionForCachesOnDaemonNodeSelfTest.java |   20 +-
 ...teAtomicCacheEntryProcessorNodeJoinTest.java |    6 +-
 .../IgniteCacheAbstractStopBusySelfTest.java    |   62 +-
 .../cache/IgniteCacheAbstractTest.java          |   47 +-
 ...IgniteCacheAtomicCopyOnReadDisabledTest.java |    6 +-
 .../cache/IgniteCacheAtomicInvokeTest.java      |   14 +-
 .../cache/IgniteCacheAtomicLocalInvokeTest.java |   11 +-
 .../IgniteCacheAtomicLocalPeekModesTest.java    |    9 +-
 .../IgniteCacheAtomicLocalStoreValueTest.java   |   11 +-
 ...niteCacheAtomicLocalWithStoreInvokeTest.java |    7 +-
 .../IgniteCacheAtomicNearEnabledInvokeTest.java |    4 +-
 ...iteCacheAtomicNearEnabledStoreValueTest.java |    4 +-
 .../IgniteCacheAtomicNearPeekModesTest.java     |    2 +-
 .../cache/IgniteCacheAtomicPeekModesTest.java   |   12 +-
 ...eCacheAtomicPrimaryWriteOrderInvokeTest.java |   14 +-
 ...maryWriteOrderNearEnabledStoreValueTest.java |    4 +-
 ...heAtomicPrimaryWriteOrderStoreValueTest.java |    6 +-
 ...micPrimaryWriteOrderWithStoreInvokeTest.java |    7 +-
 ...IgniteCacheAtomicPutAllFailoverSelfTest.java |    6 +-
 ...gniteCacheAtomicReplicatedPeekModesTest.java |    6 +-
 .../IgniteCacheAtomicStopBusySelfTest.java      |    6 +-
 .../cache/IgniteCacheAtomicStoreValueTest.java  |   14 +-
 ...teCacheConfigurationDefaultTemplateTest.java |   16 +-
 .../IgniteCacheConfigurationTemplateTest.java   |   36 +-
 .../IgniteCacheContainsKeyAbstractSelfTest.java |   23 +-
 ...niteCacheCopyOnReadDisabledAbstractTest.java |   12 +-
 .../cache/IgniteCacheDynamicStopSelfTest.java   |   18 +-
 .../IgniteCacheEntryListenerAbstractTest.java   |   71 +-
 ...IgniteCacheEntryListenerAtomicLocalTest.java |   11 +-
 ...eCacheEntryListenerAtomicReplicatedTest.java |    6 +-
 .../IgniteCacheEntryListenerAtomicTest.java     |   14 +-
 ...eCacheEntryListenerEagerTtlDisabledTest.java |    6 +-
 .../IgniteCacheEntryListenerTxLocalTest.java    |   11 +-
 ...gniteCacheEntryListenerTxReplicatedTest.java |    6 +-
 .../cache/IgniteCacheEntryListenerTxTest.java   |   11 +-
 .../IgniteCacheEntryProcessorNodeJoinTest.java  |   49 +-
 .../IgniteCacheInterceptorSelfTestSuite.java    |    4 +-
 .../cache/IgniteCacheInvokeAbstractTest.java    |   47 +-
 .../cache/IgniteCacheInvokeReadThroughTest.java |   22 +-
 .../IgniteCacheManyAsyncOperationsTest.java     |   26 +-
 .../cache/IgniteCacheNearLockValueSelfTest.java |   45 +-
 .../IgniteCacheP2pUnmarshallingErrorTest.java   |   23 +-
 ...gniteCacheP2pUnmarshallingNearErrorTest.java |    7 +-
 ...CacheP2pUnmarshallingRebalanceErrorTest.java |   11 +-
 .../IgniteCacheP2pUnmarshallingTxErrorTest.java |   25 +-
 .../IgniteCachePartitionMapUpdateTest.java      |   32 +-
 .../cache/IgniteCachePeekModesAbstractTest.java |   53 +-
 .../cache/IgniteCachePutAllRestartTest.java     |   40 +-
 .../cache/IgniteCacheStartStopLoadTest.java     |   20 +-
 .../IgniteCacheStoreValueAbstractTest.java      |   46 +-
 .../IgniteCacheTopologySafeGetSelfTest.java     |   44 +-
 ...gniteCacheTransactionalStopBusySelfTest.java |    4 +-
 .../IgniteCacheTxCopyOnReadDisabledTest.java    |    6 +-
 .../cache/IgniteCacheTxInvokeTest.java          |   11 +-
 .../cache/IgniteCacheTxLocalInvokeTest.java     |   11 +-
 .../cache/IgniteCacheTxLocalPeekModesTest.java  |    9 +-
 .../cache/IgniteCacheTxLocalStoreValueTest.java |   11 +-
 .../IgniteCacheTxNearEnabledInvokeTest.java     |    4 +-
 .../IgniteCacheTxNearEnabledStoreValueTest.java |    4 +-
 .../cache/IgniteCacheTxNearPeekModesTest.java   |    2 +-
 .../cache/IgniteCacheTxPeekModesTest.java       |   12 +-
 .../cache/IgniteCacheTxPreloadNoWriteTest.java  |   40 +-
 .../IgniteCacheTxReplicatedPeekModesTest.java   |    6 +-
 .../cache/IgniteCacheTxStoreValueTest.java      |   11 +-
 .../cache/IgniteCachingProviderSelfTest.java    |   18 +-
 .../IgniteClientAffinityAssignmentSelfTest.java |   34 +-
 .../IgniteDaemonNodeMarshallerCacheTest.java    |   31 +-
 ...eDynamicCacheStartNoExchangeTimeoutTest.java |   55 +-
 .../cache/IgniteDynamicCacheStartSelfTest.java  |   57 +-
 ...niteDynamicCacheWithConfigStartSelfTest.java |   15 +-
 .../IgniteDynamicClientCacheStartSelfTest.java  |   38 +-
 .../cache/IgniteExchangeFutureHistoryTest.java  |   17 +-
 .../cache/IgniteInternalCacheTypesTest.java     |   28 +-
 .../cache/IgnitePutAllLargeBatchSelfTest.java   |   37 +-
 ...tAllUpdateNonPreloadedPartitionSelfTest.java |   26 +-
 ...teStartCacheInTransactionAtomicSelfTest.java |    6 +-
 .../IgniteStartCacheInTransactionSelfTest.java  |   28 +-
 .../cache/IgniteStaticCacheStartSelfTest.java   |   14 +-
 .../cache/IgniteSystemCacheOnClientTest.java    |   25 +-
 ...gniteTopologyValidatorAbstractCacheTest.java |   20 +-
 ...iteTopologyValidatorAbstractTxCacheTest.java |   12 +-
 ...ValidatorNearPartitionedAtomicCacheTest.java |    4 +-
 ...logyValidatorNearPartitionedTxCacheTest.java |    4 +-
 ...logyValidatorPartitionedAtomicCacheTest.java |   12 +-
 ...TopologyValidatorPartitionedTxCacheTest.java |    4 +-
 ...ologyValidatorReplicatedAtomicCacheTest.java |   12 +-
 ...eTopologyValidatorReplicatedTxCacheTest.java |    4 +-
 .../processors/cache/IgniteTxAbstractTest.java  |   48 +-
 .../IgniteTxConcurrentGetAbstractTest.java      |   33 +-
 .../IgniteTxExceptionAbstractSelfTest.java      |   49 +-
 .../cache/IgniteTxMultiNodeAbstractTest.java    |   65 +-
 .../IgniteTxMultiThreadedAbstractTest.java      |   36 +-
 .../cache/IgniteTxReentryAbstractSelfTest.java  |   51 +-
 .../IgniteTxSingleThreadedAbstractTest.java     |   11 +-
 .../IgniteTxStoreExceptionAbstractSelfTest.java |   48 +-
 .../cache/OffHeapTieredTransactionSelfTest.java |   40 +-
 ...IgniteCacheAbstractExecutionContextTest.java |   17 +-
 .../IgniteCacheAtomicExecutionContextTest.java  |   12 +-
 ...niteCacheContinuousExecutionContextTest.java |    5 +-
 ...IgniteCacheIsolatedExecutionContextTest.java |    5 +-
 ...niteCacheP2PDisableExecutionContextTest.java |    4 +-
 ...iteCachePartitionedExecutionContextTest.java |   12 +-
 .../IgniteCachePrivateExecutionContextTest.java |    5 +-
 ...niteCacheReplicatedExecutionContextTest.java |   12 +-
 .../IgniteCacheSharedExecutionContextTest.java  |    5 +-
 .../IgniteCacheTxExecutionContextTest.java      |   12 +-
 ...eAbstractDataStructuresFailoverSelfTest.java |   41 +-
 ...actQueueFailoverDataConsistencySelfTest.java |   41 +-
 ...CacheAtomicReferenceApiSelfAbstractTest.java |    8 +-
 ...cheAtomicReferenceMultiNodeAbstractTest.java |   11 +-
 ...idCacheAtomicStampedApiSelfAbstractTest.java |    8 +-
 .../GridCacheMultiNodeDataStructureTest.java    |   11 +-
 .../GridCacheQueueApiSelfAbstractTest.java      |   31 +-
 .../GridCacheQueueCleanupSelfTest.java          |   41 +-
 ...ridCacheQueueJoinedNodeSelfAbstractTest.java |   36 +-
 ...GridCacheQueueMultiNodeAbstractSelfTest.java |   38 +-
 ...dCacheQueueMultiNodeConsistencySelfTest.java |   34 +-
 ...CacheQueueRotativeMultiNodeAbstractTest.java |   28 +-
 .../GridCacheSequenceApiSelfAbstractTest.java   |   43 +-
 ...dCacheSequenceMultiNodeAbstractSelfTest.java |   27 +-
 .../GridCacheSetAbstractSelfTest.java           |   45 +-
 .../GridCacheSetFailoverAbstractSelfTest.java   |   36 +-
 .../IgniteAtomicLongApiAbstractSelfTest.java    |   17 +-
 .../IgniteAtomicsAbstractTest.java              |   15 +-
 .../IgniteClientDataStructuresAbstractTest.java |   30 +-
 .../IgniteClientDataStructuresTest.java         |    2 +-
 ...IgniteClientDiscoveryDataStructuresTest.java |    2 +-
 .../IgniteCollectionAbstractTest.java           |   30 +-
 .../IgniteCountDownLatchAbstractSelfTest.java   |   44 +-
 .../IgniteDataStructureUniqueNameTest.java      |   42 +-
 .../IgniteDataStructureWithJobTest.java         |   28 +-
 .../GridCacheLocalAtomicOffheapSetSelfTest.java |    6 +-
 .../GridCacheLocalAtomicQueueApiSelfTest.java   |    9 +-
 .../local/GridCacheLocalAtomicSetSelfTest.java  |   14 +-
 .../GridCacheLocalOffheapQueueApiSelfTest.java  |    6 +-
 .../local/GridCacheLocalQueueApiSelfTest.java   |   14 +-
 .../GridCacheLocalSequenceApiSelfTest.java      |    8 +-
 .../local/GridCacheLocalSetSelfTest.java        |   14 +-
 .../local/IgniteLocalAtomicLongApiSelfTest.java |    8 +-
 .../IgniteLocalCountDownLatchSelfTest.java      |   24 +-
 ...artitionedAtomicOffheapQueueApiSelfTest.java |    6 +-
 ...omicOffheapQueueCreateMultiNodeSelfTest.java |    6 +-
 ...onedAtomicOffheapQueueMultiNodeSelfTest.java |    6 +-
 ...dCachePartitionedAtomicQueueApiSelfTest.java |    9 +-
 ...ionedAtomicQueueCreateMultiNodeSelfTest.java |    9 +-
 ...micQueueFailoverDataConsistencySelfTest.java |   11 +-
 ...PartitionedAtomicQueueMultiNodeSelfTest.java |    9 +-
 ...itionedAtomicQueueRotativeMultiNodeTest.java |    9 +-
 ...hePartitionedAtomicReferenceApiSelfTest.java |   10 +-
 ...PartitionedAtomicReferenceMultiNodeTest.java |   10 +-
 ...titionedAtomicSequenceMultiThreadedTest.java |   23 +-
 ...chePartitionedAtomicSetFailoverSelfTest.java |   11 +-
 .../GridCachePartitionedAtomicSetSelfTest.java  |    6 +-
 ...achePartitionedAtomicStampedApiSelfTest.java |   10 +-
 ...rtitionedDataStructuresFailoverSelfTest.java |   14 +-
 ...idCachePartitionedNodeRestartTxSelfTest.java |   39 +-
 ...artitionedOffHeapValuesQueueApiSelfTest.java |    6 +-
 ...achePartitionedOffHeapValuesSetSelfTest.java |    6 +-
 ...edOffheapDataStructuresFailoverSelfTest.java |    6 +-
 ...hePartitionedOffheapSetFailoverSelfTest.java |    6 +-
 .../GridCachePartitionedQueueApiSelfTest.java   |   14 +-
 ...PartitionedQueueCreateMultiNodeSelfTest.java |   46 +-
 ...dCachePartitionedQueueEntryMoveSelfTest.java |   50 +-
 ...nedQueueFailoverDataConsistencySelfTest.java |   11 +-
 ...CachePartitionedQueueJoinedNodeSelfTest.java |   14 +-
 ...dCachePartitionedQueueMultiNodeSelfTest.java |   14 +-
 ...hePartitionedQueueRotativeMultiNodeTest.java |   14 +-
 ...GridCachePartitionedSequenceApiSelfTest.java |   10 +-
 ...chePartitionedSequenceMultiNodeSelfTest.java |   10 +-
 ...GridCachePartitionedSetFailoverSelfTest.java |   11 +-
 .../GridCachePartitionedSetSelfTest.java        |   14 +-
 .../IgnitePartitionedAtomicLongApiSelfTest.java |    8 +-
 ...IgnitePartitionedCountDownLatchSelfTest.java |    8 +-
 .../IgnitePartitionedSetNoBackupsSelfTest.java  |   16 +-
 ...cheReplicatedAtomicReferenceApiSelfTest.java |    8 +-
 ...eReplicatedAtomicReferenceMultiNodeTest.java |    8 +-
 ...CacheReplicatedAtomicStampedApiSelfTest.java |    8 +-
 ...eplicatedDataStructuresFailoverSelfTest.java |   14 +-
 .../GridCacheReplicatedQueueApiSelfTest.java    |   14 +-
 ...idCacheReplicatedQueueMultiNodeSelfTest.java |   14 +-
 ...cheReplicatedQueueRotativeMultiNodeTest.java |   14 +-
 .../GridCacheReplicatedSequenceApiSelfTest.java |    8 +-
 ...acheReplicatedSequenceMultiNodeSelfTest.java |   10 +-
 .../GridCacheReplicatedSetSelfTest.java         |   14 +-
 .../IgniteReplicatedAtomicLongApiSelfTest.java  |    8 +-
 .../IgniteReplicatedCountDownLatchSelfTest.java |    8 +-
 ...acheAsyncOperationsFailoverAbstractTest.java |  368 +++++
 .../CacheAsyncOperationsFailoverAtomicTest.java |   32 +
 .../CacheAsyncOperationsFailoverTxTest.java     |   32 +
 .../distributed/CacheAsyncOperationsTest.java   |  283 ++++
 ...CacheAtomicNearUpdateTopologyChangeTest.java |   11 +-
 .../CacheGetFutureHangsSelfTest.java            |   35 +-
 ...CacheLoadingConcurrentGridStartSelfTest.java |   40 +-
 .../CacheNoValueClassOnServerNodeTest.java      |   30 +-
 .../CacheTxNearUpdateTopologyChangeTest.java    |    8 +-
 ...tractDistributedByteArrayValuesSelfTest.java |   32 +-
 .../GridCacheAbstractJobExecutionTest.java      |   44 +-
 .../GridCacheAbstractNodeRestartSelfTest.java   |   57 +-
 ...tractPartitionedByteArrayValuesSelfTest.java |   17 +-
 .../GridCacheAbstractPrimarySyncSelfTest.java   |   32 +-
 .../GridCacheBasicOpAbstractTest.java           |   45 +-
 .../GridCacheClientModesAbstractSelfTest.java   |   30 +-
 ...ientModesTcpClientDiscoveryAbstractTest.java |   13 +-
 .../GridCacheEntrySetAbstractSelfTest.java      |   31 +-
 ...acheEntrySetIterationPreloadingSelfTest.java |   19 +-
 .../distributed/GridCacheEventAbstractTest.java |   51 +-
 ...heExpiredEntriesPreloadAbstractSelfTest.java |   36 +-
 .../distributed/GridCacheLockAbstractTest.java  |   50 +-
 .../distributed/GridCacheMixedModeSelfTest.java |   15 +-
 .../GridCacheModuloAffinityFunction.java        |   21 +-
 .../GridCacheMultiNodeAbstractTest.java         |   46 +-
 .../GridCacheMultiNodeLockAbstractTest.java     |   47 +-
 ...dCacheMultithreadedFailoverAbstractTest.java |   79 +-
 .../GridCacheNodeFailureAbstractTest.java       |   59 +-
 ...ridCachePartitionNotLoadedEventSelfTest.java |   45 +-
 ...dCachePartitionedAffinityFilterSelfTest.java |   38 +-
 ...chePartitionedReloadAllAbstractSelfTest.java |   51 +-
 .../GridCachePreloadEventsAbstractSelfTest.java |   41 +-
 .../GridCachePreloadLifecycleAbstractTest.java  |   30 +-
 ...GridCachePreloadRestartAbstractSelfTest.java |   40 +-
 .../GridCacheTransformEventSelfTest.java        |   67 +-
 .../distributed/IgniteCache150ClientsTest.java  |   44 +-
 .../IgniteCacheAtomicMessageRecoveryTest.java   |    6 +-
 .../IgniteCacheAtomicNodeJoinTest.java          |   11 +-
 .../IgniteCacheAtomicNodeRestartTest.java       |    8 +-
 ...niteCacheClientNodeChangingTopologyTest.java |  120 +-
 .../IgniteCacheClientNodeConcurrentStart.java   |   25 +-
 ...teCacheClientNodePartitionsExchangeTest.java |   72 +-
 .../IgniteCacheClientReconnectTest.java         |   36 +-
 .../distributed/IgniteCacheManyClientsTest.java |   49 +-
 .../IgniteCacheMessageRecoveryAbstractTest.java |   45 +-
 .../IgniteCacheNearOffheapGetSelfTest.java      |   29 +-
 .../IgniteCacheNodeJoinAbstractTest.java        |   26 +-
 .../IgniteCachePutGetRestartAbstractTest.java   |   42 +-
 .../IgniteCacheServerNodeConcurrentStart.java   |   18 +-
 .../IgniteCacheSizeFailoverTest.java            |   35 +-
 .../IgniteCacheSystemTransactionsSelfTest.java  |   39 +-
 .../IgniteCacheTxFairAffinityNodeJoinTest.java  |    6 +-
 .../IgniteCacheTxMessageRecoveryTest.java       |    6 +-
 ...arDisabledFairAffinityPutGetRestartTest.java |    6 +-
 ...iteCacheTxNearDisabledPutGetRestartTest.java |    4 +-
 .../distributed/IgniteCacheTxNodeJoinTest.java  |    8 +-
 .../IgniteCrossCacheTxStoreSelfTest.java        |   39 +-
 ...iteTxConsistencyRestartAbstractSelfTest.java |   47 +-
 .../distributed/IgniteTxGetAfterStopTest.java   |   22 +-
 ...xOriginatingNodeFailureAbstractSelfTest.java |   57 +-
 ...cOriginatingNodeFailureAbstractSelfTest.java |   68 +-
 .../IgniteTxPreloadAbstractTest.java            |   41 +-
 .../IgniteTxTimeoutAbstractTest.java            |   30 +-
 ...tPartitionedOnlyByteArrayValuesSelfTest.java |   18 +-
 ...heAbstractTransformWriteThroughSelfTest.java |   42 +-
 ...acheAtomicExpiredEntriesPreloadSelfTest.java |   13 +-
 .../dht/GridCacheAtomicFullApiSelfTest.java     |   29 +-
 .../dht/GridCacheAtomicNearCacheSelfTest.java   |   58 +-
 ...idCacheAtomicNearEnabledFullApiSelfTest.java |    4 +-
 ...EnabledPrimaryWriteOrderFullApiSelfTest.java |    4 +-
 ...eAtomicPrimaryWriteOrderFullApiSelfTest.java |    6 +-
 ...tomicPrimaryWriteOrderReloadAllSelfTest.java |    6 +-
 .../dht/GridCacheAtomicReloadAllSelfTest.java   |    8 +-
 .../dht/GridCacheClientOnlySelfTest.java        |   15 +-
 .../dht/GridCacheColocatedDebugTest.java        |   64 +-
 .../dht/GridCacheColocatedFailoverSelfTest.java |   10 +-
 ...eColocatedOptimisticTransactionSelfTest.java |   34 +-
 ...ridCacheColocatedPreloadRestartSelfTest.java |    4 +-
 .../GridCacheColocatedPrimarySyncSelfTest.java  |    6 +-
 .../GridCacheColocatedReloadAllSelfTest.java    |    4 +-
 .../GridCacheColocatedTxExceptionSelfTest.java  |   10 +-
 ...ssimisticOriginatingNodeFailureSelfTest.java |   17 +-
 ...dCacheColocatedTxSingleThreadedSelfTest.java |   26 +-
 .../GridCacheDaemonNodePartitionedSelfTest.java |    6 +-
 ...cheDhtAtomicEvictionNearReadersSelfTest.java |    6 +-
 .../GridCacheDhtAtomicRemoveFailureTest.java    |   13 +-
 .../GridCacheDhtClientRemoveFailureTest.java    |    2 +-
 .../dht/GridCacheDhtEntrySelfTest.java          |   47 +-
 .../dht/GridCacheDhtEntrySetSelfTest.java       |   10 +-
 ...GridCacheDhtEvictionNearReadersSelfTest.java |   52 +-
 .../dht/GridCacheDhtEvictionSelfTest.java       |   53 +-
 .../GridCacheDhtEvictionsDisabledSelfTest.java  |   24 +-
 ...idCacheDhtExpiredEntriesPreloadSelfTest.java |   10 +-
 .../dht/GridCacheDhtInternalEntrySelfTest.java  |   43 +-
 .../dht/GridCacheDhtMappingSelfTest.java        |   30 +-
 .../dht/GridCacheDhtMultiBackupTest.java        |   18 +-
 .../dht/GridCacheDhtPreloadBigDataSelfTest.java |   39 +-
 .../dht/GridCacheDhtPreloadDelayedSelfTest.java |   65 +-
 .../GridCacheDhtPreloadDisabledSelfTest.java    |   56 +-
 .../GridCacheDhtPreloadMessageCountTest.java    |   50 +-
 ...ridCacheDhtPreloadMultiThreadedSelfTest.java |   34 +-
 .../dht/GridCacheDhtPreloadOffHeapSelfTest.java |    8 +-
 .../dht/GridCacheDhtPreloadPutGetSelfTest.java  |   44 +-
 .../dht/GridCacheDhtPreloadSelfTest.java        |   74 +-
 .../GridCacheDhtPreloadStartStopSelfTest.java   |   50 +-
 .../dht/GridCacheDhtPreloadUnloadSelfTest.java  |   40 +-
 .../dht/GridCacheDhtRemoveFailureTest.java      |   10 +-
 .../distributed/dht/GridCacheDhtTestUtils.java  |   42 +-
 .../dht/GridCacheDhtTxPreloadSelfTest.java      |   10 +-
 .../dht/GridCacheGlobalLoadTest.java            |   39 +-
 ...icOffHeapTieredMultiNodeFullApiSelfTest.java |    6 +-
 ...ledFairAffinityMultiNodeFullApiSelfTest.java |    6 +-
 ...ePartitionedNearDisabledFullApiSelfTest.java |    6 +-
 ...achePartitionedNearDisabledLockSelfTest.java |    6 +-
 ...ePartitionedNearDisabledMetricsSelfTest.java |   18 +-
 ...nedNearDisabledMultiNodeFullApiSelfTest.java |    6 +-
 ...bledMultiNodeP2PDisabledFullApiSelfTest.java |    6 +-
 ...ionedNearDisabledOffHeapFullApiSelfTest.java |    6 +-
 ...DisabledOffHeapMultiNodeFullApiSelfTest.java |    6 +-
 ...abledOffHeapTieredAtomicFullApiSelfTest.java |   13 +-
 ...earDisabledOffHeapTieredFullApiSelfTest.java |    6 +-
 ...edOffHeapTieredMultiNodeFullApiSelfTest.java |    6 +-
 ...NearDisabledOptimisticTxNodeRestartTest.java |    4 +-
 ...isabledTxOriginatingNodeFailureSelfTest.java |    4 +-
 ...dOnlyP2PDisabledByteArrayValuesSelfTest.java |    2 +-
 ...edOnlyP2PEnabledByteArrayValuesSelfTest.java |    2 +-
 ...idCachePartitionedPreloadEventsSelfTest.java |   37 +-
 ...dCachePartitionedTopologyChangeSelfTest.java |   65 +-
 ...ransformWriteThroughBatchUpdateSelfTest.java |    2 +-
 ...itionedTxOriginatingNodeFailureSelfTest.java |   19 +-
 ...ridCachePartitionedUnloadEventsSelfTest.java |   42 +-
 ...IgniteCacheContainsKeyColocatedSelfTest.java |    8 +-
 .../IgniteCacheCrossCacheTxFailoverTest.java    |   64 +-
 .../dht/IgniteCacheLockFailoverSelfTest.java    |   24 +-
 .../dht/IgniteCacheMultiTxLockSelfTest.java     |   42 +-
 ...rDisabledPrimaryNodeFailureRecoveryTest.java |    4 +-
 ...rtitionedPrimaryNodeFailureRecoveryTest.java |    4 +-
 ...woBackupsPrimaryNodeFailureRecoveryTest.java |    4 +-
 ...ePrimaryNodeFailureRecoveryAbstractTest.java |   72 +-
 .../IgniteCachePutRetryAbstractSelfTest.java    |  325 ++++-
 .../dht/IgniteCachePutRetryAtomicSelfTest.java  |   83 +-
 ...gniteCachePutRetryTransactionalSelfTest.java |   58 +-
 ...teTxConsistencyColocatedRestartSelfTest.java |    8 +-
 .../dht/IgniteTxReentryColocatedSelfTest.java   |   15 +-
 ...cClientInvalidPartitionHandlingSelfTest.java |    2 +-
 .../GridCacheAtomicClientRemoveFailureTest.java |    2 +-
 .../atomic/GridCacheAtomicFailoverSelfTest.java |   16 +-
 ...eAtomicInvalidPartitionHandlingSelfTest.java |   81 +-
 .../atomic/GridCacheAtomicPreloadSelfTest.java  |   40 +-
 ...AtomicPrimaryWriteOrderFailoverSelfTest.java |    6 +-
 ...tomicPrimaryWriteOrderRemoveFailureTest.java |   16 +-
 .../GridCacheAtomicRemoveFailureTest.java       |   16 +-
 ...idCacheAtomicReplicatedFailoverSelfTest.java |    8 +-
 ...lueConsistencyAtomicNearEnabledSelfTest.java |    4 +-
 ...micPrimaryWriteOrderNearEnabledSelfTest.java |    8 +-
 ...sistencyAtomicPrimaryWriteOrderSelfTest.java |    6 +-
 ...GridCacheValueConsistencyAtomicSelfTest.java |    8 +-
 ...CacheContainsKeyColocatedAtomicSelfTest.java |    9 +-
 ...gniteCacheContainsKeyNearAtomicSelfTest.java |    7 +-
 ...PutRetryAtomicPrimaryWriteOrderSelfTest.java |    8 +-
 ...tNearPartitionedByteArrayValuesSelfTest.java |    6 +-
 ...unctionExcludeNeighborsAbstractSelfTest.java |   43 +-
 ...nlyFairAffinityMultiNodeFullApiSelfTest.java |    6 +-
 ...tomicClientOnlyMultiNodeFullApiSelfTest.java |   43 +-
 ...OnlyMultiNodeP2PDisabledFullApiSelfTest.java |    4 +-
 ...yOnReadDisabledMultiNodeFullApiSelfTest.java |    4 +-
 ...micFairAffinityMultiNodeFullApiSelfTest.java |    6 +-
 ...GridCacheAtomicMultiNodeFullApiSelfTest.java |   14 +-
 ...omicMultiNodeP2PDisabledFullApiSelfTest.java |   12 +-
 ...ledFairAffinityMultiNodeFullApiSelfTest.java |    6 +-
 ...omicNearEnabledMultiNodeFullApiSelfTest.java |    4 +-
 ...imaryWriteOrderMultiNodeFullApiSelfTest.java |    4 +-
 ...ridCacheAtomicNearEvictionEventSelfTest.java |   11 +-
 .../GridCacheAtomicNearEvictionSelfTest.java    |    6 +-
 .../GridCacheAtomicNearMultiNodeSelfTest.java   |    6 +-
 ...eAtomicNearOnlyMultiNodeFullApiSelfTest.java |   27 +-
 ...OnlyMultiNodeP2PDisabledFullApiSelfTest.java |    4 +-
 .../GridCacheAtomicNearReadersSelfTest.java     |    6 +-
 .../GridCacheAtomicNearRemoveFailureTest.java   |   14 +-
 .../GridCacheAtomicOffHeapFullApiSelfTest.java  |   12 +-
 ...heAtomicOffHeapMultiNodeFullApiSelfTest.java |   12 +-
 ...icOffHeapTieredMultiNodeFullApiSelfTest.java |    6 +-
 ...idCacheAtomicPartitionedMetricsSelfTest.java |   16 +-
 ...AtomicPartitionedTckMetricsSelfTestImpl.java |    9 +-
 ...derFairAffinityMultiNodeFullApiSelfTest.java |    6 +-
 ...imaryWriteOrderMultiNodeFullApiSelfTest.java |    6 +-
 ...rderMultiNodeP2PDisabledFullApiSelfTest.java |    6 +-
 ...cPrimaryWriteOrderNearRemoveFailureTest.java |   14 +-
 ...PrimaryWriteOrderOffHeapFullApiSelfTest.java |    6 +-
 ...yWriteOrderOffHeapTieredFullApiSelfTest.java |    6 +-
 ...ityOrderOffHeapMultiNodeFullApiSelfTest.java |    6 +-
 ...erOffHeapTieredMultiNodeFullApiSelfTest.java |    6 +-
 .../near/GridCacheGetStoreErrorSelfTest.java    |   43 +-
 .../GridCacheNearEvictionEventSelfTest.java     |    9 +-
 .../near/GridCacheNearEvictionSelfTest.java     |   41 +-
 ...dCacheNearExpiredEntriesPreloadSelfTest.java |    8 +-
 .../near/GridCacheNearJobExecutionSelfTest.java |   13 +-
 .../near/GridCacheNearMetricsSelfTest.java      |   16 +-
 .../near/GridCacheNearMultiGetSelfTest.java     |   49 +-
 .../near/GridCacheNearMultiNodeSelfTest.java    |   79 +-
 .../near/GridCacheNearOneNodeSelfTest.java      |   40 +-
 ...nlyFairAffinityMultiNodeFullApiSelfTest.java |    6 +-
 ...idCacheNearOnlyMultiNodeFullApiSelfTest.java |   61 +-
 ...OnlyMultiNodeP2PDisabledFullApiSelfTest.java |    4 +-
 .../near/GridCacheNearOnlySelfTest.java         |   16 +-
 .../near/GridCacheNearOnlyTopologySelfTest.java |   43 +-
 .../GridCacheNearPartitionedClearSelfTest.java  |   35 +-
 ...ionedP2PDisabledByteArrayValuesSelfTest.java |    2 +-
 ...tionedP2PEnabledByteArrayValuesSelfTest.java |    2 +-
 .../GridCacheNearPreloadRestartSelfTest.java    |    4 +-
 .../near/GridCacheNearPrimarySyncSelfTest.java  |    6 +-
 .../GridCacheNearReaderPreloadSelfTest.java     |   34 +-
 .../near/GridCacheNearReadersSelfTest.java      |   59 +-
 .../near/GridCacheNearReloadAllSelfTest.java    |    4 +-
 .../near/GridCacheNearRemoveFailureTest.java    |   11 +-
 .../near/GridCacheNearTxExceptionSelfTest.java  |    8 +-
 .../near/GridCacheNearTxForceKeyTest.java       |   25 +-
 .../near/GridCacheNearTxMultiNodeSelfTest.java  |   55 +-
 ...ssimisticOriginatingNodeFailureSelfTest.java |   15 +-
 .../near/GridCacheNearTxPreloadSelfTest.java    |   11 +-
 ...AffinityExcludeNeighborsPerformanceTest.java |   35 +-
 ...rtitionedAffinityHashIdResolverSelfTest.java |   30 +-
 .../GridCachePartitionedAffinitySelfTest.java   |   57 +-
 ...ionedAtomicGetAndTransformStoreSelfTest.java |    6 +-
 .../near/GridCachePartitionedBasicApiTest.java  |   12 +-
 .../GridCachePartitionedBasicOpSelfTest.java    |   14 +-
 ...ePartitionedBasicStoreMultiNodeSelfTest.java |   42 +-
 .../GridCachePartitionedBasicStoreSelfTest.java |    8 +-
 ...ionedClientOnlyNoPrimaryFullApiSelfTest.java |   19 +-
 ...yOnReadDisabledMultiNodeFullApiSelfTest.java |    4 +-
 .../GridCachePartitionedEntryLockSelfTest.java  |    9 +-
 .../near/GridCachePartitionedEventSelfTest.java |   15 +-
 .../GridCachePartitionedEvictionSelfTest.java   |   50 +-
 ...titionedExplicitLockNodeFailureSelfTest.java |   42 +-
 .../GridCachePartitionedFailoverSelfTest.java   |    8 +-
 ...GridCachePartitionedFilteredPutSelfTest.java |   32 +-
 ...PartitionedFullApiMultithreadedSelfTest.java |    8 +-
 .../GridCachePartitionedFullApiSelfTest.java    |   23 +-
 ...PartitionedGetAndTransformStoreSelfTest.java |    8 +-
 ...idCachePartitionedHitsAndMissesSelfTest.java |   40 +-
 .../GridCachePartitionedIteratorsSelfTest.java  |    8 +-
 .../GridCachePartitionedLoadCacheSelfTest.java  |   36 +-
 .../near/GridCachePartitionedLockSelfTest.java  |   14 +-
 .../GridCachePartitionedMetricsSelfTest.java    |   13 +-
 ...achePartitionedMultiNodeCounterSelfTest.java |   72 +-
 ...achePartitionedMultiNodeFullApiSelfTest.java |   47 +-
 ...idCachePartitionedMultiNodeLockSelfTest.java |   13 +-
 ...onedMultiNodeP2PDisabledFullApiSelfTest.java |    4 +-
 .../GridCachePartitionedMultiNodeSelfTest.java  |   13 +-
 ...ePartitionedMultiThreadedPutGetSelfTest.java |   44 +-
 ...NearDisabledBasicStoreMultiNodeSelfTest.java |    4 +-
 ...itionedNearOnlyNoPrimaryFullApiSelfTest.java |    4 +-
 .../near/GridCachePartitionedNestedTxTest.java  |   11 +-
 ...GridCachePartitionedNodeFailureSelfTest.java |   13 +-
 .../GridCachePartitionedNodeRestartTest.java    |   15 +-
 ...dCachePartitionedOffHeapFullApiSelfTest.java |    6 +-
 ...titionedOffHeapMultiNodeFullApiSelfTest.java |    6 +-
 ...edOffHeapTieredMultiNodeFullApiSelfTest.java |    9 +-
 ...ePartitionedOptimisticTxNodeRestartTest.java |   18 +-
 ...achePartitionedPreloadLifecycleSelfTest.java |   42 +-
 .../GridCachePartitionedStorePutSelfTest.java   |   34 +-
 ...GridCachePartitionedTxConcurrentGetTest.java |   11 +-
 ...GridCachePartitionedTxMultiNodeSelfTest.java |   11 +-
 ...CachePartitionedTxMultiThreadedSelfTest.java |   22 +-
 .../near/GridCachePartitionedTxReadTest.java    |    6 +-
 .../GridCachePartitionedTxSalvageSelfTest.java  |   49 +-
 ...achePartitionedTxSingleThreadedSelfTest.java |   26 +-
 .../GridCachePartitionedTxTimeoutSelfTest.java  |   18 +-
 .../near/GridCachePutArrayValueSelfTest.java    |   21 +-
 ...idCacheRendezvousAffinityClientSelfTest.java |   28 +-
 ...ffinityFunctionExcludeNeighborsSelfTest.java |    6 +-
 .../near/GridPartitionedBackupLoadSelfTest.java |   34 +-
 .../IgniteCacheContainsKeyNearSelfTest.java     |    6 +-
 .../near/IgniteCacheNearOnlyTxTest.java         |   34 +-
 .../near/IgniteCacheNearReadCommittedTest.java  |   19 +-
 .../near/IgniteCacheNearTxRollbackTest.java     |   39 +-
 .../near/IgniteTxReentryNearSelfTest.java       |   15 +-
 .../near/NoneRebalanceModeSelfTest.java         |   15 +-
 ...stractReplicatedByteArrayValuesSelfTest.java |   16 +-
 ...ridCacheAtomicReplicatedMetricsSelfTest.java |   12 +-
 .../GridCacheDaemonNodeReplicatedSelfTest.java  |    6 +-
 ...nedFairAffinityMultiNodeFullApiSelfTest.java |    8 +-
 ...ridCacheReplicatedAtomicFullApiSelfTest.java |    6 +-
 ...catedAtomicGetAndTransformStoreSelfTest.java |    6 +-
 ...eplicatedAtomicMultiNodeFullApiSelfTest.java |   11 +-
 ...imaryWriteOrderMultiNodeFullApiSelfTest.java |    6 +-
 .../GridCacheReplicatedBasicApiTest.java        |    9 +-
 .../GridCacheReplicatedBasicOpSelfTest.java     |    9 +-
 .../GridCacheReplicatedBasicStoreSelfTest.java  |    8 +-
 .../GridCacheReplicatedEntrySetSelfTest.java    |    8 +-
 .../GridCacheReplicatedEventSelfTest.java       |    8 +-
 ...ridCacheReplicatedEvictionEventSelfTest.java |    9 +-
 .../GridCacheReplicatedEvictionSelfTest.java    |   31 +-
 .../GridCacheReplicatedFailoverSelfTest.java    |   10 +-
 ...eReplicatedFullApiMultithreadedSelfTest.java |    8 +-
 ...ReplicatedFullApiMultithreadedSelfTest1.java |    4 +-
 .../GridCacheReplicatedFullApiSelfTest.java     |   12 +-
 ...eReplicatedGetAndTransformStoreSelfTest.java |    8 +-
 .../GridCacheReplicatedInvalidateSelfTest.java  |   56 +-
 .../GridCacheReplicatedIteratorsSelfTest.java   |    8 +-
 .../GridCacheReplicatedJobExecutionTest.java    |   11 +-
 .../GridCacheReplicatedLockSelfTest.java        |    8 +-
 .../GridCacheReplicatedMarshallerTxTest.java    |   11 +-
 .../GridCacheReplicatedMetricsSelfTest.java     |    9 +-
 ...CacheReplicatedMultiNodeFullApiSelfTest.java |    2 +-
 ...ridCacheReplicatedMultiNodeLockSelfTest.java |    8 +-
 ...atedMultiNodeP2PDisabledFullApiSelfTest.java |    4 +-
 .../GridCacheReplicatedMultiNodeSelfTest.java   |    9 +-
 ...licatedNearOnlyMultiNodeFullApiSelfTest.java |    8 +-
 .../GridCacheReplicatedNodeFailureSelfTest.java |   11 +-
 .../GridCacheReplicatedNodeRestartSelfTest.java |   13 +-
 ...idCacheReplicatedOffHeapFullApiSelfTest.java |    6 +-
 ...plicatedOffHeapMultiNodeFullApiSelfTest.java |    6 +-
 ...eReplicatedOffHeapTieredFullApiSelfTest.java |    6 +-
 ...edOffHeapTieredMultiNodeFullApiSelfTest.java |    6 +-
 ...catedP2PDisabledByteArrayValuesSelfTest.java |    2 +-
 ...icatedP2PEnabledByteArrayValuesSelfTest.java |    2 +-
 ...ridCacheReplicatedPreloadEventsSelfTest.java |    8 +-
 .../GridCacheReplicatedTxConcurrentGetTest.java |   11 +-
 .../GridCacheReplicatedTxExceptionSelfTest.java |   10 +-
 ...GridCacheReplicatedTxMultiNodeBasicTest.java |   10 +-
 ...dCacheReplicatedTxMultiThreadedSelfTest.java |   23 +-
 ...licatedTxOriginatingNodeFailureSelfTest.java |    7 +-
 ...ssimisticOriginatingNodeFailureSelfTest.java |   18 +-
 .../GridCacheReplicatedTxReadTest.java          |    6 +-
 ...CacheReplicatedTxSingleThreadedSelfTest.java |   22 +-
 .../GridCacheReplicatedTxTimeoutSelfTest.java   |   15 +-
 ...idCacheReplicatedUnswapAdvancedSelfTest.java |   43 +-
 .../GridCacheSyncReplicatedPreloadSelfTest.java |   34 +-
 .../replicated/GridReplicatedTxPreloadTest.java |    8 +-
 ...acheAtomicReplicatedNodeRestartSelfTest.java |   11 +-
 ...CacheReplicatedPreloadLifecycleSelfTest.java |   48 +-
 ...idCacheReplicatedPreloadOffHeapSelfTest.java |    6 +-
 .../GridCacheReplicatedPreloadSelfTest.java     |   68 +-
 ...eplicatedPreloadStartStopEventsSelfTest.java |   29 +-
 ...GridCacheReplicatedPreloadUndeploysTest.java |   13 +-
 .../cache/eviction/EvictionAbstractTest.java    |   71 +-
 .../GridCacheBatchEvictUnswapSelfTest.java      |   30 +-
 ...heConcurrentEvictionConsistencySelfTest.java |   52 +-
 .../GridCacheConcurrentEvictionsSelfTest.java   |   44 +-
 .../GridCacheDistributedEvictionsSelfTest.java  |   45 +-
 .../GridCacheEmptyEntriesAbstractSelfTest.java  |   44 +-
 .../GridCacheEmptyEntriesLocalSelfTest.java     |    6 +-
 ...ridCacheEmptyEntriesPartitionedSelfTest.java |    6 +-
 .../GridCacheEvictionFilterSelfTest.java        |   45 +-
 .../GridCacheEvictionLockUnlockSelfTest.java    |   46 +-
 .../GridCacheEvictionTouchSelfTest.java         |   51 +-
 .../cache/eviction/GridCacheMockEntry.java      |   15 +-
 ...cheSynchronousEvictionsFailoverSelfTest.java |   37 +-
 .../fifo/FifoEvictionPolicySelfTest.java        |    6 +-
 .../eviction/lru/LruEvictionPolicySelfTest.java |   10 +-
 .../lru/LruNearEvictionPolicySelfTest.java      |   38 +-
 .../LruNearOnlyNearEvictionPolicySelfTest.java  |   38 +-
 .../RandomEvictionPolicyCacheSizeSelfTest.java  |   13 +-
 .../random/RandomEvictionPolicySelfTest.java    |   16 +-
 .../SortedEvictionPolicyPerformanceTest.java    |   26 +-
 .../sorted/SortedEvictionPolicySelfTest.java    |    6 +-
 .../IgniteCacheAtomicExpiryPolicyTest.java      |   14 +-
 ...iteCacheAtomicExpiryPolicyWithStoreTest.java |   12 +-
 .../IgniteCacheAtomicLocalExpiryPolicyTest.java |   11 +-
 ...AtomicPrimaryWriteOrderExpiryPolicyTest.java |    6 +-
 ...maryWriteOrderWithStoreExpiryPolicyTest.java |    7 +-
 ...teCacheAtomicReplicatedExpiryPolicyTest.java |    6 +-
 ...iteCacheAtomicWithStoreExpiryPolicyTest.java |    7 +-
 .../IgniteCacheClientNearCacheExpiryTest.java   |   29 +-
 .../IgniteCacheExpiryPolicyAbstractTest.java    |   72 +-
 .../IgniteCacheExpiryPolicyTestSuite.java       |    6 +-
 ...eCacheExpiryPolicyWithStoreAbstractTest.java |   35 +-
 .../expiry/IgniteCacheTtlCleanupSelfTest.java   |   26 +-
 .../expiry/IgniteCacheTxExpiryPolicyTest.java   |   11 +-
 .../IgniteCacheTxExpiryPolicyWithStoreTest.java |    9 +-
 .../IgniteCacheTxLocalExpiryPolicyTest.java     |   11 +-
 ...IgniteCacheTxReplicatedExpiryPolicyTest.java |    6 +-
 .../IgniteCacheTxWithStoreExpiryPolicyTest.java |    7 +-
 .../IgniteCacheAtomicLoadAllTest.java           |   14 +-
 .../IgniteCacheAtomicLoaderWriterTest.java      |   14 +-
 .../IgniteCacheAtomicLocalLoadAllTest.java      |   11 +-
 ...CacheAtomicLocalNoLoadPreviousValueTest.java |   11 +-
 ...IgniteCacheAtomicLocalNoReadThroughTest.java |   11 +-
 ...gniteCacheAtomicLocalNoWriteThroughTest.java |   11 +-
 ...tomicNearEnabledNoLoadPreviousValueTest.java |    4 +-
 ...CacheAtomicNearEnabledNoReadThroughTest.java |    4 +-
 ...acheAtomicNearEnabledNoWriteThroughTest.java |    4 +-
 ...gniteCacheAtomicNoLoadPreviousValueTest.java |   14 +-
 .../IgniteCacheAtomicNoReadThroughTest.java     |   14 +-
 .../IgniteCacheAtomicNoWriteThroughTest.java    |   14 +-
 .../IgniteCacheAtomicStoreSessionTest.java      |   14 +-
 ...eCacheAtomicStoreSessionWriteBehindTest.java |    9 +-
 ...IgniteCacheJdbcBlobStoreNodeRestartTest.java |   14 +-
 .../IgniteCacheLoadAllAbstractTest.java         |   33 +-
 .../IgniteCacheLoaderWriterAbstractTest.java    |   35 +-
 ...iteCacheNoLoadPreviousValueAbstractTest.java |   30 +-
 .../IgniteCacheNoReadThroughAbstractTest.java   |   40 +-
 .../IgniteCacheNoWriteThroughAbstractTest.java  |   33 +-
 ...IgniteCacheStoreNodeRestartAbstractTest.java |   12 +-
 .../IgniteCacheStoreSessionAbstractTest.java    |   44 +-
 ...acheStoreSessionWriteBehindAbstractTest.java |   35 +-
 .../integration/IgniteCacheTxLoadAllTest.java   |   11 +-
 .../IgniteCacheTxLoaderWriterTest.java          |   11 +-
 .../IgniteCacheTxLocalLoadAllTest.java          |   11 +-
 ...niteCacheTxLocalNoLoadPreviousValueTest.java |   11 +-
 .../IgniteCacheTxLocalNoReadThroughTest.java    |   11 +-
 .../IgniteCacheTxLocalNoWriteThroughTest.java   |   11 +-
 ...cheTxNearEnabledNoLoadPreviousValueTest.java |    4 +-
 ...niteCacheTxNearEnabledNoReadThroughTest.java |    4 +-
 ...iteCacheTxNearEnabledNoWriteThroughTest.java |    4 +-
 .../IgniteCacheTxNoLoadPreviousValueTest.java   |   11 +-
 .../IgniteCacheTxNoReadThroughTest.java         |   11 +-
 .../IgniteCacheTxNoWriteThroughTest.java        |   11 +-
 .../IgniteCacheTxStoreSessionTest.java          |   30 +-
 ...gniteCacheTxStoreSessionWriteBehindTest.java |    6 +-
 ...CacheLocalOffHeapAndSwapMetricsSelfTest.java |   17 +-
 ...dCacheAtomicLocalMetricsNoStoreSelfTest.java |    4 +-
 .../GridCacheAtomicLocalMetricsSelfTest.java    |   12 +-
 ...dCacheAtomicLocalTckMetricsSelfTestImpl.java |    9 +-
 .../local/GridCacheDaemonNodeLocalSelfTest.java |    9 +-
 .../GridCacheLocalAtomicBasicStoreSelfTest.java |    6 +-
 .../GridCacheLocalAtomicFullApiSelfTest.java    |    6 +-
 ...LocalAtomicGetAndTransformStoreSelfTest.java |    6 +-
 ...dCacheLocalAtomicOffHeapFullApiSelfTest.java |    6 +-
 ...LocalAtomicOffHeapTieredFullApiSelfTest.java |    6 +-
 .../local/GridCacheLocalBasicApiSelfTest.java   |    9 +-
 ...cheLocalBasicStoreMultithreadedSelfTest.java |    6 +-
 .../local/GridCacheLocalBasicStoreSelfTest.java |    8 +-
 .../GridCacheLocalByteArrayValuesSelfTest.java  |   40 +-
 .../local/GridCacheLocalEventSelfTest.java      |    8 +-
 .../GridCacheLocalEvictionEventSelfTest.java    |    9 +-
 ...dCacheLocalFullApiMultithreadedSelfTest.java |    8 +-
 .../local/GridCacheLocalFullApiSelfTest.java    |   25 +-
 ...dCacheLocalGetAndTransformStoreSelfTest.java |    8 +-
 .../GridCacheLocalIsolatedNodesSelfTest.java    |   18 +-
 .../local/GridCacheLocalIteratorsSelfTest.java  |    8 +-
 .../local/GridCacheLocalLoadAllSelfTest.java    |   27 +-
 .../cache/local/GridCacheLocalLockSelfTest.java |   29 +-
 .../local/GridCacheLocalMetricsSelfTest.java    |    9 +-
 .../GridCacheLocalMultithreadedSelfTest.java    |   36 +-
 .../GridCacheLocalOffHeapFullApiSelfTest.java   |    4 +-
 .../GridCacheLocalTxExceptionSelfTest.java      |    8 +-
 .../GridCacheLocalTxMultiThreadedSelfTest.java  |   13 +-
 .../cache/local/GridCacheLocalTxReadTest.java   |    6 +-
 .../GridCacheLocalTxSingleThreadedSelfTest.java |   13 +-
 .../local/GridCacheLocalTxTimeoutSelfTest.java  |   36 +-
 ...OnlyFairAffinityMultiJvmFullApiSelfTest.java |    4 +-
 ...AtomicClientOnlyMultiJvmFullApiSelfTest.java |    4 +-
 ...tOnlyMultiJvmP2PDisabledFullApiSelfTest.java |    4 +-
 ...pyOnReadDisabledMultiJvmFullApiSelfTest.java |    4 +-
 ...omicFairAffinityMultiJvmFullApiSelfTest.java |    4 +-
 .../GridCacheAtomicMultiJvmFullApiSelfTest.java |    4 +-
 ...tomicMultiJvmP2PDisabledFullApiSelfTest.java |    4 +-
 ...bledFairAffinityMultiJvmFullApiSelfTest.java |    4 +-
 ...tomicNearEnabledMultiJvmFullApiSelfTest.java |    4 +-
 ...rimaryWriteOrderMultiJvmFullApiSelfTest.java |    4 +-
 ...heAtomicNearOnlyMultiJvmFullApiSelfTest.java |    4 +-
 ...rOnlyMultiJvmP2PDisabledFullApiSelfTest.java |    4 +-
 ...cheAtomicOffHeapMultiJvmFullApiSelfTest.java |    4 +-
 ...micOffHeapTieredMultiJvmFullApiSelfTest.java |    4 +-
 ...rderFairAffinityMultiJvmFullApiSelfTest.java |    4 +-
 ...rimaryWriteOrderMultiJvmFullApiSelfTest.java |    4 +-
 ...OrderMultiJvmP2PDisabledFullApiSelfTest.java |    4 +-
 ...rityOrderOffHeapMultiJvmFullApiSelfTest.java |    4 +-
 ...derOffHeapTieredMultiJvmFullApiSelfTest.java |    4 +-
 ...OnlyFairAffinityMultiJvmFullApiSelfTest.java |    4 +-
 ...ridCacheNearOnlyMultiJvmFullApiSelfTest.java |    4 +-
 ...rOnlyMultiJvmP2PDisabledFullApiSelfTest.java |    4 +-
 ...pyOnReadDisabledMultiJvmFullApiSelfTest.java |    4 +-
 ...onedFairAffinityMultiJvmFullApiSelfTest.java |    4 +-
 ...CachePartitionedMultiJvmFullApiSelfTest.java |    4 +-
 ...ionedMultiJvmP2PDisabledFullApiSelfTest.java |    4 +-
 ...micOffHeapTieredMultiJvmFullApiSelfTest.java |    4 +-
 ...bledFairAffinityMultiJvmFullApiSelfTest.java |    4 +-
 ...onedNearDisabledMultiJvmFullApiSelfTest.java |    4 +-
 ...abledMultiJvmP2PDisabledFullApiSelfTest.java |    4 +-
 ...rDisabledOffHeapMultiJvmFullApiSelfTest.java |    4 +-
 ...ledOffHeapTieredMultiJvmFullApiSelfTest.java |    4 +-
 ...rtitionedOffHeapMultiJvmFullApiSelfTest.java |    4 +-
 ...nedOffHeapTieredMultiJvmFullApiSelfTest.java |    4 +-
 ...ReplicatedAtomicMultiJvmFullApiSelfTest.java |    4 +-
 ...rimaryWriteOrderMultiJvmFullApiSelfTest.java |    4 +-
 ...dCacheReplicatedMultiJvmFullApiSelfTest.java |    4 +-
 ...catedMultiJvmP2PDisabledFullApiSelfTest.java |    4 +-
 ...plicatedNearOnlyMultiJvmFullApiSelfTest.java |    4 +-
 ...eplicatedOffHeapMultiJvmFullApiSelfTest.java |    4 +-
 ...tedOffHeapTieredMultiJvmFullApiSelfTest.java |    4 +-
 ...ClientNodePortableMetadataMultinodeTest.java |   47 +-
 ...GridCacheClientNodePortableMetadataTest.java |   32 +-
 ...ableObjectsAbstractDataStreamerSelfTest.java |   41 +-
 ...bleObjectsAbstractMultiThreadedSelfTest.java |   45 +-
 ...ridCachePortableObjectsAbstractSelfTest.java |   80 +-
 .../GridCachePortableStoreAbstractSelfTest.java |   33 +-
 .../GridCachePortableStoreObjectsSelfTest.java  |    4 +-
 ...GridCachePortableStorePortablesSelfTest.java |    7 +-
 ...ridPortableCacheEntryMemorySizeSelfTest.java |   19 +-
 ...leDuplicateIndexObjectsAbstractSelfTest.java |   27 +-
 .../DataStreamProcessorPortableSelfTest.java    |   19 +-
 .../GridDataStreamerImplSelfTest.java           |   47 +-
 ...ridCacheAffinityRoutingPortableSelfTest.java |   13 +-
 ...lyPortableDataStreamerMultiNodeSelfTest.java |    2 +-
 ...rtableDataStreamerMultithreadedSelfTest.java |   13 +-
 ...artitionedOnlyPortableMultiNodeSelfTest.java |    2 +-
 ...tionedOnlyPortableMultithreadedSelfTest.java |   13 +-
 .../GridCacheMemoryModePortableSelfTest.java    |    8 +-
 ...acheOffHeapTieredAtomicPortableSelfTest.java |   11 +-
 ...eapTieredEvictionAtomicPortableSelfTest.java |   13 +-
 ...heOffHeapTieredEvictionPortableSelfTest.java |   13 +-
 .../GridCacheOffHeapTieredPortableSelfTest.java |   11 +-
 ...ateIndexObjectPartitionedAtomicSelfTest.java |    7 +-
 ...xObjectPartitionedTransactionalSelfTest.java |   11 +-
 ...AtomicNearDisabledOffheapTieredSelfTest.java |    2 +-
 ...rtableObjectsAtomicNearDisabledSelfTest.java |   13 +-
 ...tableObjectsAtomicOffheapTieredSelfTest.java |    2 +-
 .../GridCachePortableObjectsAtomicSelfTest.java |   13 +-
 ...tionedNearDisabledOffheapTieredSelfTest.java |    2 +-
 ...eObjectsPartitionedNearDisabledSelfTest.java |   13 +-
 ...ObjectsPartitionedOffheapTieredSelfTest.java |    2 +-
 ...CachePortableObjectsPartitionedSelfTest.java |   13 +-
 ...sNearPartitionedByteArrayValuesSelfTest.java |    8 +-
 ...sPartitionedOnlyByteArrayValuesSelfTest.java |    8 +-
 ...dCachePortableObjectsReplicatedSelfTest.java |   13 +-
 ...CachePortableObjectsAtomicLocalSelfTest.java |    6 +-
 ...rtableObjectsLocalOffheapTieredSelfTest.java |    2 +-
 .../GridCachePortableObjectsLocalSelfTest.java  |   13 +-
 .../GridCacheSwapScanQueryAbstractSelfTest.java |   45 +-
 .../query/GridCacheSwapScanQuerySelfTest.java   |    2 +-
 .../cache/query/GridCircularQueueTest.java      |    9 +-
 ...ridCacheContinuousQueryAbstractSelfTest.java |  103 +-
 ...ontinuousQueryAtomicNearEnabledSelfTest.java |    4 +-
 ...ontinuousQueryAtomicP2PDisabledSelfTest.java |    2 +-
 .../GridCacheContinuousQueryAtomicSelfTest.java |    8 +-
 ...CacheContinuousQueryLocalAtomicSelfTest.java |    6 +-
 .../GridCacheContinuousQueryLocalSelfTest.java  |    6 +-
 ...eContinuousQueryPartitionedOnlySelfTest.java |    8 +-
 ...uousQueryPartitionedP2PDisabledSelfTest.java |    2 +-
 ...CacheContinuousQueryPartitionedSelfTest.java |    6 +-
 ...ContinuousQueryReplicatedAtomicSelfTest.java |    6 +-
 ...nuousQueryReplicatedP2PDisabledSelfTest.java |    2 +-
 ...dCacheContinuousQueryReplicatedSelfTest.java |   27 +-
 .../IgniteCacheContinuousQueryClientTest.java   |   40 +-
 ...idCacheWriteBehindStoreAbstractSelfTest.java |   25 +-
 .../GridCacheWriteBehindStoreAbstractTest.java  |   46 +-
 .../GridCacheWriteBehindStoreLocalTest.java     |    4 +-
 ...heWriteBehindStoreMultithreadedSelfTest.java |   10 +-
 ...BehindStorePartitionedMultiNodeSelfTest.java |   43 +-
 ...ridCacheWriteBehindStorePartitionedTest.java |    4 +-
 ...GridCacheWriteBehindStoreReplicatedTest.java |    4 +-
 .../GridCacheWriteBehindStoreSelfTest.java      |   22 +-
 ...CacheClientWriteBehindStoreAbstractTest.java |   22 +-
 ...teCacheClientWriteBehindStoreAtomicTest.java |    9 +-
 .../IgnteCacheClientWriteBehindStoreTxTest.java |    6 +-
 .../CacheVersionedEntryAbstractTest.java        |   21 +-
 ...nedEntryLocalAtomicSwapDisabledSelfTest.java |    5 +-
 ...ersionedEntryLocalTransactionalSelfTest.java |    5 +-
 ...edEntryPartitionedAtomicOffHeapSelfTest.java |    6 +-
 ...VersionedEntryPartitionedAtomicSelfTest.java |    5 +-
 ...PartitionedTransactionalOffHeapSelfTest.java |    6 +-
 ...edEntryPartitionedTransactionalSelfTest.java |    5 +-
 ...nedEntryReplicatedAtomicOffHeapSelfTest.java |    6 +-
 ...eVersionedEntryReplicatedAtomicSelfTest.java |    5 +-
 ...yReplicatedTransactionalOffHeapSelfTest.java |    6 +-
 ...nedEntryReplicatedTransactionalSelfTest.java |    5 +-
 .../clock/GridTimeSyncProcessorSelfTest.java    |   29 +-
 .../closure/GridClosureProcessorRemoteTest.java |   21 +-
 .../closure/GridClosureProcessorSelfTest.java   |   51 +-
 .../continuous/GridEventConsumeSelfTest.java    |   69 +-
 .../continuous/GridMessageListenSelfTest.java   |   43 +-
 .../DataStreamProcessorSelfTest.java            |   83 +-
 .../datastreamer/DataStreamerImplSelfTest.java  |   36 +-
 .../DataStreamerMultiThreadedSelfTest.java      |   38 +-
 .../DataStreamerMultinodeCreateCacheTest.java   |   25 +-
 .../IgniteDataStreamerPerformanceTest.java      |   34 +-
 .../processors/igfs/IgfsAbstractSelfTest.java   |   95 +-
 .../processors/igfs/IgfsAttributesSelfTest.java |   21 +-
 .../igfs/IgfsBackupFailoverSelfTest.java        |  187 ++-
 .../igfs/IgfsBackupsDualAsyncSelfTest.java      |    6 +-
 .../igfs/IgfsBackupsDualSyncSelfTest.java       |    6 +-
 .../igfs/IgfsBackupsPrimarySelfTest.java        |    6 +-
 ...sCachePerBlockLruEvictionPolicySelfTest.java |   55 +-
 .../processors/igfs/IgfsCacheSelfTest.java      |   37 +-
 .../igfs/IgfsClientCacheSelfTest.java           |   22 +-
 .../processors/igfs/IgfsCommonAbstractTest.java |    8 +-
 .../igfs/IgfsDataManagerSelfTest.java           |   57 +-
 .../igfs/IgfsDualAbstractSelfTest.java          |   36 +-
 .../processors/igfs/IgfsDualAsyncSelfTest.java  |    4 +-
 .../processors/igfs/IgfsDualSyncSelfTest.java   |    4 +-
 .../igfs/IgfsExUniversalFileSystemAdapter.java  |   12 +-
 .../processors/igfs/IgfsFileInfoSelfTest.java   |   20 +-
 .../processors/igfs/IgfsFileMapSelfTest.java    |   21 +-
 ...IgfsGroupDataBlockKeyMapperHashSelfTest.java |   10 +-
 .../igfs/IgfsMetaManagerSelfTest.java           |   50 +-
 .../processors/igfs/IgfsMetricsSelfTest.java    |   44 +-
 .../igfs/IgfsModeResolverSelfTest.java          |   17 +-
 .../processors/igfs/IgfsModesSelfTest.java      |   48 +-
 .../processors/igfs/IgfsOneClientNodeTest.java  |   27 +-
 .../igfs/IgfsPrimaryOffheapTieredSelfTest.java  |    6 +-
 .../igfs/IgfsPrimaryOffheapValuesSelfTest.java  |    6 +-
 .../processors/igfs/IgfsPrimarySelfTest.java    |    4 +-
 .../processors/igfs/IgfsProcessorSelfTest.java  |   70 +-
 .../igfs/IgfsProcessorValidationSelfTest.java   |   40 +-
 ...IpcEndpointRegistrationAbstractSelfTest.java |   47 +-
 ...dpointRegistrationOnLinuxAndMacSelfTest.java |   10 +-
 ...pcEndpointRegistrationOnWindowsSelfTest.java |   19 +-
 .../processors/igfs/IgfsSizeSelfTest.java       |   76 +-
 .../processors/igfs/IgfsStartCacheTest.java     |   45 +-
 .../processors/igfs/IgfsStreamsSelfTest.java    |   66 +-
 .../processors/igfs/IgfsTaskSelfTest.java       |   64 +-
 .../processors/igfs/IgfsTestInputStream.java    |    5 +-
 .../igfs/UniversalFileSystemAdapter.java        |    8 +-
 .../IgfsAbstractRecordResolverSelfTest.java     |   41 +-
 ...IgfsByteDelimiterRecordResolverSelfTest.java |   10 +-
 .../IgfsFixedLengthRecordResolverSelfTest.java  |   10 +-
 ...sNewLineDelimiterRecordResolverSelfTest.java |   13 +-
 ...fsStringDelimiterRecordResolverSelfTest.java |   14 +-
 .../GridJobMetricsProcessorLoadTest.java        |   10 +-
 .../port/GridPortProcessorSelfTest.java         |   16 +-
 .../cache/GridCacheCommandHandlerSelfTest.java  |   45 +-
 .../service/ClosureServiceClientsNodesTest.java |   34 +-
 .../processors/service/DummyService.java        |   13 +-
 .../service/GridServiceClientNodeTest.java      |   18 +-
 .../GridServiceProcessorAbstractSelfTest.java   |   49 +-
 ...ServiceProcessorMultiNodeConfigSelfTest.java |   13 +-
 .../GridServiceProcessorMultiNodeSelfTest.java  |   12 +-
 .../GridServiceProcessorProxySelfTest.java      |   16 +-
 .../GridServiceProcessorSingleNodeSelfTest.java |    5 +-
 .../GridServiceReassignmentSelfTest.java        |   22 +-
 .../timeout/GridTimeoutProcessorSelfTest.java   |   25 +-
 .../product/GridProductVersionSelfTest.java     |   12 +-
 ...artupWithSpecifiedWorkDirectorySelfTest.java |   35 +-
 ...dStartupWithUndefinedIgniteHomeSelfTest.java |   31 +-
 .../internal/util/GridTestClockTimer.java       |    2 +-
 .../util/IgniteExceptionRegistrySelfTest.java   |   15 +-
 .../internal/util/IgniteUtilsSelfTest.java      |   66 +-
 .../util/future/GridCompoundFutureSelfTest.java |   17 +-
 .../util/future/GridEmbeddedFutureSelfTest.java |   25 +-
 .../util/future/GridFutureAdapterSelfTest.java  |   29 +-
 .../future/GridFutureListenPerformanceTest.java |   19 +-
 .../util/future/GridFutureQueueTest.java        |   10 +-
 .../util/future/IgniteFutureImplTest.java       |   23 +-
 .../nio/GridNioEmbeddedFutureSelfTest.java      |    9 +-
 .../util/future/nio/GridNioFutureSelfTest.java  |   24 +-
 ...GridUnsafeDataOutputArraySizingSelfTest.java |    6 +-
 .../ipc/shmem/IgfsSharedMemoryTestClient.java   |   15 +-
 .../ipc/shmem/IgfsSharedMemoryTestServer.java   |   18 +-
 .../IpcSharedMemoryCrashDetectionSelfTest.java  |   34 +-
 .../ipc/shmem/IpcSharedMemoryFakeClient.java    |    6 +-
 .../IpcSharedMemoryNativeLoaderSelfTest.java    |   15 +-
 .../ipc/shmem/IpcSharedMemoryNodeStartup.java   |   28 +-
 .../ipc/shmem/IpcSharedMemorySpaceSelfTest.java |   26 +-
 .../ipc/shmem/IpcSharedMemoryUtilsSelfTest.java |   11 +-
 .../LoadWithCorruptedLibFileTestRunner.java     |    6 +-
 .../IpcSharedMemoryBenchmarkParty.java          |    4 +-
 .../IpcSharedMemoryBenchmarkReader.java         |   22 +-
 .../IpcSharedMemoryBenchmarkWriter.java         |   21 +-
 .../nio/GridNioDelimitedBufferSelfTest.java     |    8 +-
 .../internal/util/nio/GridNioSelfTest.java      |   59 +-
 .../util/nio/GridNioSessionMetaKeySelfTest.java |   13 +-
 .../internal/util/nio/GridNioSslSelfTest.java   |   17 +-
 .../internal/util/nio/GridRoundTripTest.java    |   20 +-
 .../nio/impl/GridNioFilterChainSelfTest.java    |   27 +-
 .../util/offheap/GridByteArrayWrapper.java      |    4 +-
 .../offheap/GridOffHeapMapAbstractSelfTest.java |   31 +-
 .../GridOffHeapMapPerformanceAbstractTest.java  |   12 +-
 ...idOffHeapPartitionedMapAbstractSelfTest.java |   31 +-
 ...apPartitionedMapPerformanceAbstractTest.java |   25 +-
 .../unsafe/GridOffheapSnapTreeSelfTest.java     |   20 +-
 .../unsafe/GridUnsafeMapPerformanceTest.java    |    6 +-
 .../offheap/unsafe/GridUnsafeMapSelfTest.java   |    6 +-
 .../unsafe/GridUnsafeMemorySelfTest.java        |   23 +-
 ...GridUnsafePartitionedMapPerformanceTest.java |    8 +-
 .../GridUnsafePartitionedMapSelfTest.java       |    6 +-
 .../unsafe/GridUnsafeStripedLruSefTest.java     |   10 +-
 .../tostring/GridToStringBuilderSelfTest.java   |   17 +-
 .../ignite/jvmtest/BlockingQueueTest.java       |   17 +-
 .../ignite/jvmtest/ConcurrentMapTest.java       |   27 +-
 .../org/apache/ignite/jvmtest/FileIOTest.java   |   15 +-
 .../apache/ignite/jvmtest/FileLocksTest.java    |   12 +-
 .../ignite/jvmtest/LinkedHashMapTest.java       |   10 +-
 .../ignite/jvmtest/MultipleFileIOTest.java      |   11 +-
 .../ignite/jvmtest/NetworkFailureTest.java      |   29 +-
 .../QueueSizeCounterMultiThreadedTest.java      |   22 +-
 .../jvmtest/ReadWriteLockMultiThreadedTest.java |   18 +-
 .../org/apache/ignite/jvmtest/RegExpTest.java   |   12 +-
 .../jvmtest/ServerSocketMultiThreadedTest.java  |   23 +-
 .../ignite/lang/GridBasicPerformanceTest.java   |   49 +-
 .../ignite/lang/GridByteArrayListSelfTest.java  |   17 +-
 .../ignite/lang/GridFuncPerformanceTest.java    |   13 +-
 .../lang/GridFutureListenPerformanceTest.java   |   20 +-
 .../GridMetadataAwareAdapterLoadSelfTest.java   |   13 +-
 .../lang/GridMetadataAwareAdapterSelfTest.java  |   10 +-
 .../ignite/lang/GridSetWrapperSelfTest.java     |   16 +-
 .../lang/GridSystemCurrentTimeMillisTest.java   |    2 +-
 .../ignite/lang/GridThreadPriorityTest.java     |    4 +-
 .../apache/ignite/lang/GridTupleSelfTest.java   |   15 +-
 .../org/apache/ignite/lang/GridXSelfTest.java   |   16 +-
 .../apache/ignite/lang/IgniteUuidSelfTest.java  |   20 +-
 ...dBoundedConcurrentLinkedHashMapSelfTest.java |   10 +-
 ...GridBoundedConcurrentOrderedMapSelfTest.java |   14 +-
 .../GridCircularBufferPerformanceTest.java      |   18 +-
 .../lang/utils/GridCircularBufferSelfTest.java  |   13 +-
 .../utils/GridConcurrentHashMapSelfTest.java    |   13 +-
 .../GridConcurrentLinkedHashMapSelfTest.java    |   14 +-
 .../GridConcurrentWeakHashSetSelfTest.java      |   20 +-
 .../lang/utils/GridConsistentHashSelfTest.java  |   23 +-
 .../lang/utils/GridLeanIdentitySetSelfTest.java |   10 +-
 .../lang/utils/GridLeanMapPerformanceTest.java  |    9 +-
 .../ignite/lang/utils/GridLeanMapSelfTest.java  |   16 +-
 .../ignite/lang/utils/GridListSetSelfTest.java  |   15 +-
 .../lang/utils/GridStripedLockSelfTest.java     |   16 +-
 .../ignite/loadtest/GridLoadTestStatistics.java |   16 +-
 .../loadtest/GridSingleExecutionTest.java       |   59 +-
 ...idFileSwapSpaceSpiMultithreadedLoadTest.java |   33 +-
 .../loadtests/GridCacheLoadPopulationTask.java  |   20 +-
 .../loadtests/GridCacheMultiNodeLoadTest.java   |   25 +-
 .../cache/GridCacheAbstractLoadTest.java        |   58 +-
 .../loadtests/cache/GridCacheBenchmark.java     |   20 +-
 .../cache/GridCacheDataStructuresLoadTest.java  |   32 +-
 .../loadtests/cache/GridCacheLoadTest.java      |   19 +-
 .../loadtests/cache/GridCacheSwapLoadTest.java  |   39 +-
 .../GridCacheWriteBehindStoreLoadTest.java      |   33 +-
 .../capacity/GridCapacityLoadTest.java          |   17 +-
 .../colocation/GridTestCacheStore.java          |   24 +-
 .../loadtests/colocation/GridTestConstants.java |    2 +-
 .../loadtests/colocation/GridTestKey.java       |   11 +-
 .../colocation/GridTestLifecycleBean.java       |   10 +-
 .../loadtests/colocation/GridTestMain.java      |   33 +-
 .../communication/GridIoManagerBenchmark.java   |   54 +-
 .../communication/GridIoManagerBenchmark0.java  |   57 +-
 .../GridTcpCommunicationBenchmark.java          |    2 +-
 .../communication/GridTestMessage.java          |   18 +-
 .../GridContinuousOperationsLoadTest.java       |   60 +-
 .../GridCachePartitionedAtomicLongLoadTest.java |   42 +-
 .../direct/multisplit/GridLoadTestJob.java      |   11 +-
 .../multisplit/GridLoadTestJobTarget.java       |    2 +-
 .../direct/multisplit/GridLoadTestTask.java     |   23 +-
 .../multisplit/GridMultiSplitsLoadTest.java     |   31 +-
 .../GridMultiSplitsRedeployLoadTest.java        |   22 +-
 .../GridSingleSplitNewNodesTestJobTarget.java   |    6 +-
 .../GridSingleSplitNewNodesTestTask.java        |   24 +-
 ...ridSingleSplitsNewNodesAbstractLoadTest.java |   27 +-
 ...idSingleSplitsNewNodesMulticastLoadTest.java |   10 +-
 .../GridSingleSplitsRedeployLoadTest.java       |   32 +-
 .../direct/session/GridSessionLoadTest.java     |   20 +-
 .../direct/session/GridSessionLoadTestJob.java  |   13 +-
 .../direct/session/GridSessionLoadTestTask.java |   25 +-
 .../direct/stealing/GridStealingLoadTest.java   |   31 +-
 .../stealing/GridStealingLoadTestJob.java       |   17 +-
 .../stealing/GridStealingLoadTestTask.java      |   20 +-
 .../loadtests/discovery/GridGcTimeoutTest.java  |   13 +-
 .../ignite/loadtests/dsi/GridDsiClient.java     |   40 +-
 .../loadtests/dsi/GridDsiLifecycleBean.java     |   13 +-
 .../ignite/loadtests/dsi/GridDsiMessage.java    |    6 +-
 .../ignite/loadtests/dsi/GridDsiPerfJob.java    |   44 +-
 .../ignite/loadtests/dsi/GridDsiRequest.java    |    7 +-
 .../loadtests/dsi/GridDsiRequestTask.java       |   13 +-
 .../ignite/loadtests/dsi/GridDsiResponse.java   |    7 +-
 .../loadtests/dsi/GridDsiResponseTask.java      |   13 +-
 .../ignite/loadtests/dsi/GridDsiSession.java    |    7 +-
 .../cacheget/GridBenchmarkCacheGetLoadTest.java |    8 +-
 ...dBoundedConcurrentLinkedHashSetLoadTest.java |   29 +-
 .../loadtests/hashmap/GridCacheTestContext.java |   45 +-
 .../loadtests/hashmap/GridHashMapLoadTest.java  |   20 +-
 .../job/GridJobExecutionLoadTestClient.java     |   31 +-
 ...GridJobExecutionLoadTestClientSemaphore.java |   40 +-
 .../job/GridJobExecutionLoadTestJob.java        |   10 +-
 .../job/GridJobExecutionLoadTestServer.java     |    4 +-
 .../job/GridJobExecutionLoadTestTask.java       |   20 +-
 .../job/GridJobExecutionSingleNodeLoadTest.java |   44 +-
 ...JobExecutionSingleNodeSemaphoreLoadTest.java |   50 +-
 .../ignite/loadtests/job/GridJobLoadTest.java   |   29 +-
 .../loadtests/job/GridJobLoadTestJob.java       |   23 +-
 .../loadtests/job/GridJobLoadTestParams.java    |    2 +-
 .../loadtests/job/GridJobLoadTestSubmitter.java |   16 +-
 .../loadtests/job/GridJobLoadTestTask.java      |   20 +-
 .../GridConcurrentLinkedHashMapBenchmark.java   |   13 +-
 .../mapper/GridContinuousMapperLoadTest1.java   |    8 +-
 .../mapper/GridContinuousMapperLoadTest2.java   |   13 +-
 .../mapper/GridContinuousMapperTask1.java       |   32 +-
 .../mapper/GridContinuousMapperTask2.java       |   26 +-
 .../loadtests/mapper/GridNodeStartup.java       |   11 +-
 .../ignite/loadtests/mapper/TestObject.java     |    7 +-
 .../mergesort/GridMergeSortLoadTask.java        |   24 +-
 .../mergesort/GridMergeSortLoadTest.java        |   19 +-
 .../loadtests/nio/GridNioBenchmarkClient.java   |   17 +-
 .../loadtests/nio/GridNioBenchmarkTest.java     |   25 +-
 .../GridOffHeapMapPerformanceAbstractTest.java  |   16 +-
 ...apPartitionedMapPerformanceAbstractTest.java |   28 +-
 .../unsafe/GridUnsafeMapPerformanceTest.java    |    6 +-
 ...GridUnsafePartitionedMapPerformanceTest.java |    8 +-
 .../swap/GridSwapEvictAllBenchmark.java         |   45 +-
 .../loadtests/util/GridCumulativeAverage.java   |    2 +-
 .../ignite/loadtests/util/GridLoadTestArgs.java |   14 +-
 .../ignite/logger/java/JavaLoggerTest.java      |   15 +-
 .../marshaller/GridMarshallerAbstractTest.java  |   82 +-
 .../GridMarshallerExternalizableBean.java       |   10 +-
 .../GridMarshallerPerformanceTest.java          |   43 +-
 .../marshaller/GridMarshallerResourceBean.java  |   37 +-
 .../GridMarshallerTestAbstractBean.java         |    2 +-
 .../marshaller/GridMarshallerTestBean.java      |    9 +-
 .../GridMarshallerTestInheritedBean.java        |    2 +-
 .../marshaller/MarshallerContextTestImpl.java   |   15 +-
 .../jdk/GridJdkMarshallerSelfTest.java          |    7 +-
 .../OptimizedMarshallerEnumSelfTest.java        |    6 +-
 .../OptimizedMarshallerNodeFailoverTest.java    |   39 +-
 .../optimized/OptimizedMarshallerSelfTest.java  |   21 +-
 ...arshallerSerialPersistentFieldsSelfTest.java |   12 +-
 .../optimized/OptimizedMarshallerTest.java      |   40 +-
 .../OptimizedObjectStreamSelfTest.java          |   73 +-
 .../TestTcpDiscoveryIpFinderAdapter.java        |   11 +-
 ...GridMessagingNoPeerClassLoadingSelfTest.java |   20 +-
 .../ignite/messaging/GridMessagingSelfTest.java |   62 +-
 .../IgniteMessagingWithClientTest.java          |   39 +-
 .../p2p/GridAbstractMultinodeRedeployTest.java  |   24 +-
 ...MultinodeRedeployContinuousModeSelfTest.java |    6 +-
 ...idMultinodeRedeployIsolatedModeSelfTest.java |    6 +-
 ...ridMultinodeRedeployPrivateModeSelfTest.java |    6 +-
 ...GridMultinodeRedeploySharedModeSelfTest.java |    6 +-
 .../ignite/p2p/GridP2PClassLoadingSelfTest.java |   36 +-
 .../GridP2PContinuousDeploymentSelfTest.java    |   25 +-
 .../GridP2PDifferentClassLoaderSelfTest.java    |   19 +-
 .../p2p/GridP2PDoubleDeploymentSelfTest.java    |   23 +-
 .../p2p/GridP2PHotRedeploymentSelfTest.java     |   15 +-
 .../p2p/GridP2PJobClassLoaderSelfTest.java      |   22 +-
 .../p2p/GridP2PLocalDeploymentSelfTest.java     |   33 +-
 .../GridP2PMissedResourceCacheSizeSelfTest.java |   31 +-
 .../ignite/p2p/GridP2PNodeLeftSelfTest.java     |   17 +-
 .../p2p/GridP2PRecursionTaskSelfTest.java       |   25 +-
 .../p2p/GridP2PRemoteClassLoadersSelfTest.java  |   32 +-
 .../p2p/GridP2PSameClassLoaderSelfTest.java     |   19 +-
 .../org/apache/ignite/p2p/GridP2PTestJob.java   |   17 +-
 .../org/apache/ignite/p2p/GridP2PTestTask.java  |   22 +-
 .../p2p/GridP2PTestTaskExecutionTest.java       |   12 +-
 .../ignite/p2p/GridP2PTimeoutSelfTest.java      |   22 +-
 .../ignite/p2p/GridP2PUndeploySelfTest.java     |   27 +-
 .../ignite/p2p/GridSwapSpaceCustomKey.java      |    7 +-
 .../ignite/p2p/GridSwapSpaceCustomValue.java    |    7 +-
 ...SessionCancelSiblingsFromFutureSelfTest.java |   44 +-
 ...ridSessionCancelSiblingsFromJobSelfTest.java |   49 +-
 ...idSessionCancelSiblingsFromTaskSelfTest.java |   47 +-
 .../GridSessionCheckpointAbstractSelfTest.java  |   36 +-
 .../session/GridSessionCheckpointSelfTest.java  |   15 +-
 .../GridSessionCollisionSpiSelfTest.java        |   37 +-
 ...idSessionFutureWaitJobAttributeSelfTest.java |   37 +-
 ...dSessionFutureWaitTaskAttributeSelfTest.java |   38 +-
 .../session/GridSessionJobFailoverSelfTest.java |   31 +-
 ...GridSessionJobWaitTaskAttributeSelfTest.java |   41 +-
 .../ignite/session/GridSessionLoadSelfTest.java |   42 +-
 .../GridSessionSetFutureAttributeSelfTest.java  |   44 +-
 ...nSetFutureAttributeWaitListenerSelfTest.java |   42 +-
 .../GridSessionSetJobAttribute2SelfTest.java    |   28 +-
 ...GridSessionSetJobAttributeOrderSelfTest.java |   31 +-
 .../GridSessionSetJobAttributeSelfTest.java     |   41 +-
 ...sionSetJobAttributeWaitListenerSelfTest.java |   43 +-
 .../GridSessionSetTaskAttributeSelfTest.java    |   35 +-
 ...GridSessionTaskWaitJobAttributeSelfTest.java |   35 +-
 .../GridSessionWaitAttributeSelfTest.java       |   43 +-
 .../ignite/session/GridThreadSerialNumber.java  |    2 +-
 .../spi/GridSpiLocalHostInjectionTest.java      |   16 +-
 .../spi/GridSpiStartStopAbstractTest.java       |    4 +-
 .../org/apache/ignite/spi/GridTcpForwarder.java |   15 +-
 .../spi/GridTcpSpiForwardingSelfTest.java       |   35 +-
 .../GridCheckpointSpiAbstractTest.java          |    6 +-
 .../spi/checkpoint/GridCheckpointTestState.java |    4 +-
 .../cache/CacheCheckpointSpiConfigSelfTest.java |    5 +-
 .../CacheCheckpointSpiSecondCacheSelfTest.java  |   19 +-
 .../cache/CacheCheckpointSpiSelfTest.java       |    6 +-
 .../CacheCheckpointSpiStartStopSelfTest.java    |    6 +-
 .../jdbc/JdbcCheckpointSpiConfigSelfTest.java   |   19 +-
 .../JdbcCheckpointSpiCustomConfigSelfTest.java  |    8 +-
 .../JdbcCheckpointSpiDefaultConfigSelfTest.java |    8 +-
 .../JdbcCheckpointSpiStartStopSelfTest.java     |    8 +-
 ...GridSharedFsCheckpointSpiConfigSelfTest.java |    8 +-
 ...redFsCheckpointSpiMultiThreadedSelfTest.java |   26 +-
 ...heckpointSpiMultipleDirectoriesSelfTest.java |   19 +-
 .../GridSharedFsCheckpointSpiSelfTest.java      |   15 +-
 ...dSharedFsCheckpointSpiStartStopSelfTest.java |    6 +-
 .../spi/collision/GridCollisionTestContext.java |    5 +-
 .../collision/GridTestCollisionJobContext.java  |   12 +-
 .../collision/GridTestCollisionTaskSession.java |   15 +-
 ...GridFifoQueueCollisionSpiConfigSelfTest.java |    5 +-
 .../GridFifoQueueCollisionSpiSelfTest.java      |   17 +-
 ...dFifoQueueCollisionSpiStartStopSelfTest.java |    6 +-
 ...bStealingCollisionSpiAttributesSelfTest.java |   36 +-
 ...idJobStealingCollisionSpiConfigSelfTest.java |    5 +-
 ...alingCollisionSpiCustomTopologySelfTest.java |   42 +-
 .../GridJobStealingCollisionSpiSelfTest.java    |   47 +-
 ...obStealingCollisionSpiStartStopSelfTest.java |   18 +-
 ...PriorityQueueCollisionSpiConfigSelfTest.java |    5 +-
 .../GridPriorityQueueCollisionSpiSelfTest.java  |   27 +-
 ...orityQueueCollisionSpiStartStopSelfTest.java |    6 +-
 .../GridAbstractCommunicationSelfTest.java      |   47 +-
 .../communication/GridCacheMessageSelfTest.java |   46 +-
 .../spi/communication/GridTestMessage.java      |   13 +-
 .../tcp/GridCacheDhtLockBackupSelfTest.java     |   53 +-
 .../GridTcpCommunicationSpiAbstractTest.java    |   20 +-
 ...mmunicationSpiConcurrentConnectSelfTest.java |   59 +-
 .../GridTcpCommunicationSpiConfigSelfTest.java  |    5 +-
 .../tcp/GridTcpCommunicationSpiLanTest.java     |   41 +-
 ...cpCommunicationSpiMultithreadedSelfTest.java |   68 +-
 ...pCommunicationSpiMultithreadedShmemTest.java |    2 +-
 ...dTcpCommunicationSpiRecoveryAckSelfTest.java |   51 +-
 ...tionSpiRecoveryFailureDetectionSelfTest.java |    4 +-
 ...GridTcpCommunicationSpiRecoverySelfTest.java |   56 +-
 .../GridTcpCommunicationSpiShmemSelfTest.java   |    4 +-
 .../tcp/GridTcpCommunicationSpiSslSelfTest.java |    4 +-
 ...ridTcpCommunicationSpiStartStopSelfTest.java |    9 +-
 ...unicationSpiTcpFailureDetectionSelfTest.java |    6 +-
 ...cpCommunicationSpiTcpNoDelayOffSelfTest.java |    2 +-
 .../tcp/GridTcpCommunicationSpiTcpSelfTest.java |    4 +-
 .../tcp/IgniteCacheSslStartStopSelfTest.java    |   19 +-
 ...CommunicationRecoveryAckClosureSelfTest.java |   54 +-
 .../local/GridLocalDeploymentSpiSelfTest.java   |   27 +-
 ...GridLocalDeploymentSpiStartStopSelfTest.java |    6 +-
 .../AbstractDiscoveryRandomStartStopTest.java   |   23 +-
 .../discovery/AbstractDiscoverySelfTest.java    |   53 +-
 .../spi/discovery/AbstractDiscoveryTest.java    |   22 +-
 ...ClusterMetricsSnapshotSerializeSelfTest.java |    9 +-
 ...pClientDiscoveryMarshallerCheckSelfTest.java |   18 +-
 ...lientDiscoverySpiFailureTimeoutSelfTest.java |   18 +-
 .../tcp/TcpClientDiscoverySpiMulticastTest.java |   17 +-
 .../tcp/TcpClientDiscoverySpiSelfTest.java      |   94 +-
 .../tcp/TcpDiscoveryConcurrentStartTest.java    |   19 +-
 .../TcpDiscoveryMarshallerCheckSelfTest.java    |   18 +-
 .../tcp/TcpDiscoveryMultiThreadedTest.java      |   37 +-
 ...DiscoveryNodeConfigConsistentIdSelfTest.java |   13 +-
 .../TcpDiscoveryNodeConsistentIdSelfTest.java   |   14 +-
 .../discovery/tcp/TcpDiscoveryRestartTest.java  |   41 +-
 .../spi/discovery/tcp/TcpDiscoverySelfTest.java |   85 +-
 .../tcp/TcpDiscoverySnapshotHistoryTest.java    |   15 +-
 .../tcp/TcpDiscoverySpiConfigSelfTest.java      |    6 +-
 .../TcpDiscoverySpiFailureTimeoutSelfTest.java  |   34 +-
 .../tcp/TcpDiscoverySpiRandomStartStopTest.java |   10 +-
 .../discovery/tcp/TcpDiscoverySpiSelfTest.java  |   11 +-
 .../tcp/TcpDiscoverySpiSslSelfTest.java         |    2 +-
 .../tcp/TcpDiscoverySpiStartStopSelfTest.java   |   20 +-
 .../tcp/TcpDiscoverySpiWildcardSelfTest.java    |   10 +-
 .../discovery/tcp/TcpDiscoverySslSelfTest.java  |    6 +-
 .../TcpDiscoveryIpFinderAbstractSelfTest.java   |   19 +-
 .../jdbc/TcpDiscoveryJdbcIpFinderSelfTest.java  |    8 +-
 .../TcpDiscoveryMulticastIpFinderSelfTest.java  |   12 +-
 .../TcpDiscoverySharedFsIpFinderSelfTest.java   |    9 +-
 .../vm/TcpDiscoveryVmIpFinderSelfTest.java      |   10 +-
 ...MemoryEventStorageMultiThreadedSelfTest.java |   17 +-
 ...GridMemoryEventStorageSpiConfigSelfTest.java |    5 +-
 .../GridMemoryEventStorageSpiSelfTest.java      |   17 +-
 ...dMemoryEventStorageSpiStartStopSelfTest.java |    6 +-
 .../spi/failover/GridFailoverTestContext.java   |   11 +-
 .../GridAlwaysFailoverSpiConfigSelfTest.java    |    5 +-
 .../always/GridAlwaysFailoverSpiSelfTest.java   |   26 +-
 .../GridAlwaysFailoverSpiStartStopSelfTest.java |    8 +-
 ...ridJobStealingFailoverSpiConfigSelfTest.java |    5 +-
 ...idJobStealingFailoverSpiOneNodeSelfTest.java |   25 +-
 .../GridJobStealingFailoverSpiSelfTest.java     |   35 +-
 ...JobStealingFailoverSpiStartStopSelfTest.java |   18 +-
 .../never/GridNeverFailoverSpiSelfTest.java     |   19 +-
 .../GridNeverFailoverSpiStartStopSelfTest.java  |    8 +-
 ...dAdaptiveLoadBalancingSpiConfigSelfTest.java |    5 +-
 ...iveLoadBalancingSpiMultipleNodeSelfTest.java |   22 +-
 .../GridAdaptiveLoadBalancingSpiSelfTest.java   |   23 +-
 ...aptiveLoadBalancingSpiStartStopSelfTest.java |    6 +-
 ...alancingNotPerTaskMultithreadedSelfTest.java |   28 +-
 ...dRobinLoadBalancingSpiLocalNodeSelfTest.java |   15 +-
 ...inLoadBalancingSpiMultipleNodesSelfTest.java |   28 +-
 ...RobinLoadBalancingSpiNotPerTaskSelfTest.java |   34 +-
 ...dRobinLoadBalancingSpiStartStopSelfTest.java |    6 +-
 ...nLoadBalancingSpiTopologyChangeSelfTest.java |   26 +-
 .../roundrobin/GridRoundRobinTestUtils.java     |   15 +-
 ...tedRandomLoadBalancingSpiConfigSelfTest.java |    5 +-
 ...dWeightedRandomLoadBalancingSpiSelfTest.java |   18 +-
 ...RandomLoadBalancingSpiStartStopSelfTest.java |    6 +-
 ...dRandomLoadBalancingSpiWeightedSelfTest.java |   28 +-
 .../GridSwapSpaceSpiAbstractSelfTest.java       |   40 +-
 .../file/GridFileSwapCompactionSelfTest.java    |   18 +-
 .../file/GridFileSwapSpaceSpiSelfTest.java      |   34 +-
 .../inmemory/GridTestSwapSpaceSpi.java          |   40 +-
 .../noop/GridNoopSwapSpaceSpiSelfTest.java      |   14 +-
 .../startup/GridRandomCommandLineLoader.java    |   54 +-
 .../ignite/startup/GridVmNodesStarter.java      |   47 +-
 .../cmdline/GridCommandLineLoaderTest.java      |   17 +-
 .../GridCommandLineTransformerSelfTest.java     |    9 +-
 .../startup/servlet/GridServletLoaderTest.java  |   21 +-
 .../stream/socket/SocketStreamerSelfTest.java   |   52 +-
 .../ignite/testframework/GridFileLock.java      |   16 +-
 .../testframework/GridJarClassLoader.java       |   18 +-
 .../ignite/testframework/GridLoadTestUtils.java |   22 +-
 .../testframework/GridSpiTestContext.java       |   64 +-
 .../ignite/testframework/GridStringLogger.java  |    8 +-
 .../testframework/GridTestClassLoader.java      |   13 +-
 .../GridTestExternalClassLoader.java            |   19 +-
 .../ignite/testframework/GridTestNode.java      |   24 +-
 .../GridTestSafeThreadFactory.java              |   26 +-
 .../ignite/testframework/GridTestThread.java    |    4 +-
 .../ignite/testframework/GridTestUtils.java     |  104 +-
 .../config/GridTestProperties.java              |   24 +-
 .../http/GridEmbeddedHttpServer.java            |   20 +-
 .../testframework/junits/GridAbstractTest.java  |  125 +-
 .../junits/GridTestKernalContext.java           |   24 +-
 .../ignite/testframework/junits/IgniteMock.java |   49 +-
 .../junits/IgniteTestResources.java             |   38 +-
 .../cache/GridAbstractCacheStoreSelfTest.java   |   44 +-
 .../junits/cache/TestCacheSession.java          |   13 +-
 .../cache/TestThreadLocalCacheSession.java      |   11 +-
 .../junits/common/GridAbstractExamplesTest.java |    9 +-
 .../GridAbstractLifecycleAwareSelfTest.java     |   14 +-
 .../junits/common/GridCommonAbstractTest.java   |   96 +-
 .../junits/common/GridCommonTest.java           |    9 +-
 .../logger/GridLog4jRollingFileAppender.java    |   18 +-
 .../junits/logger/GridTestLog4jLogger.java      |   49 +-
 .../junits/multijvm/AffinityProcessProxy.java   |   18 +-
 .../multijvm/IgniteCacheProcessProxy.java       |   50 +-
 .../multijvm/IgniteClusterProcessProxy.java     |   31 +-
 .../multijvm/IgniteEventsProcessProxy.java      |   22 +-
 .../junits/multijvm/IgniteNodeRunner.java       |   46 +-
 .../junits/multijvm/IgniteProcessProxy.java     |   83 +-
 .../junits/spi/GridSpiAbstractConfigTest.java   |   13 +-
 .../junits/spi/GridSpiAbstractTest.java         |   66 +-
 .../testframework/junits/spi/GridSpiTest.java   |   16 +-
 .../junits/spi/GridSpiTestConfig.java           |    8 +-
 .../ignite/testsuites/IgniteBasicTestSuite.java |   47 +-
 .../IgniteCacheDataStructuresSelfTestSuite.java |   67 +-
 .../IgniteCacheEvictionSelfTestSuite.java       |   32 +-
 .../IgniteCacheFailoverTestSuite.java           |   36 +-
 .../IgniteCacheFailoverTestSuite2.java          |   23 +-
 ...IgniteCacheFullApiMultiJvmSelfTestSuite.java |   46 +-
 .../IgniteCacheFullApiSelfTestSuite.java        |   86 +-
 .../IgniteCacheIteratorsSelfTestSuite.java      |   10 +-
 .../IgniteCacheMetricsSelfTestSuite.java        |   21 +-
 .../IgniteCacheNearOnlySelfTestSuite.java       |    9 +-
 ...niteCacheP2pUnmarshallingErrorTestSuite.java |   14 +-
 .../testsuites/IgniteCacheRestartTestSuite.java |   18 +-
 .../IgniteCacheTcpClientDiscoveryTestSuite.java |    8 +-
 .../ignite/testsuites/IgniteCacheTestSuite.java |  125 +-
 .../testsuites/IgniteCacheTestSuite2.java       |  110 +-
 .../testsuites/IgniteCacheTestSuite3.java       |   69 +-
 .../testsuites/IgniteCacheTestSuite4.java       |  110 +-
 .../IgniteCacheTxRecoverySelfTestSuite.java     |   16 +-
 .../IgniteCacheWriteBehindTestSuite.java        |   15 +-
 .../testsuites/IgniteClientNodesTestSuite.java  |    8 +-
 .../IgniteClientReconnectTestSuite.java         |   16 +-
 .../testsuites/IgniteClientTestSuite.java       |    6 +-
 .../testsuites/IgniteComputeGridTestSuite.java  |   62 +-
 .../IgniteContinuousTaskSelfTestSuite.java      |    9 +-
 .../IgniteExternalizableSelfTestSuite.java      |    6 +-
 .../ignite/testsuites/IgniteIgfsTestSuite.java  |   43 +-
 .../IgniteIpcSharedMemorySelfTestSuite.java     |    9 +-
 .../IgniteJobMetricsSelfTestSuite.java          |    6 +-
 .../testsuites/IgniteKernalSelfTestSuite.java   |   55 +-
 .../testsuites/IgniteLangSelfTestSuite.java     |   34 +-
 .../testsuites/IgniteLoggingSelfTestSuite.java  |    5 +-
 .../IgniteMarshallerSelfTestSuite.java          |   20 +-
 .../testsuites/IgniteP2PSelfTestSuite.java      |   21 +-
 .../IgnitePortableCacheFullApiTestSuite.java    |    9 +-
 .../IgnitePortableCacheTestSuite.java           |   43 +-
 .../IgnitePortableObjectsTestSuite.java         |   36 +-
 .../testsuites/IgniteRestHandlerTestSuite.java  |    6 +-
 .../IgniteSpiCheckpointSelfTestSuite.java       |   19 +-
 .../IgniteSpiCollisionSelfTestSuite.java        |   18 +-
 .../IgniteSpiCommunicationSelfTestSuite.java    |   18 +-
 .../IgniteSpiDeploymentSelfTestSuite.java       |    7 +-
 .../IgniteSpiDiscoverySelfTestSuite.java        |   31 +-
 .../IgniteSpiEventStorageSelfTestSuite.java     |    9 +-
 .../IgniteSpiFailoverSelfTestSuite.java         |   16 +-
 .../IgniteSpiIndexingSelfTestSuite.java         |    6 +-
 .../IgniteSpiLoadBalancingSelfTestSuite.java    |   22 +-
 .../IgniteSpiSwapSpaceSelfTestSuite.java        |    9 +-
 .../ignite/testsuites/IgniteSpiTestSuite.java   |    6 +-
 .../testsuites/IgniteStartUpTestSuite.java      |    6 +-
 .../testsuites/IgniteStreamSelfTestSuite.java   |    7 +-
 .../IgniteTaskSessionSelfTestSuite.java         |   24 +-
 .../IgniteTimeoutProcessorSelfTestSuite.java    |    7 +-
 .../testsuites/IgniteUtilSelfTestSuite.java     |   41 +-
 .../GridThreadPoolExecutorServiceSelfTest.java  |   21 +-
 .../apache/ignite/thread/GridThreadTest.java    |    9 +-
 ...dConcurrentLinkedDequeMultiThreadedTest.java |   19 +-
 .../util/GridConcurrentLinkedDequeSelfTest.java |   11 +-
 ...rrentLinkedHashMapMultiThreadedSelfTest.java |   34 +-
 .../apache/ignite/util/GridIndexFillTest.java   |   21 +-
 .../apache/ignite/util/GridLogThrottleTest.java |    7 +-
 .../ignite/util/GridLongListSelfTest.java       |    8 +-
 .../apache/ignite/util/GridQueueSelfTest.java   |    9 +-
 .../apache/ignite/util/GridRandomSelfTest.java  |   13 +-
 .../ignite/util/GridSnapshotLockSelfTest.java   |   20 +-
 .../util/GridSpinReadWriteLockSelfTest.java     |   14 +-
 .../util/GridStringBuilderFactorySelfTest.java  |    9 +-
 .../util/GridTopologyHeapSizeSelfTest.java      |   30 +-
 .../apache/ignite/util/GridTransientTest.java   |   12 +-
 .../ignite/util/TestTcpCommunicationSpi.java    |   17 +-
 .../ignite/util/mbeans/GridMBeanSelfTest.java   |   17 +-
 modules/docker/download_ignite.sh               |    2 +-
 .../tests/p2p/CacheDeploymentTestKey.java       |    2 +-
 .../tests/p2p/CacheDeploymentTestTask1.java     |   23 +-
 .../tests/p2p/CacheDeploymentTestTask2.java     |   22 +-
 .../tests/p2p/CacheDeploymentTestTask3.java     |   23 +-
 .../tests/p2p/CacheDeploymentTestValue.java     |    4 +-
 .../tests/p2p/CacheDeploymentTestValue2.java    |    2 +-
 .../ignite/tests/p2p/ExcludeNodeFilter.java     |   11 +-
 .../p2p/GridCacheDeploymentTestValue3.java      |    7 +-
 .../tests/p2p/GridEventConsumeFilter.java       |    6 +-
 .../GridEventConsumeProjectionPredicate.java    |    6 +-
 .../tests/p2p/GridExternalAffinityFunction.java |   21 +-
 .../p2p/GridExternalAffinityKeyMapper.java      |    4 +-
 .../tests/p2p/GridP2PAwareTestUserResource.java |   11 +-
 .../p2p/GridP2PContinuousDeploymentTask1.java   |   20 +-
 .../p2p/GridP2PContinuousDeploymentTask2.java   |   16 +-
 .../p2p/GridP2PEventFilterExternalPath1.java    |   11 +-
 .../p2p/GridP2PEventFilterExternalPath2.java    |   11 +-
 .../tests/p2p/GridSingleSplitTestJobTarget.java |    2 +-
 .../tests/p2p/GridTestMessageListener.java      |   15 +-
 .../ignite/tests/p2p/GridTestMessageTopic.java  |    4 +-
 .../ignite/tests/p2p/JobStealingTask.java       |   27 +-
 .../tests/p2p/P2PTestTaskExternalPath1.java     |   31 +-
 .../tests/p2p/P2PTestTaskExternalPath2.java     |   31 +-
 .../ignite/tests/p2p/SingleSplitTestTask.java   |   14 +-
 .../ignite/tests/p2p/TestUserResource.java      |    4 +-
 .../CacheNoValueClassOnServerTestClient.java    |   17 +-
 .../apache/ignite/tests/p2p/cache/Person.java   |    4 +-
 .../p2p/startcache/CacheAllNodesFilter.java     |    6 +-
 .../CacheConfigurationP2PTestClient.java        |   20 +-
 .../tests/p2p/startcache/Organization1.java     |    9 +-
 .../tests/p2p/startcache/Organization2.java     |    9 +-
 .../deployment/uri/tasks/GarHelloWorldBean.java |   10 +-
 .../deployment/uri/tasks/GarHelloWorldTask.java |   24 +-
 .../GridUriDeploymentAbstractTestTask.java      |   10 +-
 .../uri/tasks/GridUriDeploymentDependency1.java |   10 +-
 .../uri/tasks/GridUriDeploymentDependency2.java |   10 +-
 .../tasks/GridUriDeploymentInnerTestTask.java   |   10 +-
 .../GridUriDeploymentInterfaceTestTask.java     |    4 +-
 .../GridUriDeploymentNonePublicTestTask.java    |   10 +-
 .../uri/tasks/GridUriDeploymentTestTask0.java   |   10 +-
 .../uri/tasks/GridUriDeploymentTestTask1.java   |   15 +-
 .../uri/tasks/GridUriDeploymentTestTask2.java   |   15 +-
 .../uri/tasks/GridUriDeploymentTestTask3.java   |   10 +-
 .../uri/tasks/GridUriDeploymentTestTask4.java   |   10 +-
 .../uri/tasks/GridUriDeploymentTestTask5.java   |   10 +-
 .../uri/tasks/GridUriDeploymentTestTask6.java   |   10 +-
 .../GridUriDeploymentTestWithNameTask0.java     |   11 +-
 .../GridUriDeploymentTestWithNameTask3.java     |   11 +-
 .../GridUriDeploymentTestWithNameTask4.java     |   11 +-
 .../GridUriDeploymentTestWithNameTask5.java     |   11 +-
 .../GridUriDeploymentTestWithNameTask6.java     |   11 +-
 .../GridUriDeploymentTestWithNameTask7.java     |   11 +-
 .../gce/TcpDiscoveryGoogleStorageIpFinder.java  |   53 +-
 ...pDiscoveryGoogleStorageIpFinderSelfTest.java |   11 +-
 .../ignite/testsuites/IgniteGCETestSuite.java   |    6 +-
 .../query/h2/opt/GridH2SpatialIndex.java        |   43 +-
 .../query/h2/GridH2IndexingGeoSelfTest.java     |   40 +-
 .../testsuites/GeoSpatialIndexingTestSuite.java |    6 +-
 .../fs/IgniteHadoopFileSystemCounterWriter.java |   31 +-
 .../fs/IgniteHadoopIgfsSecondaryFileSystem.java |   65 +-
 .../hadoop/fs/v1/IgniteHadoopFileSystem.java    |   97 +-
 .../hadoop/fs/v2/IgniteHadoopFileSystem.java    |  102 +-
 .../IgniteHadoopClientProtocolProvider.java     |   40 +-
 .../mapreduce/IgniteHadoopMapReducePlanner.java |   51 +-
 .../processors/hadoop/HadoopClassLoader.java    |   47 +-
 .../processors/hadoop/HadoopComponent.java      |    5 +-
 .../processors/hadoop/HadoopContext.java        |   25 +-
 .../processors/hadoop/HadoopDefaultJobInfo.java |   20 +-
 .../internal/processors/hadoop/HadoopImpl.java  |   12 +-
 .../hadoop/HadoopMapReduceCounterGroup.java     |   14 +-
 .../hadoop/HadoopMapReduceCounters.java         |   30 +-
 .../processors/hadoop/HadoopProcessor.java      |   32 +-
 .../internal/processors/hadoop/HadoopSetup.java |   37 +-
 .../hadoop/HadoopTaskCancelledException.java    |    4 +-
 .../internal/processors/hadoop/HadoopUtils.java |   32 +-
 .../hadoop/SecondaryFileSystemProvider.java     |   29 +-
 .../hadoop/counter/HadoopCounterAdapter.java    |   12 +-
 .../hadoop/counter/HadoopCountersImpl.java      |   23 +-
 .../hadoop/counter/HadoopLongCounter.java       |    7 +-
 .../counter/HadoopPerformanceCounter.java       |   29 +-
 .../hadoop/fs/HadoopFileSystemCacheUtils.java   |   23 +-
 .../hadoop/fs/HadoopFileSystemsUtils.java       |    8 +-
 .../hadoop/fs/HadoopLazyConcurrentMap.java      |   18 +-
 .../hadoop/fs/HadoopLocalFileSystemV1.java      |    8 +-
 .../hadoop/fs/HadoopLocalFileSystemV2.java      |   18 +-
 .../processors/hadoop/fs/HadoopParameters.java  |    2 +-
 .../hadoop/fs/HadoopRawLocalFileSystem.java     |   30 +-
 .../processors/hadoop/igfs/HadoopIgfs.java      |   20 +-
 .../igfs/HadoopIgfsCommunicationException.java  |    4 +-
 .../hadoop/igfs/HadoopIgfsEndpoint.java         |   21 +-
 .../processors/hadoop/igfs/HadoopIgfsEx.java    |    9 +-
 .../hadoop/igfs/HadoopIgfsFuture.java           |    6 +-
 .../hadoop/igfs/HadoopIgfsInProc.java           |   38 +-
 .../hadoop/igfs/HadoopIgfsInputStream.java      |   23 +-
 .../processors/hadoop/igfs/HadoopIgfsIo.java    |   10 +-
 .../processors/hadoop/igfs/HadoopIgfsIpcIo.java |   53 +-
 .../hadoop/igfs/HadoopIgfsIpcIoListener.java    |    2 +-
 .../hadoop/igfs/HadoopIgfsJclLogger.java        |   13 +-
 .../hadoop/igfs/HadoopIgfsOutProc.java          |   61 +-
 .../hadoop/igfs/HadoopIgfsOutputStream.java     |   14 +-
 .../hadoop/igfs/HadoopIgfsProperties.java       |   13 +-
 .../hadoop/igfs/HadoopIgfsProxyInputStream.java |   12 +-
 .../igfs/HadoopIgfsProxyOutputStream.java       |   10 +-
 ...fsSecondaryFileSystemPositionedReadable.java |   13 +-
 .../hadoop/igfs/HadoopIgfsStreamDelegate.java   |    4 +-
 .../igfs/HadoopIgfsStreamEventListener.java     |    4 +-
 .../processors/hadoop/igfs/HadoopIgfsUtils.java |   21 +-
 .../hadoop/igfs/HadoopIgfsWrapper.java          |   43 +-
 .../hadoop/jobtracker/HadoopJobMetadata.java    |   30 +-
 .../hadoop/jobtracker/HadoopJobTracker.java     |  108 +-
 .../hadoop/message/HadoopMessage.java           |    4 +-
 .../planner/HadoopDefaultMapReducePlan.java     |   12 +-
 .../hadoop/proto/HadoopClientProtocol.java      |   59 +-
 .../proto/HadoopProtocolJobCountersTask.java    |   12 +-
 .../proto/HadoopProtocolJobStatusTask.java      |   19 +-
 .../hadoop/proto/HadoopProtocolKillJobTask.java |   12 +-
 .../proto/HadoopProtocolNextTaskIdTask.java     |    7 +-
 .../proto/HadoopProtocolSubmitJobTask.java      |   16 +-
 .../hadoop/proto/HadoopProtocolTaskAdapter.java |   31 +-
 .../proto/HadoopProtocolTaskArguments.java      |   13 +-
 .../hadoop/shuffle/HadoopShuffle.java           |   37 +-
 .../hadoop/shuffle/HadoopShuffleAck.java        |   15 +-
 .../hadoop/shuffle/HadoopShuffleJob.java        |   64 +-
 .../hadoop/shuffle/HadoopShuffleMessage.java    |   25 +-
 .../HadoopConcurrentHashMultimap.java           |   29 +-
 .../shuffle/collections/HadoopHashMultimap.java |   12 +-
 .../collections/HadoopHashMultimapBase.java     |   15 +-
 .../shuffle/collections/HadoopMultimap.java     |   13 +-
 .../shuffle/collections/HadoopMultimapBase.java |   33 +-
 .../shuffle/collections/HadoopSkipList.java     |   29 +-
 .../shuffle/streams/HadoopDataInStream.java     |   11 +-
 .../shuffle/streams/HadoopDataOutStream.java    |   13 +-
 .../shuffle/streams/HadoopOffheapBuffer.java    |    2 +-
 .../HadoopEmbeddedTaskExecutor.java             |   25 +-
 .../taskexecutor/HadoopExecutorService.java     |   27 +-
 .../hadoop/taskexecutor/HadoopRunnableTask.java |   36 +-
 .../taskexecutor/HadoopTaskExecutorAdapter.java |   14 +-
 .../hadoop/taskexecutor/HadoopTaskState.java    |    2 +-
 .../hadoop/taskexecutor/HadoopTaskStatus.java   |   14 +-
 .../external/HadoopExternalTaskExecutor.java    |   70 +-
 .../external/HadoopExternalTaskMetadata.java    |    9 +-
 .../external/HadoopJobInfoUpdateRequest.java    |   18 +-
 .../external/HadoopPrepareForJobRequest.java    |   18 +-
 .../external/HadoopProcessDescriptor.java       |    9 +-
 .../external/HadoopProcessStartedAck.java       |   11 +-
 .../external/HadoopTaskExecutionRequest.java    |   20 +-
 .../external/HadoopTaskFinishedMessage.java     |   16 +-
 .../child/HadoopChildProcessRunner.java         |   58 +-
 .../child/HadoopExternalProcessStarter.java     |   31 +-
 .../HadoopAbstractCommunicationClient.java      |    8 +-
 .../HadoopCommunicationClient.java              |    8 +-
 .../HadoopExternalCommunication.java            |   74 +-
 .../HadoopHandshakeTimeoutException.java        |    6 +-
 .../communication/HadoopIpcToNioAdapter.java    |   27 +-
 .../communication/HadoopMarshallerFilter.java   |   12 +-
 .../communication/HadoopMessageListener.java    |    6 +-
 .../HadoopTcpNioCommunicationClient.java        |   14 +-
 .../hadoop/v1/HadoopV1CleanupTask.java          |   16 +-
 .../processors/hadoop/v1/HadoopV1Counter.java   |   15 +-
 .../processors/hadoop/v1/HadoopV1MapTask.java   |   25 +-
 .../hadoop/v1/HadoopV1OutputCollector.java      |   21 +-
 .../hadoop/v1/HadoopV1Partitioner.java          |   10 +-
 .../hadoop/v1/HadoopV1ReduceTask.java           |   18 +-
 .../processors/hadoop/v1/HadoopV1Reporter.java  |   10 +-
 .../processors/hadoop/v1/HadoopV1SetupTask.java |   14 +-
 .../processors/hadoop/v1/HadoopV1Splitter.java  |   25 +-
 .../processors/hadoop/v1/HadoopV1Task.java      |   18 +-
 .../processors/hadoop/v2/HadoopDaemon.java      |    5 +-
 .../hadoop/v2/HadoopExternalSplit.java          |   10 +-
 .../hadoop/v2/HadoopNativeCodeLoader.java       |    6 +-
 .../hadoop/v2/HadoopSerializationWrapper.java   |   19 +-
 .../hadoop/v2/HadoopShutdownHookManager.java    |    8 +-
 .../hadoop/v2/HadoopSplitWrapper.java           |   11 +-
 .../hadoop/v2/HadoopV2CleanupTask.java          |   13 +-
 .../processors/hadoop/v2/HadoopV2Context.java   |   33 +-
 .../processors/hadoop/v2/HadoopV2Counter.java   |   11 +-
 .../processors/hadoop/v2/HadoopV2Job.java       |   85 +-
 .../hadoop/v2/HadoopV2JobResourceManager.java   |   39 +-
 .../processors/hadoop/v2/HadoopV2MapTask.java   |   19 +-
 .../hadoop/v2/HadoopV2Partitioner.java          |   10 +-
 .../hadoop/v2/HadoopV2ReduceTask.java           |   14 +-
 .../processors/hadoop/v2/HadoopV2SetupTask.java |   13 +-
 .../processors/hadoop/v2/HadoopV2Splitter.java  |   28 +-
 .../processors/hadoop/v2/HadoopV2Task.java      |   20 +-
 .../hadoop/v2/HadoopV2TaskContext.java          |   83 +-
 .../hadoop/v2/HadoopWritableSerialization.java  |   17 +-
 .../HadoopClientProtocolEmbeddedSelfTest.java   |    4 +-
 .../hadoop/HadoopClientProtocolSelfTest.java    |   59 +-
 .../ignite/igfs/Hadoop1DualAbstractTest.java    |   25 +-
 .../igfs/Hadoop1OverIgfsDualAsyncTest.java      |    2 +-
 .../igfs/Hadoop1OverIgfsDualSyncTest.java       |    2 +-
 ...oopFileSystemUniversalFileSystemAdapter.java |   19 +-
 .../HadoopIgfs20FileSystemAbstractSelfTest.java |   99 +-
 ...Igfs20FileSystemLoopbackPrimarySelfTest.java |    8 +-
 ...oopIgfs20FileSystemShmemPrimarySelfTest.java |    8 +-
 .../igfs/HadoopIgfsDualAbstractSelfTest.java    |   62 +-
 .../igfs/HadoopIgfsDualAsyncSelfTest.java       |    4 +-
 .../ignite/igfs/HadoopIgfsDualSyncSelfTest.java |    4 +-
 ...oopSecondaryFileSystemConfigurationTest.java |   70 +-
 .../apache/ignite/igfs/IgfsEventsTestSuite.java |   25 +-
 .../igfs/IgfsNearOnlyMultiNodeSelfTest.java     |   50 +-
 .../IgniteHadoopFileSystemAbstractSelfTest.java |  106 +-
 .../IgniteHadoopFileSystemClientSelfTest.java   |   57 +-
 ...IgniteHadoopFileSystemHandshakeSelfTest.java |   52 +-
 .../IgniteHadoopFileSystemIpcCacheSelfTest.java |   51 +-
 .../IgniteHadoopFileSystemLoggerSelfTest.java   |   42 +-
 ...niteHadoopFileSystemLoggerStateSelfTest.java |   46 +-
 ...adoopFileSystemLoopbackAbstractSelfTest.java |    6 +-
 ...SystemLoopbackEmbeddedDualAsyncSelfTest.java |    4 +-
 ...eSystemLoopbackEmbeddedDualSyncSelfTest.java |    4 +-
 ...leSystemLoopbackEmbeddedPrimarySelfTest.java |    4 +-
 ...SystemLoopbackEmbeddedSecondarySelfTest.java |    4 +-
 ...SystemLoopbackExternalDualAsyncSelfTest.java |    4 +-
 ...eSystemLoopbackExternalDualSyncSelfTest.java |    4 +-
 ...leSystemLoopbackExternalPrimarySelfTest.java |    4 +-
 ...SystemLoopbackExternalSecondarySelfTest.java |    4 +-
 ...teHadoopFileSystemSecondaryModeSelfTest.java |   47 +-
 ...teHadoopFileSystemShmemAbstractSelfTest.java |   19 +-
 ...ileSystemShmemEmbeddedDualAsyncSelfTest.java |    4 +-
 ...FileSystemShmemEmbeddedDualSyncSelfTest.java |    4 +-
 ...pFileSystemShmemEmbeddedPrimarySelfTest.java |    4 +-
 ...ileSystemShmemEmbeddedSecondarySelfTest.java |    4 +-
 ...ileSystemShmemExternalDualAsyncSelfTest.java |    4 +-
 ...FileSystemShmemExternalDualSyncSelfTest.java |    4 +-
 ...pFileSystemShmemExternalPrimarySelfTest.java |    4 +-
 ...ileSystemShmemExternalSecondarySelfTest.java |    4 +-
 .../hadoop/HadoopAbstractSelfTest.java          |   38 +-
 .../hadoop/HadoopAbstractWordCountTest.java     |   19 +-
 .../hadoop/HadoopClassLoaderTest.java           |    6 +-
 .../hadoop/HadoopCommandLineTest.java           |   48 +-
 .../HadoopDefaultMapReducePlannerSelfTest.java  |   62 +-
 .../hadoop/HadoopFileSystemsTest.java           |   21 +-
 .../processors/hadoop/HadoopGroupingTest.java   |   43 +-
 .../hadoop/HadoopJobTrackerSelfTest.java        |   44 +-
 .../hadoop/HadoopMapReduceEmbeddedSelfTest.java |   34 +-
 .../processors/hadoop/HadoopMapReduceTest.java  |   78 +-
 .../hadoop/HadoopPopularWordsTest.java          |   40 +-
 .../HadoopSerializationWrapperSelfTest.java     |   21 +-
 .../processors/hadoop/HadoopSharedMap.java      |    7 +-
 .../hadoop/HadoopSortingExternalTest.java       |    7 +-
 .../processors/hadoop/HadoopSortingTest.java    |   50 +-
 .../hadoop/HadoopSplitWrapperSelfTest.java      |   22 +-
 .../processors/hadoop/HadoopStartup.java        |    6 +-
 .../hadoop/HadoopTaskExecutionSelfTest.java     |   60 +-
 .../hadoop/HadoopTasksAllVersionsTest.java      |   22 +-
 .../processors/hadoop/HadoopTasksV1Test.java    |   15 +-
 .../processors/hadoop/HadoopTasksV2Test.java    |   26 +-
 .../hadoop/HadoopTestRoundRobinMrPlanner.java   |   19 +-
 .../hadoop/HadoopTestTaskContext.java           |   25 +-
 .../processors/hadoop/HadoopTestUtils.java      |   19 +-
 .../processors/hadoop/HadoopV2JobSelfTest.java  |   30 +-
 .../hadoop/HadoopValidationSelfTest.java        |    4 +-
 .../hadoop/examples/HadoopWordCount1.java       |   14 +-
 .../hadoop/examples/HadoopWordCount1Map.java    |   17 +-
 .../hadoop/examples/HadoopWordCount1Reduce.java |   16 +-
 .../hadoop/examples/HadoopWordCount2.java       |   18 +-
 .../hadoop/examples/HadoopWordCount2Mapper.java |   15 +-
 .../examples/HadoopWordCount2Reducer.java       |   13 +-
 .../collections/HadoopAbstractMapTest.java      |   29 +-
 .../HadoopConcurrentHashMultimapSelftest.java   |   41 +-
 .../collections/HadoopHashMapSelfTest.java      |   25 +-
 .../collections/HadoopSkipListSelfTest.java     |   46 +-
 .../streams/HadoopDataStreamSelfTest.java       |   11 +-
 .../taskexecutor/HadoopExecutorServiceTest.java |   15 +-
 .../HadoopExternalTaskExecutionSelfTest.java    |   46 +-
 .../HadoopExternalCommunicationSelfTest.java    |   30 +-
 .../testsuites/IgniteHadoopTestSuite.java       |   85 +-
 .../IgniteIgfsLinuxAndMacOSTestSuite.java       |   20 +-
 .../HibernateAbstractRegionAccessStrategy.java  |    9 +-
 .../HibernateAccessStrategyAdapter.java         |   33 +-
 .../hibernate/HibernateCollectionRegion.java    |   14 +-
 .../cache/hibernate/HibernateEntityRegion.java  |   15 +-
 .../hibernate/HibernateGeneralDataRegion.java   |   15 +-
 .../hibernate/HibernateNaturalIdRegion.java     |   15 +-
 .../HibernateNonStrictAccessStrategy.java       |   23 +-
 .../hibernate/HibernateQueryResultsRegion.java  |   10 +-
 .../HibernateReadOnlyAccessStrategy.java        |   14 +-
 .../HibernateReadWriteAccessStrategy.java       |   26 +-
 .../ignite/cache/hibernate/HibernateRegion.java |   14 +-
 .../cache/hibernate/HibernateRegionFactory.java |   31 +-
 .../hibernate/HibernateTimestampsRegion.java    |    8 +-
 .../HibernateTransactionalAccessStrategy.java   |   14 +-
 .../HibernateTransactionalDataRegion.java       |   22 +-
 .../hibernate/CacheHibernateBlobStore.java      |   57 +-
 .../hibernate/CacheHibernateBlobStoreEntry.java |    7 +-
 .../CacheHibernateBlobStoreFactory.java         |   26 +-
 .../CacheHibernateStoreSessionListener.java     |   32 +-
 .../HibernateL2CacheConfigurationSelfTest.java  |   57 +-
 .../hibernate/HibernateL2CacheSelfTest.java     |   78 +-
 .../HibernateL2CacheTransactionalSelfTest.java  |   34 +-
 .../CacheHibernateBlobStoreNodeRestartTest.java |   12 +-
 .../CacheHibernateBlobStoreSelfTest.java        |   15 +-
 .../CacheHibernateStoreFactorySelfTest.java     |   42 +-
 ...heHibernateStoreSessionListenerSelfTest.java |   36 +-
 .../testsuites/IgniteHibernateTestSuite.java    |   13 +-
 .../query/h2/GridH2ResultSetIterator.java       |   16 +-
 .../processors/query/h2/IgniteH2Indexing.java   |  196 ++-
 .../query/h2/opt/GridH2AbstractKeyValueRow.java |   30 +-
 .../processors/query/h2/opt/GridH2Cursor.java   |   12 +-
 .../query/h2/opt/GridH2IndexBase.java           |   24 +-
 .../query/h2/opt/GridH2KeyValueRowOffheap.java  |   19 +-
 .../query/h2/opt/GridH2KeyValueRowOnheap.java   |    8 +-
 .../processors/query/h2/opt/GridH2Row.java      |    6 +-
 .../query/h2/opt/GridH2RowDescriptor.java       |   16 +-
 .../processors/query/h2/opt/GridH2Table.java    |   58 +-
 .../query/h2/opt/GridH2TreeIndex.java           |   41 +-
 .../processors/query/h2/opt/GridH2Utils.java    |   10 +-
 .../query/h2/opt/GridH2ValueCacheObject.java    |   19 +-
 .../query/h2/opt/GridLuceneDirectory.java       |   21 +-
 .../processors/query/h2/opt/GridLuceneFile.java |   10 +-
 .../query/h2/opt/GridLuceneIndex.java           |   64 +-
 .../query/h2/opt/GridLuceneInputStream.java     |   13 +-
 .../query/h2/opt/GridLuceneLockFactory.java     |   10 +-
 .../query/h2/opt/GridLuceneOutputStream.java    |    9 +-
 .../query/h2/opt/GridSearchRowPointer.java      |    6 +-
 .../query/h2/sql/GridSqlAggregateFunction.java  |   12 +-
 .../processors/query/h2/sql/GridSqlAlias.java   |    7 +-
 .../processors/query/h2/sql/GridSqlColumn.java  |    4 +-
 .../processors/query/h2/sql/GridSqlConst.java   |    7 +-
 .../processors/query/h2/sql/GridSqlElement.java |    5 +-
 .../query/h2/sql/GridSqlFunction.java           |   22 +-
 .../query/h2/sql/GridSqlFunctionType.java       |    4 +-
 .../processors/query/h2/sql/GridSqlJoin.java    |   10 +-
 .../query/h2/sql/GridSqlOperation.java          |    6 +-
 .../query/h2/sql/GridSqlOperationType.java      |    5 +-
 .../query/h2/sql/GridSqlParameter.java          |    4 +-
 .../query/h2/sql/GridSqlPlaceholder.java        |    4 +-
 .../processors/query/h2/sql/GridSqlQuery.java   |    9 +-
 .../query/h2/sql/GridSqlQueryParser.java        |   82 +-
 .../query/h2/sql/GridSqlQuerySplitter.java      |   31 +-
 .../processors/query/h2/sql/GridSqlSelect.java  |    9 +-
 .../query/h2/sql/GridSqlSortColumn.java         |    2 +-
 .../query/h2/sql/GridSqlSubquery.java           |    4 +-
 .../processors/query/h2/sql/GridSqlTable.java   |    9 +-
 .../processors/query/h2/sql/GridSqlType.java    |    8 +-
 .../processors/query/h2/sql/GridSqlUnion.java   |    9 +-
 .../processors/query/h2/sql/GridSqlValue.java   |    2 +-
 .../query/h2/twostep/GridMapQueryExecutor.java  |   97 +-
 .../query/h2/twostep/GridMergeIndex.java        |   44 +-
 .../h2/twostep/GridMergeIndexUnsorted.java      |   25 +-
 .../query/h2/twostep/GridMergeTable.java        |   22 +-
 .../h2/twostep/GridReduceQueryExecutor.java     |  114 +-
 .../query/h2/twostep/GridResultPage.java        |   27 +-
 .../query/h2/twostep/GridThreadLocalTable.java  |   33 +-
 .../query/h2/twostep/msg/GridH2Array.java       |   26 +-
 .../query/h2/twostep/msg/GridH2Boolean.java     |   13 +-
 .../query/h2/twostep/msg/GridH2Byte.java        |   13 +-
 .../query/h2/twostep/msg/GridH2Bytes.java       |   13 +-
 .../query/h2/twostep/msg/GridH2CacheObject.java |   19 +-
 .../query/h2/twostep/msg/GridH2Date.java        |   13 +-
 .../query/h2/twostep/msg/GridH2Decimal.java     |   16 +-
 .../query/h2/twostep/msg/GridH2Double.java      |   13 +-
 .../query/h2/twostep/msg/GridH2Float.java       |   13 +-
 .../query/h2/twostep/msg/GridH2Geometry.java    |   15 +-
 .../query/h2/twostep/msg/GridH2Integer.java     |   13 +-
 .../query/h2/twostep/msg/GridH2JavaObject.java  |   13 +-
 .../query/h2/twostep/msg/GridH2Long.java        |   13 +-
 .../query/h2/twostep/msg/GridH2Null.java        |   13 +-
 .../query/h2/twostep/msg/GridH2Short.java       |   13 +-
 .../query/h2/twostep/msg/GridH2String.java      |   13 +-
 .../query/h2/twostep/msg/GridH2Time.java        |   13 +-
 .../query/h2/twostep/msg/GridH2Timestamp.java   |   13 +-
 .../query/h2/twostep/msg/GridH2Uuid.java        |   13 +-
 .../h2/twostep/msg/GridH2ValueMessage.java      |   15 +-
 .../twostep/msg/GridH2ValueMessageFactory.java  |   19 +-
 .../CacheAbstractQueryMetricsSelfTest.java      |   25 +-
 .../cache/CacheConfigurationP2PTest.java        |   36 +-
 .../cache/CacheConfigurationP2PTestServer.java  |   13 +-
 .../cache/CacheLocalQueryMetricsSelfTest.java   |    4 +-
 ...titionedQueryMetricsDistributedSelfTest.java |    4 +-
 ...chePartitionedQueryMetricsLocalSelfTest.java |    4 +-
 ...plicatedQueryMetricsDistributedSelfTest.java |    4 +-
 ...acheReplicatedQueryMetricsLocalSelfTest.java |    4 +-
 ...CacheScanPartitionQueryFallbackSelfTest.java |   66 +-
 .../cache/GridCacheCrossCacheQuerySelfTest.java |   45 +-
 .../cache/GridCacheOffHeapAndSwapSelfTest.java  |   64 +-
 .../cache/GridCacheOffHeapSelfTest.java         |   61 +-
 .../GridCacheOffheapIndexEntryEvictTest.java    |   42 +-
 .../cache/GridCacheOffheapIndexGetSelfTest.java |   46 +-
 .../GridCacheQueryIndexDisabledSelfTest.java    |   32 +-
 .../GridCacheQuerySerializationSelfTest.java    |   37 +-
 .../cache/GridCacheQuerySimpleBenchmark.java    |   46 +-
 .../cache/GridCacheQueryTestValue.java          |    8 +-
 ...idCacheReduceQueryMultithreadedSelfTest.java |   34 +-
 .../processors/cache/GridCacheSwapSelfTest.java |   63 +-
 .../cache/GridIndexingWithNoopSwapSelfTest.java |   38 +-
 .../IgniteCacheAbstractFieldsQuerySelfTest.java |   73 +-
 .../cache/IgniteCacheAbstractQuerySelfTest.java |  120 +-
 .../IgniteCacheCollocatedQuerySelfTest.java     |   40 +-
 ...acheConfigurationPrimitiveTypesSelfTest.java |   19 +-
 .../IgniteCacheFieldsQueryNoDataSelfTest.java   |   26 +-
 .../cache/IgniteCacheLargeResultSelfTest.java   |   29 +-
 .../cache/IgniteCacheOffheapEvictQueryTest.java |   50 +-
 ...CacheOffheapTieredMultithreadedSelfTest.java |   44 +-
 ...niteCacheP2pUnmarshallingQueryErrorTest.java |    9 +-
 ...hePartitionedQueryMultiThreadedSelfTest.java |   59 +-
 ...teCacheQueryEvictsMultiThreadedSelfTest.java |    2 +-
 .../cache/IgniteCacheQueryIndexSelfTest.java    |   26 +-
 .../cache/IgniteCacheQueryLoadSelfTest.java     |   52 +-
 ...QueryMultiThreadedOffHeapTieredSelfTest.java |    7 +-
 .../IgniteCacheQueryMultiThreadedSelfTest.java  |   66 +-
 ...QueryOffheapEvictsMultiThreadedSelfTest.java |    2 +-
 ...eCacheQueryOffheapMultiThreadedSelfTest.java |    2 +-
 ...gniteCacheSqlQueryMultiThreadedSelfTest.java |   47 +-
 ...ClientReconnectCacheQueriesFailoverTest.java |   37 +-
 .../cache/IgniteClientReconnectQueriesTest.java |   44 +-
 .../IgniteCacheAtomicFieldsQuerySelfTest.java   |   16 +-
 ...cheAtomicNearEnabledFieldsQuerySelfTest.java |    4 +-
 ...niteCacheAtomicNearEnabledQuerySelfTest.java |    8 +-
 .../near/IgniteCacheAtomicQuerySelfTest.java    |    8 +-
 ...lientQueryReplicatedNodeRestartSelfTest.java |   64 +-
 ...artitionedFieldsQueryP2PEnabledSelfTest.java |    4 +-
 ...niteCachePartitionedFieldsQuerySelfTest.java |   13 +-
 ...achePartitionedQueryP2PDisabledSelfTest.java |    4 +-
 .../IgniteCachePartitionedQuerySelfTest.java    |   26 +-
 .../IgniteCacheQueryNodeRestartSelfTest.java    |   53 +-
 .../IgniteCacheQueryNodeRestartSelfTest2.java   |   56 +-
 ...ReplicatedFieldsQueryP2PEnabledSelfTest.java |    4 +-
 ...gniteCacheReplicatedFieldsQuerySelfTest.java |   25 +-
 ...CacheReplicatedQueryP2PDisabledSelfTest.java |    4 +-
 .../IgniteCacheReplicatedQuerySelfTest.java     |   74 +-
 .../IgniteCacheLocalAtomicQuerySelfTest.java    |    6 +-
 .../IgniteCacheLocalFieldsQuerySelfTest.java    |    8 +-
 .../local/IgniteCacheLocalQuerySelfTest.java    |   22 +-
 ...dCacheAbstractReduceFieldsQuerySelfTest.java |   54 +-
 ...ridCacheReduceFieldsQueryAtomicSelfTest.java |    8 +-
 ...GridCacheReduceFieldsQueryLocalSelfTest.java |    6 +-
 ...cheReduceFieldsQueryPartitionedSelfTest.java |   15 +-
 ...acheReduceFieldsQueryReplicatedSelfTest.java |    6 +-
 .../cache/ttl/CacheTtlAbstractSelfTest.java     |   62 +-
 .../CacheTtlOffheapAtomicAbstractSelfTest.java  |    4 +-
 .../ttl/CacheTtlOffheapAtomicLocalSelfTest.java |    4 +-
 ...acheTtlOffheapAtomicPartitionedSelfTest.java |    4 +-
 ...TtlOffheapTransactionalAbstractSelfTest.java |    4 +-
 ...cheTtlOffheapTransactionalLocalSelfTest.java |    4 +-
 .../CacheTtlOnheapAtomicAbstractSelfTest.java   |    4 +-
 .../ttl/CacheTtlOnheapAtomicLocalSelfTest.java  |    4 +-
 ...eTtlOnheapTransactionalAbstractSelfTest.java |    4 +-
 ...acheTtlOnheapTransactionalLocalSelfTest.java |    4 +-
 ...lOnheapTransactionalPartitionedSelfTest.java |    4 +-
 .../query/IgniteSqlSplitterSelfTest.java        |   34 +-
 .../query/h2/GridH2IndexRebuildTest.java        |   33 +-
 .../query/h2/GridH2IndexingInMemSelfTest.java   |    2 +-
 .../query/h2/GridH2IndexingOffheapSelfTest.java |    2 +-
 .../h2/GridIndexingSpiAbstractSelfTest.java     |   47 +-
 .../query/h2/opt/GridH2TableSelfTest.java       |   42 +-
 .../h2/sql/AbstractH2CompareQueryTest.java      |   46 +-
 .../query/h2/sql/BaseH2CompareQueryTest.java    |   34 +-
 .../query/h2/sql/GridQueryParsingTest.java      |   52 +-
 .../query/h2/sql/H2CompareBigQueryTest.java     |   26 +-
 .../loadtests/h2indexing/GridTestEntity.java    |    7 +-
 .../loadtests/h2indexing/GridTreeBenchmark.java |   16 +-
 .../tcp/GridOrderedMessageCancelSelfTest.java   |   56 +-
 .../IgniteCacheQuerySelfTestSuite.java          |   81 +-
 .../IgniteCacheWithIndexingTestSuite.java       |   23 +-
 .../IgniteH2IndexingSpiTestSuite.java           |   10 +-
 .../IgnitePortableCacheQueryTestSuite.java      |   42 +-
 .../org/apache/ignite/logger/jcl/JclLogger.java |    9 +-
 .../apache/ignite/logger/jcl/JclLoggerTest.java |   10 +-
 .../ignite/testsuites/IgniteJclTestSuite.java   |    6 +-
 .../apache/ignite/stream/jms11/JmsStreamer.java |   31 +-
 .../ignite/stream/jms11/MessageTransformer.java |    7 +-
 .../stream/jms11/IgniteJmsStreamerTest.java     |   50 +-
 .../ignite/stream/jms11/TestTransformers.java   |   11 +-
 .../apache/ignite/cache/jta/CacheTmLookup.java  |   11 +-
 .../cache/jta/jndi/CacheJndiTmLookup.java       |   16 +-
 .../jta/reflect/CacheReflectionTmLookup.java    |   13 +-
 .../processors/cache/jta/CacheJtaManager.java   |   23 +-
 .../cache/jta/GridCacheXAResource.java          |   28 +-
 ...CacheJtaConfigurationValidationSelfTest.java |   22 +-
 .../processors/cache/GridCacheJtaSelfTest.java  |   31 +-
 .../cache/GridCacheReplicatedJtaSelfTest.java   |    6 +-
 .../GridTmLookupLifecycleAwareSelfTest.java     |   31 +-
 .../ignite/testsuites/IgniteJtaTestSuite.java   |    9 +-
 .../ignite/stream/kafka/KafkaStreamer.java      |   27 +-
 .../kafka/IgniteKafkaStreamerSelfTestSuite.java |    4 +-
 .../stream/kafka/KafkaEmbeddedBroker.java       |   43 +-
 .../kafka/KafkaIgniteStreamerSelfTest.java      |   42 +-
 .../ignite/stream/kafka/SimplePartitioner.java  |    6 +-
 .../log4j/Log4JDailyRollingFileAppender.java    |   12 +-
 .../Log4JExternallyRolledFileAppender.java      |   11 +-
 .../ignite/logger/log4j/Log4JFileAppender.java  |   12 +-
 .../apache/ignite/logger/log4j/Log4JLogger.java |   49 +-
 .../ignite/logger/log4j/Log4jFileAware.java     |    4 +-
 .../logger/log4j/Log4jNodeIdFilePath.java       |   15 +-
 .../logger/log4j/Log4jRollingFileAppender.java  |   12 +-
 .../log4j/GridLog4jCorrectFileNameTest.java     |   24 +-
 .../logger/log4j/GridLog4jInitializedTest.java  |   10 +-
 .../logger/log4j/GridLog4jLoggingFileTest.java  |   13 +-
 .../logger/log4j/GridLog4jLoggingPathTest.java  |    8 +-
 .../logger/log4j/GridLog4jLoggingUrlTest.java   |   13 +-
 .../log4j/GridLog4jNotInitializedTest.java      |    8 +-
 .../ignite/testsuites/IgniteLog4jTestSuite.java |    8 +-
 .../ignite/logger/log4j2/Log4J2Logger.java      |   56 +-
 .../ignite/logger/log4j2/package-info.java      |    2 +-
 .../log4j2/GridLog4j2CorrectFileNameTest.java   |    3 +-
 .../log4j2/GridLog4j2InitializedTest.java       |    9 +-
 .../log4j2/GridLog4j2LoggingFileTest.java       |    5 +-
 .../logger/log4j2/Log4j2LoggerSelfTest.java     |   27 +-
 .../log4j2/Log4j2LoggerVerboseModeSelfTest.java |   22 +-
 .../ignite/logger/log4j2/package-info.java      |    2 +-
 .../testsuites/IgniteLog4j2TestSuite.java       |    6 +-
 .../apache/ignite/mesos/ClusterProperties.java  |   19 +-
 .../apache/ignite/mesos/IgniteFramework.java    |   19 +-
 .../apache/ignite/mesos/IgniteScheduler.java    |   21 +-
 .../org/apache/ignite/mesos/IgniteTask.java     |    2 +-
 .../ignite/mesos/resource/IgniteProvider.java   |   16 +-
 .../ignite/mesos/resource/JettyServer.java      |    8 +-
 .../ignite/mesos/resource/ResourceHandler.java  |   22 +-
 .../ignite/mesos/resource/ResourceProvider.java |   16 +-
 .../org/apache/ignite/IgniteMesosTestSuite.java |    6 +-
 .../ignite/mesos/IgniteSchedulerSelfTest.java   |   16 +-
 .../Impl/Memory/PlatformMemoryStream.cs         |    3 +-
 .../platform/PlatformAbstractBootstrap.java     |   12 +-
 .../platform/PlatformAbstractPredicate.java     |   67 +
 .../platform/PlatformAbstractTarget.java        |  160 ++-
 .../processors/platform/PlatformBootstrap.java  |    5 +-
 .../platform/PlatformBootstrapFactory.java      |    2 +-
 .../processors/platform/PlatformContext.java    |  114 --
 .../processors/platform/PlatformException.java  |    8 +-
 .../platform/PlatformExtendedException.java     |    4 +-
 .../processors/platform/PlatformIgnition.java   |   27 +-
 .../platform/PlatformNoCallbackException.java   |    4 +-
 .../processors/platform/PlatformTarget.java     |   76 -
 .../platform/cache/PlatformCache.java           | 1075 ++++++++++++++
 .../cache/PlatformCacheEntryFilterImpl.java     |  107 ++
 .../cache/PlatformCacheEntryProcessor.java      |  220 +++
 .../platform/cache/PlatformCacheIterator.java   |   72 +
 .../PlatformCachePartialUpdateException.java    |   69 +
 .../cache/affinity/PlatformAffinity.java        |   39 +-
 .../query/PlatformAbstractQueryCursor.java      |   20 +-
 .../query/PlatformContinuousQueryImpl.java      |  235 ++++
 .../PlatformContinuousQueryRemoteFilter.java    |  188 +++
 .../cache/query/PlatformFieldsQueryCursor.java  |   11 +-
 .../cache/query/PlatformQueryCursor.java        |   11 +-
 .../cache/store/PlatformCacheStore.java         |    2 +-
 .../cache/store/PlatformCacheStoreCallback.java |    8 +-
 .../callback/PlatformCallbackGateway.java       |  869 ------------
 .../callback/PlatformCallbackUtils.java         |  468 -------
 .../platform/cluster/PlatformClusterGroup.java  |  335 +++++
 .../cluster/PlatformClusterNodeFilter.java      |   79 ++
 .../platform/compute/PlatformAbstractJob.java   |  156 +++
 .../platform/compute/PlatformAbstractTask.java  |  205 +++
 .../PlatformBalancingMultiClosureTask.java      |   83 ++
 ...tformBalancingSingleClosureAffinityTask.java |   88 ++
 .../PlatformBalancingSingleClosureTask.java     |   81 ++
 .../PlatformBroadcastingMultiClosureTask.java   |   87 ++
 .../PlatformBroadcastingSingleClosureTask.java  |   84 ++
 .../platform/compute/PlatformClosureJob.java    |  104 ++
 .../platform/compute/PlatformCompute.java       |  332 +++++
 .../platform/compute/PlatformFullJob.java       |  220 +++
 .../platform/compute/PlatformFullTask.java      |  192 +++
 .../compute/PlatformNativeException.java        |   77 +
 .../datastreamer/PlatformDataStreamer.java      |  226 +++
 .../datastreamer/PlatformStreamReceiver.java    |  120 ++
 .../platform/dotnet/PlatformDotNetService.java  |   27 +
 .../dotnet/PlatformDotNetServiceImpl.java       |   47 +
 .../platform/events/PlatformEventFilter.java    |  164 +++
 .../platform/events/PlatformEvents.java         |  395 ++++++
 .../lifecycle/PlatformLifecycleBean.java        |    9 +-
 .../platform/memory/PlatformAbstractMemory.java |    2 +-
 .../PlatformBigEndianInputStreamImpl.java       |    2 +-
 .../PlatformBigEndianOutputStreamImpl.java      |    3 +-
 .../platform/memory/PlatformExternalMemory.java |    8 +-
 .../platform/memory/PlatformInputStream.java    |   30 -
 .../memory/PlatformInputStreamImpl.java         |   16 +-
 .../platform/memory/PlatformMemory.java         |   77 -
 .../platform/memory/PlatformMemoryManager.java  |   46 -
 .../memory/PlatformMemoryManagerImpl.java       |   10 +-
 .../platform/memory/PlatformMemoryPool.java     |   11 +-
 .../platform/memory/PlatformMemoryUtils.java    |    9 +-
 .../platform/memory/PlatformOutputStream.java   |   30 -
 .../memory/PlatformOutputStreamImpl.java        |   12 +-
 .../platform/memory/PlatformPooledMemory.java   |    5 +-
 .../platform/memory/PlatformUnpooledMemory.java |    4 +-
 .../messaging/PlatformMessageFilter.java        |  110 ++
 .../messaging/PlatformMessageLocalFilter.java   |  101 ++
 .../platform/messaging/PlatformMessaging.java   |  165 +++
 .../services/PlatformAbstractService.java       |  229 +++
 .../platform/services/PlatformServices.java     |  275 ++++
 .../transactions/PlatformTransactions.java      |   34 +-
 .../platform/utils/PlatformFutureUtils.java     |   17 +-
 .../platform/utils/PlatformReaderBiClosure.java |    6 +-
 .../platform/utils/PlatformReaderClosure.java   |    4 +-
 .../platform/utils/PlatformUtils.java           |  195 ++-
 .../platform/utils/PlatformWriterBiClosure.java |    4 +-
 .../platform/utils/PlatformWriterClosure.java   |    4 +-
 .../http/jetty/GridJettyJsonConfig.java         |    9 +-
 .../http/jetty/GridJettyRestHandler.java        |   72 +-
 .../http/jetty/GridJettyRestProtocol.java       |   59 +-
 .../rest/protocols/http/jetty/rest.html         |    4 +-
 modules/scalar-2.10/pom.xml                     |    2 +-
 modules/scalar/pom.xml                          |    2 +-
 .../schedule/IgniteScheduleProcessor.java       |   26 +-
 .../processors/schedule/ScheduleFutureImpl.java |   56 +-
 .../schedule/GridScheduleSelfTest.java          |   31 +-
 .../testsuites/IgniteSchedulerTestSuite.java    |    6 +-
 .../ignite/schema/generator/CodeGenerator.java  |   36 +-
 .../ignite/schema/generator/XmlGenerator.java   |   51 +-
 .../apache/ignite/schema/model/IndexItem.java   |    2 +-
 .../ignite/schema/model/PojoDescriptor.java     |   54 +-
 .../apache/ignite/schema/model/PojoField.java   |   58 +-
 .../ignite/schema/model/SchemaDescriptor.java   |    5 +-
 .../schema/parser/DatabaseMetadataParser.java   |   29 +-
 .../apache/ignite/schema/parser/DbColumn.java   |    2 +-
 .../apache/ignite/schema/parser/DbTable.java    |    6 +-
 .../parser/dialect/DB2MetadataDialect.java      |    6 +-
 .../parser/dialect/DatabaseMetadataDialect.java |   16 +-
 .../parser/dialect/JdbcMetadataDialect.java     |   19 +-
 .../parser/dialect/MySQLMetadataDialect.java    |   10 +-
 .../parser/dialect/OracleMetadataDialect.java   |   42 +-
 .../ignite/schema/ui/ConfirmCallable.java       |   14 +-
 .../org/apache/ignite/schema/ui/Controls.java   |   63 +-
 .../org/apache/ignite/schema/ui/GridPaneEx.java |   13 +-
 .../org/apache/ignite/schema/ui/MessageBox.java |   35 +-
 .../apache/ignite/schema/ui/ModalDialog.java    |    4 +-
 .../ignite/schema/ui/SchemaImportApp.java       |  119 +-
 .../ignite/schema/ui/TextColumnValidator.java   |    2 +-
 .../schema/test/AbstractSchemaImportTest.java   |   32 +-
 .../test/generator/CodeGeneratorTest.java       |    7 +-
 .../schema/test/generator/XmlGeneratorTest.java |   14 +-
 .../test/parser/DbMetadataParserTest.java       |   17 +-
 .../testsuites/IgniteSchemaImportTestSuite.java |    9 +-
 .../apache/ignite/logger/slf4j/Slf4jLogger.java |    9 +-
 .../ignite/spark/JavaIgniteRDDSelfTest.java     |   36 +-
 .../java/org/apache/ignite/IgniteSpring.java    |   15 +-
 .../org/apache/ignite/IgniteSpringBean.java     |   40 +-
 .../apache/ignite/cache/spring/SpringCache.java |    8 +-
 .../ignite/cache/spring/SpringCacheManager.java |   21 +-
 .../spring/CacheSpringStoreSessionListener.java |   33 +-
 .../GridResourceSpringBeanInjector.java         |   17 +-
 .../resource/GridSpringResourceContextImpl.java |   10 +-
 .../util/spring/IgniteSpringHelperImpl.java     |   59 +-
 .../jdbc/CacheJdbcBlobStoreFactorySelfTest.java |   27 +-
 .../jdbc/CacheJdbcPojoStoreFactorySelfTest.java |   26 +-
 ...CacheSpringStoreSessionListenerSelfTest.java |   36 +-
 .../ignite/internal/GridFactorySelfTest.java    |   92 +-
 .../GridSpringBeanSerializationSelfTest.java    |   21 +-
 .../internal/IgniteDynamicCacheConfigTest.java  |   20 +-
 .../apache/ignite/internal/TestNodeFilter.java  |    6 +-
 .../resource/GridLoggerInjectionSelfTest.java   |   21 +-
 .../resource/GridResourceProcessorSelfTest.java |   41 +-
 .../resource/GridResourceTestUtils.java         |    4 +-
 .../resource/GridServiceInjectionSelfTest.java  |   16 +-
 .../processors/resource/TestClosure.java        |   12 +-
 .../p2p/GridP2PUserVersionChangeSelfTest.java   |   50 +-
 .../spring/GridSpringCacheManagerSelfTest.java  |   19 +-
 .../ignite/spring/GridSpringCacheTestKey.java   |    4 +-
 .../spring/GridSpringCacheTestKeyGenerator.java |    7 +-
 .../spring/GridSpringCacheTestService.java      |    9 +-
 .../GridSpringDynamicCacheTestService.java      |    9 +-
 .../IgniteExcludeInConfigurationTest.java       |   21 +-
 .../IgniteStartFromStreamConfigurationTest.java |   18 +-
 .../testsuites/IgniteResourceSelfTestSuite.java |    8 +-
 .../testsuites/IgniteSpringTestSuite.java       |   19 +-
 .../util/nodestart/IgniteSshHelperImpl.java     |    2 +-
 .../util/nodestart/StartNodeCallableImpl.java   |   39 +-
 .../internal/IgniteNodeStartUtilsSelfTest.java  |   25 +-
 ...gniteProjectionStartStopRestartSelfTest.java |   62 +-
 .../IgniteStartStopRestartTestSuite.java        |    3 +-
 .../ant/beautifier/GridJavadocAntTask.java      |   29 +-
 .../GridJavadocCharArrayLexReader.java          |    2 +-
 .../tools/ant/beautifier/GridJavadocToken.java  |    2 +-
 .../ant/beautifier/GridJavadocTokenType.java    |    2 +-
 .../ignite/tools/classgen/ClassesGenerator.java |   27 +-
 .../ignite/tools/javadoc/IgniteLinkTaglet.java  |   11 +-
 .../util/antgar/IgniteDeploymentGarAntTask.java |   15 +-
 .../uri/GridUriDeploymentClassLoader.java       |   15 +-
 .../GridUriDeploymentClassLoaderFactory.java    |   16 +-
 .../uri/GridUriDeploymentDiscovery.java         |   18 +-
 .../uri/GridUriDeploymentFileProcessor.java     |   42 +-
 .../GridUriDeploymentFileProcessorResult.java   |   11 +-
 .../GridUriDeploymentFileResourceLoader.java    |    9 +-
 .../uri/GridUriDeploymentJarVerifier.java       |   26 +-
 .../uri/GridUriDeploymentSpringDocument.java    |   17 +-
 .../uri/GridUriDeploymentSpringParser.java      |   20 +-
 .../uri/GridUriDeploymentUnitDescriptor.java    |   28 +-
 .../uri/GridUriDeploymentUriParser.java         |    6 +-
 .../spi/deployment/uri/UriDeploymentSpi.java    |   68 +-
 .../deployment/uri/UriDeploymentSpiMBean.java   |    9 +-
 .../uri/scanners/GridDeploymentFileHandler.java |    4 +-
 .../GridDeploymentFolderScannerHelper.java      |    5 +-
 .../GridUriDeploymentScannerListener.java       |    7 +-
 .../uri/scanners/UriDeploymentScanner.java      |    4 +-
 .../scanners/UriDeploymentScannerContext.java   |   12 +-
 .../scanners/UriDeploymentScannerManager.java   |   18 +-
 .../scanners/file/UriDeploymentFileScanner.java |   32 +-
 .../scanners/http/UriDeploymentHttpScanner.java |   58 +-
 .../GridTaskUriDeploymentDeadlockSelfTest.java  |   32 +-
 .../ignite/p2p/GridP2PDisabledSelfTest.java     |   24 +-
 .../uri/GridUriDeploymentAbstractSelfTest.java  |   10 +-
 ...loymentClassLoaderMultiThreadedSelfTest.java |   15 +-
 .../GridUriDeploymentClassLoaderSelfTest.java   |   17 +-
 ...riDeploymentClassloaderRegisterSelfTest.java |   29 +-
 .../uri/GridUriDeploymentConfigSelfTest.java    |    8 +-
 .../GridUriDeploymentFileProcessorSelfTest.java |   19 +-
 .../uri/GridUriDeploymentMd5CheckSelfTest.java  |   21 +-
 ...loymentMultiScannersErrorThrottlingTest.java |   11 +-
 .../GridUriDeploymentMultiScannersSelfTest.java |   13 +-
 .../uri/GridUriDeploymentSimpleSelfTest.java    |   27 +-
 .../file/GridFileDeploymentSelfTest.java        |   14 +-
 .../GridFileDeploymentUndeploySelfTest.java     |   19 +-
 .../http/GridHttpDeploymentSelfTest.java        |   29 +-
 .../testsuites/IgniteToolsSelfTestSuite.java    |    6 +-
 .../IgniteUriDeploymentTestSuite.java           |   20 +-
 .../apache/ignite/tools/GridToolsSelfTest.java  |   23 +-
 .../visor/plugin/VisorExtensionPoint.java       |    4 +-
 .../ignite/visor/plugin/VisorPluggableTab.java  |    5 +-
 .../apache/ignite/visor/plugin/VisorPlugin.java |    6 +-
 .../visor/plugin/VisorPluginComponent.java      |    4 +-
 .../plugin/VisorPluginComponentsFactory.java    |    6 +-
 .../visor/plugin/VisorPluginLogPanel.java       |    2 +-
 .../ignite/visor/plugin/VisorPluginModel.java   |   12 +-
 .../visor/plugin/VisorPluginNodesPanel.java     |    5 +-
 .../visor/plugin/VisorSelectionListener.java    |    4 +-
 .../visor/plugin/VisorTopologyListener.java     |    4 +-
 .../ignite/cache/websession/WebSession.java     |   30 +-
 .../cache/websession/WebSessionFilter.java      |   64 +-
 .../cache/websession/WebSessionListener.java    |   36 +-
 .../servlet/ServletContextListenerStartup.java  |   32 +-
 .../ignite/startup/servlet/ServletStartup.java  |   28 +-
 .../IgniteWebSessionSelfTestSuite.java          |    8 +-
 .../internal/websession/WebSessionSelfTest.java |   46 +-
 .../websession/WebSessionServerStart.java       |   22 +-
 .../internal/websession/WebSessionTest.java     |   11 +-
 modules/yardstick/README.txt                    |    2 +-
 .../yardstick/IgniteAbstractBenchmark.java      |   25 +-
 .../yardstick/IgniteBenchmarkArguments.java     |   12 +-
 .../org/apache/ignite/yardstick/IgniteNode.java |   40 +-
 .../cache/IgniteCacheAbstractBenchmark.java     |    8 +-
 .../yardstick/cache/IgniteGetBenchmark.java     |    7 +-
 .../cache/IgniteGetOffHeapBenchmark.java        |    6 +-
 .../cache/IgniteGetOffHeapValuesBenchmark.java  |    6 +-
 .../cache/IgniteJdbcSqlQueryBenchmark.java      |   21 +-
 .../yardstick/cache/IgnitePutAllBenchmark.java  |   15 +-
 .../cache/IgnitePutAllTxBenchmark.java          |   15 +-
 .../yardstick/cache/IgnitePutBenchmark.java     |    9 +-
 .../yardstick/cache/IgnitePutGetBenchmark.java  |    9 +-
 .../cache/IgnitePutGetOffHeapBenchmark.java     |    6 +-
 .../IgnitePutGetOffHeapValuesBenchmark.java     |    6 +-
 .../cache/IgnitePutGetTxBenchmark.java          |   11 +-
 .../cache/IgnitePutGetTxOffHeapBenchmark.java   |    6 +-
 .../IgnitePutGetTxOffHeapValuesBenchmark.java   |    6 +-
 .../cache/IgnitePutIndexedValue1Benchmark.java  |    9 +-
 .../cache/IgnitePutIndexedValue2Benchmark.java  |    9 +-
 .../cache/IgnitePutIndexedValue8Benchmark.java  |    9 +-
 .../cache/IgnitePutOffHeapBenchmark.java        |    6 +-
 .../cache/IgnitePutOffHeapValuesBenchmark.java  |    6 +-
 .../yardstick/cache/IgnitePutTxBenchmark.java   |    9 +-
 .../cache/IgnitePutTxOffHeapBenchmark.java      |    6 +-
 .../IgnitePutTxOffHeapValuesBenchmark.java      |    6 +-
 .../cache/IgniteSqlQueryBenchmark.java          |   23 +-
 .../cache/IgniteSqlQueryJoinBenchmark.java      |   23 +-
 .../IgniteSqlQueryJoinOffHeapBenchmark.java     |    6 +-
 .../cache/IgniteSqlQueryOffHeapBenchmark.java   |    6 +-
 .../cache/IgniteSqlQueryPutBenchmark.java       |   18 +-
 .../IgniteSqlQueryPutOffHeapBenchmark.java      |    6 +-
 .../yardstick/cache/model/Organization.java     |   10 +-
 .../ignite/yardstick/cache/model/Person.java    |   10 +-
 .../ignite/yardstick/cache/model/Person1.java   |    7 +-
 .../ignite/yardstick/cache/model/Person2.java   |    7 +-
 .../ignite/yardstick/cache/model/Person8.java   |    7 +-
 .../ignite/yardstick/cache/model/SampleKey.java |    7 +-
 .../yardstick/cache/model/SampleValue.java      |    7 +-
 .../jdbc/IgniteJdbcStoreAbstractBenchmark.java  |   20 +-
 .../store/jdbc/IgniteJdbcStoreGetBenchmark.java |    9 +-
 .../jdbc/IgniteJdbcStoreGetTxBenchmark.java     |    9 +-
 .../store/jdbc/IgniteJdbcStorePutBenchmark.java |   10 +-
 .../jdbc/IgniteJdbcStorePutGetBenchmark.java    |   10 +-
 .../jdbc/IgniteJdbcStorePutGetTxBenchmark.java  |   10 +-
 .../jdbc/IgniteJdbcStorePutTxBenchmark.java     |   10 +-
 .../compute/IgniteAffinityCallBenchmark.java    |   11 +-
 .../yardstick/compute/IgniteApplyBenchmark.java |   18 +-
 .../compute/IgniteBroadcastBenchmark.java       |    9 +-
 .../compute/IgniteExecuteBenchmark.java         |    9 +-
 .../yardstick/compute/IgniteRunBenchmark.java   |   18 +-
 .../yardstick/compute/model/NoopCallable.java   |   10 +-
 .../yardstick/compute/model/NoopTask.java       |   21 +-
 .../apache/ignite/yarn/ApplicationMaster.java   |   45 +-
 .../apache/ignite/yarn/ClusterProperties.java   |   15 +-
 .../org/apache/ignite/yarn/IgniteContainer.java |    5 +-
 .../org/apache/ignite/yarn/IgniteProvider.java  |   24 +-
 .../apache/ignite/yarn/IgniteYarnClient.java    |   39 +-
 .../ignite/yarn/utils/IgniteYarnUtils.java      |   15 +-
 .../org/apache/ignite/IgniteYarnTestSuite.java  |    6 +-
 .../yarn/IgniteApplicationMasterSelfTest.java   |   52 +-
 .../zk/TcpDiscoveryZookeeperIpFinder.java       |   48 +-
 .../tcp/ipfinder/zk/ZookeeperIpFinderTest.java  |   31 +-
 parent/pom.xml                                  |   12 +-
 scripts/apply-pull-request.sh                   |    2 +
 4556 files changed, 66639 insertions(+), 39702 deletions(-)
----------------------------------------------------------------------



[15/50] [abbrv] ignite git commit: IGNITE-264 - Fixed compilation.

Posted by ag...@apache.org.
IGNITE-264 - Fixed compilation.


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

Branch: refs/heads/ignite-264
Commit: 373237707b68e442026533791b71552634974f2c
Parents: c31ad7e
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Mon Aug 10 11:26:53 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Mon Aug 10 11:26:53 2015 -0700

----------------------------------------------------------------------
 .../distributed/GridCacheTxRecoveryFuture.java  | 29 +-------------------
 .../distributed/GridCacheTxRecoveryRequest.java |  2 +-
 .../GridDistributedTxPrepareRequest.java        |  2 +-
 .../distributed/dht/GridDhtLockFuture.java      |  9 +++++-
 .../distributed/dht/GridDhtLockRequest.java     |  4 +--
 .../dht/GridDhtTransactionalCacheAdapter.java   |  3 +-
 .../distributed/dht/GridDhtTxFinishFuture.java  | 10 ++-----
 .../distributed/dht/GridDhtTxFinishRequest.java |  2 +-
 .../distributed/dht/GridDhtTxLocalAdapter.java  | 14 ++++++++++
 .../distributed/dht/GridDhtTxPrepareFuture.java |  7 +----
 .../distributed/near/GridNearLockRequest.java   | 20 +++++++-------
 .../distributed/near/GridNearLockResponse.java  | 20 +++++++-------
 .../near/GridNearTxPrepareFutureAdapter.java    |  2 +-
 .../cache/transactions/IgniteTxEntry.java       | 15 ++++++++++
 .../cache/transactions/IgniteTxHandler.java     |  7 +++--
 .../cache/GridCacheAbstractFullApiSelfTest.java |  2 +-
 .../cache/IgniteOnePhaseCommitNearSelfTest.java |  8 +++---
 .../dht/GridCacheTxNodeFailureSelfTest.java     |  4 +--
 18 files changed, 81 insertions(+), 79 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/37323770/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java
index 2978c77..64f20b9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java
@@ -22,7 +22,6 @@ import org.apache.ignite.cluster.*;
 import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.cluster.*;
 import org.apache.ignite.internal.processors.cache.*;
-import org.apache.ignite.internal.processors.cache.distributed.dht.*;
 import org.apache.ignite.internal.processors.cache.transactions.*;
 import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.internal.util.*;
@@ -162,7 +161,7 @@ public class GridCacheTxRecoveryFuture extends GridCompoundIdentityFuture<Boolea
                 try {
                     cctx.io().send(nearNodeId, req, tx.ioPolicy());
                 }
-                catch (ClusterTopologyCheckedException e) {
+                catch (ClusterTopologyCheckedException ignore) {
                     fut.onNodeLeft();
                 }
                 catch (IgniteCheckedException e) {
@@ -303,32 +302,6 @@ public class GridCacheTxRecoveryFuture extends GridCompoundIdentityFuture<Boolea
             }
         }
 
-        // Specifically check originating near node.
-        if (tx instanceof GridDhtTxRemote) {
-            UUID nearNodeId = ((GridDhtTxRemote)tx).nearNodeId();
-
-            if (cctx.localNodeId().equals(nearNodeId))
-                add(cctx.tm().nearTxCommitted(tx.nearXidVersion()));
-            else {
-                MiniFuture fut = new MiniFuture(nearNodeId);
-
-                add(fut);
-
-                GridCacheOptimisticCheckPreparedTxRequest<K, V> req = new GridCacheOptimisticCheckPreparedTxRequest<>(
-                    tx, 1, futureId(), fut.futureId(), true);
-
-                try {
-                    cctx.io().send(nearNodeId, req, tx.ioPolicy());
-                }
-                catch (ClusterTopologyCheckedException ignored) {
-                    fut.onNodeLeft();
-                }
-                catch (IgniteCheckedException e) {
-                    fut.onError(e);
-                }
-            }
-        }
-
         markInitialized();
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/37323770/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
index 15d2141..c6928ed 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
@@ -128,7 +128,7 @@ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
      * @return Near check flag.
      */
     public boolean nearCheck() {
-        return nearCheck;
+        return nearTxCheck;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/37323770/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
index d93ae50..def710e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
@@ -357,7 +357,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 writer.incrementState();
 
-            case 12:
+            case 10:
                 if (!writer.writeBoolean("invalidate", invalidate))
                     return false;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/37323770/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
index 5080e3a..6996cbd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
@@ -754,7 +754,14 @@ public final class GridDhtLockFuture extends GridCompoundIdentityFuture<Boolean>
                 try {
                     while (true) {
                         try {
-                            cctx.dhtMap(nearNodeId, topVer, entry, log, dhtMap, null);
+                            cctx.dhtMap(
+                                nearNodeId,
+                                topVer,
+                                entry,
+                                tx == null ? lockVer : null,
+                                log,
+                                dhtMap,
+                                null);
 
                             GridCacheMvccCandidate cand = entry.candidate(lockVer);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/37323770/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
index 892f435..31a6523 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
@@ -306,7 +306,7 @@ public class GridDhtLockRequest extends GridDistributedLockRequest {
 
                 writer.incrementState();
 
-            case 23:
+            case 21:
                 if (!writer.writeCollection("nearKeys", nearKeys, MessageCollectionItemType.MSG))
                     return false;
 
@@ -376,7 +376,7 @@ public class GridDhtLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 23:
+            case 21:
                 nearKeys = reader.readCollection("nearKeys", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())

http://git-wip-us.apache.org/repos/asf/ignite/blob/37323770/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
index da14b9f..a630642 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
@@ -846,7 +846,8 @@ public abstract class GridDhtTransactionalCacheAdapter<K, V> extends GridDhtCach
                                         req.isolation(),
                                         req.timeout(),
                                         req.isInvalidate(),
-                                        true,
+                                        !req.skipStore(),
+                                        false,
                                         req.txSize(),
                                         null,
                                         req.subjectId(),

http://git-wip-us.apache.org/repos/asf/ignite/blob/37323770/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
index 87fe6e7..4bf048b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
@@ -245,7 +245,7 @@ public final class GridDhtTxFinishFuture<K, V> extends GridCompoundIdentityFutur
     /**
      * Initializes future.
      */
-    @SuppressWarnings("SimplifiableIfStatement")
+    @SuppressWarnings({"SimplifiableIfStatement", "IfMayBeConditional"})
     public void finish() {
         boolean sync;
 
@@ -267,7 +267,7 @@ public final class GridDhtTxFinishFuture<K, V> extends GridCompoundIdentityFutur
      * @param nodes Nodes.
      * @return {@code True} in case there is at least one synchronous {@code MiniFuture} to wait for.
      */
-    private boolean rollbackLockTransactions(Set<ClusterNode> nodes) {
+    private boolean rollbackLockTransactions(Collection<ClusterNode> nodes) {
         assert !commit;
         assert !F.isEmpty(nodes);
 
@@ -304,10 +304,6 @@ public final class GridDhtTxFinishFuture<K, V> extends GridCompoundIdentityFutur
                 tx.isSystemInvalidate(),
                 sync,
                 sync,
-                tx.completedBase(),
-                tx.committedVersions(),
-                tx.rolledbackVersions(),
-                tx.pendingVersions(),
                 tx.size(),
                 tx.subjectId(),
                 tx.taskNameHash());
@@ -499,7 +495,7 @@ public final class GridDhtTxFinishFuture<K, V> extends GridCompoundIdentityFutur
         /**
          * @param node Node.
          */
-        public MiniFuture(ClusterNode node) {
+        private MiniFuture(ClusterNode node) {
             this.node = node;
         }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/37323770/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
index 52fb87a..d9b12ff 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
@@ -261,7 +261,7 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 writer.incrementState();
 
-            case 24:
+            case 21:
                 if (!writer.writeUuid("subjId", subjId))
                     return false;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/37323770/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
index 2b0e7c2..d9e85a5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
@@ -144,6 +144,20 @@ public abstract class GridDhtTxLocalAdapter extends IgniteTxLocalAdapter {
     }
 
     /**
+     * @return {@code True} if explicit lock transaction.
+     */
+    public boolean explicitLock() {
+        return explicitLock;
+    }
+
+    /**
+     * @param explicitLock Explicit lock flag.
+     */
+    public void explicitLock(boolean explicitLock) {
+        this.explicitLock = explicitLock;
+    }
+
+    /**
      * @return Nodes where transactions were started on lock step.
      */
     @Nullable public Set<ClusterNode> lockTransactionNodes() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/37323770/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
index 1cc3175..34f9b2a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
@@ -577,11 +577,6 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
 
             cctx.io().send(tx.nearNodeId(), res, tx.ioPolicy());
         }
-        else {
-            assert completeCb != null;
-
-            completeCb.apply(res);
-        }
     }
 
     /**
@@ -1081,7 +1076,7 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
                         entry.cached().partition());
 
                     if (state != GridDhtPartitionState.OWNING && state != GridDhtPartitionState.EVICTED) {
-                        V procVal = entry.entryProcessorCalculatedValue();
+                        CacheObject procVal = entry.entryProcessorCalculatedValue();
 
                         entry.op(procVal == null ? DELETE : UPDATE);
                         entry.value(procVal, true, false);

http://git-wip-us.apache.org/repos/asf/ignite/blob/37323770/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
index 081c7fc..2f109cd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
@@ -346,7 +346,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
         }
 
         switch (writer.state()) {
-            case 20:
+            case 18:
                 if (!writer.writeLong("accessTtl", accessTtl))
                     return false;
 
@@ -370,25 +370,25 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 writer.incrementState();
 
-            case 24:
+            case 22:
                 if (!writer.writeBoolean("hasTransforms", hasTransforms))
                     return false;
 
                 writer.incrementState();
 
-            case 22:
+            case 23:
                 if (!writer.writeBoolean("implicitSingleTx", implicitSingleTx))
                     return false;
 
                 writer.incrementState();
 
-            case 23:
+            case 24:
                 if (!writer.writeBoolean("implicitTx", implicitTx))
                     return false;
 
                 writer.incrementState();
 
-            case 24:
+            case 25:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
@@ -504,7 +504,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 29:
+            case 28:
                 retVal = reader.readBoolean("retVal");
 
                 if (!reader.isLastRead())
@@ -512,7 +512,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 30:
+            case 29:
                 subjId = reader.readUuid("subjId");
 
                 if (!reader.isLastRead())
@@ -520,7 +520,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 26:
+            case 30:
                 syncCommit = reader.readBoolean("syncCommit");
 
                 if (!reader.isLastRead())
@@ -528,7 +528,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 27:
+            case 31:
                 taskNameHash = reader.readInt("taskNameHash");
 
                 if (!reader.isLastRead())
@@ -536,7 +536,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 28:
+            case 32:
                 topVer = reader.readMessage("topVer");
 
                 if (!reader.isLastRead())

http://git-wip-us.apache.org/repos/asf/ignite/blob/37323770/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
index 3b4f7e5..0f9fc99 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
@@ -180,31 +180,31 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
         }
 
         switch (writer.state()) {
-            case 10:
+            case 9:
                 if (!writer.writeMessage("clientRemapVer", clientRemapVer))
                     return false;
 
                 writer.incrementState();
 
-            case 11:
+            case 10:
                 if (!writer.writeObjectArray("dhtVers", dhtVers, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 10:
+            case 11:
                 if (!writer.writeBooleanArray("filterRes", filterRes))
                     return false;
 
                 writer.incrementState();
 
-            case 11:
+            case 12:
                 if (!writer.writeObjectArray("mappedVers", mappedVers, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 12:
+            case 13:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
@@ -226,7 +226,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
             return false;
 
         switch (reader.state()) {
-            case 10:
+            case 9:
                 clientRemapVer = reader.readMessage("clientRemapVer");
 
                 if (!reader.isLastRead())
@@ -234,7 +234,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
 
                 reader.incrementState();
 
-            case 11:
+            case 10:
                 dhtVers = reader.readObjectArray("dhtVers", MessageCollectionItemType.MSG, GridCacheVersion.class);
 
                 if (!reader.isLastRead())
@@ -242,7 +242,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
 
                 reader.incrementState();
 
-            case 10:
+            case 11:
                 filterRes = reader.readBooleanArray("filterRes");
 
                 if (!reader.isLastRead())
@@ -250,7 +250,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
 
                 reader.incrementState();
 
-            case 11:
+            case 12:
                 mappedVers = reader.readObjectArray("mappedVers", MessageCollectionItemType.MSG, GridCacheVersion.class);
 
                 if (!reader.isLastRead())
@@ -258,7 +258,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
 
                 reader.incrementState();
 
-            case 12:
+            case 13:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())

http://git-wip-us.apache.org/repos/asf/ignite/blob/37323770/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareFutureAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareFutureAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareFutureAdapter.java
index b7a2fee..257d214 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareFutureAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareFutureAdapter.java
@@ -225,7 +225,7 @@ public abstract class GridNearTxPrepareFutureAdapter extends GridCompoundIdentit
             m.dhtVersion(res.dhtVersion(), writeVer);
 
             if (m.near())
-                tx.readyNearLocks(m, res.pending(), res.committedVersions(), res.rolledbackVersions());
+                tx.readyNearLocks(m);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/37323770/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
index 499c285..7890831 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
@@ -80,6 +80,7 @@ public class IgniteTxEntry implements GridPeerDeployAware, Message {
     private Collection<T2<EntryProcessor<Object, Object, Object>, Object[]>> entryProcessorsCol;
 
     /** Transient field for calculated entry processor value. */
+    @GridDirectTransient
     private CacheObject entryProcessorCalcVal;
 
     /** Transform closure bytes. */
@@ -778,6 +779,20 @@ public class IgniteTxEntry implements GridPeerDeployAware, Message {
         return expiryPlc;
     }
 
+    /**
+     * @return Entry processor calculated value.
+     */
+    public CacheObject entryProcessorCalculatedValue() {
+        return entryProcessorCalcVal;
+    }
+
+    /**
+     * @param entryProcessorCalcVal Entry processor calculated value.
+     */
+    public void entryProcessorCalculatedValue(CacheObject entryProcessorCalcVal) {
+        this.entryProcessorCalcVal = entryProcessorCalcVal;
+    }
+
     /** {@inheritDoc} */
     @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
         writer.setBuffer(buf);

http://git-wip-us.apache.org/repos/asf/ignite/blob/37323770/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index 6b4ef82..42e806c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@ -327,6 +327,7 @@ public class IgniteTxHandler {
                     req.timeout(),
                     req.isInvalidate(),
                     true,
+                    req.onePhaseCommit(),
                     req.txSize(),
                     req.transactionNodes(),
                     req.subjectId(),
@@ -880,15 +881,15 @@ public class IgniteTxHandler {
                 completeFut.listen(new CI1<IgniteInternalFuture<IgniteInternalTx>>() {
                     @Override
                     public void apply(IgniteInternalFuture<IgniteInternalTx> igniteTxIgniteFuture) {
-                        sendReply(nodeId, req);
+                        sendReply(nodeId, req, req.commit());
                     }
                 });
             }
             else
-                sendReply(nodeId, req);
+                sendReply(nodeId, req, req.commit());
         }
         else
-            sendReply(nodeId, req);
+            sendReply(nodeId, req, req.commit());
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/37323770/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
index 7ce6076..41d9a73 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
@@ -2827,7 +2827,7 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract
                         GridCacheAdapter<Object, Object> cache = ((IgniteKernal)ignite(i)).internalCache();
 
                         for (String key : keys0) {
-                            GridCacheEntryEx<Object, Object> entry = cache.peekEx(key);
+                            GridCacheEntryEx entry = cache.peekEx(key);
 
                             if (entry != null) {
                                 if (entry.lockedByAny()) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/37323770/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOnePhaseCommitNearSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOnePhaseCommitNearSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOnePhaseCommitNearSelfTest.java
index c4b9613..295d37b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOnePhaseCommitNearSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOnePhaseCommitNearSelfTest.java
@@ -77,9 +77,9 @@ public class IgniteOnePhaseCommitNearSelfTest extends GridCommonAbstractTest {
         CacheConfiguration ccfg = new CacheConfiguration();
 
         ccfg.setBackups(backups);
-        ccfg.setDistributionMode(CacheDistributionMode.NEAR_PARTITIONED);
         ccfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
         ccfg.setCacheMode(CacheMode.PARTITIONED);
+        ccfg.setNearConfiguration(new NearCacheConfiguration());
 
         return ccfg;
     }
@@ -97,7 +97,7 @@ public class IgniteOnePhaseCommitNearSelfTest extends GridCommonAbstractTest {
 
             int key = generateNearKey();
 
-            IgniteCache<Object, Object> cache = ignite(0).jcache(null);
+            IgniteCache<Object, Object> cache = ignite(0).cache(null);
 
             checkKey(ignite(0).transactions(), cache, key);
         }
@@ -144,7 +144,7 @@ public class IgniteOnePhaseCommitNearSelfTest extends GridCommonAbstractTest {
                     for (int i = 0; i < GRID_CNT; i++) {
                         GridCacheAdapter<Object, Object> cache = ((IgniteKernal)ignite(i)).internalCache();
 
-                        GridCacheEntryEx<Object, Object> entry = cache.peekEx(key);
+                        GridCacheEntryEx entry = cache.peekEx(key);
 
                         if (entry != null) {
                             if (entry.lockedByAny()) {
@@ -201,7 +201,7 @@ public class IgniteOnePhaseCommitNearSelfTest extends GridCommonAbstractTest {
      * @return Key.
      */
     protected int generateNearKey() {
-        CacheAffinity<Object> aff = ignite(0).affinity(null);
+        Affinity<Object> aff = ignite(0).affinity(null);
 
         int key = 0;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/37323770/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
index 7a5696e..ddb4316 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
@@ -71,7 +71,7 @@ public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
         try {
             final Ignite ignite = ignite(0);
 
-            final IgniteCache<Object, Object> cache = ignite.jcache(null);
+            final IgniteCache<Object, Object> cache = ignite.cache(null);
 
             final int key = generateKey(ignite);
 
@@ -124,7 +124,7 @@ public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
      *      {@code ignite(1)}.
      */
     private int generateKey(Ignite ignite) {
-        CacheAffinity<Object> aff = ignite.affinity(null);
+        Affinity<Object> aff = ignite.affinity(null);
 
         for (int key = 0;;key++) {
             if (aff.isPrimaryOrBackup(ignite(0).cluster().localNode(), key))


[41/50] [abbrv] ignite git commit: IGNITE-264 - Enhanced error message.

Posted by ag...@apache.org.
IGNITE-264 - Enhanced error message.


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

Branch: refs/heads/ignite-264
Commit: 7dc3309cafcf9edea82433ed0bc5f152e744534b
Parents: c29fe34
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Thu Aug 27 11:57:04 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Thu Aug 27 11:57:04 2015 -0700

----------------------------------------------------------------------
 .../processors/cache/distributed/dht/GridPartitionedGetFuture.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/7dc3309c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
index 6e39672..247e5fd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
@@ -278,7 +278,7 @@ public class GridPartitionedGetFuture<K, V> extends GridCompoundIdentityFuture<M
     ) {
         if (CU.affinityNodes(cctx, topVer).isEmpty()) {
             onDone(new ClusterTopologyServerNotFoundException("Failed to map keys for cache " +
-                "(all partition nodes left the grid)."));
+                "(all partition nodes left the grid) [topVer=" + topVer + ", cache=" + cctx.name() + ']'));
 
             return;
         }


[07/50] [abbrv] ignite git commit: Merge branch sprint-3 into ignite-264

Posted by ag...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTransactionalCache.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTransactionalCache.java
index 8f4700f,71e173b..9a0044f
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTransactionalCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTransactionalCache.java
@@@ -298,7 -303,10 +299,7 @@@ public class GridNearTransactionalCache
                                          req.taskNameHash()
                                      );
  
-                                     tx = ctx.tm().onCreated(tx);
 -                                    if (req.groupLock())
 -                                        tx.groupLockKey(txKey);
 -
+                                     tx = ctx.tm().onCreated(null, tx);
  
                                      if (tx == null || !ctx.tm().onStarted(tx))
                                          throw new IgniteTxRollbackCheckedException("Failed to acquire lock " +
@@@ -661,12 -669,17 +661,12 @@@
              if (map == null || map.isEmpty())
                  return;
  
-             for (Map.Entry<ClusterNode, GridNearUnlockRequest<K, V>> mapping : map.entrySet()) {
 -            Collection<GridCacheVersion> committed = ctx.tm().committedVersions(ver);
 -            Collection<GridCacheVersion> rolledback = ctx.tm().rolledbackVersions(ver);
 -
+             for (Map.Entry<ClusterNode, GridNearUnlockRequest> mapping : map.entrySet()) {
                  ClusterNode n = mapping.getKey();
  
-                 GridDistributedUnlockRequest<K, V> req = mapping.getValue();
+                 GridDistributedUnlockRequest req = mapping.getValue();
  
-                 if (!F.isEmpty(req.keyBytes()) || !F.isEmpty(req.keys())) {
+                 if (!F.isEmpty(req.keys())) {
 -                    req.completedVersions(committed, rolledback);
 -
                      // We don't wait for reply to this message.
                      ctx.io().send(n, req, ctx.ioPolicy());
                  }

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
index e6930d0,5d1a306..a995d47
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
@@@ -21,9 -21,9 +21,10 @@@ import org.apache.ignite.*
  import org.apache.ignite.cluster.*;
  import org.apache.ignite.internal.*;
  import org.apache.ignite.internal.cluster.*;
+ import org.apache.ignite.internal.processors.affinity.*;
  import org.apache.ignite.internal.processors.cache.*;
  import org.apache.ignite.internal.processors.cache.distributed.*;
 +import org.apache.ignite.internal.processors.cache.distributed.dht.*;
  import org.apache.ignite.internal.processors.cache.transactions.*;
  import org.apache.ignite.internal.processors.cache.version.*;
  import org.apache.ignite.internal.transactions.*;
@@@ -356,100 -321,11 +350,100 @@@ public final class GridNearTxFinishFutu
      }
  
      /**
 +     *
 +     */
 +    private void checkBackup() {
 +        assert mappings.size() <= 1;
 +
 +        for (UUID nodeId : mappings.keySet()) {
 +            Collection<UUID> backups = tx.transactionNodes().get(nodeId);
 +
 +            if (!F.isEmpty(backups)) {
 +                assert backups.size() == 1;
 +
 +                UUID backupId = F.first(backups);
 +
 +                ClusterNode backup = ctx.discovery().node(backupId);
 +
 +                // Nothing to do if backup has left the grid.
 +                if (backup == null)
 +                    return;
 +
 +                MiniFuture mini = new MiniFuture(backup);
 +
 +                add(mini);
 +
 +                GridDhtTxFinishRequest<K, V> finishReq = new GridDhtTxFinishRequest<>(
 +                    cctx.localNodeId(),
 +                    futureId(),
 +                    mini.futureId(),
 +                    tx.topologyVersion(),
 +                    tx.xidVersion(),
 +                    tx.commitVersion(),
 +                    tx.threadId(),
 +                    tx.isolation(),
 +                    true,
 +                    false,
 +                    tx.system(),
 +                    false,
 +                    true,
 +                    true,
 +                    0,
 +                    null,
 +                    0);
 +
 +                finishReq.checkCommitted(true);
 +
 +                try {
 +                    cctx.io().send(backup, finishReq, tx.ioPolicy());
 +                }
 +                catch (ClusterTopologyCheckedException e) {
 +                    mini.onResult(e);
 +                }
 +                catch (IgniteCheckedException e) {
 +                    mini.onResult(e);
 +                }
 +            }
 +        }
 +    }
 +
 +    /**
 +     *
 +     */
 +    private boolean needFinishOnePhase() {
 +        for (Integer cacheId : tx.activeCacheIds()) {
 +            GridCacheContext<K, V> cacheCtx = cctx.cacheContext(cacheId);
 +
 +            if (cacheCtx.isNear())
 +                return true;
 +        }
 +
 +        return false;
 +    }
 +
 +    /**
 +     *
 +     */
 +    private void finishOnePhase() {
 +        // No need to send messages as transaction was already committed on remote node.
 +        // Finish local mapping only as we need send commit message to backups.
-         for (GridDistributedTxMapping<K, V> m : mappings.values()) {
++        for (GridDistributedTxMapping m : mappings.values()) {
 +            if (m.node().isLocal()) {
 +                IgniteInternalFuture<IgniteInternalTx> fut = cctx.tm().txHandler().finishColocatedLocal(commit, tx);
 +
 +                // Add new future.
 +                if (fut != null)
 +                    add(fut);
 +            }
 +        }
 +    }
 +
 +    /**
       * @param mappings Mappings.
       */
-     private void finish(Iterable<GridDistributedTxMapping<K, V>> mappings) {
+     private void finish(Iterable<GridDistributedTxMapping> mappings) {
          // Create mini futures.
-         for (GridDistributedTxMapping<K, V> m : mappings)
+         for (GridDistributedTxMapping m : mappings)
              finish(m);
      }
  
@@@ -536,24 -416,12 +531,15 @@@
  
          /** Keys. */
          @GridToStringInclude
-         private GridDistributedTxMapping<K, V> m;
+         private GridDistributedTxMapping m;
  
 +        /** Backup check flag. */
 +        private ClusterNode backup;
 +
          /**
-          * Empty constructor required for {@link Externalizable}.
-          */
-         public MiniFuture() {
-             // No-op.
-         }
- 
-         /**
           * @param m Mapping.
           */
-         MiniFuture(GridDistributedTxMapping<K, V> m) {
-             super(cctx.kernalContext());
- 
+         MiniFuture(GridDistributedTxMapping m) {
              this.m = m;
          }
  
@@@ -614,9 -471,7 +600,9 @@@
          /**
           * @param res Result callback.
           */
-         void onResult(GridNearTxFinishResponse<K, V> res) {
+         void onResult(GridNearTxFinishResponse res) {
 +            assert backup == null;
 +
              if (res.error() != null)
                  onDone(res.error());
              else

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
index 6ebcb59,7b0b811..10c19e8
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
@@@ -83,11 -89,15 +86,23 @@@ public class GridNearTxFinishRequest ex
          boolean syncRollback,
          boolean explicitLock,
          boolean storeEnabled,
-         long topVer,
 -        @NotNull AffinityTopologyVersion topVer,
 -        GridCacheVersion baseVer,
 -        Collection<GridCacheVersion> committedVers,
 -        Collection<GridCacheVersion> rolledbackVers,
++        AffinityTopologyVersion topVer,
          int txSize,
          @Nullable UUID subjId,
          int taskNameHash) {
-         super(xidVer, futId, null, threadId, commit, invalidate, sys, syncCommit, syncRollback, txSize);
 -        super(xidVer, futId, null, threadId, commit, invalidate, sys, plc, syncCommit, syncRollback, baseVer,
 -            committedVers, rolledbackVers, txSize, null);
++        super(
++            xidVer, 
++            futId, 
++            null, 
++            threadId, 
++            commit, 
++            invalidate, 
++            sys,
++            plc,
++            syncCommit, 
++            syncRollback, 
++            txSize
++        );
  
          this.explicitLock = explicitLock;
          this.storeEnabled = storeEnabled;

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index b6bc993,1db4902..b411b99
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@@ -83,11 -80,8 +80,11 @@@ public class GridNearTxLocal extends Gr
      private boolean colocatedLocallyMapped;
  
      /** Info for entries accessed locally in optimistic transaction. */
-     private Map<IgniteTxKey<K>, IgniteCacheExpiryPolicy> accessMap;
+     private Map<IgniteTxKey, IgniteCacheExpiryPolicy> accessMap;
  
 +    /** */
 +    private boolean needCheckBackup;
 +
      /**
       * Empty constructor required for {@link Externalizable}.
       */
@@@ -134,10 -134,13 +133,12 @@@
              timeout,
              invalidate,
              storeEnabled,
 +            false,
              txSize,
 -            grpLockKey,
 -            partLock,
              subjId,
              taskNameHash);
+ 
+         initResult();
      }
  
      /** {@inheritDoc} */
@@@ -276,7 -269,10 +281,7 @@@
      }
  
      /** {@inheritDoc} */
-     @Override public Collection<IgniteTxEntry<K, V>> optimisticLockEntries() {
+     @Override public Collection<IgniteTxEntry> optimisticLockEntries() {
 -        if (groupLock())
 -            return super.optimisticLockEntries();
 -
          return optimisticLockEntries;
      }
  
@@@ -547,13 -549,22 +551,13 @@@
  
      /**
       * @param mapping Mapping to order.
 -     * @param pendingVers Pending versions.
 -     * @param committedVers Committed versions.
 -     * @param rolledbackVers Rolled back versions.
       */
-     void readyNearLocks(GridDistributedTxMapping<K, V> mapping) {
-         Collection<IgniteTxEntry<K, V>> entries = F.concat(false, mapping.reads(), mapping.writes());
 -    void readyNearLocks(GridDistributedTxMapping mapping,
 -        Collection<GridCacheVersion> pendingVers,
 -        Collection<GridCacheVersion> committedVers,
 -        Collection<GridCacheVersion> rolledbackVers)
 -    {
 -        Collection<IgniteTxEntry> entries = groupLock() ?
 -            Collections.singletonList(groupLockEntry()) :
 -            F.concat(false, mapping.reads(), mapping.writes());
++    void readyNearLocks(GridDistributedTxMapping mapping) {
++        Collection<IgniteTxEntry> entries = F.concat(false, mapping.reads(), mapping.writes());
  
-         for (IgniteTxEntry<K, V> txEntry : entries) {
+         for (IgniteTxEntry txEntry : entries) {
              while (true) {
-                 GridCacheContext<K, V> cacheCtx = txEntry.cached().context();
+                 GridCacheContext cacheCtx = txEntry.cached().context();
  
                  assert cacheCtx.isNear();
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareFuture.java
index d43e409,4d70afb..b7cdbb5
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareFuture.java
@@@ -196,12 -189,7 +189,12 @@@ public final class GridNearTxPrepareFut
       * @param mappings Remaining mappings.
       * @param e Error.
       */
-     void onError(@Nullable UUID nodeId, @Nullable Iterable<GridDistributedTxMapping<K, V>> mappings, Throwable e) {
+     void onError(@Nullable UUID nodeId, @Nullable Iterable<GridDistributedTxMapping> mappings, Throwable e) {
 +        if (X.hasCause(e, ClusterTopologyCheckedException.class) || X.hasCause(e, ClusterTopologyException.class)) {
 +            if (tx.onePhaseCommit())
 +                tx.markForBackupCheck();
 +        }
 +
          if (err.compareAndSet(null, e)) {
              boolean marked = tx.setRollbackOnly();
  
@@@ -441,30 -430,32 +435,26 @@@
      private void prepare0() {
          assert tx.optimistic();
  
 -        try {
 -            prepare(
 -                tx.optimistic() && tx.serializable() ? tx.readEntries() : Collections.<IgniteTxEntry>emptyList(),
 -                tx.writeEntries());
 +        prepare(
-             tx.optimistic() && tx.serializable() ? tx.readEntries() : Collections.<IgniteTxEntry<K, V>>emptyList(),
++            tx.optimistic() && tx.serializable() ? tx.readEntries() : Collections.<IgniteTxEntry>emptyList(),
 +            tx.writeEntries());
  
 -            markInitialized();
 -        }
 -        catch (IgniteCheckedException e) {
 -            onDone(e);
 -        }
 +        markInitialized();
      }
  
      /**
       * @param reads Read entries.
       * @param writes Write entries.
 -     * @throws IgniteCheckedException If transaction is group-lock and some key was mapped to to the local node.
       */
      private void prepare(
-         Iterable<IgniteTxEntry<K, V>> reads,
-         Iterable<IgniteTxEntry<K, V>> writes
+         Iterable<IgniteTxEntry> reads,
+         Iterable<IgniteTxEntry> writes
 -    ) throws IgniteCheckedException {
 +    ) {
          assert tx.optimistic();
  
-         GridDiscoveryTopologySnapshot snapshot = tx.topologySnapshot();
- 
-         assert snapshot != null;
- 
-         long topVer = snapshot.topologyVersion();
+         AffinityTopologyVersion topVer = tx.topologyVersion();
  
-         assert topVer > 0;
+         assert topVer.topologyVersion() > 0;
  
          txMapping = new GridDhtTxMapping<>();
  
@@@ -739,15 -737,16 +729,15 @@@
       * @param entry Transaction entry.
       * @param topVer Topology version.
       * @param cur Current mapping.
 -     * @throws IgniteCheckedException If transaction is group-lock and local node is not primary for key.
       * @return Mapping.
       */
-     private GridDistributedTxMapping<K, V> map(
-         IgniteTxEntry<K, V> entry,
-         long topVer,
-         GridDistributedTxMapping<K, V> cur,
+     private GridDistributedTxMapping map(
+         IgniteTxEntry entry,
+         AffinityTopologyVersion topVer,
+         GridDistributedTxMapping cur,
          boolean waitLock
 -    ) throws IgniteCheckedException {
 +    ) {
-         GridCacheContext<K, V> cacheCtx = entry.context();
+         GridCacheContext cacheCtx = entry.context();
  
          List<ClusterNode> nodes = cacheCtx.affinity().nodes(entry.key(), topVer);
  
@@@ -763,17 -762,23 +753,17 @@@
                  ", primary=" + U.toShortString(primary) + ", topVer=" + topVer + ']');
          }
  
 -        if (tx.groupLock() && !primary.isLocal())
 -            throw new IgniteCheckedException("Failed to prepare group lock transaction (local node is not primary for " +
 -                " key)[key=" + entry.key() + ", primaryNodeId=" + primary.id() + ']');
 -
          // Must re-initialize cached entry while holding topology lock.
          if (cacheCtx.isNear())
-             entry.cached(cacheCtx.nearTx().entryExx(entry.key(), topVer), entry.keyBytes());
+             entry.cached(cacheCtx.nearTx().entryExx(entry.key(), topVer));
          else if (!cacheCtx.isLocal())
-             entry.cached(cacheCtx.colocated().entryExx(entry.key(), topVer, true), entry.keyBytes());
+             entry.cached(cacheCtx.colocated().entryExx(entry.key(), topVer, true));
          else
-             entry.cached(cacheCtx.local().entryEx(entry.key(), topVer), entry.keyBytes());
+             entry.cached(cacheCtx.local().entryEx(entry.key(), topVer));
  
          if (cacheCtx.isNear() || cacheCtx.isLocal()) {
 -            if (waitLock && entry.explicitVersion() == null) {
 -                if (!tx.groupLock() || tx.groupLockKey().equals(entry.txKey()))
 -                    lockKeys.add(entry.txKey());
 -            }
 +            if (waitLock && entry.explicitVersion() == null)
 +                lockKeys.add(entry.txKey());
          }
  
          if (cur == null || !cur.node().id().equals(primary.id()) || cur.near() != cacheCtx.isNear()) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
index 66653ad,846022c..f345e65
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
@@@ -93,10 -96,12 +94,10 @@@ public class GridNearTxPrepareRequest e
       */
      public GridNearTxPrepareRequest(
          IgniteUuid futId,
-         long topVer,
-         IgniteInternalTx<K, V> tx,
-         Collection<IgniteTxEntry<K, V>> reads,
-         Collection<IgniteTxEntry<K, V>> writes,
+         AffinityTopologyVersion topVer,
+         IgniteInternalTx tx,
+         Collection<IgniteTxEntry> reads,
+         Collection<IgniteTxEntry> writes,
 -        IgniteTxKey grpLockKey,
 -        boolean partLock,
          boolean near,
          Map<UUID, Collection<UUID>> txNodes,
          boolean last,

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
index a119288,2456674..ded5409
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
@@@ -310,8 -359,14 +336,8 @@@ public class GridNearTxPrepareResponse 
  
                  writer.incrementState();
  
-             case 14:
-                 if (!writer.writeByteArray("retValBytes", retValBytes))
 -            case 17:
 -                if (!writer.writeCollection("pending", pending, MessageCollectionItemType.MSG))
 -                    return false;
 -
 -                writer.incrementState();
 -
+             case 18:
+                 if (!writer.writeMessage("retVal", retVal))
                      return false;
  
                  writer.incrementState();
@@@ -380,8 -443,16 +414,8 @@@
  
                  reader.incrementState();
  
-             case 14:
-                 retValBytes = reader.readByteArray("retValBytes");
 -            case 17:
 -                pending = reader.readCollection("pending", MessageCollectionItemType.MSG);
 -
 -                if (!reader.isLastRead())
 -                    return false;
 -
 -                reader.incrementState();
 -
+             case 18:
+                 retVal = reader.readMessage("retVal");
  
                  if (!reader.isLastRead())
                      return false;

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxRemote.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxRemote.java
index fd0105e,9969f65..c3a5b1d
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxRemote.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxRemote.java
@@@ -51,8 -52,11 +52,8 @@@ public class GridNearTxRemote extends G
      private GridCacheVersion nearXidVer;
  
      /** Owned versions. */
-     private Map<IgniteTxKey<K>, GridCacheVersion> owned;
+     private Map<IgniteTxKey, GridCacheVersion> owned;
  
 -    /** Group lock flag. */
 -    private boolean grpLock;
 -
      /**
       * Empty constructor required for {@link Externalizable}.
       */
@@@ -92,13 -98,14 +94,27 @@@
          TransactionIsolation isolation,
          boolean invalidate,
          long timeout,
-         Collection<IgniteTxEntry<K, V>> writeEntries,
+         Collection<IgniteTxEntry> writeEntries,
          int txSize,
 -        @Nullable IgniteTxKey grpLockKey,
          @Nullable UUID subjId,
          int taskNameHash
      ) throws IgniteCheckedException {
-         super(ctx, nodeId, rmtThreadId, xidVer, commitVer, sys, concurrency, isolation, invalidate, timeout, txSize,
-             subjId, taskNameHash);
 -        super(ctx, nodeId, rmtThreadId, xidVer, commitVer, sys, plc, concurrency, isolation, invalidate, timeout,
 -            txSize, grpLockKey, subjId, taskNameHash);
++        super(
++            ctx, 
++            nodeId, 
++            rmtThreadId, 
++            xidVer, 
++            commitVer, 
++            sys, 
++            plc, 
++            concurrency, 
++            isolation, 
++            invalidate, 
++            timeout, 
++            txSize,
++            subjId, 
++            taskNameHash
++        );
  
          assert nearNodeId != null;
  
@@@ -133,9 -141,10 +150,9 @@@
       * @param timeout Timeout.
       * @param ctx Cache registry.
       * @param txSize Expected transaction size.
 -     * @param grpLockKey Collection of group lock keys if this is a group-lock transaction.
       */
      public GridNearTxRemote(
-         GridCacheSharedContext<K, V> ctx,
+         GridCacheSharedContext ctx,
          UUID nodeId,
          UUID nearNodeId,
          GridCacheVersion nearXidVer,
@@@ -151,8 -161,9 +169,22 @@@
          @Nullable UUID subjId,
          int taskNameHash
      ) {
-         super(ctx, nodeId, rmtThreadId, xidVer, commitVer, sys, concurrency, isolation, invalidate, timeout, txSize,
-             subjId, taskNameHash);
 -        super(ctx, nodeId, rmtThreadId, xidVer, commitVer, sys, plc, concurrency, isolation, invalidate, timeout,
 -            txSize, grpLockKey, subjId, taskNameHash);
++        super(
++            ctx, 
++            nodeId, 
++            rmtThreadId, 
++            xidVer, 
++            commitVer,
++            sys,
++            plc,
++            concurrency, 
++            isolation, 
++            invalidate, 
++            timeout, 
++            txSize,
++            subjId, 
++            taskNameHash
++        );
  
          assert nearNodeId != null;
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearUnlockRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTransactionsImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
index e11a5b2,acd3202..90b5ee8
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
@@@ -227,9 -232,10 +230,9 @@@ public abstract class IgniteTxAdapter e
       * @param isolation Isolation.
       * @param timeout Timeout.
       * @param txSize Transaction size.
 -     * @param grpLockKey Group lock key if this is group-lock transaction.
       */
      protected IgniteTxAdapter(
-         GridCacheSharedContext<K, V> cctx,
+         GridCacheSharedContext<?, ?> cctx,
          GridCacheVersion xidVer,
          boolean implicit,
          boolean implicitSingle,
@@@ -284,9 -293,10 +290,9 @@@
       * @param isolation Isolation.
       * @param timeout Timeout.
       * @param txSize Transaction size.
 -     * @param grpLockKey Group lock key if this is group-lock transaction.
       */
      protected IgniteTxAdapter(
-         GridCacheSharedContext<K, V> cctx,
+         GridCacheSharedContext<?, ?> cctx,
          UUID nodeId,
          GridCacheVersion xidVer,
          GridCacheVersion startVer,
@@@ -360,8 -385,31 +379,8 @@@
      }
  
      /** {@inheritDoc} */
-     @Override public Collection<IgniteTxEntry<K, V>> optimisticLockEntries() {
+     @Override public Collection<IgniteTxEntry> optimisticLockEntries() {
 -        if (!groupLock())
 -            return writeEntries();
 -        else {
 -            if (!F.isEmpty(invalidParts)) {
 -                assert invalidParts.size() == 1 : "Only one partition expected for group lock transaction " +
 -                    "[tx=" + this + ", invalidParts=" + invalidParts + ']';
 -                assert groupLockEntry() == null : "Group lock key should be rejected " +
 -                    "[tx=" + this + ", groupLockEntry=" + groupLockEntry() + ']';
 -                assert F.isEmpty(writeMap()) : "All entries should be rejected for group lock transaction " +
 -                    "[tx=" + this + ", writes=" + writeMap() + ']';
 -
 -                return Collections.emptyList();
 -            }
 -
 -            IgniteTxEntry grpLockEntry = groupLockEntry();
 -
 -            assert grpLockEntry != null || (near() && !local()):
 -                "Group lock entry was not enlisted into transaction [tx=" + this +
 -                ", grpLockKey=" + groupLockKey() + ']';
 -
 -            return grpLockEntry == null ?
 -                Collections.<IgniteTxEntry>emptyList() :
 -                Collections.singletonList(grpLockEntry);
 -        }
 +        return writeEntries();
      }
  
      /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
index 22d8cf9,95d3527..c3e734c
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
@@@ -82,11 -75,9 +75,12 @@@ public class IgniteTxEntry implements G
  
      /** Transform. */
      @GridToStringInclude
-     private Collection<T2<EntryProcessor<K, V, ?>, Object[]>> entryProcessorsCol;
+     @GridDirectTransient
+     private Collection<T2<EntryProcessor<Object, Object, Object>, Object[]>> entryProcessorsCol;
  
 +    /** Transient field for calculated entry processor value. */
 +    private V entryProcessorCalcVal;
 +
      /** Transform closure bytes. */
      @GridToStringExclude
      private byte[] transformClosBytes;
@@@ -131,15 -129,18 +132,15 @@@
      private transient boolean locked;
  
      /** Assigned node ID (required only for partitioned cache). */
-     private transient UUID nodeId;
+     @GridDirectTransient
+     private UUID nodeId;
  
      /** Flag if this node is a back up node. */
+     @GridDirectTransient
      private boolean locMapped;
  
-     /** Deployment enabled flag. */
-     private boolean depEnabled;
 -    /** Group lock entry flag. */
 -    private boolean grpLock;
--
      /** Expiry policy. */
+     @GridDirectTransient
      private ExpiryPolicy expiryPlc;
  
      /** Expiry policy transfer flag. */
@@@ -283,7 -296,7 +280,6 @@@
          cp.ttl = ttl;
          cp.conflictExpireTime = conflictExpireTime;
          cp.explicitVer = explicitVer;
-         cp.depEnabled = depEnabled;
 -        cp.grpLock = grpLock;
          cp.conflictVer = conflictVer;
          cp.expiryPlc = expiryPlc;
  
@@@ -831,89 -764,87 +747,81 @@@
      }
  
      /** {@inheritDoc} */
-     @Override public void writeExternal(ObjectOutput out) throws IOException {
-         out.writeBoolean(depEnabled);
+     @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
+         writer.setBuffer(buf);
  
-         if (depEnabled) {
-             U.writeByteArray(out, keyBytes);
-             U.writeByteArray(out, transformClosBytes);
-             U.writeByteArray(out, filterBytes);
-         }
-         else {
-             out.writeObject(key);
-             U.writeCollection(out, entryProcessorsCol);
-             U.writeArray(out, filters);
+         if (!writer.isHeaderWritten()) {
+             if (!writer.writeHeader(directType(), fieldsCount()))
+                 return false;
+ 
+             writer.onHeaderWritten();
          }
  
-         out.writeInt(cacheId);
+         switch (writer.state()) {
+             case 0:
+                 if (!writer.writeInt("cacheId", cacheId))
+                     return false;
  
-         val.writeTo(out);
+                 writer.incrementState();
  
-         out.writeLong(ttl);
+             case 1:
+                 if (!writer.writeLong("conflictExpireTime", conflictExpireTime))
+                     return false;
  
-         CU.writeVersion(out, explicitVer);
+                 writer.incrementState();
  
-         if (conflictExpireTime != CU.EXPIRE_TIME_CALCULATE) {
-             out.writeBoolean(true);
-             out.writeLong(conflictExpireTime);
-         }
-         else
-             out.writeBoolean(false);
+             case 2:
+                 if (!writer.writeMessage("conflictVer", conflictVer))
+                     return false;
  
-         CU.writeVersion(out, conflictVer);
+                 writer.incrementState();
  
-         out.writeObject(transferExpiryPlc ? new IgniteExternalizableExpiryPolicy(expiryPlc) : null);
-     }
+             case 3:
+                 if (!writer.writeByteArray("expiryPlcBytes", expiryPlcBytes))
+                     return false;
  
-     /** {@inheritDoc} */
-     @SuppressWarnings({"unchecked"})
-     @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-         depEnabled = in.readBoolean();
- 
-         if (depEnabled) {
-             keyBytes = U.readByteArray(in);
-             transformClosBytes = U.readByteArray(in);
-             filterBytes = U.readByteArray(in);
-         }
-         else {
-             key = (K)in.readObject();
-             entryProcessorsCol = U.readCollection(in);
-             filters = GridCacheUtils.readEntryFilterArray(in);
-         }
+                 writer.incrementState();
  
-         cacheId = in.readInt();
+             case 4:
+                 if (!writer.writeMessage("explicitVer", explicitVer))
+                     return false;
  
-         val.readFrom(in);
+                 writer.incrementState();
  
-         ttl = in.readLong();
+             case 5:
+                 if (!writer.writeObjectArray("filters",
+                     !F.isEmptyOrNulls(filters) ? filters : null, MessageCollectionItemType.MSG))
+                     return false;
  
-         explicitVer = CU.readVersion(in);
+                 writer.incrementState();
  
-         conflictExpireTime = in.readBoolean() ? in.readLong() : CU.EXPIRE_TIME_CALCULATE;
-         conflictVer = CU.readVersion(in);
 -            case 6:
 -                if (!writer.writeBoolean("grpLock", grpLock))
 -                    return false;
 -
 -                writer.incrementState();
 -
+             case 7:
+                 if (!writer.writeMessage("key", key))
+                     return false;
  
-         expiryPlc = (ExpiryPolicy)in.readObject();
-     }
+                 writer.incrementState();
  
-     /** {@inheritDoc} */
-     @Override public Object ggClassId() {
-         return GG_CLASS_ID;
-     }
+             case 8:
+                 if (!writer.writeByteArray("transformClosBytes", transformClosBytes))
+                     return false;
  
-     /** {@inheritDoc} */
-     @Override public Class<?> deployClass() {
-         ClassLoader clsLdr = getClass().getClassLoader();
+                 writer.incrementState();
  
-         V val = value();
+             case 9:
+                 if (!writer.writeLong("ttl", ttl))
+                     return false;
  
-         // First of all check classes that may be loaded by class loader other than application one.
-         return key != null && !clsLdr.equals(key.getClass().getClassLoader()) ?
-             key.getClass() : val != null ? val.getClass() : getClass();
-     }
+                 writer.incrementState();
  
-     /** {@inheritDoc} */
-     @Override public ClassLoader classLoader() {
-         return deployClass().getClassLoader();
+             case 10:
+                 if (!writer.writeMessage("val", val))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+         }
+ 
+         return true;
      }
  
      /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index ca58d6b,da30a94..8e0380c
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@@ -409,32 -409,17 +409,32 @@@ public class IgniteTxHandler 
          assert nodeId != null;
          assert res != null;
  
 -        GridDhtTxFinishFuture fut = (GridDhtTxFinishFuture)ctx.mvcc().<IgniteInternalTx>future(res.xid(),
 -            res.futureId());
 +        if (res.checkCommitted()) {
-             GridNearTxFinishFuture<K, V> fut = (GridNearTxFinishFuture<K, V>)ctx.mvcc().<IgniteInternalTx>future(
++            GridNearTxFinishFuture fut = (GridNearTxFinishFuture)ctx.mvcc().<IgniteInternalTx>future(
 +                res.xid(), res.futureId());
  
 -        if (fut == null) {
 -            if (log.isDebugEnabled())
 -                log.debug("Received response for unknown future (will ignore): " + res);
 +            if (fut == null) {
 +                if (log.isDebugEnabled())
 +                    log.debug("Received response for unknown future (will ignore): " + res);
  
 -            return;
 +                return;
 +            }
 +
 +            fut.onResult(nodeId, res);
          }
 +        else {
-             GridDhtTxFinishFuture<K, V> fut = (GridDhtTxFinishFuture<K, V>)ctx.mvcc().<IgniteInternalTx>future(
++            GridDhtTxFinishFuture fut = (GridDhtTxFinishFuture)ctx.mvcc().<IgniteInternalTx>future(
 +                res.xid(), res.futureId());
  
 -        fut.onResult(nodeId, res);
 +            if (fut == null) {
 +                if (log.isDebugEnabled())
 +                    log.debug("Received response for unknown future (will ignore): " + res);
 +
 +                return;
 +            }
 +
 +            fut.onResult(nodeId, res);
 +        }
      }
  
      /**
@@@ -756,9 -758,9 +756,9 @@@
              finish(nodeId, nearTx, req);
  
          if (dhtTx != null && !dhtTx.done()) {
-             dhtTx.finishFuture().listenAsync(new CI1<IgniteInternalFuture<IgniteInternalTx>>() {
+             dhtTx.finishFuture().listen(new CI1<IgniteInternalFuture<IgniteInternalTx>>() {
                  @Override public void apply(IgniteInternalFuture<IgniteInternalTx> igniteTxIgniteFuture) {
 -                    sendReply(nodeId, req);
 +                    sendReply(nodeId, req, true);
                  }
              });
          }
@@@ -870,17 -873,9 +870,17 @@@
       * @param nodeId Node id that originated finish request.
       * @param req Request.
       */
-     protected void sendReply(UUID nodeId, GridDhtTxFinishRequest<K, V> req, boolean committed) {
 -    protected void sendReply(UUID nodeId, GridDhtTxFinishRequest req) {
++    protected void sendReply(UUID nodeId, GridDhtTxFinishRequest req, boolean committed) {
          if (req.replyRequired()) {
-             GridDhtTxFinishResponse<K, V> res = new GridDhtTxFinishResponse<>(req.version(), req.futureId(), req.miniId());
 -            GridCacheMessage res = new GridDhtTxFinishResponse(req.version(), req.futureId(), req.miniId());
++            GridDhtTxFinishResponse res = new GridDhtTxFinishResponse(req.version(), req.futureId(), req.miniId());
 +
 +            if (req.checkCommitted()) {
 +                res.checkCommitted(true);
 +
 +                if (!committed)
 +                    res.checkCommittedError(new IgniteTxRollbackCheckedException("Failed to commit transaction " +
 +                        "(transaction has been rolled back on backup node): " + req.version()));
 +            }
  
              try {
                  ctx.io().send(nodeId, res, req.system() ? UTILITY_CACHE_POOL : SYSTEM_POOL);
@@@ -1090,64 -1083,15 +1092,64 @@@
       * @param nodeId Node ID.
       * @param req Request.
       */
 -    protected void processCheckPreparedTxRequest(UUID nodeId, GridCacheOptimisticCheckPreparedTxRequest req) {
 +    protected void processCheckPreparedTxRequest(
 +        final UUID nodeId,
-         final GridCacheOptimisticCheckPreparedTxRequest<K, V> req
++        final GridCacheOptimisticCheckPreparedTxRequest req
 +    ) {
          if (log.isDebugEnabled())
              log.debug("Processing check prepared transaction requests [nodeId=" + nodeId + ", req=" + req + ']');
  
 -        boolean prepared = ctx.tm().txsPreparedOrCommitted(req.nearXidVersion(), req.transactions());
 +        if (req.nearCheck()) {
 +            IgniteInternalFuture<Boolean> fut = ctx.tm().nearTxCommitted(req.nearXidVersion());
 +
-             fut.listenAsync(new CI1<IgniteInternalFuture<Boolean>>() {
++            fut.listen(new CI1<IgniteInternalFuture<Boolean>>() {
 +                @Override public void apply(IgniteInternalFuture<Boolean> f) {
 +                    try {
 +                        boolean prepared = f.get();
  
 -        GridCacheOptimisticCheckPreparedTxResponse res =
 -            new GridCacheOptimisticCheckPreparedTxResponse(req.version(), req.futureId(), req.miniId(), prepared);
 +                        sendCheckPrepareTxResponse(nodeId,
 +                            new GridCacheOptimisticCheckPreparedTxResponse<K, V>(
 +                                req.version(),
 +                                req.futureId(),
 +                                req.miniId(),
 +                                prepared),
 +                            req.system());
  
 +                    }
 +                    catch (IgniteCheckedException e) {
 +                        U.error(log, "Failed to wait for transaction check prepared future " +
 +                            "(will send rolled back response): " + req.nearXidVersion(), e);
 +
 +                        sendCheckPrepareTxResponse(nodeId,
 +                            new GridCacheOptimisticCheckPreparedTxResponse<K, V>(
 +                                req.version(),
 +                                req.futureId(),
 +                                req.miniId(),
 +                                false),
 +                            req.system());
 +                    }
 +                }
 +            });
 +        }
 +        else {
 +            boolean prepared = ctx.tm().txsPreparedOrCommitted(req.nearXidVersion(), req.transactions());
 +
 +            sendCheckPrepareTxResponse(nodeId,
-                 new GridCacheOptimisticCheckPreparedTxResponse<K, V>(req.version(), req.futureId(), req.miniId(), prepared),
++                new GridCacheOptimisticCheckPreparedTxResponse(req.version(), req.futureId(), req.miniId(), prepared),
 +                req.system());
 +        }
 +    }
 +
 +    /**
 +     * @param nodeId Node ID.
 +     * @param res Response to send.
 +     * @param sys System pool flag.
 +     */
 +    private void sendCheckPrepareTxResponse(
 +        UUID nodeId,
-         GridCacheOptimisticCheckPreparedTxResponse<K, V> res,
++        GridCacheOptimisticCheckPreparedTxResponse res,
 +        boolean sys
 +    ) {
          try {
              if (log.isDebugEnabled())
                  log.debug("Sending check prepared transaction response [nodeId=" + nodeId + ", res=" + res + ']');

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
index ca18a69,ca85838..55952c8
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
@@@ -108,9 -122,11 +110,9 @@@ public abstract class IgniteTxLocalAdap
       * @param isolation Isolation.
       * @param timeout Timeout.
       * @param txSize Expected transaction size.
 -     * @param grpLockKey Group lock key if this is a group-lock transaction.
 -     * @param partLock {@code True} if this is a group-lock transaction and lock is acquired for whole partition.
       */
      protected IgniteTxLocalAdapter(
-         GridCacheSharedContext<K, V> cctx,
+         GridCacheSharedContext cctx,
          GridCacheVersion xidVer,
          boolean implicit,
          boolean implicitSingle,
@@@ -125,8 -141,14 +128,24 @@@
          @Nullable UUID subjId,
          int taskNameHash
      ) {
-         super(cctx, xidVer, implicit, implicitSingle, /*local*/true, sys, concurrency, isolation, timeout, invalidate,
-             storeEnabled, onePhaseCommit, txSize, subjId, taskNameHash);
 -        super(cctx, xidVer, implicit, implicitSingle, /*local*/true, sys, plc, concurrency, isolation, timeout,
 -            invalidate, storeEnabled, txSize, grpLockKey, subjId, taskNameHash);
 -
 -        assert !partLock || grpLockKey != null;
 -
 -        this.partLock = partLock;
++        super(
++            cctx, 
++            xidVer, 
++            implicit, 
++            implicitSingle, 
++            /*local*/true, 
++            sys, 
++            plc,
++            concurrency, 
++            isolation, 
++            timeout,
++            invalidate,
++            storeEnabled, 
++            onePhaseCommit, 
++            txSize, 
++            subjId, 
++            taskNameHash
++        );
  
          minVer = xidVer;
      }
@@@ -456,16 -491,16 +483,16 @@@
       * @throws IgniteCheckedException If batch update failed.
       */
      @SuppressWarnings({"CatchGenericClass"})
-     protected void batchStoreCommit(Iterable<IgniteTxEntry<K, V>> writeEntries) throws IgniteCheckedException {
-         GridCacheStoreManager<K, V> store = store();
+     protected void batchStoreCommit(Iterable<IgniteTxEntry> writeEntries) throws IgniteCheckedException {
+         GridCacheStoreManager store = store();
  
          if (store != null && store.writeThrough() && storeEnabled() &&
 -            (!internal() || groupLock()) && (near() || store.writeToStoreFromDht())) {
 +            !internal() && (near() || store.writeToStoreFromDht())) {
              try {
                  if (writeEntries != null) {
-                     Map<K, IgniteBiTuple<V, GridCacheVersion>> putMap = null;
-                     List<K> rmvCol = null;
-                     GridCacheStoreManager<K, V> writeStore = null;
+                     Map<Object, IgniteBiTuple<Object, GridCacheVersion>> putMap = null;
+                     List<Object> rmvCol = null;
+                     GridCacheStoreManager writeStore = null;
  
                      boolean skipNear = near() && store.writeToStoreFromDht();
  
@@@ -951,9 -981,9 +970,9 @@@
              }
          }
          else {
-             GridCacheStoreManager<K, V> store = store();
+             GridCacheStoreManager store = store();
  
 -            if (store != null && (!internal() || groupLock())) {
 +            if (store != null && !internal()) {
                  try {
                      store.txEnd(this, true);
                  }
@@@ -1013,10 -1086,10 +1032,10 @@@
  
                  cctx.tm().rollbackTx(this);
  
-                 GridCacheStoreManager<K, V> store = store();
+                 GridCacheStoreManager store = store();
  
                  if (store != null && (near() || store.writeToStoreFromDht())) {
 -                    if (!internal() || groupLock())
 +                    if (!internal())
                          store.txEnd(this, false);
                  }
              }
@@@ -1062,11 -1137,13 +1083,11 @@@
  
          cacheCtx.checkSecurity(GridSecurityPermission.CACHE_READ);
  
 -        groupLockSanityCheck(cacheCtx, keys);
 -
          boolean single = keysCnt == 1;
  
-         Collection<K> lockKeys = null;
+         Collection<KeyCacheObject> lockKeys = null;
  
-         long topVer = topologyVersion();
+         AffinityTopologyVersion topVer = topologyVersion();
  
          // In this loop we cover only read-committed or optimistic transactions.
          // Transactions that are pessimistic and not read-committed are covered
@@@ -1092,17 -1166,11 +1110,11 @@@
                      if (!F.isEmpty(txEntry.entryProcessors()))
                          val = txEntry.applyEntryProcessors(val);
  
-                     if (val != null) {
-                         V val0 = val;
- 
-                         if (cacheCtx.portableEnabled())
-                             val0 = (V)cacheCtx.unwrapPortableIfNeeded(val, !deserializePortable);
- 
-                         map.put(key, (V)CU.skipValue(val0, skipVals));
-                     }
+                     if (val != null)
+                         cacheCtx.addResult(map, key, val, skipVals, keepCacheObjects, deserializePortable, false);
                  }
                  else {
 -                    assert txEntry.op() == TRANSFORM || (groupLock() && !txEntry.groupLockEntry());
 +                    assert txEntry.op() == TRANSFORM;
  
                      while (true) {
                          try {
@@@ -1177,9 -1246,9 +1190,9 @@@
                      try {
                          GridCacheVersion ver = entry.version();
  
-                         V val = null;
+                         CacheObject val = null;
  
 -                        if (!pessimistic() || readCommitted() || groupLock() && !skipVals) {
 +                        if ((!pessimistic() || readCommitted()) && !skipVals) {
                              IgniteCacheExpiryPolicy accessPlc =
                                  optimistic() ? accessPolicy(cacheCtx, txKey, expiryPlc) : null;
  
@@@ -1336,159 -1411,182 +1352,181 @@@
          if (log.isDebugEnabled())
              log.debug("Loading missed values for missed map: " + missedMap);
  
-         final Collection<K> loaded = new HashSet<>();
- 
-         return new GridEmbeddedFuture<>(cctx.kernalContext(),
-             loadMissing(
-                 cacheCtx,
-                 true, false, missedMap.keySet(), deserializePortable, skipVals, new CI2<K, V>() {
-                 /** */
-                 private GridCacheVersion nextVer;
+         final Collection<KeyCacheObject> loaded = new HashSet<>();
  
-                 @Override public void apply(K key, V val) {
-                     if (isRollbackOnly()) {
-                         if (log.isDebugEnabled())
-                             log.debug("Ignoring loaded value for read because transaction was rolled back: " +
-                                 IgniteTxLocalAdapter.this);
+         return new GridEmbeddedFuture<>(
+             new C2<Boolean, Exception, Map<K, V>>() {
+                 @Override public Map<K, V> apply(Boolean b, Exception e) {
+                     if (e != null) {
+                         setRollbackOnly();
  
-                         return;
+                         throw new GridClosureException(e);
                      }
  
-                     GridCacheVersion ver = missedMap.get(key);
- 
-                     if (ver == null) {
-                         if (log.isDebugEnabled())
-                             log.debug("Value from storage was never asked for [key=" + key + ", val=" + val + ']');
+                     if (!b && !readCommitted()) {
+                         // There is no store - we must mark the entries.
+                         for (KeyCacheObject key : missedMap.keySet()) {
+                             IgniteTxEntry txEntry = entry(cacheCtx.txKey(key));
  
-                         return;
+                             if (txEntry != null)
+                                 txEntry.markValid();
+                         }
                      }
  
-                     V visibleVal = val;
+                     if (readCommitted()) {
+                         Collection<KeyCacheObject> notFound = new HashSet<>(missedMap.keySet());
  
-                     IgniteTxKey<K> txKey = cacheCtx.txKey(key);
+                         notFound.removeAll(loaded);
  
-                     IgniteTxEntry<K, V> txEntry = entry(txKey);
+                         // In read-committed mode touch entries that have just been read.
+                         for (KeyCacheObject key : notFound) {
+                             IgniteTxEntry txEntry = entry(cacheCtx.txKey(key));
  
-                     if (txEntry != null) {
-                         if (!readCommitted())
-                             txEntry.readValue(val);
+                             GridCacheEntryEx entry = txEntry == null ? cacheCtx.cache().peekEx(key) :
+                                 txEntry.cached();
  
-                         if (!F.isEmpty(txEntry.entryProcessors()))
-                             visibleVal = txEntry.applyEntryProcessors(visibleVal);
+                             if (entry != null)
+                                 cacheCtx.evicts().touch(entry, topologyVersion());
+                         }
                      }
  
-                     // In pessimistic mode we hold the lock, so filter validation
-                     // should always be valid.
-                     if (pessimistic())
-                         ver = null;
+                     return map;
+                 }
+             },
+             loadMissing(
+                 cacheCtx,
+                 true,
+                 false,
+                 missedMap.keySet(),
+                 deserializePortable,
+                 skipVals,
+                 new CI2<KeyCacheObject, Object>() {
+                     /** */
+                     private GridCacheVersion nextVer;
  
-                     // Initialize next version.
-                     if (nextVer == null)
-                         nextVer = cctx.versions().next(topologyVersion());
+                     @Override public void apply(KeyCacheObject key, Object val) {
+                         if (isRollbackOnly()) {
+                             if (log.isDebugEnabled())
+                                 log.debug("Ignoring loaded value for read because transaction was rolled back: " +
+                                     IgniteTxLocalAdapter.this);
  
-                     while (true) {
-                         assert txEntry != null || readCommitted() || skipVals;
+                             return;
+                         }
  
-                         GridCacheEntryEx<K, V> e = txEntry == null ? entryEx(cacheCtx, txKey) : txEntry.cached();
+                         GridCacheVersion ver = missedMap.get(key);
  
-                         try {
-                             // Must initialize to true since even if filter didn't pass,
-                             // we still record the transaction value.
-                             boolean set;
+                         if (ver == null) {
+                             if (log.isDebugEnabled())
+                                 log.debug("Value from storage was never asked for [key=" + key + ", val=" + val + ']');
  
-                             try {
-                                 set = e.versionedValue(val, ver, nextVer);
-                             }
-                             catch (GridCacheEntryRemovedException ignore) {
-                                 if (log.isDebugEnabled())
-                                     log.debug("Got removed entry in transaction getAll method " +
-                                         "(will try again): " + e);
+                             return;
+                         }
  
-                                 if (pessimistic() && !readCommitted() && !isRollbackOnly()) {
-                                     U.error(log, "Inconsistent transaction state (entry got removed while " +
-                                         "holding lock) [entry=" + e + ", tx=" + IgniteTxLocalAdapter.this + "]");
+                         CacheObject cacheVal = cacheCtx.toCacheObject(val);
  
-                                     setRollbackOnly();
+                         CacheObject visibleVal = cacheVal;
  
-                                     return;
-                                 }
+                         IgniteTxKey txKey = cacheCtx.txKey(key);
  
-                                 if (txEntry != null)
-                                     txEntry.cached(entryEx(cacheCtx, txKey), txEntry.keyBytes());
+                         IgniteTxEntry txEntry = entry(txKey);
  
-                                 continue; // While loop.
-                             }
+                         if (txEntry != null) {
+                             if (!readCommitted())
+                                 txEntry.readValue(cacheVal);
  
-                             // In pessimistic mode, we should always be able to set.
-                             assert set || !pessimistic();
+                             if (!F.isEmpty(txEntry.entryProcessors()))
+                                 visibleVal = txEntry.applyEntryProcessors(visibleVal);
+                         }
  
-                             if (readCommitted() || skipVals) {
-                                 cacheCtx.evicts().touch(e, topologyVersion());
+                         // In pessimistic mode we hold the lock, so filter validation
+                         // should always be valid.
+                         if (pessimistic())
+                             ver = null;
  
-                                 if (visibleVal != null)
-                                     map.put(key, (V)CU.skipValue(visibleVal, skipVals));
-                             }
-                             else {
-                                 assert txEntry != null;
+                         // Initialize next version.
+                         if (nextVer == null)
+                             nextVer = cctx.versions().next(topologyVersion());
  
-                                 txEntry.setAndMarkValid(val);
+                         while (true) {
 -                            assert txEntry != null || readCommitted() || groupLock() || skipVals;
++                            assert txEntry != null || readCommitted() || skipVals;
  
-                                 if (visibleVal != null)
-                                     map.put(key, visibleVal);
-                             }
+                             GridCacheEntryEx e = txEntry == null ? entryEx(cacheCtx, txKey) : txEntry.cached();
  
-                             loaded.add(key);
+                             try {
+                                 // Must initialize to true since even if filter didn't pass,
+                                 // we still record the transaction value.
+                                 boolean set;
  
-                             if (log.isDebugEnabled())
-                                 log.debug("Set value loaded from store into entry from transaction [set=" + set +
-                                     ", matchVer=" + ver + ", newVer=" + nextVer + ", entry=" + e + ']');
+                                 try {
+                                     set = e.versionedValue(cacheVal, ver, nextVer);
+                                 }
+                                 catch (GridCacheEntryRemovedException ignore) {
+                                     if (log.isDebugEnabled())
+                                         log.debug("Got removed entry in transaction getAll method " +
+                                             "(will try again): " + e);
  
-                             break; // While loop.
-                         }
-                         catch (IgniteCheckedException ex) {
-                             throw new IgniteException("Failed to put value for cache entry: " + e, ex);
-                         }
-                     }
-                 }
-             }),
-             new C2<Boolean, Exception, Map<K, V>>() {
-                 @Override public Map<K, V> apply(Boolean b, Exception e) {
-                     if (e != null) {
-                         setRollbackOnly();
 -                                    if (pessimistic() && !readCommitted() && !isRollbackOnly() &&
 -                                        (!groupLock() || F.eq(e.key(), groupLockKey()))) {
++                                    if (pessimistic() && !readCommitted() && !isRollbackOnly()) {
+                                         U.error(log, "Inconsistent transaction state (entry got removed while " +
+                                             "holding lock) [entry=" + e + ", tx=" + IgniteTxLocalAdapter.this + "]");
  
-                         throw new GridClosureException(e);
-                     }
+                                         setRollbackOnly();
  
-                     if (!b && !readCommitted()) {
-                         // There is no store - we must mark the entries.
-                         for (K key : missedMap.keySet()) {
-                             IgniteTxEntry<K, V> txEntry = entry(cacheCtx.txKey(key));
+                                         return;
+                                     }
  
-                             if (txEntry != null)
-                                 txEntry.markValid();
-                         }
-                     }
+                                     if (txEntry != null)
+                                         txEntry.cached(entryEx(cacheCtx, txKey));
  
-                     if (readCommitted()) {
-                         Collection<K> notFound = new HashSet<>(missedMap.keySet());
+                                     continue; // While loop.
+                                 }
  
-                         notFound.removeAll(loaded);
+                                 // In pessimistic mode, we should always be able to set.
+                                 assert set || !pessimistic();
  
-                         // In read-committed mode touch entries that have just been read.
-                         for (K key : notFound) {
-                             IgniteTxEntry<K, V> txEntry = entry(cacheCtx.txKey(key));
 -                                if (readCommitted() || groupLock() || skipVals) {
++                                if (readCommitted() || skipVals) {
+                                     cacheCtx.evicts().touch(e, topologyVersion());
  
-                             GridCacheEntryEx<K, V> entry = txEntry == null ? cacheCtx.cache().peekEx(key) :
-                                 txEntry.cached();
+                                     if (visibleVal != null) {
+                                         cacheCtx.addResult(map,
+                                             key,
+                                             visibleVal,
+                                             skipVals,
+                                             keepCacheObjects,
+                                             deserializePortable,
+                                             false);
+                                     }
+                                 }
+                                 else {
+                                     assert txEntry != null;
+ 
+                                     txEntry.setAndMarkValid(cacheVal);
+ 
+                                     if (visibleVal != null) {
+                                         cacheCtx.addResult(map,
+                                             key,
+                                             visibleVal,
+                                             skipVals,
+                                             keepCacheObjects,
+                                             deserializePortable,
+                                             false);
+                                     }
+                                 }
  
-                             if (entry != null)
-                                 cacheCtx.evicts().touch(entry, topologyVersion());
+                                 loaded.add(key);
+ 
+                                 if (log.isDebugEnabled())
+                                     log.debug("Set value loaded from store into entry from transaction [set=" + set +
+                                         ", matchVer=" + ver + ", newVer=" + nextVer + ", entry=" + e + ']');
+ 
+                                 break; // While loop.
+                             }
+                             catch (IgniteCheckedException ex) {
+                                 throw new IgniteException("Failed to put value for cache entry: " + e, ex);
+                             }
                          }
                      }
- 
-                     return map;
-                 }
-             });
+                 })
+         );
      }
  
      /** {@inheritDoc} */
@@@ -1526,13 -1625,14 +1565,14 @@@
                  missed,
                  keysCnt,
                  deserializePortable,
-                 skipVals);
+                 skipVals,
+                 keepCacheObjects);
  
              if (single && missed.isEmpty())
-                 return new GridFinishedFuture<>(cctx.kernalContext(), retMap);
+                 return new GridFinishedFuture<>(retMap);
  
              // Handle locks.
 -            if (pessimistic() && !readCommitted() && !groupLock() && !skipVals) {
 +            if (pessimistic() && !readCommitted() && !skipVals) {
                  if (expiryPlc == null)
                      expiryPlc = cacheCtx.expiry();
  
@@@ -1677,9 -1789,9 +1729,9 @@@
                  }
              }
              else {
 -                assert optimistic() || readCommitted() || groupLock() || skipVals;
 +                assert optimistic() || readCommitted() || skipVals;
  
-                 final Collection<K> redos = new ArrayList<>();
+                 final Collection<KeyCacheObject> redos = new ArrayList<>();
  
                  if (!missed.isEmpty()) {
                      if (!readCommitted())
@@@ -1872,7 -2002,9 +1942,7 @@@
              if (invokeMap != null)
                  transform = true;
  
-             for (K key : keys) {
 -            groupLockSanityCheck(cacheCtx, keys);
 -
+             for (Object key : keys) {
                  if (key == null) {
                      setRollbackOnly();
  
@@@ -2027,9 -2158,12 +2096,9 @@@
                              if (!implicit() && readCommitted())
                                  cacheCtx.evicts().touch(entry, topologyVersion());
  
-                             enlisted.add(key);
 -                            if (groupLock() && !lockOnly)
 -                                txEntry.groupLockEntry(true);
 -
+                             enlisted.add(cacheKey);
  
 -                            if ((!pessimistic() && !implicit()) || (groupLock() && !lockOnly)) {
 +                            if ((!pessimistic() && !implicit())) {
                                  txEntry.markValid();
  
                                  if (old == null) {
@@@ -2496,22 -2602,11 +2537,11 @@@
                  drMap,
                  null);
  
 -            if (pessimistic() && !groupLock()) {
 +            if (pessimistic()) {
                  // Loose all skipped.
-                 final Set<K> loaded = loadFut.get();
- 
-                 final Collection<K> keys;
+                 final Set<KeyCacheObject> loaded = loadFut.get();
  
-                 if (keySet != null ) {
-                     keys = new ArrayList<>(keySet.size());
- 
-                     for (K k : keySet) {
-                         if (k != null && (loaded == null || !loaded.contains(k)))
-                             keys.add(k);
-                     }
-                 }
-                 else
-                     keys = Collections.emptyList();
+                 final Collection<KeyCacheObject> keys = F.view(enlisted, F0.notIn(loaded));
  
                  if (log.isDebugEnabled())
                      log.debug("Before acquiring transaction lock for put on keys: " + keys);
@@@ -2733,9 -2824,9 +2759,9 @@@
              // Acquire locks only after having added operation to the write set.
              // Otherwise, during rollback we will not know whether locks need
              // to be rolled back.
 -            if (pessimistic() && !groupLock()) {
 +            if (pessimistic()) {
                  // Loose all skipped.
-                 final Collection<? extends K> passedKeys = F.view(enlisted, F0.notIn(loadFut.get()));
+                 final Collection<KeyCacheObject> passedKeys = F.view(enlisted, F0.notIn(loadFut.get()));
  
                  if (log.isDebugEnabled())
                      log.debug("Before acquiring transaction lock for remove on keys: " + passedKeys);

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalEx.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalEx.java
index e372095,9f1a70e..e06cde0
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalEx.java
@@@ -131,13 -138,27 +133,13 @@@ public interface IgniteTxLocalEx extend
       * @return Future for asynchronous remove.
       */
      public IgniteInternalFuture<?> removeAllDrAsync(
-         GridCacheContext<K, V> cacheCtx,
-         Map<? extends K, GridCacheVersion> drMap);
+         GridCacheContext cacheCtx,
+         Map<KeyCacheObject, GridCacheVersion> drMap);
  
      /**
 -     * Performs keys locking for affinity-based group lock transactions.
 -     *
 -     * @param cacheCtx Cache context.
 -     * @param keys Keys to lock.
 -     * @return Lock future.
 -     */
 -    public <K> IgniteInternalFuture<?> groupLockAsync(GridCacheContext cacheCtx, Collection<K> keys);
 -
 -    /**
 -     * @return {@code True} if keys from the same partition are allowed to be enlisted in group-lock transaction.
 -     */
 -    public boolean partitionLock();
 -
 -    /**
       * @return Return value for
       */
-     public GridCacheReturn<V> implicitSingleResult();
+     public GridCacheReturn implicitSingleResult();
  
      /**
       * Finishes transaction (either commit or rollback).

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
index 974144a,7ea6e3a..14e1db2
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
@@@ -200,9 -205,10 +205,9 @@@ public class IgniteTxManager extends Gr
                  }
  
                  if (tx instanceof IgniteTxRemoteEx) {
-                     IgniteTxRemoteEx<K, V> rmtTx = (IgniteTxRemoteEx<K, V>)tx;
+                     IgniteTxRemoteEx rmtTx = (IgniteTxRemoteEx)tx;
  
 -                    rmtTx.doneRemote(tx.xidVersion(), Collections.<GridCacheVersion>emptyList(),
 -                        Collections.<GridCacheVersion>emptyList(), Collections.<GridCacheVersion>emptyList());
 +                    rmtTx.doneRemote(tx.xidVersion());
                  }
  
                  tx.commit();
@@@ -334,8 -340,8 +339,8 @@@
       * @return {@code True} if transaction has been committed or rolled back,
       *      {@code false} otherwise.
       */
-     public boolean isCompleted(IgniteInternalTx<K, V> tx) {
+     public boolean isCompleted(IgniteInternalTx tx) {
 -        return completedVers.containsKey(tx.xidVersion());
 +        return completedVers.containsKey(tx.writeVersion());
      }
  
      /**
@@@ -345,19 -351,24 +350,21 @@@
       * @param isolation Isolation.
       * @param timeout transaction timeout.
       * @param txSize Expected transaction size.
 -     * @param grpLockKey Group lock key if this is a group-lock transaction.
 -     * @param partLock {@code True} if partition is locked.
       * @return New transaction.
       */
-     public IgniteTxLocalAdapter<K, V> newTx(
+     public IgniteTxLocalAdapter newTx(
          boolean implicit,
          boolean implicitSingle,
-         boolean sys,
+         @Nullable GridCacheContext sysCacheCtx,
          TransactionConcurrency concurrency,
          TransactionIsolation isolation,
          long timeout,
          boolean invalidate,
          boolean storeEnabled,
 -        int txSize,
 -        @Nullable IgniteTxKey grpLockKey,
 -        boolean partLock) {
 +        int txSize
 +    ) {
+         assert sysCacheCtx == null || sysCacheCtx.system();
 -
++        
          UUID subjId = null; // TODO GG-9141 how to get subj ID?
  
          int taskNameHash = cctx.kernalContext().job().currentTaskNameHash();
@@@ -936,18 -969,44 +963,18 @@@
      }
  
      /**
 -     * Gets committed transactions starting from the given version (inclusive). // TODO: GG-4011: why inclusive?
 -     *
 -     * @param min Start (or minimum) version.
 -     * @return Committed transactions starting from the given version (non-inclusive).
 -     */
 -    public Collection<GridCacheVersion> committedVersions(GridCacheVersion min) {
 -        ConcurrentNavigableMap<GridCacheVersion, Boolean> tail
 -            = completedVers.tailMap(min, true);
 -
 -        return F.isEmpty(tail) ? Collections.<GridCacheVersion>emptyList() : copyOf(tail, true);
 -    }
 -
 -    /**
 -     * Gets rolledback transactions starting from the given version (inclusive). // TODO: GG-4011: why inclusive?
 -     *
 -     * @param min Start (or minimum) version.
 -     * @return Committed transactions starting from the given version (non-inclusive).
 -     */
 -    public Collection<GridCacheVersion> rolledbackVersions(GridCacheVersion min) {
 -        ConcurrentNavigableMap<GridCacheVersion, Boolean> tail
 -            = completedVers.tailMap(min, true);
 -
 -        return F.isEmpty(tail) ? Collections.<GridCacheVersion>emptyList() : copyOf(tail, false);
 -    }
 -
 -    /**
       * @param tx Tx to remove.
       */
-     public void removeCommittedTx(IgniteInternalTx<K, V> tx) {
+     public void removeCommittedTx(IgniteInternalTx tx) {
 -        completedVers.remove(tx.xidVersion(), true);
 +        completedVers.remove(tx.writeVersion(), true);
      }
  
      /**
       * @param tx Committed transaction.
       * @return If transaction was not already present in committed set.
       */
-     public boolean addCommittedTx(IgniteInternalTx<K, V> tx) {
+     public boolean addCommittedTx(IgniteInternalTx tx) {
 -        return addCommittedTx(tx.xidVersion(), tx.nearXidVersion());
 +        return addCommittedTx(tx.writeVersion(), tx.nearXidVersion());
      }
  
      /**
@@@ -1069,9 -1198,18 +1096,9 @@@
                  completedVers.firstKey() + ", lastVer=" + completedVers.lastKey() + ", tx=" + tx.xid() + ']');
          }
  
-         ConcurrentMap<GridCacheVersion, IgniteInternalTx<K, V>> txIdMap = transactionMap(tx);
+         ConcurrentMap<GridCacheVersion, IgniteInternalTx> txIdMap = transactionMap(tx);
  
          if (txIdMap.remove(tx.xidVersion(), tx)) {
 -            // 2. Must process completed entries before unlocking!
 -            processCompletedEntries(tx);
 -
 -            if (tx instanceof GridDhtTxLocal) {
 -                GridDhtTxLocal dhtTxLoc = (GridDhtTxLocal)tx;
 -
 -                collectPendingVersions(dhtTxLoc);
 -            }
 -
              // 3.1 Call dataStructures manager.
              cctx.kernalContext().dataStructures().onTxCommitted(tx);
  
@@@ -1277,11 -1445,11 +1331,11 @@@
      /**
       * @param tx Transaction to notify evictions for.
       */
-     private void notifyEvitions(IgniteInternalTx<K, V> tx) {
+     private void notifyEvitions(IgniteInternalTx tx) {
 -        if (tx.internal() && !tx.groupLock())
 +        if (tx.internal())
              return;
  
-         for (IgniteTxEntry<K, V> txEntry : tx.allEntries())
+         for (IgniteTxEntry txEntry : tx.allEntries())
              txEntry.cached().context().evicts().touch(txEntry, tx.local());
      }
  
@@@ -1721,9 -1911,10 +1775,9 @@@
          }
  
          if (tx instanceof GridDistributedTxRemoteAdapter) {
-             IgniteTxRemoteEx<K,V> rmtTx = (IgniteTxRemoteEx<K, V>)tx;
+             IgniteTxRemoteEx rmtTx = (IgniteTxRemoteEx)tx;
  
 -            rmtTx.doneRemote(tx.xidVersion(), Collections.<GridCacheVersion>emptyList(), Collections.<GridCacheVersion>emptyList(),
 -                Collections.<GridCacheVersion>emptyList());
 +            rmtTx.doneRemote(tx.xidVersion());
          }
  
          if (commit)
@@@ -1747,9 -1938,12 +1801,9 @@@
          }
  
          if (tx instanceof GridDistributedTxRemoteAdapter) {
-             IgniteTxRemoteEx<K,V> rmtTx = (IgniteTxRemoteEx<K, V>)tx;
+             IgniteTxRemoteEx rmtTx = (IgniteTxRemoteEx)tx;
  
 -            rmtTx.doneRemote(tx.xidVersion(),
 -                Collections.<GridCacheVersion>emptyList(),
 -                Collections.<GridCacheVersion>emptyList(),
 -                Collections.<GridCacheVersion>emptyList());
 +            rmtTx.doneRemote(tx.xidVersion());
          }
  
          try {

http://git-wip-us.apache.org/repos/asf/ignite/blob/905a139e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteEx.java
----------------------------------------------------------------------


[38/50] [abbrv] ignite git commit: IGNITE-264 - Do not record nearXidVersion for near remote transactions.

Posted by ag...@apache.org.
IGNITE-264 - Do not record nearXidVersion for near remote transactions.


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

Branch: refs/heads/ignite-264
Commit: 19cf9fceb5edf200c8e1fdb37fb21d82b90da590
Parents: f5d0340
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Thu Aug 27 10:39:45 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Thu Aug 27 10:39:45 2015 -0700

----------------------------------------------------------------------
 .../internal/processors/cache/transactions/IgniteTxManager.java    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/19cf9fce/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
index c96edd4..e6ab96e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
@@ -1023,7 +1023,7 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
     public boolean addCommittedTx(IgniteInternalTx tx) {
         boolean res = addCommittedTx(tx.xidVersion(), tx.nearXidVersion());
 
-        if (!tx.local() && tx.onePhaseCommit())
+        if (!tx.local() && !tx.near() && tx.onePhaseCommit())
             addCommittedTx(tx.nearXidVersion(), null);
 
         return res;


[02/50] [abbrv] ignite git commit: IGNITE-264 - WIP

Posted by ag...@apache.org.
IGNITE-264 - WIP


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

Branch: refs/heads/ignite-264
Commit: 9b0bd71b5844af5fd3a89655c1e3833e3e4cfcc4
Parents: 4bf51e7
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Thu Feb 26 11:20:34 2015 -0800
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Thu Feb 26 11:20:34 2015 -0800

----------------------------------------------------------------------
 ...ridCacheOptimisticCheckPreparedTxFuture.java | 38 ++++++++--
 ...idCacheOptimisticCheckPreparedTxRequest.java | 44 +++++++++--
 .../dht/GridClientPartitionTopology.java        | 20 +++++
 .../dht/GridDhtPartitionTopology.java           |  7 ++
 .../dht/GridDhtPartitionTopologyImpl.java       | 20 +++++
 .../distributed/dht/GridDhtTxFinishFuture.java  |  5 +-
 .../distributed/dht/GridDhtTxPrepareFuture.java | 33 ++++++--
 .../cache/distributed/dht/GridDhtTxRemote.java  |  2 +-
 .../cache/transactions/IgniteTxAdapter.java     |  1 +
 .../cache/transactions/IgniteTxEntry.java       | 19 ++++-
 .../cache/transactions/IgniteTxHandler.java     | 80 ++++++++++++++++----
 .../cache/transactions/IgniteTxManager.java     | 23 ++++++
 .../GridTransactionalCacheQueueImpl.java        | 14 ++--
 .../jdk8/backport/ConcurrentLinkedHashMap.java  |  7 ++
 .../GridConcurrentLinkedHashMapSelfTest.java    | 18 +++++
 15 files changed, 287 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/9b0bd71b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxFuture.java
index 75b2683..429023b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxFuture.java
@@ -22,6 +22,7 @@ import org.apache.ignite.cluster.*;
 import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.cluster.*;
 import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.processors.cache.distributed.dht.*;
 import org.apache.ignite.internal.processors.cache.transactions.*;
 import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.internal.util.*;
@@ -155,7 +156,7 @@ public class GridCacheOptimisticCheckPreparedTxFuture<K, V> extends GridCompound
 
                     GridCacheOptimisticCheckPreparedTxRequest<K, V>
                         req = new GridCacheOptimisticCheckPreparedTxRequest<>(tx,
-                        nodeTransactions(id), futureId(), fut.futureId());
+                        nodeTransactions(id), futureId(), fut.futureId(), false);
 
                     try {
                         cctx.io().send(id, req, tx.ioPolicy());
@@ -176,7 +177,7 @@ public class GridCacheOptimisticCheckPreparedTxFuture<K, V> extends GridCompound
                 add(fut);
 
                 GridCacheOptimisticCheckPreparedTxRequest<K, V> req = new GridCacheOptimisticCheckPreparedTxRequest<>(
-                    tx, nodeTransactions(nodeId), futureId(), fut.futureId());
+                    tx, nodeTransactions(nodeId), futureId(), fut.futureId(), false);
 
                 try {
                     cctx.io().send(nodeId, req, tx.ioPolicy());
@@ -192,6 +193,32 @@ public class GridCacheOptimisticCheckPreparedTxFuture<K, V> extends GridCompound
             }
         }
 
+        // Specifically check originating near node.
+        if (tx instanceof GridDhtTxRemote) {
+            UUID nearNodeId = ((GridDhtTxRemote)tx).nearNodeId();
+
+            if (cctx.localNodeId().equals(nearNodeId))
+                add(cctx.tm().nearTxCommitted(tx.nearXidVersion()));
+            else {
+                MiniFuture fut = new MiniFuture(nearNodeId);
+
+                add(fut);
+
+                GridCacheOptimisticCheckPreparedTxRequest<K, V> req = new GridCacheOptimisticCheckPreparedTxRequest<>(
+                    tx, 1, futureId(), fut.futureId(), true);
+
+                try {
+                    cctx.io().send(nearNodeId, req, tx.ioPolicy());
+                }
+                catch (ClusterTopologyCheckedException ignored) {
+                    fut.onNodeLeft();
+                }
+                catch (IgniteCheckedException e) {
+                    fut.onError(e);
+                }
+            }
+        }
+
         markInitialized();
     }
 
@@ -258,14 +285,11 @@ public class GridCacheOptimisticCheckPreparedTxFuture<K, V> extends GridCompound
             if (isMini(fut)) {
                 MiniFuture f = (MiniFuture)fut;
 
-                if (f.nodeId().equals(nodeId)) {
+                if (f.nodeId().equals(nodeId))
                     f.onNodeLeft();
-
-                    return true;
-                }
             }
 
-        return false;
+        return true;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/9b0bd71b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxRequest.java
index 636c5b5..4b61b7e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxRequest.java
@@ -49,6 +49,9 @@ public class GridCacheOptimisticCheckPreparedTxRequest<K, V> extends GridDistrib
     /** System transaction flag. */
     private boolean sys;
 
+    /** Near check falg. */
+    private boolean nearCheck;
+
     /**
      * Empty constructor required by {@link Externalizable}
      */
@@ -62,8 +65,13 @@ public class GridCacheOptimisticCheckPreparedTxRequest<K, V> extends GridDistrib
      * @param futId Future ID.
      * @param miniId Mini future ID.
      */
-    public GridCacheOptimisticCheckPreparedTxRequest(IgniteInternalTx<K, V> tx, int txNum, IgniteUuid futId,
-        IgniteUuid miniId) {
+    public GridCacheOptimisticCheckPreparedTxRequest(
+        IgniteInternalTx<K, V> tx,
+        int txNum,
+        IgniteUuid futId,
+        IgniteUuid miniId,
+        boolean nearCheck
+    ) {
         super(tx.xidVersion(), 0);
 
         nearXidVer = tx.nearXidVersion();
@@ -72,6 +80,7 @@ public class GridCacheOptimisticCheckPreparedTxRequest<K, V> extends GridDistrib
         this.futId = futId;
         this.miniId = miniId;
         this.txNum = txNum;
+        this.nearCheck = nearCheck;
     }
 
     /**
@@ -109,6 +118,13 @@ public class GridCacheOptimisticCheckPreparedTxRequest<K, V> extends GridDistrib
         return sys;
     }
 
+    /**
+     * @return Near check flag.
+     */
+    public boolean nearCheck() {
+        return nearCheck;
+    }
+
     /** {@inheritDoc} */
     @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
         writer.setBuffer(buf);
@@ -137,18 +153,24 @@ public class GridCacheOptimisticCheckPreparedTxRequest<K, V> extends GridDistrib
                 writer.incrementState();
 
             case 8:
-                if (!writer.writeMessage("nearXidVer", nearXidVer))
+                if (!writer.writeBoolean("nearCheck", nearCheck))
                     return false;
 
                 writer.incrementState();
 
             case 9:
-                if (!writer.writeBoolean("sys", sys))
+                if (!writer.writeMessage("nearXidVer", nearXidVer))
                     return false;
 
                 writer.incrementState();
 
             case 10:
+                if (!writer.writeBoolean("sys", sys))
+                    return false;
+
+                writer.incrementState();
+
+            case 11:
                 if (!writer.writeInt("txNum", txNum))
                     return false;
 
@@ -187,7 +209,7 @@ public class GridCacheOptimisticCheckPreparedTxRequest<K, V> extends GridDistrib
                 reader.incrementState();
 
             case 8:
-                nearXidVer = reader.readMessage("nearXidVer");
+                nearCheck = reader.readBoolean("nearCheck");
 
                 if (!reader.isLastRead())
                     return false;
@@ -195,7 +217,7 @@ public class GridCacheOptimisticCheckPreparedTxRequest<K, V> extends GridDistrib
                 reader.incrementState();
 
             case 9:
-                sys = reader.readBoolean("sys");
+                nearXidVer = reader.readMessage("nearXidVer");
 
                 if (!reader.isLastRead())
                     return false;
@@ -203,6 +225,14 @@ public class GridCacheOptimisticCheckPreparedTxRequest<K, V> extends GridDistrib
                 reader.incrementState();
 
             case 10:
+                sys = reader.readBoolean("sys");
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 11:
                 txNum = reader.readInt("txNum");
 
                 if (!reader.isLastRead())
@@ -222,7 +252,7 @@ public class GridCacheOptimisticCheckPreparedTxRequest<K, V> extends GridDistrib
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 11;
+        return 12;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/9b0bd71b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
index 239efc3..98fbd47 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
@@ -304,6 +304,26 @@ public class GridClientPartitionTopology<K, V> implements GridDhtPartitionTopolo
     }
 
     /** {@inheritDoc} */
+    @Override public GridDhtPartitionState partitionState(UUID nodeId, int part) {
+        lock.readLock().lock();
+
+        try {
+            GridDhtPartitionMap partMap = node2part.get(nodeId);
+
+            if (partMap != null) {
+                GridDhtPartitionState state = partMap.get(part);
+
+                return state == null ? EVICTED : state;
+            }
+
+            return EVICTED;
+        }
+        finally {
+            lock.readLock().unlock();
+        }
+    }
+
+    /** {@inheritDoc} */
     @Override public Collection<ClusterNode> nodes(int p, long topVer) {
         lock.readLock().lock();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/9b0bd71b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java
index d9a20ae..314d70e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java
@@ -118,6 +118,13 @@ public interface GridDhtPartitionTopology<K, V> {
     public GridDhtPartitionMap localPartitionMap();
 
     /**
+     * @param nodeId Node ID.
+     * @param part Partition.
+     * @return Partition state.
+     */
+    public GridDhtPartitionState partitionState(UUID nodeId, int part);
+
+    /**
      * @return Current update sequence.
      */
     public long updateSequence();

http://git-wip-us.apache.org/repos/asf/ignite/blob/9b0bd71b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
index acf00eb..40fde60 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
@@ -572,6 +572,26 @@ class GridDhtPartitionTopologyImpl<K, V> implements GridDhtPartitionTopology<K,
     }
 
     /** {@inheritDoc} */
+    @Override public GridDhtPartitionState partitionState(UUID nodeId, int part) {
+        lock.readLock().lock();
+
+        try {
+            GridDhtPartitionMap partMap = node2part.get(nodeId);
+
+            if (partMap != null) {
+                GridDhtPartitionState state = partMap.get(part);
+
+                return state == null ? EVICTED : state;
+            }
+
+            return EVICTED;
+        }
+        finally {
+            lock.readLock().unlock();
+        }
+    }
+
+    /** {@inheritDoc} */
     @Override public Collection<ClusterNode> nodes(int p, long topVer) {
         Collection<ClusterNode> affNodes = cctx.affinity().nodes(p, topVer);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/9b0bd71b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
index bb80480..dc4d15c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
@@ -325,6 +325,8 @@ public final class GridDhtTxFinishFuture<K, V> extends GridCompoundIdentityFutur
                 tx.subjectId(),
                 tx.taskNameHash());
 
+            req.writeVersion(tx.writeVersion());
+
             try {
                 cctx.io().send(n, req, tx.ioPolicy());
 
@@ -371,8 +373,7 @@ public final class GridDhtTxFinishFuture<K, V> extends GridCompoundIdentityFutur
                     tx.subjectId(),
                     tx.taskNameHash());
 
-                if (tx.onePhaseCommit())
-                    req.writeVersion(tx.writeVersion());
+                req.writeVersion(tx.writeVersion());
 
                 try {
                     cctx.io().send(nearMapping.node(), req, tx.ioPolicy());

http://git-wip-us.apache.org/repos/asf/ignite/blob/9b0bd71b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
index 2b1d2f0..33ee64c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
@@ -294,7 +294,7 @@ public final class GridDhtTxPrepareFuture<K, V> extends GridCompoundIdentityFutu
 
                 boolean hasFilters = !F.isEmptyOrNulls(txEntry.filters()) && !F.isAlwaysTrue(txEntry.filters());
 
-                if (hasFilters || retVal || txEntry.op() == GridCacheOperation.DELETE) {
+                if (hasFilters || retVal || txEntry.op() == DELETE || txEntry.op() == TRANSFORM) {
                     cached.unswap(true, retVal);
 
                     V val = cached.innerGet(
@@ -311,14 +311,13 @@ public final class GridDhtTxPrepareFuture<K, V> extends GridCompoundIdentityFutu
                         null,
                         null);
 
-                    if (retVal) {
+                    if (retVal || txEntry.op() == TRANSFORM) {
                         if (!F.isEmpty(txEntry.entryProcessors())) {
                             K key = txEntry.key();
 
                             Object procRes = null;
                             Exception err = null;
 
-
                             for (T2<EntryProcessor<K, V, ?>, Object[]> t : txEntry.entryProcessors()) {
                                 try {
                                     CacheInvokeEntry<K, V> invokeEntry = new CacheInvokeEntry<>(txEntry.context(), key, val);
@@ -336,6 +335,8 @@ public final class GridDhtTxPrepareFuture<K, V> extends GridCompoundIdentityFutu
                                 }
                             }
 
+                            txEntry.entryProcessorCalculatedValue(val);
+
                             if (err != null || procRes != null)
                                 ret.addEntryProcessResult(key,
                                     err == null ? new CacheInvokeResult<>(procRes) : new CacheInvokeResult<>(err));
@@ -360,7 +361,7 @@ public final class GridDhtTxPrepareFuture<K, V> extends GridCompoundIdentityFutu
                         ret.success(false);
                     }
                     else
-                        ret.success(txEntry.op() != GridCacheOperation.DELETE || cached.hasValue());
+                        ret.success(txEntry.op() != DELETE || cached.hasValue());
                 }
             }
             catch (IgniteCheckedException e) {
@@ -1002,7 +1003,8 @@ public final class GridDhtTxPrepareFuture<K, V> extends GridCompoundIdentityFutu
     private boolean map(
         IgniteTxEntry<K, V> entry,
         Map<UUID, GridDistributedTxMapping<K, V>> futDhtMap,
-        Map<UUID, GridDistributedTxMapping<K, V>> futNearMap) {
+        Map<UUID, GridDistributedTxMapping<K, V>> futNearMap
+    ) {
         if (entry.cached().isLocal())
             return false;
 
@@ -1069,14 +1071,31 @@ public final class GridDhtTxPrepareFuture<K, V> extends GridCompoundIdentityFutu
      * @param locMap Exclude map.
      * @return {@code True} if mapped.
      */
-    private boolean map(IgniteTxEntry<K, V> entry, Iterable<ClusterNode> nodes,
-        Map<UUID, GridDistributedTxMapping<K, V>> globalMap, Map<UUID, GridDistributedTxMapping<K, V>> locMap) {
+    private boolean map(
+        IgniteTxEntry<K, V> entry,
+        Iterable<ClusterNode> nodes,
+        Map<UUID, GridDistributedTxMapping<K, V>> globalMap,
+        Map<UUID, GridDistributedTxMapping<K, V>> locMap
+    ) {
         boolean ret = false;
 
         if (nodes != null) {
             for (ClusterNode n : nodes) {
                 GridDistributedTxMapping<K, V> global = globalMap.get(n.id());
 
+                if (!F.isEmpty(entry.entryProcessors())) {
+                    GridDhtPartitionState state = entry.context().topology().partitionState(n.id(),
+                        entry.cached().partition());
+
+                    if (state != GridDhtPartitionState.OWNING && state != GridDhtPartitionState.EVICTED) {
+                        V procVal = entry.entryProcessorCalculatedValue();
+
+                        entry.op(procVal == null ? DELETE : UPDATE);
+                        entry.value(procVal, true, false);
+                        entry.entryProcessors(null);
+                    }
+                }
+
                 if (global == null)
                     globalMap.put(n.id(), global = new GridDistributedTxMapping<>(n));
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/9b0bd71b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxRemote.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxRemote.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxRemote.java
index 3366033..ed37ae4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxRemote.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxRemote.java
@@ -203,7 +203,7 @@ public class GridDhtTxRemote<K, V> extends GridDistributedTxRemoteAdapter<K, V>
     /**
      * @return Near node ID.
      */
-    UUID nearNodeId() {
+    public UUID nearNodeId() {
         return nearNodeId;
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/9b0bd71b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
index 8410ef7..e11a5b2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
@@ -160,6 +160,7 @@ public abstract class IgniteTxAdapter<K, V> extends GridMetadataAwareAdapter
     private AtomicBoolean preparing = new AtomicBoolean();
 
     /** */
+    @GridToStringInclude
     private Set<Integer> invalidParts = new GridLeanSet<>();
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/9b0bd71b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
index 6bb768c..286f896 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
@@ -83,6 +83,9 @@ public class IgniteTxEntry<K, V> implements GridPeerDeployAware, Externalizable,
     @GridToStringInclude
     private Collection<T2<EntryProcessor<K, V, ?>, Object[]>> entryProcessorsCol;
 
+    /** Transient field for calculated entry processor value. */
+    private V entryProcessorCalcVal;
+
     /** Transform closure bytes. */
     @GridToStringExclude
     private byte[] transformClosBytes;
@@ -420,6 +423,20 @@ public class IgniteTxEntry<K, V> implements GridPeerDeployAware, Externalizable,
     }
 
     /**
+     * @return Entry processor calculated value.
+     */
+    public V entryProcessorCalculatedValue() {
+        return entryProcessorCalcVal;
+    }
+
+    /**
+     * @param entryProcessorCalcVal Entry processor calculated value.
+     */
+    public void entryProcessorCalculatedValue(V entryProcessorCalcVal) {
+        this.entryProcessorCalcVal = entryProcessorCalcVal;
+    }
+
+    /**
      * @return Underlying cache entry.
      */
     public GridCacheEntryEx<K, V> cached() {
@@ -902,7 +919,7 @@ public class IgniteTxEntry<K, V> implements GridPeerDeployAware, Externalizable,
     @Override public String toString() {
         return GridToStringBuilder.toString(IgniteTxEntry.class, this,
             "keyBytesSize", keyBytes == null ? "null" : Integer.toString(keyBytes.length),
-            "xidVer", tx == null ? "null" : tx.xidVersion());
+            "xidVer", tx == null ? "null" : tx.xidVersion(), "hc", System.identityHashCode(this));
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/9b0bd71b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index 90af0b2..ca58d6b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@ -798,15 +798,14 @@ public class IgniteTxHandler<K, V> {
 
         try {
             if (req.commit() || req.isSystemInvalidate()) {
-                if (tx.commitVersion(req.commitVersion())) {
-                    tx.invalidate(req.isInvalidate());
-                    tx.systemInvalidate(req.isSystemInvalidate());
+                tx.commitVersion(req.commitVersion());
+                tx.invalidate(req.isInvalidate());
+                tx.systemInvalidate(req.isSystemInvalidate());
 
-                    // Complete remote candidates.
-                    tx.doneRemote(req.version());
+                // Complete remote candidates.
+                tx.doneRemote(req.version());
 
-                    tx.commit();
-                }
+                tx.commit();
             }
             else {
                 tx.doneRemote(req.version());
@@ -986,8 +985,14 @@ public class IgniteTxHandler<K, V> {
             // in prepare phase will get properly ordered as well.
             tx.prepare();
 
-            if (req.last())
+            if (req.last()) {
+                assert !F.isEmpty(req.transactionNodes()) :
+                    "Received last prepare request with empty transaction nodes: " + req;
+
+                tx.transactionNodes(req.transactionNodes());
+
                 tx.state(PREPARED);
+            }
 
             res.invalidPartitions(tx.invalidPartitions());
 
@@ -1085,20 +1090,69 @@ public class IgniteTxHandler<K, V> {
      * @param nodeId Node ID.
      * @param req Request.
      */
-    protected void processCheckPreparedTxRequest(UUID nodeId, GridCacheOptimisticCheckPreparedTxRequest<K, V> req) {
+    protected void processCheckPreparedTxRequest(
+        final UUID nodeId,
+        final GridCacheOptimisticCheckPreparedTxRequest<K, V> req
+    ) {
         if (log.isDebugEnabled())
             log.debug("Processing check prepared transaction requests [nodeId=" + nodeId + ", req=" + req + ']');
 
-        boolean prepared = ctx.tm().txsPreparedOrCommitted(req.nearXidVersion(), req.transactions());
+        if (req.nearCheck()) {
+            IgniteInternalFuture<Boolean> fut = ctx.tm().nearTxCommitted(req.nearXidVersion());
+
+            fut.listenAsync(new CI1<IgniteInternalFuture<Boolean>>() {
+                @Override public void apply(IgniteInternalFuture<Boolean> f) {
+                    try {
+                        boolean prepared = f.get();
 
-        GridCacheOptimisticCheckPreparedTxResponse<K, V> res =
-            new GridCacheOptimisticCheckPreparedTxResponse<>(req.version(), req.futureId(), req.miniId(), prepared);
+                        sendCheckPrepareTxResponse(nodeId,
+                            new GridCacheOptimisticCheckPreparedTxResponse<K, V>(
+                                req.version(),
+                                req.futureId(),
+                                req.miniId(),
+                                prepared),
+                            req.system());
 
+                    }
+                    catch (IgniteCheckedException e) {
+                        U.error(log, "Failed to wait for transaction check prepared future " +
+                            "(will send rolled back response): " + req.nearXidVersion(), e);
+
+                        sendCheckPrepareTxResponse(nodeId,
+                            new GridCacheOptimisticCheckPreparedTxResponse<K, V>(
+                                req.version(),
+                                req.futureId(),
+                                req.miniId(),
+                                false),
+                            req.system());
+                    }
+                }
+            });
+        }
+        else {
+            boolean prepared = ctx.tm().txsPreparedOrCommitted(req.nearXidVersion(), req.transactions());
+
+            sendCheckPrepareTxResponse(nodeId,
+                new GridCacheOptimisticCheckPreparedTxResponse<K, V>(req.version(), req.futureId(), req.miniId(), prepared),
+                req.system());
+        }
+    }
+
+    /**
+     * @param nodeId Node ID.
+     * @param res Response to send.
+     * @param sys System pool flag.
+     */
+    private void sendCheckPrepareTxResponse(
+        UUID nodeId,
+        GridCacheOptimisticCheckPreparedTxResponse<K, V> res,
+        boolean sys
+    ) {
         try {
             if (log.isDebugEnabled())
                 log.debug("Sending check prepared transaction response [nodeId=" + nodeId + ", res=" + res + ']');
 
-            ctx.io().send(nodeId, res, req.system() ? UTILITY_CACHE_POOL : SYSTEM_POOL);
+            ctx.io().send(nodeId, res, sys ? UTILITY_CACHE_POOL : SYSTEM_POOL);
         }
         catch (ClusterTopologyCheckedException ignored) {
             if (log.isDebugEnabled())

http://git-wip-us.apache.org/repos/asf/ignite/blob/9b0bd71b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
index e347cce..974144a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
@@ -1653,6 +1653,29 @@ public class IgniteTxManager<K, V> extends GridCacheSharedManagerAdapter<K, V> {
     }
 
     /**
+     * @param nearVer Near version to check.
+     * @return Future.
+     */
+    public IgniteInternalFuture<Boolean> nearTxCommitted(GridCacheVersion nearVer) {
+        for (final IgniteInternalTx<K, V> tx : txs()) {
+            if (tx.near() && tx.xidVersion().equals(nearVer)) {
+                return tx.done() ?
+                    new GridFinishedFutureEx<>(tx.state() == COMMITTED) :
+                    tx.finishFuture().chain(new C1<IgniteInternalFuture<IgniteInternalTx>, Boolean>() {
+                        @Override public Boolean apply(IgniteInternalFuture<IgniteInternalTx> f) {
+                            return tx.state() == COMMITTED;
+                        }
+                    });
+            }
+        }
+
+        // Transaction was not found. Check committed versions buffer.
+        Boolean res = completedVers.get(nearVer);
+
+        return new GridFinishedFutureEx<>(res != null && res);
+    }
+
+    /**
      * Gets local transaction for pessimistic tx recovery.
      *
      * @param nearXidVer Near tx ID.

http://git-wip-us.apache.org/repos/asf/ignite/blob/9b0bd71b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridTransactionalCacheQueueImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridTransactionalCacheQueueImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridTransactionalCacheQueueImpl.java
index 801e27f..37817c4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridTransactionalCacheQueueImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridTransactionalCacheQueueImpl.java
@@ -21,7 +21,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.internal.cluster.*;
 import org.apache.ignite.internal.processors.cache.*;
 import org.apache.ignite.internal.processors.cache.transactions.*;
+import org.apache.ignite.internal.transactions.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.transactions.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;
@@ -30,7 +32,7 @@ import static org.apache.ignite.transactions.TransactionConcurrency.*;
 import static org.apache.ignite.transactions.TransactionIsolation.*;
 
 /**
- * {@link org.apache.ignite.IgniteQueue} implementation using transactional cache.
+ * {@link IgniteQueue} implementation using transactional cache.
  */
 public class GridTransactionalCacheQueueImpl<T> extends GridCacheQueueAdapter<T> {
     /**
@@ -72,7 +74,7 @@ public class GridTransactionalCacheQueueImpl<T> extends GridCacheQueueAdapter<T>
                         break;
                     }
                 }
-                catch (ClusterTopologyCheckedException e) {
+                catch (ClusterTopologyCheckedException | TransactionRollbackException | IgniteTxRollbackCheckedException e) {
                     if (e instanceof ClusterGroupEmptyCheckedException)
                         throw e;
 
@@ -119,14 +121,14 @@ public class GridTransactionalCacheQueueImpl<T> extends GridCacheQueueAdapter<T>
 
                     break;
                 }
-                catch (ClusterTopologyCheckedException e) {
+                catch (ClusterTopologyCheckedException | TransactionRollbackException | IgniteTxRollbackCheckedException e) {
                     if (e instanceof ClusterGroupEmptyCheckedException)
                         throw e;
 
                     if (cnt++ == MAX_UPDATE_RETRIES)
                         throw e;
                     else {
-                        U.warn(log, "Failed to add item, will retry [err=" + e + ']');
+                        U.warn(log, "Failed to poll item, will retry [err=" + e + ']');
 
                         U.sleep(RETRY_DELAY);
                     }
@@ -176,7 +178,7 @@ public class GridTransactionalCacheQueueImpl<T> extends GridCacheQueueAdapter<T>
 
                     break;
                 }
-                catch (ClusterTopologyCheckedException e) {
+                catch (ClusterTopologyCheckedException | TransactionRollbackException | IgniteTxRollbackCheckedException e) {
                     if (e instanceof ClusterGroupEmptyCheckedException)
                         throw e;
 
@@ -219,7 +221,7 @@ public class GridTransactionalCacheQueueImpl<T> extends GridCacheQueueAdapter<T>
 
                     break;
                 }
-                catch (ClusterTopologyCheckedException e) {
+                catch (ClusterTopologyCheckedException | TransactionRollbackException | IgniteTxRollbackCheckedException e) {
                     if (e instanceof ClusterGroupEmptyCheckedException)
                         throw e;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/9b0bd71b/modules/core/src/main/java/org/jdk8/backport/ConcurrentLinkedHashMap.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/jdk8/backport/ConcurrentLinkedHashMap.java b/modules/core/src/main/java/org/jdk8/backport/ConcurrentLinkedHashMap.java
index 8992e77..e3f16a2 100644
--- a/modules/core/src/main/java/org/jdk8/backport/ConcurrentLinkedHashMap.java
+++ b/modules/core/src/main/java/org/jdk8/backport/ConcurrentLinkedHashMap.java
@@ -724,6 +724,13 @@ public class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V> implements
                     if (!onlyIfAbsent) {
                         e.val = val;
 
+                        HashEntry<K, V> qEntry = (HashEntry<K, V>)e.node.item();
+
+                        if (qEntry != null && qEntry != e)
+                            qEntry.val = val;
+
+                        ((HashEntry<K, V>)e.node.item).val = val;
+
                         modified = true;
                     }
                 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/9b0bd71b/modules/core/src/test/java/org/apache/ignite/lang/utils/GridConcurrentLinkedHashMapSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/lang/utils/GridConcurrentLinkedHashMapSelfTest.java b/modules/core/src/test/java/org/apache/ignite/lang/utils/GridConcurrentLinkedHashMapSelfTest.java
index 75ac896..49f24b0 100644
--- a/modules/core/src/test/java/org/apache/ignite/lang/utils/GridConcurrentLinkedHashMapSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/lang/utils/GridConcurrentLinkedHashMapSelfTest.java
@@ -176,6 +176,24 @@ public class GridConcurrentLinkedHashMapSelfTest extends GridCommonAbstractTest
     }
 
     /**
+     * @throws Exception If failed.
+     */
+    public void testRehash() throws Exception {
+        Map<Integer, Date> map = new ConcurrentLinkedHashMap<>(10);
+
+        for (int i = 0; i < 100; i++)
+            // Will initiate rehash in the middle.
+            map.put(i, new Date(0));
+
+        for (int i = 0; i < 100; i++)
+            // Will initiate rehash in the middle.
+            map.put(i, new Date(1));
+
+        for (Date date : map.values())
+            assertEquals(1L, date.getTime());
+    }
+
+    /**
      *
      */
     public void testDescendingMethods() {


[45/50] [abbrv] ignite git commit: Merge remote-tracking branch 'upstream/master' into ignite-264

Posted by ag...@apache.org.
Merge remote-tracking branch 'upstream/master' into ignite-264


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

Branch: refs/heads/ignite-264
Commit: f88defdc6f85bdafd77f552acc505ac21e9228f5
Parents: 9996de8 6731627
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Tue Sep 1 11:41:52 2015 -0700
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Tue Sep 1 11:41:52 2015 -0700

----------------------------------------------------------------------
 .../examples/datagrid/CacheQueryExample.java    |    6 +-
 .../hibernate/HibernateL2CacheExample.java      |    4 +-
 .../java8/datagrid/CacheAffinityExample.java    |    4 +-
 .../java8/datagrid/CacheApiExample.java         |    4 +-
 .../java8/datagrid/CacheAsyncApiExample.java    |    4 +-
 idea/ignite_codeStyle.xml                       |   11 +-
 modules/core/pom.xml                            |    6 +-
 .../internal/GridEventConsumeHandler.java       |   15 +-
 .../managers/communication/GridIoManager.java   |   50 +-
 .../GridLifecycleAwareMessageFilter.java        |   38 -
 .../eventstorage/GridEventStorageManager.java   |   16 +-
 .../processors/cache/GridCacheAdapter.java      |    5 +-
 .../processors/cache/GridCacheProcessor.java    |   27 +-
 .../cache/GridLoadCacheCloseablePredicate.java  |   30 -
 .../distributed/dht/GridDhtCacheAdapter.java    |    6 +-
 .../GridDhtPartitionsExchangeFuture.java        |   94 +-
 .../CacheQueryCloseableScanBiPredicate.java     |   30 -
 .../cache/query/GridCacheQueryManager.java      |   52 +-
 .../CacheContinuousQueryFilterEx.java           |   31 -
 .../continuous/CacheContinuousQueryHandler.java |    5 +-
 .../platform/PlatformAwareEventFilter.java      |   39 -
 .../processors/platform/PlatformContext.java    |   37 +-
 .../platform/PlatformEventFilterListener.java   |   39 +
 .../processors/platform/PlatformException.java  |   71 +
 .../platform/PlatformExtendedException.java     |   57 +
 .../platform/PlatformLocalEventListener.java    |   28 -
 .../platform/PlatformNativeException.java       |   77 +
 .../platform/PlatformNoCallbackException.java   |   50 +
 .../cache/PlatformCacheEntryFilter.java         |   11 +-
 .../cache/PlatformCacheEntryProcessor.java      |   27 +
 .../cache/query/PlatformContinuousQuery.java    |    6 +-
 .../query/PlatformContinuousQueryFilter.java    |   30 +
 .../callback/PlatformCallbackGateway.java       |   10 +-
 .../cluster/PlatformClusterNodeFilter.java      |   28 +
 .../datastreamer/PlatformStreamReceiver.java    |   27 +
 .../platform/message/PlatformMessageFilter.java |   40 +
 .../internal/util/GridStripedSpinBusyLock.java  |  127 +
 .../cache/IgniteDynamicCacheAndNodeStop.java    |   95 +
 .../CachePutAllFailoverAbstractTest.java        |  234 ++
 .../distributed/CachePutAllFailoverTxTest.java  |   30 +
 .../testsuites/IgniteCacheTestSuite2.java       |    4 +-
 .../platform/src/main/cpp/common/Makefile.am    |   45 +
 .../platform/src/main/cpp/common/configure.ac   |   62 +
 .../src/main/cpp/common/ignite-common.pc.in     |    9 +
 .../src/main/cpp/common/include/Makefile.am     |   22 +
 .../common/include/ignite/common/concurrent.h   |  210 ++
 .../cpp/common/include/ignite/common/exports.h  |  145 ++
 .../cpp/common/include/ignite/common/java.h     |  652 ++++++
 .../cpp/common/os/linux/include/Makefile.am     |   21 +
 .../os/linux/include/ignite/common/common.h     |   81 +
 .../linux/include/ignite/common/concurrent_os.h |  394 ++++
 .../src/main/cpp/common/os/linux/src/common.cpp |   59 +
 .../cpp/common/os/linux/src/concurrent_os.cpp   |  175 ++
 .../os/win/include/ignite/common/common.h       |   56 +
 .../win/include/ignite/common/concurrent_os.h   |  406 ++++
 .../src/main/cpp/common/os/win/src/common.cpp   |   65 +
 .../cpp/common/os/win/src/concurrent_os.cpp     |  151 ++
 .../src/main/cpp/common/project/README.TXT      |    1 +
 .../src/main/cpp/common/project/vs/README.TXT   |    1 +
 .../main/cpp/common/project/vs/common.vcxproj   |  202 ++
 .../common/project/vs/common.vcxproj.filters    |   54 +
 .../src/main/cpp/common/project/vs/module.def   |   99 +
 .../src/main/cpp/common/project/vs/targetver.h  |   25 +
 .../src/main/cpp/common/src/concurrent.cpp      |   94 +
 .../src/main/cpp/common/src/exports.cpp         |  413 ++++
 .../platform/src/main/cpp/common/src/java.cpp   | 2204 ++++++++++++++++++
 .../platform/PlatformAbstractTarget.java        |   34 +-
 .../platform/PlatformContextImpl.java           |  621 +++++
 .../processors/platform/PlatformException.java  |   71 -
 .../platform/PlatformExtendedException.java     |   39 -
 .../platform/PlatformNoCallbackException.java   |   50 -
 .../platform/cache/PlatformCache.java           |   44 +-
 .../cache/PlatformCacheEntryFilterImpl.java     |    5 +-
 .../cache/PlatformCacheEntryProcessor.java      |  220 --
 .../cache/PlatformCacheEntryProcessorImpl.java  |  220 ++
 .../PlatformCachePartialUpdateException.java    |   24 +-
 .../PlatformContinuousQueryRemoteFilter.java    |   20 +-
 .../cluster/PlatformClusterNodeFilter.java      |   79 -
 .../cluster/PlatformClusterNodeFilterImpl.java  |   78 +
 .../platform/compute/PlatformAbstractTask.java  |    1 +
 .../compute/PlatformNativeException.java        |   77 -
 .../datastreamer/PlatformDataStreamer.java      |    2 +-
 .../datastreamer/PlatformStreamReceiver.java    |  120 -
 .../PlatformStreamReceiverImpl.java             |  119 +
 .../platform/events/PlatformEventFilter.java    |  164 --
 .../events/PlatformEventFilterListenerImpl.java |  163 ++
 .../platform/events/PlatformEvents.java         |   15 +-
 .../messaging/PlatformMessageFilter.java        |  110 -
 .../messaging/PlatformMessageFilterImpl.java    |  110 +
 .../messaging/PlatformMessageLocalFilter.java   |    9 +-
 .../platform/messaging/PlatformMessaging.java   |    7 +-
 .../transactions/PlatformTransactions.java      |    2 +-
 .../platform/utils/PlatformFutureUtils.java     |   82 +-
 .../platform/utils/PlatformUtils.java           |    2 +-
 parent/pom.xml                                  |    6 +
 95 files changed, 8252 insertions(+), 1393 deletions(-)
----------------------------------------------------------------------



[26/50] [abbrv] ignite git commit: IGNITE-264 - Fixing tests WIP.

Posted by ag...@apache.org.
IGNITE-264 - Fixing tests WIP.


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

Branch: refs/heads/ignite-264
Commit: f9511aff95fd6fecff3da3bc70143d3e74e4aaaf
Parents: a733984
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Thu Aug 13 18:28:00 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Thu Aug 13 18:28:00 2015 -0700

----------------------------------------------------------------------
 .../near/GridNearOptimisticTxPrepareFuture.java |  33 ++--
 .../GridNearPessimisticTxPrepareFuture.java     |   8 +-
 .../near/GridNearTxFinishFuture.java            |  98 +++++------
 .../cache/distributed/near/GridNearTxLocal.java |  43 +----
 .../dht/GridCacheTxNodeFailureSelfTest.java     | 165 ++++++++++++++++---
 5 files changed, 230 insertions(+), 117 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/f9511aff/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
index 95e1847..28069b2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
@@ -118,8 +118,13 @@ public class GridNearOptimisticTxPrepareFuture extends GridNearTxPrepareFutureAd
      */
     void onError(@Nullable UUID nodeId, @Nullable Iterable<GridDistributedTxMapping> mappings, Throwable e) {
         if (X.hasCause(e, ClusterTopologyCheckedException.class) || X.hasCause(e, ClusterTopologyException.class)) {
-            if (tx.onePhaseCommit())
+            if (tx.onePhaseCommit()) {
                 tx.markForBackupCheck();
+
+                onComplete();
+
+                return;
+            }
         }
 
         if (err.compareAndSet(null, e)) {
@@ -189,17 +194,7 @@ public class GridNearOptimisticTxPrepareFuture extends GridNearTxPrepareFutureAd
 
         this.err.compareAndSet(null, err);
 
-        if (err == null)
-            tx.state(PREPARED);
-
-        if (super.onDone(tx, err)) {
-            // Don't forget to clean up.
-            cctx.mvcc().removeFuture(this);
-
-            return true;
-        }
-
-        return false;
+        return onComplete();
     }
 
     /**
@@ -213,10 +208,20 @@ public class GridNearOptimisticTxPrepareFuture extends GridNearTxPrepareFutureAd
     /**
      * Completeness callback.
      */
-    private void onComplete() {
-        if (super.onDone(tx, err.get()))
+    private boolean onComplete() {
+        Throwable err0 = err.get();
+
+        if (err0 == null || tx.needCheckBackup())
+            tx.state(PREPARED);
+
+        if (super.onDone(tx, err0)) {
             // Don't forget to clean up.
             cctx.mvcc().removeFuture(this);
+
+            return true;
+        }
+
+        return false;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/f9511aff/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
index 6de46f4..6ac1033 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
@@ -242,7 +242,7 @@ public class GridNearPessimisticTxPrepareFuture extends GridNearTxPrepareFutureA
 
         err = this.err.get();
 
-        if (err == null)
+        if (err == null || tx.needCheckBackup())
             tx.state(PREPARED);
 
         if (super.onDone(tx, err)) {
@@ -320,9 +320,13 @@ public class GridNearPessimisticTxPrepareFuture extends GridNearTxPrepareFutureA
          * @param e Error.
          */
         void onNodeLeft(ClusterTopologyCheckedException e) {
-            if (tx.onePhaseCommit())
+            if (tx.onePhaseCommit()) {
                 tx.markForBackupCheck();
 
+                // Do not fail future for one-phase transaction right away.
+                onDone(tx);
+            }
+
             onError(e);
         }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/f9511aff/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
index 1e16982..95f5149 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
@@ -33,6 +33,7 @@ import org.apache.ignite.internal.util.tostring.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.lang.*;
+import org.apache.ignite.transactions.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;
@@ -227,29 +228,46 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
     }
 
     /** {@inheritDoc} */
-    @Override public boolean onDone(IgniteInternalTx tx, Throwable err) {
+    @Override public boolean onDone(IgniteInternalTx tx0, Throwable err) {
         if ((initialized() || err != null)) {
-            if (this.tx.onePhaseCommit() && (this.tx.state() == COMMITTING)) {
+            if (tx.needCheckBackup()) {
+                assert tx.onePhaseCommit();
+
+                if (err != null)
+                    err = new TransactionRollbackException("Failed to commit transaction.", err);
+
+                try {
+                    tx.finish(err == null);
+                }
+                catch (IgniteCheckedException e) {
+                    if (err != null)
+                        err.addSuppressed(e);
+                    else
+                        err = e;
+                }
+            }
+
+            if (tx.onePhaseCommit()) {
                 finishOnePhase();
 
-                this.tx.tmFinish(err == null);
+                tx.tmFinish(err == null);
             }
 
             Throwable th = this.err.get();
 
-            if (super.onDone(tx, th != null ? th : err)) {
+            if (super.onDone(tx0, th != null ? th : err)) {
                 if (error() instanceof IgniteTxHeuristicCheckedException) {
-                    AffinityTopologyVersion topVer = this.tx.topologyVersion();
+                    AffinityTopologyVersion topVer = tx.topologyVersion();
 
-                    for (IgniteTxEntry e : this.tx.writeMap().values()) {
+                    for (IgniteTxEntry e : tx.writeMap().values()) {
                         GridCacheContext cacheCtx = e.context();
 
                         try {
                             if (e.op() != NOOP && !cacheCtx.affinity().localNode(e.key(), topVer)) {
-                                GridCacheEntryEx Entry = cacheCtx.cache().peekEx(e.key());
+                                GridCacheEntryEx entry = cacheCtx.cache().peekEx(e.key());
 
-                                if (Entry != null)
-                                    Entry.invalidate(null, this.tx.xidVersion());
+                                if (entry != null)
+                                    entry.invalidate(null, tx.xidVersion());
                             }
                         }
                         catch (Throwable t) {
@@ -297,13 +315,24 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
      * Initializes future.
      */
     void finish() {
-        if (tx.onePhaseCommit()) {
-            if (commit) {
-                if (tx.needCheckBackup())
-                    checkBackup();
-                else if (needFinishOnePhase()) {
+        if (tx.needCheckBackup()) {
+            assert tx.onePhaseCommit();
+
+            checkBackup();
+
+            // If checkBackup is set, it means that primary node has crashed and we will not need to send
+            // finish request to it, so we can mark future as initialized.
+            markInitialized();
+        }
+
+        try {
+            if (tx.finish(commit) || (!commit && tx.state() == UNKNOWN)) {
+                if ((tx.onePhaseCommit() && needFinishOnePhase()) || (!tx.onePhaseCommit() && mappings != null))
                     finish(mappings.values());
 
+                markInitialized();
+
+                if (!isSync()) {
                     boolean complete = true;
 
                     for (IgniteInternalFuture<?> f : pending())
@@ -315,40 +344,16 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
                         onComplete();
                 }
             }
-
-            markInitialized();
-
-            return;
+            else
+                onError(new IgniteCheckedException("Failed to commit transaction: " + CU.txString(tx)));
         }
+        catch (Error | RuntimeException e) {
+            onError(e);
 
-        if (mappings != null) {
-            finish(mappings.values());
-
-            markInitialized();
-
-            if (!isSync()) {
-                boolean complete = true;
-
-                for (IgniteInternalFuture<?> f : pending())
-                    // Mini-future in non-sync mode gets done when message gets sent.
-                    if (isMini(f) && !f.isDone())
-                        complete = false;
-
-                if (complete)
-                    onComplete();
-            }
+            throw e;
         }
-        else {
-            assert !commit;
-
-            try {
-                tx.rollback();
-            }
-            catch (IgniteCheckedException e) {
-                U.error(log, "Failed to rollback empty transaction: " + tx, e);
-            }
-
-            markInitialized();
+        catch (IgniteCheckedException e) {
+            onError(e);
         }
     }
 
@@ -641,8 +646,9 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
         void onResult(GridDhtTxFinishResponse res) {
             assert backup != null;
 
-            if (res.checkCommittedError() != null)
+            if (res.checkCommittedError() != null) {
                 onDone(res.checkCommittedError());
+            }
             else
                 onDone(tx);
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/f9511aff/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index c40ac5e..0421309 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -712,7 +712,7 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter {
 
         cctx.mvcc().addFuture(fut);
 
-        IgniteInternalFuture<?> prepareFut = prepFut.get();
+        final IgniteInternalFuture<?> prepareFut = prepFut.get();
 
         prepareFut.listen(new CI1<IgniteInternalFuture<?>>() {
             @Override public void apply(IgniteInternalFuture<?> f) {
@@ -720,24 +720,15 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter {
 
                 try {
                     // Make sure that here are no exceptions.
-                    if (!needCheckBackup()) {
-                        f.get();
-
-                        if (finish(true))
-                            fut0.finish();
-                        else
-                            fut0.onError(new IgniteCheckedException("Failed to commit transaction: " +
-                                CU.txString(GridNearTxLocal.this)));
-                    }
-                    else {
-                        assert onePhaseCommit();
+                    prepareFut.get();
 
-                        fut0.finish();
-                    }
+                    fut0.finish();
                 }
                 catch (Error | RuntimeException e) {
                     commitErr.compareAndSet(null, e);
 
+                    fut0.onError(e);
+
                     throw e;
                 }
                 catch (IgniteCheckedException e) {
@@ -779,15 +770,7 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter {
                     log.debug("Got optimistic tx failure [tx=" + this + ", err=" + e + ']');
             }
 
-            try {
-                if (finish(false) || state() == UNKNOWN)
-                    fut.finish();
-                else
-                    fut.onError(new IgniteCheckedException("Failed to gracefully rollback transaction: " + CU.txString(this)));
-            }
-            catch (IgniteCheckedException e) {
-                fut.onError(e);
-            }
+            fut.finish();
         }
         else {
             prepFut.listen(new CI1<IgniteInternalFuture<?>>() {
@@ -803,19 +786,7 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter {
 
                     GridNearTxFinishFuture fut0 = rollbackFut.get();
 
-                    try {
-                        if (finish(false) || state() == UNKNOWN)
-                            fut0.finish();
-                        else
-                            fut0.onError(new IgniteCheckedException("Failed to gracefully rollback transaction: " +
-                                CU.txString(GridNearTxLocal.this)));
-                    }
-                    catch (IgniteCheckedException e) {
-                        U.error(log, "Failed to gracefully rollback transaction: " +
-                            CU.txString(GridNearTxLocal.this), e);
-
-                        fut0.onError(e);
-                    }
+                    fut0.finish();
                 }
             });
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/f9511aff/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
index 773ec25..bca3b6f 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
@@ -23,6 +23,10 @@ import org.apache.ignite.cache.affinity.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.internal.*;
+import org.apache.ignite.internal.managers.communication.*;
+import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.lang.*;
 import org.apache.ignite.plugin.extensions.communication.*;
 import org.apache.ignite.spi.*;
 import org.apache.ignite.spi.communication.tcp.*;
@@ -30,6 +34,7 @@ import org.apache.ignite.testframework.*;
 import org.apache.ignite.testframework.junits.common.*;
 import org.apache.ignite.transactions.*;
 
+import javax.cache.*;
 import java.util.*;
 import java.util.concurrent.*;
 
@@ -68,34 +73,94 @@ public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
      * @throws Exception If failed.
      */
     public void testPrimaryNodeFailureBackupCommitPessimistic() throws Exception {
-        checkPrimaryNodeFailureBackupCommit(PESSIMISTIC, false);
+        checkPrimaryNodeFailureBackupCommit(PESSIMISTIC, false, true);
     }
 
     /**
      * @throws Exception If failed.
      */
     public void testPrimaryNodeFailureBackupCommitOptimistic() throws Exception {
-        checkPrimaryNodeFailureBackupCommit(OPTIMISTIC, false);
+        checkPrimaryNodeFailureBackupCommit(OPTIMISTIC, false, true);
     }
 
     /**
      * @throws Exception If failed.
      */
     public void testPrimaryNodeFailureBackupCommitPessimisticOnBackup() throws Exception {
-        checkPrimaryNodeFailureBackupCommit(PESSIMISTIC, true);
+        checkPrimaryNodeFailureBackupCommit(PESSIMISTIC, true, true);
     }
 
     /**
      * @throws Exception If failed.
      */
     public void testPrimaryNodeFailureBackupCommitOptimisticOnBackup() throws Exception {
-        checkPrimaryNodeFailureBackupCommit(OPTIMISTIC, true);
+        checkPrimaryNodeFailureBackupCommit(OPTIMISTIC, true, true);
     }
 
     /**
      * @throws Exception If failed.
      */
-    private void checkPrimaryNodeFailureBackupCommit(final TransactionConcurrency conc, boolean backup) throws Exception {
+    public void testPrimaryNodeFailureBackupRollbackPessimistic() throws Exception {
+        checkPrimaryNodeFailureBackupCommit(PESSIMISTIC, false, false);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testPrimaryNodeFailureBackupRollbackOptimistic() throws Exception {
+        checkPrimaryNodeFailureBackupCommit(OPTIMISTIC, false, false);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testPrimaryNodeFailureBackupRollbackPessimisticOnBackup() throws Exception {
+        checkPrimaryNodeFailureBackupCommit(PESSIMISTIC, true, false);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testPrimaryNodeFailureBackupRollbackOptimisticOnBackup() throws Exception {
+        checkPrimaryNodeFailureBackupCommit(OPTIMISTIC, true, false);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testPrimaryNodeFailureBackupCommitImplicit() throws Exception {
+        checkPrimaryNodeFailureBackupCommit(null, false, true);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testPrimaryNodeFailureBackupCommitImplicitOnBackup() throws Exception {
+        checkPrimaryNodeFailureBackupCommit(null, true, true);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testPrimaryNodeFailureBackupRollbackImplicit() throws Exception {
+        checkPrimaryNodeFailureBackupCommit(null, false, false);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testPrimaryNodeFailureBackupRollbackImplicitOnBackup() throws Exception {
+        checkPrimaryNodeFailureBackupCommit(null, true, false);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    private void checkPrimaryNodeFailureBackupCommit(
+        final TransactionConcurrency conc,
+        boolean backup,
+        final boolean commit
+    ) throws Exception {
         startGrids(gridCount());
         awaitPartitionMapExchange();
 
@@ -111,25 +176,79 @@ public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
 
             final CountDownLatch commitLatch = new CountDownLatch(1);
 
-            if (!backup) {
-                communication(2).bannedClasses(Collections.<Class>singletonList(GridDhtTxPrepareResponse.class));
-                communication(3).bannedClasses(Collections.<Class>singletonList(GridDhtTxPrepareResponse.class));
+            if (!commit) {
+                communication(1).bannedClasses(Collections.<Class>singletonList(GridDhtTxPrepareRequest.class));
+            }
+            else {
+                if (!backup) {
+                    communication(2).bannedClasses(Collections.<Class>singletonList(GridDhtTxPrepareResponse.class));
+                    communication(3).bannedClasses(Collections.<Class>singletonList(GridDhtTxPrepareResponse.class));
+                }
+                else
+                    communication(0).bannedClasses(Collections.<Class>singletonList(GridDhtTxPrepareResponse.class));
             }
-            else
-                communication(0).bannedClasses(Collections.<Class>singletonList(GridDhtTxPrepareResponse.class));
 
             IgniteInternalFuture<Object> fut = GridTestUtils.runAsync(new Callable<Object>() {
                 @Override public Object call() throws Exception {
-                    try (Transaction tx = ignite.transactions().txStart(conc, REPEATABLE_READ)) {
-                        cache.put(key, key);
+                    if (conc != null) {
+                        try (Transaction tx = ignite.transactions().txStart(conc, REPEATABLE_READ)) {
+                            cache.put(key, key);
+
+                            Transaction asyncTx = (Transaction)tx.withAsync();
+
+                            asyncTx.commit();
 
-                        Transaction asyncTx = (Transaction)tx.withAsync();
+                            commitLatch.countDown();
 
-                        asyncTx.commit();
+                            try {
+                                IgniteFuture<Object> fut = asyncTx.future();
+
+                                fut.get();
+
+                                if (!commit) {
+                                    error("Transaction has been committed");
+
+                                    fail("Transaction has been committed: " + tx);
+                                }
+                            }
+                            catch (TransactionRollbackException e) {
+                                if (commit) {
+                                    error(e.getMessage(), e);
+
+                                    fail("Failed to commit: " + e);
+                                }
+                                else
+                                    assertTrue(X.hasCause(e, TransactionRollbackException.class));
+                            }
+                        }
+                    }
+                    else {
+                        IgniteCache<Object, Object> cache0 = cache.withAsync();
+
+                        cache0.put(key, key);
+
+                        Thread.sleep(1000);
 
                         commitLatch.countDown();
 
-                        asyncTx.future().get();
+                        try {
+                            cache0.future().get();
+
+                            if (!commit) {
+                                error("Transaction has been committed");
+
+                                fail("Transaction has been committed.");
+                            }
+                        }
+                        catch (CacheException e) {
+                            if (commit) {
+                                error(e.getMessage(), e);
+
+                                fail("Failed to commit: " + e);
+                            }
+                            else
+                                assertTrue(X.hasCause(e, TransactionRollbackException.class));
+                        }
                     }
 
                     return null;
@@ -140,8 +259,11 @@ public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
 
             stopGrid(1);
 
-            // No exception should happen since transaction is committed on the backup node.
+            // Check that thread successfully finished.
             fut.get();
+
+            // Check there are no hanging transactions.
+            assertEquals(0, ((IgniteEx)ignite).context().cache().context().tm().idMapSize());
         }
         finally {
             stopAllGrids();
@@ -194,9 +316,14 @@ public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
         }
 
         /** {@inheritDoc} */
-        @Override public void sendMessage(ClusterNode node, Message msg) throws IgniteSpiException {
-            if (!bannedClasses.contains(msg.getClass()))
-                super.sendMessage(node, msg);
+        @Override public void sendMessage(ClusterNode node, Message msg, IgniteInClosure<IgniteException> ackClosure) throws IgniteSpiException {
+            GridIoMessage ioMsg = (GridIoMessage)msg;
+
+            if (!bannedClasses.contains(ioMsg.message().getClass())) {
+                super.sendMessage(node, msg, ackClosure);
+
+                U.debug(">>> Sending message: " + msg);
+            }
         }
     }
 }


[19/50] [abbrv] ignite git commit: IGNITE-264 - Fixing tests WIP.

Posted by ag...@apache.org.
IGNITE-264 - Fixing tests WIP.


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

Branch: refs/heads/ignite-264
Commit: ac54b3056e371ee9558489f7bfd10fb29cec446a
Parents: e7fa1b3
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Mon Aug 10 18:34:13 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Mon Aug 10 18:34:13 2015 -0700

----------------------------------------------------------------------
 .../cache/distributed/near/GridNearTxFinishFuture.java         | 6 +++---
 .../processors/cache/transactions/IgniteTxHandler.java         | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/ac54b305/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
index f5d479c..568dc0b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
@@ -523,9 +523,9 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
             @SuppressWarnings("unchecked")
             @Override public String apply(IgniteInternalFuture<?> f) {
                 if (isMini(f)) {
-                    return "[node=" + ((MiniFuture) f).node().id() +
-                        ", loc=" + ((MiniFuture) f).node().isLocal() +
-                        ", done=" + f.isDone() + "]";
+                    MiniFuture m = (MiniFuture)f;
+
+                    return "[node=" + m.node().id() + ", loc=" + m.node().isLocal() + ", done=" + f.isDone() + "]";
                 }
                 else
                     return "[loc=true, done=" + f.isDone() + "]";

http://git-wip-us.apache.org/repos/asf/ignite/blob/ac54b305/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index 643bbde..c0c8293 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@ -334,9 +334,6 @@ public class IgniteTxHandler {
                     req.taskNameHash()
                 );
 
-                if (req.near())
-                    tx.nearOnOriginatingNode(true);
-
                 tx = ctx.tm().onCreated(null, tx);
 
                 if (tx != null)
@@ -357,6 +354,9 @@ public class IgniteTxHandler {
 
             tx.transactionNodes(req.transactionNodes());
 
+            if (req.near())
+                tx.nearOnOriginatingNode(true);
+
             if (req.onePhaseCommit()) {
                 assert req.last();
                 assert F.isEmpty(req.lastBackups()) || req.lastBackups().size() <= 1;


[17/50] [abbrv] ignite git commit: IGNITE-264 - Regenerated messages.

Posted by ag...@apache.org.
IGNITE-264 - Regenerated messages.


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

Branch: refs/heads/ignite-264
Commit: 4bc5d50916d2a4a9293653d62b0b35a43cd6449e
Parents: 3732377
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Mon Aug 10 12:09:17 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Mon Aug 10 12:09:17 2015 -0700

----------------------------------------------------------------------
 .../ignite/codegen/MessageCodeGenerator.java    | 17 +++--
 .../managers/communication/GridIoMessage.java   |  6 +-
 .../distributed/GridCacheTxRecoveryRequest.java | 26 ++++----
 .../GridCacheTxRecoveryResponse.java            | 14 ++--
 .../distributed/GridDistributedBaseMessage.java |  4 +-
 .../distributed/GridDistributedLockRequest.java | 54 ++++++++--------
 .../GridDistributedLockResponse.java            | 14 ++--
 .../GridDistributedTxFinishRequest.java         | 48 +++++++-------
 .../GridDistributedTxPrepareRequest.java        | 68 +++++++++-----------
 .../GridDistributedTxPrepareResponse.java       |  6 +-
 .../GridDistributedUnlockRequest.java           |  6 +-
 .../distributed/dht/GridDhtLockRequest.java     |  4 +-
 .../distributed/dht/GridDhtLockResponse.java    | 18 +++---
 .../distributed/dht/GridDhtTxFinishRequest.java | 48 +++++++++-----
 .../dht/GridDhtTxPrepareRequest.java            | 54 ++++++++--------
 .../dht/GridDhtTxPrepareResponse.java           | 22 +++----
 .../distributed/dht/GridDhtUnlockRequest.java   |  6 +-
 .../distributed/near/GridNearLockRequest.java   | 32 ++++-----
 .../distributed/near/GridNearLockResponse.java  | 20 +++---
 .../near/GridNearTxFinishRequest.java           | 26 ++++----
 .../near/GridNearTxPrepareRequest.java          | 50 +++++++-------
 .../near/GridNearTxPrepareResponse.java         | 42 ++++++------
 .../distributed/near/GridNearUnlockRequest.java |  2 +-
 .../messages/GridQueryNextPageResponse.java     |  8 +--
 .../h2/twostep/messages/GridQueryRequest.java   | 28 ++++----
 25 files changed, 316 insertions(+), 307 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
----------------------------------------------------------------------
diff --git a/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java b/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
index 3fa39cc..2d7212b 100644
--- a/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
+++ b/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
@@ -219,12 +219,19 @@ public class MessageCodeGenerator {
         for (Class<? extends Message> cls : classes) {
             boolean isAbstract = Modifier.isAbstract(cls.getModifiers());
 
-            System.out.println("Processing class: " + cls.getName() + (isAbstract ? " (abstract)" : ""));
+            try {
+                System.out.println("Processing class: " + cls.getName() + (isAbstract ? " (abstract)" : ""));
 
-            if (write)
-                generateAndWrite(cls);
-            else
-                generate(cls);
+                if (write)
+                    generateAndWrite(cls);
+                else
+                    generate(cls);
+            }
+            catch (IllegalStateException e) {
+                fields.clear();
+
+                System.out.println("Will not write class " + cls.getName() + ": " + e.getMessage());
+            }
         }
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessage.java
index 6cf1ae5..742bfa8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessage.java
@@ -261,15 +261,11 @@ public class GridIoMessage implements Message {
                 reader.incrementState();
 
             case 2:
-                byte plc0;
-
-                plc0 = reader.readByte("plc");
+                plc = reader.readByte("plc");
 
                 if (!reader.isLastRead())
                     return false;
 
-                plc = plc0;
-
                 reader.incrementState();
 
             case 3:

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
index c6928ed..64e652f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
@@ -146,37 +146,37 @@ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
         }
 
         switch (writer.state()) {
-            case 7:
+            case 5:
                 if (!writer.writeIgniteUuid("futId", futId))
                     return false;
 
                 writer.incrementState();
 
-            case 8:
+            case 6:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
-            case 9:
+            case 7:
                 if (!writer.writeBoolean("nearTxCheck", nearTxCheck))
                     return false;
 
                 writer.incrementState();
 
-            case 10:
+            case 8:
                 if (!writer.writeMessage("nearXidVer", nearXidVer))
                     return false;
 
                 writer.incrementState();
 
-            case 11:
+            case 9:
                 if (!writer.writeBoolean("sys", sys))
                     return false;
 
                 writer.incrementState();
 
-            case 12:
+            case 10:
                 if (!writer.writeInt("txNum", txNum))
                     return false;
 
@@ -198,7 +198,7 @@ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
             return false;
 
         switch (reader.state()) {
-            case 7:
+            case 5:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
@@ -206,7 +206,7 @@ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 8:
+            case 6:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -214,7 +214,7 @@ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 9:
+            case 7:
                 nearTxCheck = reader.readBoolean("nearTxCheck");
 
                 if (!reader.isLastRead())
@@ -222,7 +222,7 @@ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 10:
+            case 8:
                 nearXidVer = reader.readMessage("nearXidVer");
 
                 if (!reader.isLastRead())
@@ -230,7 +230,7 @@ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 11:
+            case 9:
                 sys = reader.readBoolean("sys");
 
                 if (!reader.isLastRead())
@@ -238,7 +238,7 @@ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 12:
+            case 10:
                 txNum = reader.readInt("txNum");
 
                 if (!reader.isLastRead())
@@ -258,7 +258,7 @@ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 12;
+        return 11;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java
index 99b676a..5855b1d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java
@@ -102,19 +102,19 @@ public class GridCacheTxRecoveryResponse extends GridDistributedBaseMessage {
         }
 
         switch (writer.state()) {
-            case 7:
+            case 5:
                 if (!writer.writeIgniteUuid("futId", futId))
                     return false;
 
                 writer.incrementState();
 
-            case 8:
+            case 6:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
-            case 9:
+            case 7:
                 if (!writer.writeBoolean("success", success))
                     return false;
 
@@ -136,7 +136,7 @@ public class GridCacheTxRecoveryResponse extends GridDistributedBaseMessage {
             return false;
 
         switch (reader.state()) {
-            case 7:
+            case 5:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
@@ -144,7 +144,7 @@ public class GridCacheTxRecoveryResponse extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 8:
+            case 6:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -152,7 +152,7 @@ public class GridCacheTxRecoveryResponse extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 9:
+            case 7:
                 success = reader.readBoolean("success");
 
                 if (!reader.isLastRead())
@@ -172,7 +172,7 @@ public class GridCacheTxRecoveryResponse extends GridDistributedBaseMessage {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 10;
+        return 8;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
index f759fcc..f1098c7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
@@ -173,7 +173,7 @@ public abstract class GridDistributedBaseMessage extends GridCacheMessage implem
 
                 writer.incrementState();
 
-            case 6:
+            case 4:
                 if (!writer.writeMessage("ver", ver))
                     return false;
 
@@ -203,7 +203,7 @@ public abstract class GridDistributedBaseMessage extends GridCacheMessage implem
 
                 reader.incrementState();
 
-            case 6:
+            case 4:
                 ver = reader.readMessage("ver");
 
                 if (!reader.isLastRead())

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
index ecf3259..2b2c9c7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
@@ -321,79 +321,79 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
         }
 
         switch (writer.state()) {
-            case 7:
+            case 5:
                 if (!writer.writeByte("flags", flags))
                     return false;
 
                 writer.incrementState();
 
-            case 8:
+            case 6:
                 if (!writer.writeIgniteUuid("futId", futId))
                     return false;
 
                 writer.incrementState();
 
-            case 9:
+            case 7:
                 if (!writer.writeBoolean("isInTx", isInTx))
                     return false;
 
                 writer.incrementState();
 
-            case 10:
+            case 8:
                 if (!writer.writeBoolean("isInvalidate", isInvalidate))
                     return false;
 
                 writer.incrementState();
 
-            case 11:
+            case 9:
                 if (!writer.writeBoolean("isRead", isRead))
                     return false;
 
                 writer.incrementState();
 
-            case 12:
+            case 10:
                 if (!writer.writeByte("isolation", isolation != null ? (byte)isolation.ordinal() : -1))
                     return false;
 
                 writer.incrementState();
 
-            case 13:
+            case 11:
                 if (!writer.writeCollection("keys", keys, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 14:
+            case 12:
                 if (!writer.writeMessage("nearXidVer", nearXidVer))
                     return false;
 
                 writer.incrementState();
 
-            case 15:
+            case 13:
                 if (!writer.writeUuid("nodeId", nodeId))
                     return false;
 
                 writer.incrementState();
 
-            case 16:
+            case 14:
                 if (!writer.writeBooleanArray("retVals", retVals))
                     return false;
 
                 writer.incrementState();
 
-            case 17:
+            case 15:
                 if (!writer.writeLong("threadId", threadId))
                     return false;
 
                 writer.incrementState();
 
-            case 18:
+            case 16:
                 if (!writer.writeLong("timeout", timeout))
                     return false;
 
                 writer.incrementState();
 
-            case 19:
+            case 17:
                 if (!writer.writeInt("txSize", txSize))
                     return false;
 
@@ -415,7 +415,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
             return false;
 
         switch (reader.state()) {
-            case 7:
+            case 5:
                 flags = reader.readByte("flags");
 
                 if (!reader.isLastRead())
@@ -423,7 +423,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 8:
+            case 6:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
@@ -431,7 +431,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 9:
+            case 7:
                 isInTx = reader.readBoolean("isInTx");
 
                 if (!reader.isLastRead())
@@ -439,7 +439,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 10:
+            case 8:
                 isInvalidate = reader.readBoolean("isInvalidate");
 
                 if (!reader.isLastRead())
@@ -447,7 +447,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 11:
+            case 9:
                 isRead = reader.readBoolean("isRead");
 
                 if (!reader.isLastRead())
@@ -455,7 +455,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 12:
+            case 10:
                 byte isolationOrd;
 
                 isolationOrd = reader.readByte("isolation");
@@ -467,7 +467,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 13:
+            case 11:
                 keys = reader.readCollection("keys", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -475,7 +475,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 14:
+            case 12:
                 nearXidVer = reader.readMessage("nearXidVer");
 
                 if (!reader.isLastRead())
@@ -483,7 +483,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 15:
+            case 13:
                 nodeId = reader.readUuid("nodeId");
 
                 if (!reader.isLastRead())
@@ -491,7 +491,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 16:
+            case 14:
                 retVals = reader.readBooleanArray("retVals");
 
                 if (!reader.isLastRead())
@@ -499,7 +499,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 17:
+            case 15:
                 threadId = reader.readLong("threadId");
 
                 if (!reader.isLastRead())
@@ -507,7 +507,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 18:
+            case 16:
                 timeout = reader.readLong("timeout");
 
                 if (!reader.isLastRead())
@@ -515,7 +515,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 19:
+            case 17:
                 txSize = reader.readInt("txSize");
 
                 if (!reader.isLastRead())
@@ -535,7 +535,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 20;
+        return 18;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
index d46bf2d..e28dbcd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
@@ -238,19 +238,19 @@ public class GridDistributedLockResponse extends GridDistributedBaseMessage {
         }
 
         switch (writer.state()) {
-            case 7:
+            case 5:
                 if (!writer.writeByteArray("errBytes", errBytes))
                     return false;
 
                 writer.incrementState();
 
-            case 8:
+            case 6:
                 if (!writer.writeIgniteUuid("futId", futId))
                     return false;
 
                 writer.incrementState();
 
-            case 9:
+            case 7:
                 if (!writer.writeCollection("vals", vals, MessageCollectionItemType.MSG))
                     return false;
 
@@ -272,7 +272,7 @@ public class GridDistributedLockResponse extends GridDistributedBaseMessage {
             return false;
 
         switch (reader.state()) {
-            case 7:
+            case 5:
                 errBytes = reader.readByteArray("errBytes");
 
                 if (!reader.isLastRead())
@@ -280,7 +280,7 @@ public class GridDistributedLockResponse extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 8:
+            case 6:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
@@ -288,7 +288,7 @@ public class GridDistributedLockResponse extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 9:
+            case 7:
                 vals = reader.readCollection("vals", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -308,7 +308,7 @@ public class GridDistributedLockResponse extends GridDistributedBaseMessage {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 10;
+        return 8;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
index 5d79f0a..e2e1edb 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
@@ -205,61 +205,61 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
         }
 
         switch (writer.state()) {
-            case 6:
+            case 5:
                 if (!writer.writeBoolean("commit", commit))
                     return false;
 
                 writer.incrementState();
 
-            case 7:
+            case 6:
                 if (!writer.writeMessage("commitVer", commitVer))
                     return false;
 
                 writer.incrementState();
 
-            case 8:
+            case 7:
                 if (!writer.writeIgniteUuid("futId", futId))
                     return false;
 
                 writer.incrementState();
 
-            case 9:
+            case 8:
                 if (!writer.writeBoolean("invalidate", invalidate))
                     return false;
 
                 writer.incrementState();
 
-            case 12:
+            case 9:
                 if (!writer.writeByte("plc", plc))
                     return false;
 
                 writer.incrementState();
 
-            case 13:
+            case 10:
                 if (!writer.writeBoolean("syncCommit", syncCommit))
                     return false;
 
                 writer.incrementState();
 
-            case 14:
+            case 11:
                 if (!writer.writeBoolean("syncRollback", syncRollback))
                     return false;
 
                 writer.incrementState();
 
-            case 15:
+            case 12:
                 if (!writer.writeBoolean("sys", sys))
                     return false;
 
                 writer.incrementState();
 
-            case 16:
+            case 13:
                 if (!writer.writeLong("threadId", threadId))
                     return false;
 
                 writer.incrementState();
 
-            case 17:
+            case 14:
                 if (!writer.writeInt("txSize", txSize))
                     return false;
 
@@ -281,7 +281,7 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
             return false;
 
         switch (reader.state()) {
-            case 6:
+            case 5:
                 commit = reader.readBoolean("commit");
 
                 if (!reader.isLastRead())
@@ -289,7 +289,7 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 7:
+            case 6:
                 commitVer = reader.readMessage("commitVer");
 
                 if (!reader.isLastRead())
@@ -297,7 +297,7 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 8:
+            case 7:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
@@ -305,7 +305,7 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 9:
+            case 8:
                 invalidate = reader.readBoolean("invalidate");
 
                 if (!reader.isLastRead())
@@ -313,19 +313,15 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 12:
-                byte plcOrd;
-
-                plcOrd = reader.readByte("plc");
+            case 9:
+                plc = reader.readByte("plc");
 
                 if (!reader.isLastRead())
                     return false;
 
-                plc = plcOrd;
-
                 reader.incrementState();
 
-            case 13:
+            case 10:
                 syncCommit = reader.readBoolean("syncCommit");
 
                 if (!reader.isLastRead())
@@ -333,7 +329,7 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 14:
+            case 11:
                 syncRollback = reader.readBoolean("syncRollback");
 
                 if (!reader.isLastRead())
@@ -341,7 +337,7 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 15:
+            case 12:
                 sys = reader.readBoolean("sys");
 
                 if (!reader.isLastRead())
@@ -349,7 +345,7 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 16:
+            case 13:
                 threadId = reader.readLong("threadId");
 
                 if (!reader.isLastRead())
@@ -357,7 +353,7 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
 
                 reader.incrementState();
 
-            case 17:
+            case 14:
                 txSize = reader.readInt("txSize");
 
                 if (!reader.isLastRead())
@@ -377,7 +373,7 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 18;
+        return 15;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
index def710e..5d38340 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
@@ -339,91 +339,91 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
         }
 
         switch (writer.state()) {
-            case 6:
+            case 5:
                 if (!writer.writeByte("concurrency", concurrency != null ? (byte)concurrency.ordinal() : -1))
                     return false;
 
                 writer.incrementState();
 
-            case 8:
+            case 6:
                 if (!writer.writeCollection("dhtVerKeys", dhtVerKeys, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 9:
+            case 7:
                 if (!writer.writeCollection("dhtVerVals", dhtVerVals, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 10:
+            case 8:
                 if (!writer.writeBoolean("invalidate", invalidate))
                     return false;
 
                 writer.incrementState();
 
-            case 11:
+            case 9:
                 if (!writer.writeByte("isolation", isolation != null ? (byte)isolation.ordinal() : -1))
                     return false;
 
                 writer.incrementState();
 
-            case 12:
+            case 10:
                 if (!writer.writeBoolean("onePhaseCommit", onePhaseCommit))
                     return false;
 
                 writer.incrementState();
 
-            case 13:
+            case 11:
                 if (!writer.writeByte("plc", plc))
                     return false;
 
                 writer.incrementState();
 
-            case 14:
+            case 12:
                 if (!writer.writeCollection("reads", reads, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 15:
+            case 13:
                 if (!writer.writeBoolean("sys", sys))
                     return false;
 
                 writer.incrementState();
 
-            case 16:
+            case 14:
                 if (!writer.writeLong("threadId", threadId))
                     return false;
 
                 writer.incrementState();
 
-            case 17:
+            case 15:
                 if (!writer.writeLong("timeout", timeout))
                     return false;
 
                 writer.incrementState();
 
-            case 18:
+            case 16:
                 if (!writer.writeByteArray("txNodesBytes", txNodesBytes))
                     return false;
 
                 writer.incrementState();
 
-            case 19:
+            case 17:
                 if (!writer.writeInt("txSize", txSize))
                     return false;
 
                 writer.incrementState();
 
-            case 20:
+            case 18:
                 if (!writer.writeMessage("writeVer", writeVer))
                     return false;
 
                 writer.incrementState();
 
-            case 21:
+            case 19:
                 if (!writer.writeCollection("writes", writes, MessageCollectionItemType.MSG))
                     return false;
 
@@ -445,7 +445,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
             return false;
 
         switch (reader.state()) {
-            case 6:
+            case 5:
                 byte concurrencyOrd;
 
                 concurrencyOrd = reader.readByte("concurrency");
@@ -457,7 +457,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 8:
+            case 6:
                 dhtVerKeys = reader.readCollection("dhtVerKeys", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -465,7 +465,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 9:
+            case 7:
                 dhtVerVals = reader.readCollection("dhtVerVals", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -473,7 +473,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 10:
+            case 8:
                 invalidate = reader.readBoolean("invalidate");
 
                 if (!reader.isLastRead())
@@ -481,7 +481,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 11:
+            case 9:
                 byte isolationOrd;
 
                 isolationOrd = reader.readByte("isolation");
@@ -493,7 +493,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 12:
+            case 10:
                 onePhaseCommit = reader.readBoolean("onePhaseCommit");
 
                 if (!reader.isLastRead())
@@ -501,19 +501,15 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 13:
-                byte plcOrd;
-
-                plcOrd = reader.readByte("plc");
+            case 11:
+                plc = reader.readByte("plc");
 
                 if (!reader.isLastRead())
                     return false;
 
-                plc = plcOrd;
-
                 reader.incrementState();
 
-            case 14:
+            case 12:
                 reads = reader.readCollection("reads", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -521,7 +517,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 15:
+            case 13:
                 sys = reader.readBoolean("sys");
 
                 if (!reader.isLastRead())
@@ -529,7 +525,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 16:
+            case 14:
                 threadId = reader.readLong("threadId");
 
                 if (!reader.isLastRead())
@@ -537,7 +533,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 17:
+            case 15:
                 timeout = reader.readLong("timeout");
 
                 if (!reader.isLastRead())
@@ -545,7 +541,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 18:
+            case 16:
                 txNodesBytes = reader.readByteArray("txNodesBytes");
 
                 if (!reader.isLastRead())
@@ -553,7 +549,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 19:
+            case 17:
                 txSize = reader.readInt("txSize");
 
                 if (!reader.isLastRead())
@@ -561,7 +557,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 20:
+            case 18:
                 writeVer = reader.readMessage("writeVer");
 
                 if (!reader.isLastRead())
@@ -569,7 +565,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
                 reader.incrementState();
 
-            case 21:
+            case 19:
                 writes = reader.readCollection("writes", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -589,7 +585,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 22;
+        return 20;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java
index f920e48..2dcf27a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java
@@ -119,7 +119,7 @@ public class GridDistributedTxPrepareResponse extends GridDistributedBaseMessage
         }
 
         switch (writer.state()) {
-            case 7:
+            case 5:
                 if (!writer.writeByteArray("errBytes", errBytes))
                     return false;
 
@@ -141,7 +141,7 @@ public class GridDistributedTxPrepareResponse extends GridDistributedBaseMessage
             return false;
 
         switch (reader.state()) {
-            case 7:
+            case 5:
                 errBytes = reader.readByteArray("errBytes");
 
                 if (!reader.isLastRead())
@@ -161,7 +161,7 @@ public class GridDistributedTxPrepareResponse extends GridDistributedBaseMessage
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 8;
+        return 6;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java
index 7f31b06..274a6d2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java
@@ -106,7 +106,7 @@ public class GridDistributedUnlockRequest extends GridDistributedBaseMessage {
         }
 
         switch (writer.state()) {
-            case 7:
+            case 5:
                 if (!writer.writeCollection("keys", keys, MessageCollectionItemType.MSG))
                     return false;
 
@@ -128,7 +128,7 @@ public class GridDistributedUnlockRequest extends GridDistributedBaseMessage {
             return false;
 
         switch (reader.state()) {
-            case 7:
+            case 5:
                 keys = reader.readCollection("keys", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -148,7 +148,7 @@ public class GridDistributedUnlockRequest extends GridDistributedBaseMessage {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 8;
+        return 6;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
index 31a6523..fda5f80 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
@@ -330,7 +330,7 @@ public class GridDhtLockRequest extends GridDistributedLockRequest {
 
                 writer.incrementState();
 
-            case 29:
+            case 25:
                 if (!writer.writeMessage("topVer", topVer))
                     return false;
 
@@ -408,7 +408,7 @@ public class GridDhtLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 29:
+            case 25:
                 topVer = reader.readMessage("topVer");
 
                 if (!reader.isLastRead())

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java
index 45d3ff6..1f026fa 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java
@@ -194,25 +194,25 @@ public class GridDhtLockResponse extends GridDistributedLockResponse {
         }
 
         switch (writer.state()) {
-            case 9:
+            case 8:
                 if (!writer.writeCollection("invalidParts", invalidParts, MessageCollectionItemType.INT))
                     return false;
 
                 writer.incrementState();
 
-            case 10:
+            case 9:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
-            case 12:
+            case 10:
                 if (!writer.writeCollection("nearEvicted", nearEvicted, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 13:
+            case 11:
                 if (!writer.writeCollection("preloadEntries", preloadEntries, MessageCollectionItemType.MSG))
                     return false;
 
@@ -234,7 +234,7 @@ public class GridDhtLockResponse extends GridDistributedLockResponse {
             return false;
 
         switch (reader.state()) {
-            case 9:
+            case 8:
                 invalidParts = reader.readCollection("invalidParts", MessageCollectionItemType.INT);
 
                 if (!reader.isLastRead())
@@ -242,7 +242,7 @@ public class GridDhtLockResponse extends GridDistributedLockResponse {
 
                 reader.incrementState();
 
-            case 10:
+            case 9:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -250,7 +250,7 @@ public class GridDhtLockResponse extends GridDistributedLockResponse {
 
                 reader.incrementState();
 
-            case 12:
+            case 10:
                 nearEvicted = reader.readCollection("nearEvicted", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -258,7 +258,7 @@ public class GridDhtLockResponse extends GridDistributedLockResponse {
 
                 reader.incrementState();
 
-            case 13:
+            case 11:
                 preloadEntries = reader.readCollection("preloadEntries", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -278,7 +278,7 @@ public class GridDhtLockResponse extends GridDistributedLockResponse {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 13;
+        return 12;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
index d9b12ff..88d988b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
@@ -243,49 +243,55 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
         }
 
         switch (writer.state()) {
-            case 18:
+            case 15:
+                if (!writer.writeBoolean("checkCommitted", checkCommitted))
+                    return false;
+
+                writer.incrementState();
+
+            case 16:
                 if (!writer.writeByte("isolation", isolation != null ? (byte)isolation.ordinal() : -1))
                     return false;
 
                 writer.incrementState();
 
-            case 19:
+            case 17:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
-            case 20:
+            case 18:
                 if (!writer.writeUuid("nearNodeId", nearNodeId))
                     return false;
 
                 writer.incrementState();
 
-            case 21:
+            case 19:
                 if (!writer.writeUuid("subjId", subjId))
                     return false;
 
                 writer.incrementState();
 
-            case 23:
+            case 20:
                 if (!writer.writeBoolean("sysInvalidate", sysInvalidate))
                     return false;
 
                 writer.incrementState();
 
-            case 24:
+            case 21:
                 if (!writer.writeInt("taskNameHash", taskNameHash))
                     return false;
 
                 writer.incrementState();
 
-            case 25:
+            case 22:
                 if (!writer.writeMessage("topVer", topVer))
                     return false;
 
                 writer.incrementState();
 
-            case 26:
+            case 23:
                 if (!writer.writeMessage("writeVer", writeVer))
                     return false;
 
@@ -307,7 +313,15 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
             return false;
 
         switch (reader.state()) {
-            case 18:
+            case 15:
+                checkCommitted = reader.readBoolean("checkCommitted");
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 16:
                 byte isolationOrd;
 
                 isolationOrd = reader.readByte("isolation");
@@ -319,7 +333,7 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 19:
+            case 17:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -327,7 +341,7 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 20:
+            case 18:
                 nearNodeId = reader.readUuid("nearNodeId");
 
                 if (!reader.isLastRead())
@@ -335,7 +349,7 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 22:
+            case 19:
                 subjId = reader.readUuid("subjId");
 
                 if (!reader.isLastRead())
@@ -343,7 +357,7 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 23:
+            case 20:
                 sysInvalidate = reader.readBoolean("sysInvalidate");
 
                 if (!reader.isLastRead())
@@ -351,7 +365,7 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 24:
+            case 21:
                 taskNameHash = reader.readInt("taskNameHash");
 
                 if (!reader.isLastRead())
@@ -359,7 +373,7 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 25:
+            case 22:
                 topVer = reader.readMessage("topVer");
 
                 if (!reader.isLastRead())
@@ -367,7 +381,7 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 26:
+            case 23:
                 writeVer = reader.readMessage("writeVer");
 
                 if (!reader.isLastRead())
@@ -387,6 +401,6 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 27;
+        return 24;
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
index bbcf8ef..fad7c1f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
@@ -333,79 +333,79 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
         }
 
         switch (writer.state()) {
-            case 22:
+            case 20:
                 if (!writer.writeIgniteUuid("futId", futId))
                     return false;
 
                 writer.incrementState();
 
-            case 23:
+            case 21:
                 if (!writer.writeBitSet("invalidateNearEntries", invalidateNearEntries))
                     return false;
 
                 writer.incrementState();
 
-            case 24:
+            case 22:
                 if (!writer.writeBoolean("last", last))
                     return false;
 
                 writer.incrementState();
 
-            case 25:
+            case 23:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
-            case 26:
+            case 24:
                 if (!writer.writeUuid("nearNodeId", nearNodeId))
                     return false;
 
                 writer.incrementState();
 
-            case 27:
+            case 25:
                 if (!writer.writeCollection("nearWrites", nearWrites, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 28:
+            case 26:
                 if (!writer.writeMessage("nearXidVer", nearXidVer))
                     return false;
 
                 writer.incrementState();
 
-            case 29:
+            case 27:
                 if (!writer.writeCollection("ownedKeys", ownedKeys, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 30:
+            case 28:
                 if (!writer.writeCollection("ownedVals", ownedVals, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 31:
+            case 29:
                 if (!writer.writeBitSet("preloadKeys", preloadKeys))
                     return false;
 
                 writer.incrementState();
 
-            case 32:
+            case 30:
                 if (!writer.writeUuid("subjId", subjId))
                     return false;
 
                 writer.incrementState();
 
-            case 33:
+            case 31:
                 if (!writer.writeInt("taskNameHash", taskNameHash))
                     return false;
 
                 writer.incrementState();
 
-            case 34:
+            case 32:
                 if (!writer.writeMessage("topVer", topVer))
                     return false;
 
@@ -427,7 +427,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
             return false;
 
         switch (reader.state()) {
-            case 22:
+            case 20:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
@@ -435,7 +435,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 23:
+            case 21:
                 invalidateNearEntries = reader.readBitSet("invalidateNearEntries");
 
                 if (!reader.isLastRead())
@@ -443,7 +443,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 24:
+            case 22:
                 last = reader.readBoolean("last");
 
                 if (!reader.isLastRead())
@@ -451,7 +451,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 25:
+            case 23:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -459,7 +459,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 26:
+            case 24:
                 nearNodeId = reader.readUuid("nearNodeId");
 
                 if (!reader.isLastRead())
@@ -467,7 +467,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 27:
+            case 25:
                 nearWrites = reader.readCollection("nearWrites", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -475,7 +475,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 28:
+            case 26:
                 nearXidVer = reader.readMessage("nearXidVer");
 
                 if (!reader.isLastRead())
@@ -483,7 +483,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 29:
+            case 27:
                 ownedKeys = reader.readCollection("ownedKeys", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -491,7 +491,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 30:
+            case 28:
                 ownedVals = reader.readCollection("ownedVals", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -499,7 +499,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 31:
+            case 29:
                 preloadKeys = reader.readBitSet("preloadKeys");
 
                 if (!reader.isLastRead())
@@ -507,7 +507,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 32:
+            case 30:
                 subjId = reader.readUuid("subjId");
 
                 if (!reader.isLastRead())
@@ -515,7 +515,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 33:
+            case 31:
                 taskNameHash = reader.readInt("taskNameHash");
 
                 if (!reader.isLastRead())
@@ -523,7 +523,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 34:
+            case 32:
                 topVer = reader.readMessage("topVer");
 
                 if (!reader.isLastRead())
@@ -543,6 +543,6 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 31;
+        return 33;
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
index 753c117..1047ec1 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
@@ -225,31 +225,31 @@ public class GridDhtTxPrepareResponse extends GridDistributedTxPrepareResponse {
         }
 
         switch (writer.state()) {
-            case 8:
+            case 6:
                 if (!writer.writeIgniteUuid("futId", futId))
                     return false;
 
                 writer.incrementState();
 
-            case 9:
+            case 7:
                 if (!writer.writeCollection("invalidParts", invalidParts, MessageCollectionItemType.INT))
                     return false;
 
                 writer.incrementState();
 
-            case 10:
+            case 8:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
-            case 11:
+            case 9:
                 if (!writer.writeCollection("nearEvicted", nearEvicted, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 12:
+            case 10:
                 if (!writer.writeCollection("preloadEntries", preloadEntries, MessageCollectionItemType.MSG))
                     return false;
 
@@ -271,7 +271,7 @@ public class GridDhtTxPrepareResponse extends GridDistributedTxPrepareResponse {
             return false;
 
         switch (reader.state()) {
-            case 8:
+            case 6:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
@@ -279,7 +279,7 @@ public class GridDhtTxPrepareResponse extends GridDistributedTxPrepareResponse {
 
                 reader.incrementState();
 
-            case 9:
+            case 7:
                 invalidParts = reader.readCollection("invalidParts", MessageCollectionItemType.INT);
 
                 if (!reader.isLastRead())
@@ -287,7 +287,7 @@ public class GridDhtTxPrepareResponse extends GridDistributedTxPrepareResponse {
 
                 reader.incrementState();
 
-            case 10:
+            case 8:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -295,7 +295,7 @@ public class GridDhtTxPrepareResponse extends GridDistributedTxPrepareResponse {
 
                 reader.incrementState();
 
-            case 11:
+            case 9:
                 nearEvicted = reader.readCollection("nearEvicted", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -303,7 +303,7 @@ public class GridDhtTxPrepareResponse extends GridDistributedTxPrepareResponse {
 
                 reader.incrementState();
 
-            case 12:
+            case 10:
                 preloadEntries = reader.readCollection("preloadEntries", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -323,6 +323,6 @@ public class GridDhtTxPrepareResponse extends GridDistributedTxPrepareResponse {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 13;
+        return 11;
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtUnlockRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtUnlockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtUnlockRequest.java
index 809b0b4..c6b2cc0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtUnlockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtUnlockRequest.java
@@ -110,7 +110,7 @@ public class GridDhtUnlockRequest extends GridDistributedUnlockRequest {
         }
 
         switch (writer.state()) {
-            case 8:
+            case 6:
                 if (!writer.writeCollection("nearKeys", nearKeys, MessageCollectionItemType.MSG))
                     return false;
 
@@ -132,7 +132,7 @@ public class GridDhtUnlockRequest extends GridDistributedUnlockRequest {
             return false;
 
         switch (reader.state()) {
-            case 8:
+            case 6:
                 nearKeys = reader.readCollection("nearKeys", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -152,6 +152,6 @@ public class GridDhtUnlockRequest extends GridDistributedUnlockRequest {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 8;
+        return 7;
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
index 2f109cd..a110a62 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
@@ -394,31 +394,31 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 writer.incrementState();
 
-            case 29:
+            case 26:
                 if (!writer.writeBoolean("retVal", retVal))
                     return false;
 
                 writer.incrementState();
 
-            case 30:
+            case 27:
                 if (!writer.writeUuid("subjId", subjId))
                     return false;
 
                 writer.incrementState();
 
-            case 31:
+            case 28:
                 if (!writer.writeBoolean("syncCommit", syncCommit))
                     return false;
 
                 writer.incrementState();
 
-            case 32:
+            case 29:
                 if (!writer.writeInt("taskNameHash", taskNameHash))
                     return false;
 
                 writer.incrementState();
 
-            case 33:
+            case 30:
                 if (!writer.writeMessage("topVer", topVer))
                     return false;
 
@@ -464,7 +464,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 23:
+            case 21:
                 firstClientReq = reader.readBoolean("firstClientReq");
 
                 if (!reader.isLastRead())
@@ -472,7 +472,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 24:
+            case 22:
                 hasTransforms = reader.readBoolean("hasTransforms");
 
                 if (!reader.isLastRead())
@@ -480,7 +480,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 25:
+            case 23:
                 implicitSingleTx = reader.readBoolean("implicitSingleTx");
 
                 if (!reader.isLastRead())
@@ -488,7 +488,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 26:
+            case 24:
                 implicitTx = reader.readBoolean("implicitTx");
 
                 if (!reader.isLastRead())
@@ -496,7 +496,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 27:
+            case 25:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -504,7 +504,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 28:
+            case 26:
                 retVal = reader.readBoolean("retVal");
 
                 if (!reader.isLastRead())
@@ -512,7 +512,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 29:
+            case 27:
                 subjId = reader.readUuid("subjId");
 
                 if (!reader.isLastRead())
@@ -520,7 +520,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 30:
+            case 28:
                 syncCommit = reader.readBoolean("syncCommit");
 
                 if (!reader.isLastRead())
@@ -528,7 +528,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 31:
+            case 29:
                 taskNameHash = reader.readInt("taskNameHash");
 
                 if (!reader.isLastRead())
@@ -536,7 +536,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
                 reader.incrementState();
 
-            case 32:
+            case 30:
                 topVer = reader.readMessage("topVer");
 
                 if (!reader.isLastRead())
@@ -556,7 +556,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 29;
+        return 31;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
index 0f9fc99..79f8dc0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
@@ -180,31 +180,31 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
         }
 
         switch (writer.state()) {
-            case 9:
+            case 8:
                 if (!writer.writeMessage("clientRemapVer", clientRemapVer))
                     return false;
 
                 writer.incrementState();
 
-            case 10:
+            case 9:
                 if (!writer.writeObjectArray("dhtVers", dhtVers, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 11:
+            case 10:
                 if (!writer.writeBooleanArray("filterRes", filterRes))
                     return false;
 
                 writer.incrementState();
 
-            case 12:
+            case 11:
                 if (!writer.writeObjectArray("mappedVers", mappedVers, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 13:
+            case 12:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
@@ -226,7 +226,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
             return false;
 
         switch (reader.state()) {
-            case 9:
+            case 8:
                 clientRemapVer = reader.readMessage("clientRemapVer");
 
                 if (!reader.isLastRead())
@@ -234,7 +234,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
 
                 reader.incrementState();
 
-            case 10:
+            case 9:
                 dhtVers = reader.readObjectArray("dhtVers", MessageCollectionItemType.MSG, GridCacheVersion.class);
 
                 if (!reader.isLastRead())
@@ -242,7 +242,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
 
                 reader.incrementState();
 
-            case 11:
+            case 10:
                 filterRes = reader.readBooleanArray("filterRes");
 
                 if (!reader.isLastRead())
@@ -250,7 +250,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
 
                 reader.incrementState();
 
-            case 12:
+            case 11:
                 mappedVers = reader.readObjectArray("mappedVers", MessageCollectionItemType.MSG, GridCacheVersion.class);
 
                 if (!reader.isLastRead())
@@ -258,7 +258,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
 
                 reader.incrementState();
 
-            case 13:
+            case 12:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
index b69988a..e9fe8a9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
@@ -174,37 +174,37 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
         }
 
         switch (writer.state()) {
-            case 18:
+            case 15:
                 if (!writer.writeBoolean("explicitLock", explicitLock))
                     return false;
 
                 writer.incrementState();
 
-            case 19:
+            case 16:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
-            case 20:
+            case 17:
                 if (!writer.writeBoolean("storeEnabled", storeEnabled))
                     return false;
 
                 writer.incrementState();
 
-            case 21:
+            case 18:
                 if (!writer.writeUuid("subjId", subjId))
                     return false;
 
                 writer.incrementState();
 
-            case 22:
+            case 19:
                 if (!writer.writeInt("taskNameHash", taskNameHash))
                     return false;
 
                 writer.incrementState();
 
-            case 23:
+            case 20:
                 if (!writer.writeMessage("topVer", topVer))
                     return false;
 
@@ -226,7 +226,7 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
             return false;
 
         switch (reader.state()) {
-            case 18:
+            case 15:
                 explicitLock = reader.readBoolean("explicitLock");
 
                 if (!reader.isLastRead())
@@ -234,7 +234,7 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 19:
+            case 16:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -242,7 +242,7 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 20:
+            case 17:
                 storeEnabled = reader.readBoolean("storeEnabled");
 
                 if (!reader.isLastRead())
@@ -250,7 +250,7 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 21:
+            case 18:
                 subjId = reader.readUuid("subjId");
 
                 if (!reader.isLastRead())
@@ -258,7 +258,7 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 22:
+            case 19:
                 taskNameHash = reader.readInt("taskNameHash");
 
                 if (!reader.isLastRead())
@@ -266,7 +266,7 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
 
                 reader.incrementState();
 
-            case 23:
+            case 20:
                 topVer = reader.readMessage("topVer");
 
                 if (!reader.isLastRead())
@@ -286,7 +286,7 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 24;
+        return 21;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
index 4cc8f91..acc4fd0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
@@ -284,73 +284,73 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
         }
 
         switch (writer.state()) {
-            case 22:
+            case 20:
                 if (!writer.writeBoolean("explicitLock", explicitLock))
                     return false;
 
                 writer.incrementState();
 
-            case 23:
+            case 21:
                 if (!writer.writeBoolean("firstClientReq", firstClientReq))
                     return false;
 
                 writer.incrementState();
 
-            case 24:
+            case 22:
                 if (!writer.writeIgniteUuid("futId", futId))
                     return false;
 
                 writer.incrementState();
 
-            case 25:
+            case 23:
                 if (!writer.writeBoolean("implicitSingle", implicitSingle))
                     return false;
 
                 writer.incrementState();
 
-            case 26:
+            case 24:
                 if (!writer.writeBoolean("last", last))
                     return false;
 
                 writer.incrementState();
 
-            case 27:
+            case 25:
                 if (!writer.writeCollection("lastBackups", lastBackups, MessageCollectionItemType.UUID))
                     return false;
 
                 writer.incrementState();
 
-            case 28:
+            case 26:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
-            case 29:
+            case 27:
                 if (!writer.writeBoolean("near", near))
                     return false;
 
                 writer.incrementState();
 
-            case 30:
+            case 28:
                 if (!writer.writeBoolean("retVal", retVal))
                     return false;
 
                 writer.incrementState();
 
-            case 31:
+            case 29:
                 if (!writer.writeUuid("subjId", subjId))
                     return false;
 
                 writer.incrementState();
 
-            case 32:
+            case 30:
                 if (!writer.writeInt("taskNameHash", taskNameHash))
                     return false;
 
                 writer.incrementState();
 
-            case 33:
+            case 31:
                 if (!writer.writeMessage("topVer", topVer))
                     return false;
 
@@ -372,7 +372,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
             return false;
 
         switch (reader.state()) {
-            case 22:
+            case 20:
                 explicitLock = reader.readBoolean("explicitLock");
 
                 if (!reader.isLastRead())
@@ -380,7 +380,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 23:
+            case 21:
                 firstClientReq = reader.readBoolean("firstClientReq");
 
                 if (!reader.isLastRead())
@@ -388,7 +388,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 24:
+            case 22:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
@@ -396,7 +396,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 25:
+            case 23:
                 implicitSingle = reader.readBoolean("implicitSingle");
 
                 if (!reader.isLastRead())
@@ -404,7 +404,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 26:
+            case 24:
                 last = reader.readBoolean("last");
 
                 if (!reader.isLastRead())
@@ -412,7 +412,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 27:
+            case 25:
                 lastBackups = reader.readCollection("lastBackups", MessageCollectionItemType.UUID);
 
                 if (!reader.isLastRead())
@@ -420,7 +420,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 28:
+            case 26:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -428,7 +428,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 29:
+            case 27:
                 near = reader.readBoolean("near");
 
                 if (!reader.isLastRead())
@@ -436,7 +436,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 30:
+            case 28:
                 retVal = reader.readBoolean("retVal");
 
                 if (!reader.isLastRead())
@@ -444,7 +444,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 31:
+            case 29:
                 subjId = reader.readUuid("subjId");
 
                 if (!reader.isLastRead())
@@ -452,7 +452,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 32:
+            case 30:
                 taskNameHash = reader.readInt("taskNameHash");
 
                 if (!reader.isLastRead())
@@ -460,7 +460,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
                 reader.incrementState();
 
-            case 33:
+            case 31:
                 topVer = reader.readMessage("topVer");
 
                 if (!reader.isLastRead())
@@ -480,7 +480,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 34;
+        return 32;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/4bc5d509/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
index 7b5cbf0..84dcfb5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
@@ -322,61 +322,61 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
         }
 
         switch (writer.state()) {
-            case 8:
+            case 6:
                 if (!writer.writeMessage("clientRemapVer", clientRemapVer))
                     return false;
 
                 writer.incrementState();
 
-            case 9:
+            case 7:
                 if (!writer.writeMessage("dhtVer", dhtVer))
                     return false;
 
                 writer.incrementState();
 
-            case 10:
+            case 8:
                 if (!writer.writeCollection("filterFailedKeys", filterFailedKeys, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 11:
+            case 9:
                 if (!writer.writeIgniteUuid("futId", futId))
                     return false;
 
                 writer.incrementState();
 
-            case 12:
+            case 10:
                 if (!writer.writeCollection("invalidParts", invalidParts, MessageCollectionItemType.INT))
                     return false;
 
                 writer.incrementState();
 
-            case 13:
+            case 11:
                 if (!writer.writeIgniteUuid("miniId", miniId))
                     return false;
 
                 writer.incrementState();
 
-            case 14:
+            case 12:
                 if (!writer.writeCollection("ownedValKeys", ownedValKeys, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 15:
+            case 13:
                 if (!writer.writeCollection("ownedValVals", ownedValVals, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
-            case 16:
+            case 14:
                 if (!writer.writeMessage("retVal", retVal))
                     return false;
 
                 writer.incrementState();
 
-            case 18:
+            case 15:
                 if (!writer.writeMessage("writeVer", writeVer))
                     return false;
 
@@ -398,7 +398,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
             return false;
 
         switch (reader.state()) {
-            case 8:
+            case 6:
                 clientRemapVer = reader.readMessage("clientRemapVer");
 
                 if (!reader.isLastRead())
@@ -406,7 +406,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
 
                 reader.incrementState();
 
-            case 9:
+            case 7:
                 dhtVer = reader.readMessage("dhtVer");
 
                 if (!reader.isLastRead())
@@ -414,7 +414,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
 
                 reader.incrementState();
 
-            case 10:
+            case 8:
                 filterFailedKeys = reader.readCollection("filterFailedKeys", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -422,7 +422,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
 
                 reader.incrementState();
 
-            case 11:
+            case 9:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
@@ -430,7 +430,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
 
                 reader.incrementState();
 
-            case 12:
+            case 10:
                 invalidParts = reader.readCollection("invalidParts", MessageCollectionItemType.INT);
 
                 if (!reader.isLastRead())
@@ -438,7 +438,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
 
                 reader.incrementState();
 
-            case 13:
+            case 11:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
@@ -446,7 +446,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
 
                 reader.incrementState();
 
-            case 14:
+            case 12:
                 ownedValKeys = reader.readCollection("ownedValKeys", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -454,7 +454,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
 
                 reader.incrementState();
 
-            case 15:
+            case 13:
                 ownedValVals = reader.readCollection("ownedValVals", MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
@@ -462,7 +462,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
 
                 reader.incrementState();
 
-            case 17:
+            case 14:
                 retVal = reader.readMessage("retVal");
 
                 if (!reader.isLastRead())
@@ -470,7 +470,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
 
                 reader.incrementState();
 
-            case 18:
+            case 15:
                 writeVer = reader.readMessage("writeVer");
 
                 if (!reader.isLastRead())
@@ -490,7 +490,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 19;
+        return 16;
     }
 
     /** {@inheritDoc} */


[50/50] [abbrv] ignite git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/ignite into ignite-264

Posted by ag...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/ignite into ignite-264


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

Branch: refs/heads/ignite-264
Commit: 8af9e64c19c57f688cd34be483e2770db3a044e7
Parents: 7d5d9cd 8bd8644
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Wed Sep 2 17:39:28 2015 -0700
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Wed Sep 2 17:39:28 2015 -0700

----------------------------------------------------------------------
 parent/pom.xml | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------



[46/50] [abbrv] ignite git commit: IGNITE-264 - Fixing tests.

Posted by ag...@apache.org.
IGNITE-264 - Fixing tests.


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

Branch: refs/heads/ignite-264
Commit: 0d6927c2427a8221773d862f93cbf86addfbaeda
Parents: f88defd
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Tue Sep 1 17:45:04 2015 -0700
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Tue Sep 1 17:45:04 2015 -0700

----------------------------------------------------------------------
 .../processors/cache/GridCacheAdapter.java      |   6 +
 .../near/GridNearTxFinishFuture.java            |  67 ++++++++--
 .../cache/distributed/near/GridNearTxLocal.java |   8 +-
 .../dht/GridCacheTxNodeFailureSelfTest.java     | 133 ++++++++++++++-----
 .../dht/GridNearCacheTxNodeFailureSelfTest.java |  31 +++++
 .../near/IgniteCacheNearOnlyTxTest.java         |  14 +-
 .../IgniteCacheFailoverTestSuite.java           |   5 +
 7 files changed, 216 insertions(+), 48 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/0d6927c2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 68749b9..857d0bf 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -4230,6 +4230,9 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
                                     try {
                                         return tFut.get();
                                     }
+                                    catch (IgniteTxRollbackCheckedException e) {
+                                        throw e;
+                                    }
                                     catch (IgniteCheckedException e1) {
                                         tx0.rollbackAsync();
 
@@ -4250,6 +4253,9 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
                     try {
                         return tFut.get();
                     }
+                    catch (IgniteTxRollbackCheckedException e) {
+                        throw e;
+                    }
                     catch (IgniteCheckedException e1) {
                         tx0.rollbackAsync();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/0d6927c2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
index d437909..9b9fe86 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
@@ -18,6 +18,8 @@
 package org.apache.ignite.internal.processors.cache.distributed.near;
 
 import java.util.Collection;
+import java.util.Collections;
+import java.util.Map;
 import java.util.UUID;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.atomic.AtomicReference;
@@ -377,7 +379,10 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
     private void checkBackup() {
         assert mappings.size() <= 1;
 
-        for (UUID nodeId : mappings.keySet()) {
+        for (Map.Entry<UUID, GridDistributedTxMapping> entry : mappings.entrySet()) {
+            UUID nodeId = entry.getKey();
+            GridDistributedTxMapping mapping = entry.getValue();
+
             Collection<UUID> backups = tx.transactionNodes().get(nodeId);
 
             if (!F.isEmpty(backups)) {
@@ -391,16 +396,19 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
                 if (backup == null)
                     return;
 
-                MiniFuture mini = new MiniFuture(backup);
+                MiniFuture mini = new MiniFuture(backup, mapping);
 
                 add(mini);
 
                 if (backup.isLocal()) {
-                    if (cctx.tm().txHandler().checkDhtRemoteTxCommitted(tx.xidVersion()))
+                    if (cctx.tm().txHandler().checkDhtRemoteTxCommitted(tx.xidVersion())) {
+                        readyNearMappingFromBackup(mapping);
+
                         mini.onDone(tx);
+                    }
                     else
                         mini.onDone(new IgniteTxRollbackCheckedException("Failed to commit transaction " +
-                        "(transaction has been rolled back on backup node): " + tx.xidVersion()));
+                            "(transaction has been rolled back on backup node): " + tx.xidVersion()));
                 }
                 else {
                     GridDhtTxFinishRequest finishReq = new GridDhtTxFinishRequest(
@@ -440,6 +448,8 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
                     }
                 }
             }
+            else
+                readyNearMappingFromBackup(mapping);
         }
     }
 
@@ -447,14 +457,22 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
      *
      */
     private boolean needFinishOnePhase() {
+        if (F.isEmpty(tx.mappings()))
+            return false;
+
+        boolean finish = false;
+
         for (Integer cacheId : tx.activeCacheIds()) {
             GridCacheContext<K, V> cacheCtx = cctx.cacheContext(cacheId);
 
-            if (cacheCtx.isNear())
-                return true;
+            if (cacheCtx.isNear()) {
+                finish = true;
+
+                break;
+            }
         }
 
-        return false;
+        return finish;
     }
 
     /**
@@ -475,6 +493,20 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
     }
 
     /**
+     * @param mapping Mapping to finish.
+     */
+    private void readyNearMappingFromBackup(GridDistributedTxMapping mapping) {
+        if (mapping.near()) {
+            GridCacheVersion xidVer = tx.xidVersion();
+
+            mapping.dhtVersion(xidVer, xidVer);
+
+            tx.readyNearLocks(mapping, Collections.<GridCacheVersion>emptyList(), Collections.<GridCacheVersion>emptyList(),
+                Collections.<GridCacheVersion>emptyList());
+        }
+    }
+
+    /**
      * @param mappings Mappings.
      */
     private void finish(Iterable<GridDistributedTxMapping> mappings) {
@@ -599,9 +631,11 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
 
         /**
          * @param backup Backup to check.
+         * @param m Mapping associated with the backup.
          */
-        MiniFuture(ClusterNode backup) {
+        MiniFuture(ClusterNode backup, GridDistributedTxMapping m) {
             this.backup = backup;
+            this.m = m;
         }
 
         /**
@@ -617,7 +651,7 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
         public ClusterNode node() {
             assert m != null || backup != null;
 
-            return m != null ? m.node() : backup;
+            return backup != null ? backup : m.node();
         }
 
         /**
@@ -645,8 +679,14 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
             if (log.isDebugEnabled())
                 log.debug("Remote node left grid while sending or waiting for reply (will fail): " + this);
 
-            // Complete future with tx.
-            onDone(tx);
+            if (backup != null) {
+                readyNearMappingFromBackup(m);
+
+                onDone(e);
+            }
+            else
+                // Complete future with tx.
+                onDone(tx);
         }
 
         /**
@@ -667,9 +707,10 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
         void onResult(GridDhtTxFinishResponse res) {
             assert backup != null;
 
-            if (res.checkCommittedError() != null) {
+            readyNearMappingFromBackup(m);
+
+            if (res.checkCommittedError() != null)
                 onDone(res.checkCommittedError());
-            }
             else
                 onDone(tx);
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/0d6927c2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index dd115215..a4e06c3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -519,9 +519,15 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter {
 
                 GridDistributedTxMapping m = mappings.get(n.id());
 
-                if (m == null)
+                if (m == null) {
                     m = F.addIfAbsent(mappings, n.id(), new GridDistributedTxMapping(n));
 
+                    m.near(map.near());
+
+                    if (map.explicitLock())
+                        m.markExplicitLock();
+                }
+
                 assert m != null;
 
                 for (IgniteTxEntry entry : map.entries())

http://git-wip-us.apache.org/repos/asf/ignite/blob/0d6927c2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
index bca3b6f..1135c40 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
@@ -17,33 +17,47 @@
 
 package org.apache.ignite.internal.processors.cache.distributed.dht;
 
-import org.apache.ignite.*;
-import org.apache.ignite.cache.*;
-import org.apache.ignite.cache.affinity.*;
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.configuration.*;
-import org.apache.ignite.internal.*;
-import org.apache.ignite.internal.managers.communication.*;
-import org.apache.ignite.internal.util.typedef.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.plugin.extensions.communication.*;
-import org.apache.ignite.spi.*;
-import org.apache.ignite.spi.communication.tcp.*;
-import org.apache.ignite.testframework.*;
-import org.apache.ignite.testframework.junits.common.*;
-import org.apache.ignite.transactions.*;
-
-import javax.cache.*;
-import java.util.*;
-import java.util.concurrent.*;
-
-import static org.apache.ignite.transactions.TransactionConcurrency.*;
-import static org.apache.ignite.transactions.TransactionIsolation.*;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.cache.CacheAtomicityMode;
+import org.apache.ignite.cache.CacheMode;
+import org.apache.ignite.cache.affinity.Affinity;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.internal.IgniteInternalFuture;
+import org.apache.ignite.internal.IgniteKernal;
+import org.apache.ignite.internal.managers.communication.GridIoMessage;
+import org.apache.ignite.internal.processors.cache.GridCacheAdapter;
+import org.apache.ignite.internal.processors.cache.distributed.near.GridNearCacheEntry;
+import org.apache.ignite.internal.util.typedef.X;
+import org.apache.ignite.lang.IgniteFuture;
+import org.apache.ignite.lang.IgniteInClosure;
+import org.apache.ignite.plugin.extensions.communication.Message;
+import org.apache.ignite.spi.IgniteSpiException;
+import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
+import org.apache.ignite.testframework.GridTestUtils;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+import org.apache.ignite.transactions.Transaction;
+import org.apache.ignite.transactions.TransactionConcurrency;
+import org.apache.ignite.transactions.TransactionRollbackException;
+
+import javax.cache.CacheException;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.concurrent.Callable;
+import java.util.concurrent.CountDownLatch;
+
+import static org.apache.ignite.transactions.TransactionConcurrency.OPTIMISTIC;
+import static org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC;
+import static org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_READ;
 
 /**
  * Tests one-phase commit transactions when some of the nodes fail in the middle of the transaction.
  */
+@SuppressWarnings("unchecked")
 public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
     /**
      * @return Grid count.
@@ -56,17 +70,25 @@ public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
+        cfg.setCacheConfiguration(cacheConfiguration(gridName));
+
+        cfg.setCommunicationSpi(new BanningCommunicationSpi());
+
+        return cfg;
+    }
+
+    /**
+     * @param gridName Grid name.
+     * @return Cache configuration.
+     */
+    protected CacheConfiguration cacheConfiguration(String gridName) {
         CacheConfiguration ccfg = new CacheConfiguration();
 
         ccfg.setCacheMode(CacheMode.PARTITIONED);
         ccfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
         ccfg.setBackups(1);
 
-        cfg.setCacheConfiguration(ccfg);
-
-        cfg.setCommunicationSpi(new BanningCommunicationSpi());
-
-        return cfg;
+        return ccfg;
     }
 
     /**
@@ -174,6 +196,10 @@ public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
 
             final int key = generateKey(ignite, backup);
 
+            IgniteEx backupNode = (IgniteEx)backupNode(key, null);
+
+            assertNotNull(backupNode);
+
             final CountDownLatch commitLatch = new CountDownLatch(1);
 
             if (!commit) {
@@ -263,7 +289,11 @@ public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
             fut.get();
 
             // Check there are no hanging transactions.
-            assertEquals(0, ((IgniteEx)ignite).context().cache().context().tm().idMapSize());
+            assertEquals(0, ((IgniteEx)ignite(0)).context().cache().context().tm().idMapSize());
+            assertEquals(0, ((IgniteEx)ignite(2)).context().cache().context().tm().idMapSize());
+            assertEquals(0, ((IgniteEx)ignite(3)).context().cache().context().tm().idMapSize());
+
+            dataCheck((IgniteKernal)ignite(0), (IgniteKernal)backupNode, key, commit);
         }
         finally {
             stopAllGrids();
@@ -271,6 +301,49 @@ public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
     }
 
     /**
+     * @param orig Originating cache.
+     * @param backup Backup cache.
+     * @param key Key being committed and checked.
+     * @param commit Commit or rollback flag.
+     * @throws Exception If check failed.
+     */
+    private void dataCheck(IgniteKernal orig, IgniteKernal backup, int key, boolean commit) throws Exception {
+        GridNearCacheEntry nearEntry = null;
+
+        GridCacheAdapter origCache = orig.internalCache(null);
+
+        if (origCache.isNear())
+            nearEntry = (GridNearCacheEntry)origCache.peekEx(key);
+
+        GridCacheAdapter backupCache = backup.internalCache(null);
+
+        if (backupCache.isNear())
+            backupCache = backupCache.context().near().dht();
+
+        GridDhtCacheEntry dhtEntry = (GridDhtCacheEntry)backupCache.peekEx(key);
+
+        if (commit) {
+            assertNotNull(dhtEntry);
+            assertTrue("dhtEntry=" + dhtEntry, dhtEntry.remoteMvccSnapshot().isEmpty());
+            assertTrue("dhtEntry=" + dhtEntry, dhtEntry.localCandidates().isEmpty());
+            assertEquals(key, backupCache.localPeek(key, null, null));
+
+            if (nearEntry != null) {
+                assertTrue("near=" + nearEntry, nearEntry.remoteMvccSnapshot().isEmpty());
+                assertTrue("near=" + nearEntry, nearEntry.localCandidates().isEmpty());
+
+                // Near peek wil be null since primary node has changed.
+                assertNull("near=" + nearEntry, origCache.localPeek(key, null, null));
+            }
+        }
+        else {
+            assertTrue("near=" + nearEntry + ", hc=" + System.identityHashCode(nearEntry), nearEntry == null);
+            assertTrue("Invalid backup cache entry: " + dhtEntry,
+                dhtEntry == null || dhtEntry.rawGetOrUnmarshal(false) == null);
+        }
+    }
+
+    /**
      * @param idx Index.
      * @return Communication SPI.
      */
@@ -321,8 +394,6 @@ public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
 
             if (!bannedClasses.contains(ioMsg.message().getClass())) {
                 super.sendMessage(node, msg, ackClosure);
-
-                U.debug(">>> Sending message: " + msg);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/0d6927c2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridNearCacheTxNodeFailureSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridNearCacheTxNodeFailureSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridNearCacheTxNodeFailureSelfTest.java
new file mode 100644
index 0000000..5735182
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridNearCacheTxNodeFailureSelfTest.java
@@ -0,0 +1,31 @@
+/*
+ * 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;
+
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.NearCacheConfiguration;
+
+/**
+ *
+ */
+public class GridNearCacheTxNodeFailureSelfTest extends GridCacheTxNodeFailureSelfTest {
+    /** {@inheritDoc} */
+    @Override protected CacheConfiguration cacheConfiguration(String gridName) {
+        return super.cacheConfiguration(gridName).setNearConfiguration(new NearCacheConfiguration());
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/0d6927c2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearOnlyTxTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearOnlyTxTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearOnlyTxTest.java
index db55731..1d80ac1 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearOnlyTxTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearOnlyTxTest.java
@@ -17,6 +17,8 @@
 
 package org.apache.ignite.internal.processors.cache.distributed.near;
 
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.concurrent.Callable;
 import java.util.concurrent.atomic.AtomicInteger;
 import org.apache.ignite.Ignite;
@@ -90,11 +92,14 @@ public class IgniteCacheNearOnlyTxTest extends IgniteCacheAbstractTest {
         IgniteCache<Integer, Integer> cache0 = ignite(0).cache(null);
         IgniteCache<Integer, Integer> cache1 = ignite1.cache(null);
 
+        Collection<IgniteInternalFuture<?>> futs = new ArrayList<>();
+
         for (int i = 0; i < 5; i++) {
             log.info("Iteration: " + i);
 
-            GridTestUtils.runMultiThreadedAsync(new Callable<Object>() {
-                @Override public Object call() throws Exception {
+            futs.add(GridTestUtils.runMultiThreadedAsync(new Callable<Object>() {
+                @Override
+                public Object call() throws Exception {
                     int val = idx.getAndIncrement();
 
                     IgniteCache<Integer, Integer> cache = ignite1.cache(null);
@@ -104,10 +109,13 @@ public class IgniteCacheNearOnlyTxTest extends IgniteCacheAbstractTest {
 
                     return null;
                 }
-            }, 5, "put-thread");
+            }, 5, "put-thread"));
 
             assertEquals(cache0.localPeek(key), cache1.localPeek(key));
         }
+
+        for (IgniteInternalFuture<?> fut : futs)
+            fut.get();
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/0d6927c2/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
index ab2374c..eaeb7b3 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
@@ -30,6 +30,8 @@ import org.apache.ignite.internal.processors.cache.distributed.IgniteCacheTxNode
 import org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheDhtAtomicRemoveFailureTest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheDhtClientRemoveFailureTest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheDhtRemoveFailureTest;
+import org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheTxNodeFailureSelfTest;
+import org.apache.ignite.internal.processors.cache.distributed.dht.GridNearCacheTxNodeFailureSelfTest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.IgniteAtomicLongChangingTopologySelfTest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.IgniteCachePutRetryAtomicSelfTest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.IgniteCachePutRetryTransactionalSelfTest;
@@ -100,6 +102,9 @@ public class IgniteCacheFailoverTestSuite extends TestSuite {
         suite.addTestSuite(IgniteCacheTopologySafeGetSelfTest.class);
         suite.addTestSuite(IgniteAtomicLongChangingTopologySelfTest.class);
 
+        suite.addTestSuite(GridCacheTxNodeFailureSelfTest.class);
+        suite.addTestSuite(GridNearCacheTxNodeFailureSelfTest.class);
+
         return suite;
     }
 }


[35/50] [abbrv] ignite git commit: IGNITE-264 - Use near version to track committed remote transactions.

Posted by ag...@apache.org.
IGNITE-264 - Use near version to track committed remote transactions.


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

Branch: refs/heads/ignite-264
Commit: cc988021ee70fd87eb22c23ef9e588a954e161cc
Parents: 1cd1eb3
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Tue Aug 25 19:27:37 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Tue Aug 25 19:27:37 2015 -0700

----------------------------------------------------------------------
 .../processors/cache/transactions/IgniteTxManager.java        | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/cc988021/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
index cc86e6d..4554c6f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
@@ -1021,7 +1021,12 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
      * @return If transaction was not already present in committed set.
      */
     public boolean addCommittedTx(IgniteInternalTx tx) {
-        return addCommittedTx(tx.xidVersion(), tx.nearXidVersion());
+        boolean res = addCommittedTx(tx.xidVersion(), tx.nearXidVersion());
+
+        if (!tx.local() && tx.onePhaseCommit())
+            addCommittedTx(tx.nearXidVersion(), null);
+
+        return res;
     }
 
     /**


[23/50] [abbrv] ignite git commit: IGNITE-264 - Fixing tests WIP.

Posted by ag...@apache.org.
IGNITE-264 - Fixing tests WIP.


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

Branch: refs/heads/ignite-264
Commit: f4b5d2cae38e0738b21d35f3bd5cbf3c3d7b8c58
Parents: 3d3a15f
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Tue Aug 11 18:03:54 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Tue Aug 11 18:03:54 2015 -0700

----------------------------------------------------------------------
 .../processors/cache/CacheStoreUsageMultinodeAbstractTest.java      | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/f4b5d2ca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java
index 7eef248..161ade5 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java
@@ -96,6 +96,7 @@ public abstract class CacheStoreUsageMultinodeAbstractTest extends GridCommonAbs
 
         ccfg.setCacheMode(PARTITIONED);
         ccfg.setAtomicityMode(atomicityMode());
+        ccfg.setAtomicWriteOrderMode(CacheAtomicWriteOrderMode.PRIMARY);
         ccfg.setBackups(1);
         ccfg.setWriteSynchronizationMode(FULL_SYNC);
 


[34/50] [abbrv] ignite git commit: More reverts.

Posted by ag...@apache.org.
More reverts.


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

Branch: refs/heads/ignite-264
Commit: 1cd1eb35d65fa6d25ae729248ae13c965dadc625
Parents: ac87ddf
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Tue Aug 25 18:07:26 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Tue Aug 25 18:07:26 2015 -0700

----------------------------------------------------------------------
 .../distributed/GridCacheTxRecoveryRequest.java |  7 ----
 .../distributed/near/GridNearLockFuture.java    |  8 +++--
 .../distributed/near/GridNearLockRequest.java   | 35 +++++++++++++++-----
 .../cache/transactions/IgniteTxManager.java     | 28 ----------------
 4 files changed, 32 insertions(+), 46 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/1cd1eb35/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
index bda1148..07aecee 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
@@ -124,13 +124,6 @@ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
         return sys;
     }
 
-    /**
-     * @return Near check flag.
-     */
-    public boolean nearCheck() {
-        return nearTxCheck;
-    }
-
     /** {@inheritDoc} */
     @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
         writer.setBuffer(buf);

http://git-wip-us.apache.org/repos/asf/ignite/blob/1cd1eb35/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
index 5db76ef..2815194 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
@@ -1456,8 +1456,12 @@ public final class GridNearLockFuture extends GridCompoundIdentityFuture<Boolean
                                         tx.entry(cctx.txKey(k)).filters(pass ? CU.empty0() : CU.alwaysFalse0Arr());
                                     }
                                 }
-                                
-                                entry.readyNearLock(lockVer, mappedVer, res.committedVersions(), res.rolledbackVersions(), res.pending());
+
+                                entry.readyNearLock(lockVer,
+                                    mappedVer,
+                                    res.committedVersions(),
+                                    res.rolledbackVersions(),
+                                    res.pending());
 
                                 if (retval) {
                                     if (readRecordable)

http://git-wip-us.apache.org/repos/asf/ignite/blob/1cd1eb35/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
index 1174609..29d9c82 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
@@ -55,6 +55,9 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
     /** Implicit transaction with one key flag. */
     private boolean implicitSingleTx;
 
+    /** Flag is kept for backward compatibility. */
+    private boolean onePhaseCommit;
+
     /** Array of mapped DHT versions for this entry. */
     @GridToStringInclude
     private GridCacheVersion[] dhtVers;
@@ -395,30 +398,36 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
                 writer.incrementState();
 
             case 28:
-                if (!writer.writeBoolean("retVal", retVal))
+                if (!writer.writeBoolean("onePhaseCommit", onePhaseCommit))
                     return false;
 
                 writer.incrementState();
 
             case 29:
-                if (!writer.writeUuid("subjId", subjId))
+                if (!writer.writeBoolean("retVal", retVal))
                     return false;
 
                 writer.incrementState();
 
             case 30:
-                if (!writer.writeBoolean("syncCommit", syncCommit))
+                if (!writer.writeUuid("subjId", subjId))
                     return false;
 
                 writer.incrementState();
 
             case 31:
-                if (!writer.writeInt("taskNameHash", taskNameHash))
+                if (!writer.writeBoolean("syncCommit", syncCommit))
                     return false;
 
                 writer.incrementState();
 
             case 32:
+                if (!writer.writeInt("taskNameHash", taskNameHash))
+                    return false;
+
+                writer.incrementState();
+
+            case 33:
                 if (!writer.writeMessage("topVer", topVer))
                     return false;
 
@@ -505,7 +514,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
                 reader.incrementState();
 
             case 28:
-                retVal = reader.readBoolean("retVal");
+                onePhaseCommit = reader.readBoolean("onePhaseCommit");
 
                 if (!reader.isLastRead())
                     return false;
@@ -513,7 +522,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
                 reader.incrementState();
 
             case 29:
-                subjId = reader.readUuid("subjId");
+                retVal = reader.readBoolean("retVal");
 
                 if (!reader.isLastRead())
                     return false;
@@ -521,7 +530,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
                 reader.incrementState();
 
             case 30:
-                syncCommit = reader.readBoolean("syncCommit");
+                subjId = reader.readUuid("subjId");
 
                 if (!reader.isLastRead())
                     return false;
@@ -529,7 +538,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
                 reader.incrementState();
 
             case 31:
-                taskNameHash = reader.readInt("taskNameHash");
+                syncCommit = reader.readBoolean("syncCommit");
 
                 if (!reader.isLastRead())
                     return false;
@@ -537,6 +546,14 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
                 reader.incrementState();
 
             case 32:
+                taskNameHash = reader.readInt("taskNameHash");
+
+                if (!reader.isLastRead())
+                    return false;
+
+                reader.incrementState();
+
+            case 33:
                 topVer = reader.readMessage("topVer");
 
                 if (!reader.isLastRead())
@@ -556,7 +573,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
 
     /** {@inheritDoc} */
     @Override public byte fieldsCount() {
-        return 33;
+        return 34;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/1cd1eb35/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
index 067366a..cc86e6d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
@@ -1927,34 +1927,6 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
     }
 
     /**
-     * Gets local transaction for pessimistic tx recovery.
-     *
-     * @param nearXidVer Near tx ID.
-     * @return Near local or colocated local transaction.
-     */
-    @Nullable public IgniteInternalTx localTxForRecovery(GridCacheVersion nearXidVer, boolean markFinalizing) {
-        // First check if we have near transaction with this ID.
-        IgniteInternalTx tx = idMap.get(nearXidVer);
-
-        if (tx == null) {
-            // Check all local transactions and mark them as waiting for recovery to prevent finish race.
-            for (IgniteInternalTx txEx : idMap.values()) {
-                if (nearXidVer.equals(txEx.nearXidVersion())) {
-                    if (!markFinalizing || !txEx.markFinalizing(RECOVERY_WAIT))
-                        tx = txEx;
-                }
-            }
-        }
-
-        // Either we found near transaction or one of transactions is being committed by user.
-        // Wait for it and send reply.
-        if (tx != null && tx.local())
-            return tx;
-
-        return null;
-    }
-
-    /**
      * Commits or rolls back prepared transaction.
      *
      * @param tx Transaction.


[47/50] [abbrv] ignite git commit: Merge remote-tracking branch 'upstream/master' into ignite-264

Posted by ag...@apache.org.
Merge remote-tracking branch 'upstream/master' into ignite-264


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

Branch: refs/heads/ignite-264
Commit: 9a40afc3ecf56671642fe0861315d776677e6757
Parents: 0d6927c 5a948dc
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Tue Sep 1 17:54:18 2015 -0700
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Tue Sep 1 17:54:18 2015 -0700

----------------------------------------------------------------------
 parent/pom.xml | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------



[31/50] [abbrv] ignite git commit: Reverted committed versions for txs.

Posted by ag...@apache.org.
Reverted committed versions for txs.


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

Branch: refs/heads/ignite-264
Commit: a6dd5ee2e6d1bcd44bef5f2276ad386db6418836
Parents: d97a340
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Tue Aug 25 17:49:20 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Tue Aug 25 17:49:20 2015 -0700

----------------------------------------------------------------------
 .../processors/cache/GridCacheMvcc.java         | 143 ++++-
 .../distributed/GridDistributedBaseMessage.java |  34 ++
 .../distributed/GridDistributedCacheEntry.java  | 108 +++-
 .../GridDistributedLockResponse.java            |   7 +-
 .../GridDistributedTxFinishRequest.java         |  22 +-
 .../GridDistributedTxRemoteAdapter.java         |  18 +-
 .../distributed/dht/GridDhtCacheEntry.java      |   3 +-
 .../distributed/dht/GridDhtLockFuture.java      |  38 +-
 .../distributed/dht/GridDhtLockRequest.java     |  60 ++
 .../dht/GridDhtTransactionalCacheAdapter.java   |  54 +-
 .../distributed/dht/GridDhtTxFinishFuture.java  |  12 +
 .../distributed/dht/GridDhtTxFinishRequest.java |  58 +-
 .../distributed/dht/GridDhtTxLocalAdapter.java  |  32 +
 .../distributed/dht/GridDhtTxPrepareFuture.java |  40 +-
 .../dht/colocated/GridDhtColocatedCache.java    |   5 +
 .../distributed/near/GridNearLockFuture.java    |   5 +-
 .../distributed/near/GridNearLockResponse.java  |  25 +
 .../near/GridNearTransactionalCache.java        |  11 +-
 .../near/GridNearTxFinishFuture.java            |   9 +
 .../near/GridNearTxFinishRequest.java           |  27 +-
 .../cache/distributed/near/GridNearTxLocal.java |  11 +-
 .../near/GridNearTxPrepareFutureAdapter.java    |   2 +-
 .../near/GridNearTxPrepareResponse.java         |  23 +
 .../distributed/near/GridNearTxRemote.java      |   3 +-
 .../cache/transactions/IgniteInternalTx.java    |  21 +
 .../cache/transactions/IgniteTxAdapter.java     |  31 +
 .../cache/transactions/IgniteTxHandler.java     |  10 +-
 .../transactions/IgniteTxLocalAdapter.java      |  52 ++
 .../cache/transactions/IgniteTxManager.java     | 119 +++-
 .../cache/transactions/IgniteTxRemoteEx.java    |   6 +-
 .../messages/GridQueryNextPageResponse.java     |   8 +-
 .../h2/twostep/messages/GridQueryRequest.java   |  28 +-
 .../cache/GridCacheMvccPartitionedSelfTest.java | 259 +++++++-
 .../processors/cache/GridCacheMvccSelfTest.java | 586 ++++++++++++++++---
 .../processors/cache/GridCacheTestEntryEx.java  |  35 +-
 35 files changed, 1722 insertions(+), 183 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvcc.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvcc.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvcc.java
index 7d83da2..f5eefff 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvcc.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvcc.java
@@ -324,6 +324,103 @@ public final class GridCacheMvcc {
     }
 
     /**
+     * Moves completed candidates right before the base one. Note that
+     * if base is not found, then nothing happens and {@code false} is
+     * returned.
+     *
+     * @param baseVer Base version.
+     * @param committedVers Committed versions relative to base.
+     * @param rolledbackVers Rolled back versions relative to base.
+     * @return Lock owner.
+     */
+    @Nullable public GridCacheMvccCandidate orderCompleted(GridCacheVersion baseVer,
+        Collection<GridCacheVersion> committedVers, Collection<GridCacheVersion> rolledbackVers) {
+        assert baseVer != null;
+
+        if (rmts != null && !F.isEmpty(committedVers)) {
+            Deque<GridCacheMvccCandidate> mvAfter = null;
+
+            int maxIdx = -1;
+
+            for (ListIterator<GridCacheMvccCandidate> it = rmts.listIterator(rmts.size()); it.hasPrevious(); ) {
+                GridCacheMvccCandidate cur = it.previous();
+
+                if (!cur.version().equals(baseVer) && committedVers.contains(cur.version())) {
+                    cur.setOwner();
+
+                    assert localOwner() == null || localOwner().nearLocal(): "Cannot not have local owner and " +
+                        "remote completed transactions at the same time [baseVer=" + baseVer +
+                        ", committedVers=" + committedVers + ", rolledbackVers=" + rolledbackVers +
+                        ", localOwner=" + localOwner() + ", locs=" + locs + ", rmts=" + rmts + ']';
+
+                    if (maxIdx < 0)
+                        maxIdx = it.nextIndex();
+                }
+                else if (maxIdx >= 0 && cur.version().isGreaterEqual(baseVer)) {
+                    if (--maxIdx >= 0) {
+                        if (mvAfter == null)
+                            mvAfter = new LinkedList<>();
+
+                        it.remove();
+
+                        mvAfter.addFirst(cur);
+                    }
+                }
+
+                // If base is completed, then set it to owner too.
+                if (!cur.owner() && cur.version().equals(baseVer) && committedVers.contains(cur.version()))
+                    cur.setOwner();
+            }
+
+            if (maxIdx >= 0 && mvAfter != null) {
+                ListIterator<GridCacheMvccCandidate> it = rmts.listIterator(maxIdx + 1);
+
+                for (GridCacheMvccCandidate cand : mvAfter)
+                    it.add(cand);
+            }
+
+            // Remove rolled back versions.
+            if (!F.isEmpty(rolledbackVers)) {
+                for (Iterator<GridCacheMvccCandidate> it = rmts.iterator(); it.hasNext(); ) {
+                    GridCacheMvccCandidate cand = it.next();
+
+                    if (rolledbackVers.contains(cand.version())) {
+                        cand.setUsed(); // Mark as used to be consistent, even though we are about to remove it.
+
+                        it.remove();
+                    }
+                }
+
+                if (rmts.isEmpty())
+                    rmts = null;
+            }
+        }
+
+        return anyOwner();
+    }
+
+    /**
+     * Puts owned versions in front of base.
+     *
+     * @param baseVer Base version.
+     * @param owned Owned list.
+     * @return Current owner.
+     */
+    @Nullable public GridCacheMvccCandidate markOwned(GridCacheVersion baseVer, GridCacheVersion owned) {
+        if (owned == null)
+            return anyOwner();
+
+        if (rmts != null) {
+            GridCacheMvccCandidate baseCand = candidate(rmts, baseVer);
+
+            if (baseCand != null)
+                baseCand.ownerVersion(owned);
+        }
+
+        return anyOwner();
+    }
+
+    /**
      * @param parent Parent entry.
      * @param threadId Thread ID.
      * @param ver Lock version.
@@ -554,9 +651,14 @@ public final class GridCacheMvcc {
      *
      * @param ver Version to mark as ready.
      * @param mappedVer Mapped dht version.
+     * @param committedVers Committed versions.
+     * @param rolledBackVers Rolled back versions.
+     * @param pending Pending dht versions that are not owned and which version is less then mapped.
      * @return Lock owner after reassignment.
      */
-    @Nullable public GridCacheMvccCandidate readyNearLocal(GridCacheVersion ver, GridCacheVersion mappedVer) {
+    @Nullable public GridCacheMvccCandidate readyNearLocal(GridCacheVersion ver, GridCacheVersion mappedVer,
+        Collection<GridCacheVersion> committedVers, Collection<GridCacheVersion> rolledBackVers,
+        Collection<GridCacheVersion> pending) {
         GridCacheMvccCandidate cand = candidate(locs, ver);
 
         if (cand != null) {
@@ -601,6 +703,24 @@ public final class GridCacheMvcc {
                 }
             }
 
+            // Mark all remote candidates with less version as owner unless it is pending.
+            if (rmts != null) {
+                for (GridCacheMvccCandidate rmt : rmts) {
+                    GridCacheVersion rmtVer = rmt.version();
+
+                    if (rmtVer.isLess(mappedVer)) {
+                        if (!pending.contains(rmtVer) &&
+                            !mappedVer.equals(rmt.ownerVersion()))
+                            rmt.setOwner();
+                    }
+                    else {
+                        // Remote version is greater, so need to check if it was committed or rolled back.
+                        if (committedVers.contains(rmtVer) || rolledBackVers.contains(rmtVer))
+                            rmt.setOwner();
+                    }
+                }
+            }
+
             reassign();
         }
 
@@ -611,10 +731,16 @@ public final class GridCacheMvcc {
      * Sets remote candidate to done.
      *
      * @param ver Version.
+     * @param pending Pending versions.
+     * @param committed Committed versions.
+     * @param rolledback Rolledback versions.
      * @return Lock owner.
      */
     @Nullable public GridCacheMvccCandidate doneRemote(
-        GridCacheVersion ver) {
+        GridCacheVersion ver,
+        Collection<GridCacheVersion> pending,
+        Collection<GridCacheVersion> committed,
+        Collection<GridCacheVersion> rolledback) {
         assert ver != null;
 
         if (log.isDebugEnabled())
@@ -646,6 +772,15 @@ public final class GridCacheMvcc {
 
                     break;
                 }
+                else if (!committed.contains(c.version()) && !rolledback.contains(c.version()) &&
+                    pending.contains(c.version())) {
+                    it.remove();
+
+                    if (mvAfter == null)
+                        mvAfter = new LinkedList<>();
+
+                    mvAfter.add(c);
+                }
             }
         }
 
@@ -709,10 +844,6 @@ public final class GridCacheMvcc {
             }
         }
 
-        // No assignment can happen in near local cache when remote candidate is present.
-        if (cctx.isNear() && firstRmt != null)
-            return;
-
         if (locs != null) {
             for (ListIterator<GridCacheMvccCandidate> it = locs.listIterator(); it.hasNext(); ) {
                 GridCacheMvccCandidate cand = it.next();

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
index fa69836..276f678 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
@@ -54,6 +54,16 @@ public abstract class GridDistributedBaseMessage extends GridCacheMessage implem
     @GridToStringExclude
     private byte[] candsByIdxBytes;
 
+    /** Committed versions with order higher than one for this message (needed for commit ordering). */
+    @GridToStringInclude
+    @GridDirectCollection(GridCacheVersion.class)
+    private Collection<GridCacheVersion> committedVers;
+
+    /** Rolled back versions with order higher than one for this message (needed for commit ordering). */
+    @GridToStringInclude
+    @GridDirectCollection(GridCacheVersion.class)
+    private Collection<GridCacheVersion> rolledbackVers;
+
     /** Count of keys referenced in candidates array (needed only locally for optimization). */
     @GridToStringInclude
     @GridDirectTransient
@@ -119,6 +129,30 @@ public abstract class GridDistributedBaseMessage extends GridCacheMessage implem
     }
 
     /**
+     * @param committedVers Committed versions.
+     * @param rolledbackVers Rolled back versions.
+     */
+    public void completedVersions(Collection<GridCacheVersion> committedVers,
+        Collection<GridCacheVersion> rolledbackVers) {
+        this.committedVers = committedVers;
+        this.rolledbackVers = rolledbackVers;
+    }
+
+    /**
+     * @return Committed versions.
+     */
+    public Collection<GridCacheVersion> committedVersions() {
+        return committedVers == null ? Collections.<GridCacheVersion>emptyList() : committedVers;
+    }
+
+    /**
+     * @return Rolled back versions.
+     */
+    public Collection<GridCacheVersion> rolledbackVersions() {
+        return rolledbackVers == null ? Collections.<GridCacheVersion>emptyList() : rolledbackVers;
+    }
+
+    /**
      * @param idx Key index.
      * @param candsByIdx List of candidates for that key.
      */

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheEntry.java
index 0f6fdbf..074edd0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheEntry.java
@@ -163,6 +163,7 @@ public class GridDistributedCacheEntry extends GridCacheMapEntry {
      * @param timeout Lock acquire timeout.
      * @param tx Transaction flag.
      * @param implicitSingle Implicit flag.
+     * @param owned Owned candidate version.
      * @throws GridDistributedLockCancelledException If lock has been canceled.
      * @throws GridCacheEntryRemovedException If this entry is obsolete.
      */
@@ -173,9 +174,9 @@ public class GridDistributedCacheEntry extends GridCacheMapEntry {
         GridCacheVersion ver,
         long timeout,
         boolean tx,
-        boolean implicitSingle
-    ) throws GridDistributedLockCancelledException,
-        GridCacheEntryRemovedException {
+        boolean implicitSingle,
+        @Nullable GridCacheVersion owned
+    ) throws GridDistributedLockCancelledException, GridCacheEntryRemovedException {
         GridCacheMvccCandidate prev;
         GridCacheMvccCandidate owner;
 
@@ -211,6 +212,9 @@ public class GridDistributedCacheEntry extends GridCacheMapEntry {
                 /*near-local*/false
             );
 
+            if (owned != null)
+                mvcc.markOwned(ver, owned);
+
             owner = mvcc.anyOwner();
 
             boolean emptyAfter = mvcc.isEmpty();
@@ -508,12 +512,17 @@ public class GridDistributedCacheEntry extends GridCacheMapEntry {
      *
      * @param ver Lock version.
      * @param mapped Mapped dht lock version.
+     * @param committed Committed versions.
+     * @param rolledBack Rolled back versions.
+     * @param pending Pending locks on dht node with version less then mapped.
      * @return Current lock owner.
      *
      * @throws GridCacheEntryRemovedException If entry is removed.
      */
-    @Nullable public GridCacheMvccCandidate readyNearLock(GridCacheVersion ver, GridCacheVersion mapped)
-        throws GridCacheEntryRemovedException {
+    @Nullable public GridCacheMvccCandidate readyNearLock(GridCacheVersion ver, GridCacheVersion mapped,
+        Collection<GridCacheVersion> committed,
+        Collection<GridCacheVersion> rolledBack,
+        Collection<GridCacheVersion> pending) throws GridCacheEntryRemovedException {
         GridCacheMvccCandidate prev = null;
         GridCacheMvccCandidate owner = null;
 
@@ -529,7 +538,7 @@ public class GridDistributedCacheEntry extends GridCacheMapEntry {
 
                 boolean emptyBefore = mvcc.isEmpty();
 
-                owner = mvcc.readyNearLocal(ver, mapped);
+                owner = mvcc.readyNearLocal(ver, mapped, committed, rolledBack, pending);
 
                 assert owner == null || owner.owner() : "Owner flag is not set for owner: " + owner;
 
@@ -551,9 +560,79 @@ public class GridDistributedCacheEntry extends GridCacheMapEntry {
     }
 
     /**
+     * Reorders completed versions.
+     *
+     * @param baseVer Base version for reordering.
+     * @param committedVers Completed versions.
+     * @param rolledbackVers Rolled back versions.
+     * @throws GridCacheEntryRemovedException If entry has been removed.
+     */
+    public void orderCompleted(GridCacheVersion baseVer, Collection<GridCacheVersion> committedVers,
+        Collection<GridCacheVersion> rolledbackVers)
+        throws GridCacheEntryRemovedException {
+        if (!F.isEmpty(committedVers) || !F.isEmpty(rolledbackVers)) {
+            GridCacheMvccCandidate prev = null;
+            GridCacheMvccCandidate owner = null;
+
+            CacheObject val;
+
+            synchronized (this) {
+                checkObsolete();
+
+                GridCacheMvcc mvcc = mvccExtras();
+
+                if (mvcc != null) {
+                    prev = mvcc.anyOwner();
+
+                    boolean emptyBefore = mvcc.isEmpty();
+
+                    owner = mvcc.orderCompleted(baseVer, committedVers, rolledbackVers);
+
+                    boolean emptyAfter = mvcc.isEmpty();
+
+                    checkCallbacks(emptyBefore, emptyAfter);
+
+                    if (emptyAfter)
+                        mvccExtras(null);
+                }
+
+                val = this.val;
+            }
+
+            // This call must be made outside of synchronization.
+            checkOwnerChanged(prev, owner, val);
+        }
+    }
+
+    /**
+     *
+     * @param lockVer Done version.
+     * @param baseVer Base version.
+     * @param committedVers Completed versions for reordering.
+     * @param rolledbackVers Rolled back versions for reordering.
+     * @param sysInvalidate Flag indicating if this entry is done from invalidated transaction (in case of tx
+     *      salvage). In this case all locks before salvaged lock will marked as used and corresponding
+     *      transactions will be invalidated.
+     * @throws GridCacheEntryRemovedException If entry has been removed.
+     * @return Owner.
+     */
+    @Nullable public GridCacheMvccCandidate doneRemote(
+        GridCacheVersion lockVer,
+        GridCacheVersion baseVer,
+        Collection<GridCacheVersion> committedVers,
+        Collection<GridCacheVersion> rolledbackVers,
+        boolean sysInvalidate) throws GridCacheEntryRemovedException {
+        return doneRemote(lockVer, baseVer, Collections.<GridCacheVersion>emptySet(), committedVers,
+            rolledbackVers, sysInvalidate);
+    }
+
+    /**
      *
      * @param lockVer Done version.
      * @param baseVer Base version.
+     * @param pendingVers Pending versions that are less than lock version.
+     * @param committedVers Completed versions for reordering.
+     * @param rolledbackVers Rolled back versions for reordering.
      * @param sysInvalidate Flag indicating if this entry is done from invalidated transaction (in case of tx
      *      salvage). In this case all locks before salvaged lock will marked as used and corresponding
      *      transactions will be invalidated.
@@ -563,6 +642,9 @@ public class GridDistributedCacheEntry extends GridCacheMapEntry {
     @Nullable public GridCacheMvccCandidate doneRemote(
         GridCacheVersion lockVer,
         GridCacheVersion baseVer,
+        @Nullable Collection<GridCacheVersion> pendingVers,
+        Collection<GridCacheVersion> committedVers,
+        Collection<GridCacheVersion> rolledbackVers,
         boolean sysInvalidate) throws GridCacheEntryRemovedException {
         GridCacheMvccCandidate prev = null;
         GridCacheMvccCandidate owner = null;
@@ -579,10 +661,19 @@ public class GridDistributedCacheEntry extends GridCacheMapEntry {
 
                 boolean emptyBefore = mvcc.isEmpty();
 
+                // Order completed versions.
+                if (!F.isEmpty(committedVers) || !F.isEmpty(rolledbackVers)) {
+                    mvcc.orderCompleted(lockVer, committedVers, rolledbackVers);
+
+                    if (!baseVer.equals(lockVer))
+                        mvcc.orderCompleted(baseVer, committedVers, rolledbackVers);
+                }
+
                 if (sysInvalidate && baseVer != null)
                     mvcc.salvageRemote(baseVer);
 
-                owner = mvcc.doneRemote(lockVer);
+                owner = mvcc.doneRemote(lockVer, maskNull(pendingVers), maskNull(committedVers),
+                    maskNull(rolledbackVers));
 
                 boolean emptyAfter = mvcc.isEmpty();
 
@@ -661,7 +752,8 @@ public class GridDistributedCacheEntry extends GridCacheMapEntry {
                 tx.xidVersion(),
                 tx.timeout(),
                 true,
-                tx.implicitSingle()
+                tx.implicitSingle(),
+                tx.ownedVersion(txKey())
             );
 
             return true;

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
index aec1f40..ee0f65f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
@@ -164,10 +164,15 @@ public class GridDistributedLockResponse extends GridDistributedBaseMessage {
     /**
      * @param idx Candidates index.
      * @param cands Collection of candidates.
+     * @param committedVers Committed versions relative to lock version.
+     * @param rolledbackVers Rolled back versions relative to lock version.
      */
-    public void setCandidates(int idx, Collection<GridCacheMvccCandidate> cands) {
+    public void setCandidates(int idx, Collection<GridCacheMvccCandidate> cands,
+        Collection<GridCacheVersion> committedVers, Collection<GridCacheVersion> rolledbackVers) {
         assert idx >= 0;
 
+        completedVersions(committedVers, rolledbackVers);
+
         candidatesByIndex(idx, cands);
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
index 89601e3..897a714 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
@@ -27,6 +27,7 @@ import org.jetbrains.annotations.*;
 
 import java.io.*;
 import java.nio.*;
+import java.util.*;
 
 /**
  * Transaction completion message.
@@ -56,6 +57,9 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
     /** Sync commit flag. */
     private boolean syncRollback;
 
+    /** Min version used as base for completed versions. */
+    private GridCacheVersion baseVer;
+
     /** Expected txSize. */
     private int txSize;
 
@@ -79,8 +83,11 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
      * @param commitVer Commit version.
      * @param commit Commit flag.
      * @param invalidate Invalidate flag.
-     * @param sys System flag.
+     * @param sys System transaction flag.
      * @param plc IO policy.
+     * @param baseVer Base version.
+     * @param committedVers Committed versions.
+     * @param rolledbackVers Rolled back versions.
      * @param txSize Expected transaction size.
      */
     public GridDistributedTxFinishRequest(
@@ -94,6 +101,9 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
         byte plc,
         boolean syncCommit,
         boolean syncRollback,
+        GridCacheVersion baseVer,
+        Collection<GridCacheVersion> committedVers,
+        Collection<GridCacheVersion> rolledbackVers,
         int txSize
     ) {
         super(xidVer, 0);
@@ -108,7 +118,10 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
         this.plc = plc;
         this.syncCommit = syncCommit;
         this.syncRollback = syncRollback;
+        this.baseVer = baseVer;
         this.txSize = txSize;
+
+        completedVersions(committedVers, rolledbackVers);
     }
 
     /**
@@ -176,6 +189,13 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage {
     }
 
     /**
+     * @return Base version.
+     */
+    public GridCacheVersion baseVersion() {
+        return baseVer;
+    }
+
+    /**
      * @return Expected tx size.
      */
     public int txSize() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
index 3685968..54e9be8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
@@ -225,16 +225,19 @@ public class GridDistributedTxRemoteAdapter extends IgniteTxAdapter
 
     /**
      * @param baseVer Base version.
+     * @param committedVers Committed versions.
+     * @param rolledbackVers Rolled back versions.
      */
-    @Override public void doneRemote(GridCacheVersion baseVer) {
+    @Override public void doneRemote(GridCacheVersion baseVer, Collection<GridCacheVersion> committedVers,
+        Collection<GridCacheVersion> rolledbackVers, Collection<GridCacheVersion> pendingVers) {
         if (readMap != null && !readMap.isEmpty()) {
             for (IgniteTxEntry txEntry : readMap.values())
-                doneRemote(txEntry, baseVer);
+                doneRemote(txEntry, baseVer, committedVers, rolledbackVers, pendingVers);
         }
 
         if (writeMap != null && !writeMap.isEmpty()) {
             for (IgniteTxEntry txEntry : writeMap.values())
-                doneRemote(txEntry, baseVer);
+                doneRemote(txEntry, baseVer, committedVers, rolledbackVers, pendingVers);
         }
     }
 
@@ -243,8 +246,13 @@ public class GridDistributedTxRemoteAdapter extends IgniteTxAdapter
      *
      * @param txEntry Entry.
      * @param baseVer Base version for completed versions.
+     * @param committedVers Completed versions relative to base version.
+     * @param rolledbackVers Rolled back versions relative to base version.
+     * @param pendingVers Pending versions.
      */
-    private void doneRemote(IgniteTxEntry txEntry, GridCacheVersion baseVer) {
+    private void doneRemote(IgniteTxEntry txEntry, GridCacheVersion baseVer,
+        Collection<GridCacheVersion> committedVers, Collection<GridCacheVersion> rolledbackVers,
+        Collection<GridCacheVersion> pendingVers) {
         while (true) {
             GridDistributedCacheEntry entry = (GridDistributedCacheEntry)txEntry.cached();
 
@@ -252,7 +260,7 @@ public class GridDistributedTxRemoteAdapter extends IgniteTxAdapter
                 // Handle explicit locks.
                 GridCacheVersion doneVer = txEntry.explicitVersion() != null ? txEntry.explicitVersion() : xidVer;
 
-                entry.doneRemote(doneVer, baseVer, isSystemInvalidate());
+                entry.doneRemote(doneVer, baseVer, pendingVers, committedVers, rolledbackVers, isSystemInvalidate());
 
                 break;
             }

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheEntry.java
index ccd146d..3b411b5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheEntry.java
@@ -261,7 +261,8 @@ public class GridDhtCacheEntry extends GridDistributedCacheEntry {
                 tx.xidVersion(),
                 tx.timeout(),
                 /*tx*/true,
-                tx.implicit());
+                tx.implicit(),
+                null);
 
             return true;
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
index 6996cbd..e160529 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
@@ -749,12 +749,14 @@ public final class GridDhtLockFuture extends GridCompoundIdentityFuture<Boolean>
             if (log.isDebugEnabled())
                 log.debug("Mapping entry for DHT lock future: " + this);
 
+            boolean hasRmtNodes = false;
+
             // Assign keys to primary nodes.
             for (GridDhtCacheEntry entry : entries) {
                 try {
                     while (true) {
                         try {
-                            cctx.dhtMap(
+                            hasRmtNodes = cctx.dhtMap(
                                 nearNodeId,
                                 topVer,
                                 entry,
@@ -788,6 +790,9 @@ public final class GridDhtLockFuture extends GridCompoundIdentityFuture<Boolean>
                 }
             }
 
+            if (tx != null)
+                tx.needsCompletedVersions(hasRmtNodes);
+
             if (isDone()) {
                 if (log.isDebugEnabled())
                     log.debug("Mapping won't proceed because future is done: " + this);
@@ -879,6 +884,8 @@ public final class GridDhtLockFuture extends GridCompoundIdentityFuture<Boolean>
                                         txEntry.op(GridCacheOperation.NOOP);
                                 }
                             }
+
+                            it.set(addOwned(req, e));
                         }
 
                         if (!F.isEmpty(req.keys())) {
@@ -908,6 +915,35 @@ public final class GridDhtLockFuture extends GridCompoundIdentityFuture<Boolean>
         }
     }
 
+    /**
+     * @param req Request.
+     * @param e Entry.
+     * @return Entry.
+     */
+    private GridDhtCacheEntry addOwned(GridDhtLockRequest req, GridDhtCacheEntry e) {
+        while (true) {
+            try {
+                GridCacheMvccCandidate added = e.candidate(lockVer);
+
+                assert added != null;
+                assert added.dhtLocal();
+
+                if (added.ownerVersion() != null)
+                    req.owned(e.key(), added.ownerVersion());
+
+                break;
+            }
+            catch (GridCacheEntryRemovedException ignore) {
+                if (log.isDebugEnabled())
+                    log.debug("Got removed entry when creating DHT lock request (will retry): " + e);
+
+                e = cctx.dht().entryExx(e.key(), topVer);
+            }
+        }
+
+        return e;
+    }
+
     /** {@inheritDoc} */
     @Override public int hashCode() {
         return futId.hashCode();

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
index 267b430..903898a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
@@ -23,6 +23,7 @@ import org.apache.ignite.internal.processors.affinity.*;
 import org.apache.ignite.internal.processors.cache.*;
 import org.apache.ignite.internal.processors.cache.distributed.*;
 import org.apache.ignite.internal.processors.cache.version.*;
+import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.tostring.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.lang.*;
@@ -52,6 +53,19 @@ public class GridDhtLockRequest extends GridDistributedLockRequest {
     /** Mini future ID. */
     private IgniteUuid miniId;
 
+    /** Owner mapped version, if any. */
+    @GridToStringInclude
+    @GridDirectTransient
+    private Map<KeyCacheObject, GridCacheVersion> owned;
+
+    /** Array of keys from {@link #owned}. Used during marshalling and unmarshalling. */
+    @GridToStringExclude
+    private KeyCacheObject[] ownedKeys;
+
+    /** Array of values from {@link #owned}. Used during marshalling and unmarshalling. */
+    @GridToStringExclude
+    private GridCacheVersion[] ownedValues;
+
     /** Topology version. */
     private AffinityTopologyVersion topVer;
 
@@ -237,6 +251,27 @@ public class GridDhtLockRequest extends GridDistributedLockRequest {
     }
 
     /**
+     * Sets owner and its mapped version.
+     *
+     * @param key Key.
+     * @param ownerMapped Owner mapped version.
+     */
+    public void owned(KeyCacheObject key, GridCacheVersion ownerMapped) {
+        if (owned == null)
+            owned = new GridLeanMap<>(3);
+
+        owned.put(key, ownerMapped);
+    }
+
+    /**
+     * @param key Key.
+     * @return Owner and its mapped versions.
+     */
+    @Nullable public GridCacheVersion owned(KeyCacheObject key) {
+        return owned == null ? null : owned.get(key);
+    }
+
+    /**
      * @param idx Entry index to check.
      * @return {@code True} if near entry should be invalidated.
      */
@@ -264,6 +299,19 @@ public class GridDhtLockRequest extends GridDistributedLockRequest {
         super.prepareMarshal(ctx);
 
         prepareMarshalCacheObjects(nearKeys, ctx.cacheContext(cacheId));
+
+        if (owned != null) {
+            ownedKeys = new KeyCacheObject[owned.size()];
+            ownedValues = new GridCacheVersion[ownedKeys.length];
+
+            int i = 0;
+
+            for (Map.Entry<KeyCacheObject, GridCacheVersion> entry : owned.entrySet()) {
+                ownedKeys[i] = entry.getKey();
+                ownedValues[i] = entry.getValue();
+                i++;
+            }
+        }
     }
 
     /** {@inheritDoc} */
@@ -271,6 +319,18 @@ public class GridDhtLockRequest extends GridDistributedLockRequest {
         super.finishUnmarshal(ctx, ldr);
 
         finishUnmarshalCacheObjects(nearKeys, ctx.cacheContext(cacheId), ldr);
+
+        if (ownedKeys != null) {
+            owned = new GridLeanMap<>(ownedKeys.length);
+
+            for (int i = 0; i < ownedKeys.length; i++) {
+                ownedKeys[i].finishUnmarshal(ctx.cacheContext(cacheId).cacheObjectContext(), ldr);
+                owned.put(ownedKeys[i], ownedValues[i]);
+            }
+
+            ownedKeys = null;
+            ownedValues = null;
+        }
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
index a630642..6181ab5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
@@ -233,7 +233,8 @@ public abstract class GridDhtTransactionalCacheAdapter<K, V> extends GridDhtCach
                             req.version(),
                             req.timeout(),
                             tx != null,
-                            tx != null && tx.implicitSingle()
+                            tx != null && tx.implicitSingle(),
+                            null
                         );
 
                         // Invalidate key in near cache, if any.
@@ -1060,6 +1061,13 @@ public abstract class GridDhtTransactionalCacheAdapter<K, V> extends GridDhtCach
                 null);
 
             if (err == null) {
+                res.pending(localDhtPendingVersions(entries, mappedVer));
+
+                // We have to add completed versions for cases when nearLocal and remote transactions
+                // execute concurrently.
+                res.completedVersions(ctx.tm().committedVersions(req.version()),
+                    ctx.tm().rolledbackVersions(req.version()));
+
                 int i = 0;
 
                 for (ListIterator<GridCacheEntryEx> it = entries.listIterator(); it.hasNext();) {
@@ -1208,6 +1216,40 @@ public abstract class GridDhtTransactionalCacheAdapter<K, V> extends GridDhtCach
     }
 
     /**
+     * Collects versions of pending candidates versions less then base.
+     *
+     * @param entries Tx entries to process.
+     * @param baseVer Base version.
+     * @return Collection of pending candidates versions.
+     */
+    private Collection<GridCacheVersion> localDhtPendingVersions(Iterable<GridCacheEntryEx> entries,
+        GridCacheVersion baseVer) {
+        Collection<GridCacheVersion> lessPending = new GridLeanSet<>(5);
+
+        for (GridCacheEntryEx entry : entries) {
+            // Since entries were collected before locks are added, some of them may become obsolete.
+            while (true) {
+                try {
+                    for (GridCacheMvccCandidate cand : entry.localCandidates()) {
+                        if (cand.version().isLess(baseVer))
+                            lessPending.add(cand.version());
+                    }
+
+                    break; // While.
+                }
+                catch (GridCacheEntryRemovedException ignored) {
+                    if (log.isDebugEnabled())
+                        log.debug("Got removed entry is localDhtPendingVersions (will retry): " + entry);
+
+                    entry = entryExx(entry.key());
+                }
+            }
+        }
+
+        return lessPending;
+    }
+
+    /**
      * @param nodeId Node ID.
      * @param req Request.
      */
@@ -1230,6 +1272,9 @@ public abstract class GridDhtTransactionalCacheAdapter<K, V> extends GridDhtCach
                         entry.doneRemote(
                             req.version(),
                             req.version(),
+                            null,
+                            null,
+                            null,
                             /*system invalidate*/false);
 
                         // Note that we don't reorder completed versions here,
@@ -1446,6 +1491,9 @@ public abstract class GridDhtTransactionalCacheAdapter<K, V> extends GridDhtCach
             }
         }
 
+        Collection<GridCacheVersion> committed = ctx.tm().committedVersions(ver);
+        Collection<GridCacheVersion> rolledback = ctx.tm().rolledbackVersions(ver);
+
         // Backups.
         for (Map.Entry<ClusterNode, List<KeyCacheObject>> entry : dhtMap.entrySet()) {
             ClusterNode n = entry.getKey();
@@ -1466,6 +1514,8 @@ public abstract class GridDhtTransactionalCacheAdapter<K, V> extends GridDhtCach
                     for (KeyCacheObject key : keyBytes)
                         req.addNearKey(key, ctx.shared());
 
+                req.completedVersions(committed, rolledback);
+
                 ctx.io().send(n, req, ctx.ioPolicy());
             }
             catch (ClusterTopologyCheckedException ignore) {
@@ -1492,6 +1542,8 @@ public abstract class GridDhtTransactionalCacheAdapter<K, V> extends GridDhtCach
                     for (KeyCacheObject key : keyBytes)
                         req.addNearKey(key, ctx.shared());
 
+                    req.completedVersions(committed, rolledback);
+
                     ctx.io().send(n, req, ctx.ioPolicy());
                 }
                 catch (ClusterTopologyCheckedException ignore) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
index 8bd518b..72e2f97 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
@@ -304,6 +304,10 @@ public final class GridDhtTxFinishFuture<K, V> extends GridCompoundIdentityFutur
                 tx.isSystemInvalidate(),
                 sync,
                 sync,
+                tx.completedBase(),
+                tx.committedVersions(),
+                tx.rolledbackVersions(),
+                tx.pendingVersions(),
                 tx.size(),
                 tx.subjectId(),
                 tx.taskNameHash());
@@ -377,6 +381,10 @@ public final class GridDhtTxFinishFuture<K, V> extends GridCompoundIdentityFutur
                 tx.isSystemInvalidate(),
                 sync,
                 sync,
+                tx.completedBase(),
+                tx.committedVersions(),
+                tx.rolledbackVersions(),
+                tx.pendingVersions(),
                 tx.size(),
                 tx.subjectId(),
                 tx.taskNameHash());
@@ -426,6 +434,10 @@ public final class GridDhtTxFinishFuture<K, V> extends GridCompoundIdentityFutur
                     tx.isSystemInvalidate(),
                     sync,
                     sync,
+                    tx.completedBase(),
+                    tx.committedVersions(),
+                    tx.rolledbackVersions(),
+                    tx.pendingVersions(),
                     tx.size(),
                     tx.subjectId(),
                     tx.taskNameHash());

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
index 18191a7..3c33e87 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
@@ -17,13 +17,15 @@
 
 package org.apache.ignite.internal.processors.cache.distributed.dht;
 
+import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.processors.affinity.*;
 import org.apache.ignite.internal.processors.cache.distributed.*;
 import org.apache.ignite.internal.processors.cache.version.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.transactions.*;
+import org.apache.ignite.internal.util.tostring.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.lang.*;
 import org.apache.ignite.plugin.extensions.communication.*;
+import org.apache.ignite.transactions.*;
 import org.jetbrains.annotations.*;
 
 import java.io.*;
@@ -52,6 +54,11 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
     /** Topology version. */
     private AffinityTopologyVersion topVer;
 
+    /** Pending versions with order less than one for this message (needed for commit ordering). */
+    @GridToStringInclude
+    @GridDirectCollection(GridCacheVersion.class)
+    private Collection<GridCacheVersion> pendingVers;
+
     /** Check comitted flag. */
     private boolean checkCommitted;
 
@@ -86,6 +93,10 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
      * @param sysInvalidate System invalidation flag.
      * @param syncCommit Synchronous commit flag.
      * @param syncRollback Synchronous rollback flag.
+     * @param baseVer Base version.
+     * @param committedVers Committed versions.
+     * @param rolledbackVers Rolled back versions.
+     * @param pendingVers Pending versions.
      * @param txSize Expected transaction size.
      * @param subjId Subject ID.
      * @param taskNameHash Task name hash.
@@ -106,28 +117,35 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
         boolean sysInvalidate,
         boolean syncCommit,
         boolean syncRollback,
+        GridCacheVersion baseVer,
+        Collection<GridCacheVersion> committedVers,
+        Collection<GridCacheVersion> rolledbackVers,
+        Collection<GridCacheVersion> pendingVers,
         int txSize,
         @Nullable UUID subjId,
         int taskNameHash
     ) {
         super(
-            xidVer, 
-            futId, 
-            commitVer, 
-            threadId, 
-            commit, 
-            invalidate, 
-            sys, 
-            plc, 
-            syncCommit, 
-            syncRollback, 
-            txSize
-        );
+            xidVer,
+            futId,
+            commitVer,
+            threadId,
+            commit,
+            invalidate,
+            sys,
+            plc,
+            syncCommit,
+            syncRollback,
+            baseVer,
+            committedVers,
+            rolledbackVers,
+            txSize);
 
         assert miniId != null;
         assert nearNodeId != null;
         assert isolation != null;
 
+        this.pendingVers = pendingVers;
         this.topVer = topVer;
         this.nearNodeId = nearNodeId;
         this.isolation = isolation;
@@ -199,13 +217,23 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
     }
 
     /**
-     * @return Check committed flag.
+     * @return Topology version.
      */
     @Override public AffinityTopologyVersion topologyVersion() {
         return topVer;
     }
 
     /**
+     * Gets versions of not acquired locks with version less then one of transaction being committed.
+     *
+     * @return Versions of locks for entries participating in transaction that have not been acquired yet
+     *      have version less then one of transaction being committed.
+     */
+    public Collection<GridCacheVersion> pendingVersions() {
+        return pendingVers == null ? Collections.<GridCacheVersion>emptyList() : pendingVers;
+    }
+
+    /**
      * @return Check committed flag.
      */
     public boolean checkCommitted() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
index 30cee9d..58576bc 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
@@ -65,6 +65,12 @@ public abstract class GridDhtTxLocalAdapter extends IgniteTxLocalAdapter {
     /** */
     protected boolean explicitLock;
 
+    /** */
+    private boolean needsCompletedVers;
+
+    /** Versions of pending locks for entries of this tx. */
+    private Collection<GridCacheVersion> pendingVers;
+
     /** Flag indicating that originating node has near cache. */
     private boolean nearOnOriginatingNode;
 
@@ -212,6 +218,32 @@ public abstract class GridDhtTxLocalAdapter extends IgniteTxLocalAdapter {
     protected abstract void sendFinishReply(boolean commit, @Nullable Throwable err);
 
     /**
+     * @param needsCompletedVers {@code True} if needs completed versions.
+     */
+    public void needsCompletedVersions(boolean needsCompletedVers) {
+        this.needsCompletedVers |= needsCompletedVers;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean needsCompletedVersions() {
+        return needsCompletedVers;
+    }
+
+    /**
+     * @return Versions for all pending locks that were in queue before tx locks were released.
+     */
+    public Collection<GridCacheVersion> pendingVersions() {
+        return pendingVers == null ? Collections.<GridCacheVersion>emptyList() : pendingVers;
+    }
+
+    /**
+     * @param pendingVers Versions for all pending locks that were in queue before tx locsk were released.
+     */
+    public void pendingVersions(Collection<GridCacheVersion> pendingVers) {
+        this.pendingVers = pendingVers;
+    }
+
+    /**
      * @return DHT thread ID.
      */
     long dhtThreadId() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
index 67f6b0c..f117de6 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
@@ -626,6 +626,12 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
         if (prepErr == null) {
             addDhtValues(res);
 
+            GridCacheVersion min = tx.minVersion();
+
+            res.completedVersions(cctx.tm().committedVersions(min), cctx.tm().rolledbackVersions(min));
+
+            res.pending(localDhtPendingVersions(tx.writeEntries(), min));
+
             tx.implicitSingleResult(ret);
         }
 
@@ -879,16 +885,20 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
                 Map<UUID, GridDistributedTxMapping> futDhtMap = new HashMap<>();
                 Map<UUID, GridDistributedTxMapping> futNearMap = new HashMap<>();
 
+                boolean hasRemoteNodes = false;
+
                 // Assign keys to primary nodes.
                 if (!F.isEmpty(writes)) {
                     for (IgniteTxEntry write : writes)
-                        map(tx.entry(write.txKey()), futDhtMap, futNearMap);
+                        hasRemoteNodes |= map(tx.entry(write.txKey()), futDhtMap, futNearMap);
                 }
 
                 if (!F.isEmpty(reads)) {
                     for (IgniteTxEntry read : reads)
-                        map(tx.entry(read.txKey()), futDhtMap, futNearMap);
+                        hasRemoteNodes |= map(tx.entry(read.txKey()), futDhtMap, futNearMap);
                 }
+
+                tx.needsCompletedVersions(hasRemoteNodes);
             }
 
             // We are holding transaction-level locks for entries here, so we can get next write version.
@@ -1202,6 +1212,32 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
         return ret;
     }
 
+    /**
+     * Collects versions of pending candidates versions less than base.
+     *
+     * @param entries Tx entries to process.
+     * @param baseVer Base version.
+     * @return Collection of pending candidates versions.
+     */
+    private Collection<GridCacheVersion> localDhtPendingVersions(Iterable<IgniteTxEntry> entries,
+        GridCacheVersion baseVer) {
+        Collection<GridCacheVersion> lessPending = new GridLeanSet<>(5);
+
+        for (IgniteTxEntry entry : entries) {
+            try {
+                for (GridCacheMvccCandidate cand : entry.cached().localCandidates()) {
+                    if (cand.version().isLess(baseVer))
+                        lessPending.add(cand.version());
+                }
+            }
+            catch (GridCacheEntryRemovedException ignored) {
+                // No-op, no candidates.
+            }
+        }
+
+        return lessPending;
+    }
+
     /** {@inheritDoc} */
     @Override public String toString() {
         return S.toString(GridDhtTxPrepareFuture.class, this, "xid", tx.xidVersion(), "super", super.toString());

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
index e93812e..eb7c78f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
@@ -579,12 +579,17 @@ public class GridDhtColocatedCache<K, V> extends GridDhtTransactionalCacheAdapte
             if (map == null || map.isEmpty())
                 return;
 
+            Collection<GridCacheVersion> committed = ctx.tm().committedVersions(ver);
+            Collection<GridCacheVersion> rolledback = ctx.tm().rolledbackVersions(ver);
+
             for (Map.Entry<ClusterNode, GridNearUnlockRequest> mapping : map.entrySet()) {
                 ClusterNode n = mapping.getKey();
 
                 GridDistributedUnlockRequest req = mapping.getValue();
 
                 if (!F.isEmpty(req.keys())) {
+                    req.completedVersions(committed, rolledback);
+
                     try {
                         // We don't wait for reply to this message.
                         ctx.io().send(n, req, ctx.ioPolicy());

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
index a61f08d..5db76ef 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
@@ -1074,7 +1074,8 @@ public final class GridNearLockFuture extends GridCompoundIdentityFuture<Boolean
                                         // returned value if any.
                                         entry.resetFromPrimary(newVal, lockVer, dhtVer, node.id(), topVer.get());
 
-                                        entry.readyNearLock(lockVer, mappedVer);
+                                        entry.readyNearLock(lockVer, mappedVer, res.committedVersions(),
+                                            res.rolledbackVersions(), res.pending());
 
                                         if (inTx() && implicitTx() && tx.onePhaseCommit()) {
                                             boolean pass = res.filterResult(i);
@@ -1456,7 +1457,7 @@ public final class GridNearLockFuture extends GridCompoundIdentityFuture<Boolean
                                     }
                                 }
                                 
-                                entry.readyNearLock(lockVer, mappedVer);
+                                entry.readyNearLock(lockVer, mappedVer, res.committedVersions(), res.rolledbackVersions(), res.pending());
 
                                 if (retval) {
                                     if (readRecordable)

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
index 5418dd1..7ab71aa 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.internal.processors.cache.distributed.near;
 
 import org.apache.ignite.*;
+import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.processors.affinity.*;
 import org.apache.ignite.internal.processors.cache.*;
 import org.apache.ignite.internal.processors.cache.distributed.*;
@@ -30,6 +31,7 @@ import org.jetbrains.annotations.*;
 
 import java.io.*;
 import java.nio.*;
+import java.util.*;
 
 /**
  * Near cache lock response.
@@ -38,6 +40,11 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
     /** */
     private static final long serialVersionUID = 0L;
 
+    /** Collection of versions that are pending and less than lock version. */
+    @GridToStringInclude
+    @GridDirectCollection(GridCacheVersion.class)
+    private Collection<GridCacheVersion> pending;
+
     /** */
     private IgniteUuid miniId;
 
@@ -104,6 +111,24 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
     }
 
     /**
+     * Gets pending versions that are less than {@link #version()}.
+     *
+     * @return Pending versions.
+     */
+    public Collection<GridCacheVersion> pending() {
+        return pending;
+    }
+
+    /**
+     * Sets pending versions that are less than {@link #version()}.
+     *
+     * @param pending Pending versions.
+     */
+    public void pending(Collection<GridCacheVersion> pending) {
+        this.pending = pending;
+    }
+
+    /**
      * @return Mini future ID.
      */
     public IgniteUuid miniId() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTransactionalCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTransactionalCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTransactionalCache.java
index c451bc8..a1f1383 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTransactionalCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTransactionalCache.java
@@ -207,6 +207,9 @@ public class GridNearTransactionalCache<K, V> extends GridNearCacheAdapter<K, V>
                             entry.doneRemote(
                                 req.version(),
                                 req.version(),
+                                null,
+                                req.committedVersions(),
+                                req.rolledbackVersions(),
                                 /*system invalidate*/false);
 
                             // Note that we don't reorder completed versions here,
@@ -329,7 +332,8 @@ public class GridNearTransactionalCache<K, V> extends GridNearCacheAdapter<K, V>
                                 req.version(),
                                 req.timeout(),
                                 tx != null,
-                                tx != null && tx.implicitSingle()
+                                tx != null && tx.implicitSingle(),
+                                req.owned(entry.key())
                             );
 
                             assert cands.isEmpty() : "Received non-empty candidates in dht lock request: " + cands;
@@ -686,12 +690,17 @@ public class GridNearTransactionalCache<K, V> extends GridNearCacheAdapter<K, V>
             if (map == null || map.isEmpty())
                 return;
 
+            Collection<GridCacheVersion> committed = ctx.tm().committedVersions(ver);
+            Collection<GridCacheVersion> rolledback = ctx.tm().rolledbackVersions(ver);
+
             for (Map.Entry<ClusterNode, GridNearUnlockRequest> mapping : map.entrySet()) {
                 ClusterNode n = mapping.getKey();
 
                 GridDistributedUnlockRequest req = mapping.getValue();
 
                 if (!F.isEmpty(req.keys())) {
+                    req.completedVersions(committed, rolledback);
+
                     // We don't wait for reply to this message.
                     ctx.io().send(n, req, ctx.ioPolicy());
                 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
index 95f5149..7b164b8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
@@ -323,6 +323,8 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
             // If checkBackup is set, it means that primary node has crashed and we will not need to send
             // finish request to it, so we can mark future as initialized.
             markInitialized();
+
+            return;
         }
 
         try {
@@ -405,6 +407,10 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
                         false,
                         true,
                         true,
+                        null,
+                        null,
+                        null,
+                        null,
                         0,
                         null,
                         0);
@@ -486,6 +492,9 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
             m.explicitLock(),
             tx.storeEnabled(),
             tx.topologyVersion(),
+            null,
+            null,
+            null,
             tx.size(),
             tx.subjectId(),
             tx.taskNameHash()

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
index 028a9de..d20b8ea 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
@@ -71,6 +71,9 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
      * @param explicitLock Explicit lock flag.
      * @param storeEnabled Store enabled flag.
      * @param topVer Topology version.
+     * @param baseVer Base version.
+     * @param committedVers Committed versions.
+     * @param rolledbackVers Rolled back versions.
      * @param txSize Expected transaction size.
      */
     public GridNearTxFinishRequest(
@@ -85,21 +88,27 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
         boolean syncRollback,
         boolean explicitLock,
         boolean storeEnabled,
-        AffinityTopologyVersion topVer,
+        @NotNull AffinityTopologyVersion topVer,
+        GridCacheVersion baseVer,
+        Collection<GridCacheVersion> committedVers,
+        Collection<GridCacheVersion> rolledbackVers,
         int txSize,
         @Nullable UUID subjId,
         int taskNameHash) {
         super(
-            xidVer, 
-            futId, 
-            null, 
-            threadId, 
-            commit, 
-            invalidate, 
+            xidVer,
+            futId,
+            null,
+            threadId,
+            commit,
+            invalidate,
             sys,
             plc,
-            syncCommit, 
-            syncRollback, 
+            syncCommit,
+            syncRollback,
+            baseVer,
+            committedVers,
+            rolledbackVers,
             txSize
         );
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index fbbddeb..ccdc4e4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -559,8 +559,15 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter {
 
     /**
      * @param mapping Mapping to order.
+     * @param pendingVers Pending versions.
+     * @param committedVers Committed versions.
+     * @param rolledbackVers Rolled back versions.
      */
-    void readyNearLocks(GridDistributedTxMapping mapping) {
+    void readyNearLocks(GridDistributedTxMapping mapping,
+        Collection<GridCacheVersion> pendingVers,
+        Collection<GridCacheVersion> committedVers,
+        Collection<GridCacheVersion> rolledbackVers)
+    {
         Collection<IgniteTxEntry> entries = F.concat(false, mapping.reads(), mapping.writes());
 
         for (IgniteTxEntry txEntry : entries) {
@@ -576,7 +583,7 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter {
                     GridCacheVersion explicit = txEntry.explicitVersion();
 
                     if (explicit == null)
-                        entry.readyNearLock(xidVer, mapping.dhtVersion());
+                        entry.readyNearLock(xidVer, mapping.dhtVersion(), committedVers, rolledbackVers, pendingVers);
 
                     break;
                 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareFutureAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareFutureAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareFutureAdapter.java
index 257d214..b7a2fee 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareFutureAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareFutureAdapter.java
@@ -225,7 +225,7 @@ public abstract class GridNearTxPrepareFutureAdapter extends GridCompoundIdentit
             m.dhtVersion(res.dhtVersion(), writeVer);
 
             if (m.near())
-                tx.readyNearLocks(m);
+                tx.readyNearLocks(m, res.pending(), res.committedVersions(), res.rolledbackVersions());
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
index 1cc8130..ea5e97a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
@@ -41,6 +41,11 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
     /** */
     private static final long serialVersionUID = 0L;
 
+    /** Collection of versions that are pending and less than lock version. */
+    @GridToStringInclude
+    @GridDirectCollection(GridCacheVersion.class)
+    private Collection<GridCacheVersion> pending;
+
     /** Future ID.  */
     private IgniteUuid futId;
 
@@ -132,6 +137,24 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
     }
 
     /**
+     * Gets pending versions that are less than {@link #version()}.
+     *
+     * @return Pending versions.
+     */
+    public Collection<GridCacheVersion> pending() {
+        return pending == null ? Collections.<GridCacheVersion>emptyList() : pending;
+    }
+
+    /**
+     * Sets pending versions that are less than {@link #version()}.
+     *
+     * @param pending Pending versions.
+     */
+    public void pending(Collection<GridCacheVersion> pending) {
+        this.pending = pending;
+    }
+
+    /**
      * @return Mini future ID.
      */
     public IgniteUuid miniId() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxRemote.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxRemote.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxRemote.java
index d5d0205..3f64224 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxRemote.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxRemote.java
@@ -207,8 +207,7 @@ public class GridNearTxRemote extends GridDistributedTxRemoteAdapter {
     }
 
     /** {@inheritDoc} */
-    public GridCacheVersion ownedVersion(IgniteTxKey key) {
-        // TODO ignite-264 do we need this method?
+    @Override public GridCacheVersion ownedVersion(IgniteTxKey key) {
         return owned == null ? null : owned.get(key);
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java
index c572575..4e43d97 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java
@@ -305,6 +305,14 @@ public interface IgniteInternalTx extends AutoCloseable, GridTimeoutObject {
     public Map<Integer, Set<Integer>> invalidPartitions();
 
     /**
+     * Gets owned version for near remote transaction.
+     *
+     * @param key Key to get version for.
+     * @return Owned version, if any.
+     */
+    @Nullable public GridCacheVersion ownedVersion(IgniteTxKey key);
+
+    /**
      * Gets ID of additional node involved. For example, in DHT case, other node is
      * near node ID.
      *
@@ -665,6 +673,19 @@ public interface IgniteInternalTx extends AutoCloseable, GridTimeoutObject {
     public Collection<GridCacheVersion> alternateVersions();
 
     /**
+     * @return {@code True} if transaction needs completed versions for processing.
+     */
+    public boolean needsCompletedVersions();
+
+    /**
+     * @param base Base for committed versions.
+     * @param committed Committed transactions relative to base.
+     * @param rolledback Rolled back transactions relative to base.
+     */
+    public void completedVersions(GridCacheVersion base, Collection<GridCacheVersion> committed,
+        Collection<GridCacheVersion> rolledback);
+
+    /**
      * @return {@code True} if transaction has at least one internal entry.
      */
     public boolean internal();

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
index badcd46..f9b2437 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
@@ -696,6 +696,11 @@ public abstract class IgniteTxAdapter extends GridMetadataAwareAdapter
     }
 
     /** {@inheritDoc} */
+    @Override public GridCacheVersion ownedVersion(IgniteTxKey key) {
+        return null;
+    }
+
+    /** {@inheritDoc} */
     @Override public long startTime() {
         return startTime;
     }
@@ -859,6 +864,17 @@ public abstract class IgniteTxAdapter extends GridMetadataAwareAdapter
         awaitCompletion();
     }
 
+    /** {@inheritDoc} */
+    @Override public boolean needsCompletedVersions() {
+        return false;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void completedVersions(GridCacheVersion base, Collection<GridCacheVersion> committed,
+        Collection<GridCacheVersion> txs) {
+        /* No-op. */
+    }
+
     /**
      * Awaits transaction completion.
      *
@@ -1780,6 +1796,11 @@ public abstract class IgniteTxAdapter extends GridMetadataAwareAdapter
         }
 
         /** {@inheritDoc} */
+        @Nullable @Override public GridCacheVersion ownedVersion(IgniteTxKey key) {
+            throw new IllegalStateException("Deserialized transaction can only be used as read-only.");
+        }
+
+        /** {@inheritDoc} */
         @Nullable @Override public UUID otherNodeId() {
             throw new IllegalStateException("Deserialized transaction can only be used as read-only.");
         }
@@ -2083,6 +2104,16 @@ public abstract class IgniteTxAdapter extends GridMetadataAwareAdapter
         }
 
         /** {@inheritDoc} */
+        @Override public boolean needsCompletedVersions() {
+            return false;
+        }
+
+        /** {@inheritDoc} */
+        @Override public void completedVersions(GridCacheVersion base, Collection committed, Collection rolledback) {
+            // No-op.
+        }
+
+        /** {@inheritDoc} */
         @Override public boolean internal() {
             return false;
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index 6b5d850..7523af6 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@ -919,9 +919,9 @@ public class IgniteTxHandler {
         if (tx == null) {
             if (req.commit())
                 // Must be some long time duplicate, but we add it anyway.
-                ctx.tm().addCommittedTx(req.writeVersion(), null);
+                ctx.tm().addCommittedTx(req.version(), null);
             else
-                ctx.tm().addRolledbackTx(req.writeVersion());
+                ctx.tm().addRolledbackTx(req.version());
 
             if (log.isDebugEnabled())
                 log.debug("Received finish request for non-existing transaction (added to completed set) " +
@@ -940,12 +940,12 @@ public class IgniteTxHandler {
                 tx.systemInvalidate(req.isSystemInvalidate());
 
                 // Complete remote candidates.
-                tx.doneRemote(req.version());
+                tx.doneRemote(req.baseVersion(), null, null, null);
 
                 tx.commit();
             }
             else {
-                tx.doneRemote(req.version());
+                tx.doneRemote(req.baseVersion(), null, null, null);
 
                 tx.rollback();
             }
@@ -985,7 +985,7 @@ public class IgniteTxHandler {
             tx.invalidate(req.isInvalidate());
 
             // Complete remote candidates.
-            tx.doneRemote(req.version());
+            tx.doneRemote(req.version(), null, null, null);
 
             tx.commit();
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/a6dd5ee2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
index 31a9171..f41a819 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
@@ -77,6 +77,15 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
     /** Flag indicating with TM commit happened. */
     protected AtomicBoolean doneFlag = new AtomicBoolean(false);
 
+    /** Committed versions, relative to base. */
+    private Collection<GridCacheVersion> committedVers = Collections.emptyList();
+
+    /** Rolled back versions, relative to base. */
+    private Collection<GridCacheVersion> rolledbackVers = Collections.emptyList();
+
+    /** Base for completed versions. */
+    private GridCacheVersion completedBase;
+
     /** Flag indicating that transformed values should be sent to remote nodes. */
     private boolean sndTransformedVals;
 
@@ -1021,6 +1030,12 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
             if (doneFlag.compareAndSet(false, true)) {
                 // Unlock all locks.
                 cctx.tm().commitTx(this);
+
+                boolean needsCompletedVersions = needsCompletedVersions();
+
+                assert !needsCompletedVersions || completedBase != null;
+                assert !needsCompletedVersions || committedVers != null;
+                assert !needsCompletedVersions || rolledbackVers != null;
             }
         }
     }
@@ -1039,10 +1054,47 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
                 cctx.tm().rollbackTx(this);
 
             state(commit ? COMMITTED : ROLLED_BACK);
+
+            boolean needsCompletedVersions = needsCompletedVersions();
+
+            assert !needsCompletedVersions || completedBase != null;
+            assert !needsCompletedVersions || committedVers != null;
+            assert !needsCompletedVersions || rolledbackVers != null;
         }
     }
 
     /** {@inheritDoc} */
+    @Override public void completedVersions(
+        GridCacheVersion completedBase,
+        Collection<GridCacheVersion> committedVers,
+        Collection<GridCacheVersion> rolledbackVers) {
+        this.completedBase = completedBase;
+        this.committedVers = committedVers;
+        this.rolledbackVers = rolledbackVers;
+    }
+
+    /**
+     * @return Completed base for ordering.
+     */
+    public GridCacheVersion completedBase() {
+        return completedBase;
+    }
+
+    /**
+     * @return Committed versions.
+     */
+    public Collection<GridCacheVersion> committedVersions() {
+        return committedVers;
+    }
+
+    /**
+     * @return Rolledback versions.
+     */
+    public Collection<GridCacheVersion> rolledbackVersions() {
+        return rolledbackVers;
+    }
+
+    /** {@inheritDoc} */
     @Override public void userRollback() throws IgniteCheckedException {
         TransactionState state = state();
 


[20/50] [abbrv] ignite git commit: IGNITE-264 - Fixing tests WIP.

Posted by ag...@apache.org.
IGNITE-264 - Fixing tests WIP.


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

Branch: refs/heads/ignite-264
Commit: 3c0925460f8d02f4ab843da90948d4b5cdff339c
Parents: ac54b30
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Tue Aug 11 15:46:07 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Tue Aug 11 15:46:07 2015 -0700

----------------------------------------------------------------------
 .../processors/cache/distributed/dht/GridDhtTxFinishFuture.java  | 2 +-
 .../processors/cache/distributed/dht/GridDhtTxFinishRequest.java | 4 ----
 2 files changed, 1 insertion(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/3c092546/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
index 4bf048b..c01f85d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
@@ -381,7 +381,7 @@ public final class GridDhtTxFinishFuture<K, V> extends GridCompoundIdentityFutur
                 tx.subjectId(),
                 tx.taskNameHash());
 
-            req.writeVersion(tx.writeVersion());
+            req.writeVersion(tx.writeVersion() != null ? tx.writeVersion() : tx.xidVersion());
 
             try {
                 cctx.io().send(n, req, tx.ioPolicy());

http://git-wip-us.apache.org/repos/asf/ignite/blob/3c092546/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
index 88d988b..e1382de 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
@@ -17,17 +17,13 @@
 
 package org.apache.ignite.internal.processors.cache.distributed.dht;
 
-import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.processors.affinity.*;
 import org.apache.ignite.internal.processors.cache.distributed.*;
 import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.transactions.*;
-import org.apache.ignite.internal.util.tostring.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
-import org.apache.ignite.lang.*;
 import org.apache.ignite.plugin.extensions.communication.*;
-import org.apache.ignite.transactions.*;
 import org.jetbrains.annotations.*;
 
 import java.io.*;