Merge branch 'sprint-1' of 
https://git-wip-us.apache.org/repos/asf/incubator-ignite into ingite-9655-merge


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

Branch: refs/heads/sprint-1
Commit: 3812164589467584535db8f01464853cfe0d14bd
Parents: 8bc8026 9502c0d
Author: Alexey Goncharuk <agoncha...@gridgain.com>
Authored: Thu Jan 29 13:58:01 2015 -0800
Committer: Alexey Goncharuk <agoncha...@gridgain.com>
Committed: Thu Jan 29 13:58:01 2015 -0800

----------------------------------------------------------------------
 assembly/libs/readme.txt                        |  111 +-
 assembly/release-base-fabric.xml                |    2 +-
 docs/core-site.gridgain.xml                     |   89 -
 docs/core-site.ignite.xml                       |   89 +
 docs/gridgain_readme.md                         |  149 -
 docs/gridgain_readme.pdf                        |  Bin 407698 -> 0 bytes
 docs/hadoop_readme.md                           |   80 +-
 docs/hadoop_readme.pdf                          |  Bin 411788 -> 82297 bytes
 docs/hive-site.gridgain.xml                     |   36 -
 docs/hive-site.ignite.xml                       |   36 +
 docs/ignite_readme.md                           |  100 +
 docs/ignite_readme.pdf                          |  Bin 0 -> 76810 bytes
 docs/mapred-site.gridgain.xml                   |   79 -
 docs/mapred-site.ignite.xml                     |   79 +
 examples/config/filesystem/readme.txt           |    4 +-
 .../hibernate/example-hibernate-L2-cache.xml    |   14 +-
 examples/config/hibernate/readme.txt            |    4 +-
 examples/config/servlet/readme.txt              |    2 +-
 .../ComputeFibonacciContinuationExample.java    |   13 +-
 .../compute/ComputeRunnableExample.java         |    7 +-
 .../datagrid/CacheDataLoaderExample.java        |   15 +-
 .../HibernateL2CacheExampleNodeStartup.java     |    6 +-
 .../examples/ScalarContinuationExample.scala    |   11 +-
 ipc/readme.txt                                  |    4 +-
 ipc/shmem/Makefile.am                           |    2 +-
 ipc/shmem/Makefile.in                           |    2 +-
 ipc/shmem/configure                             |    4 +-
 ipc/shmem/configure.ac                          |    2 +-
 ipc/shmem/ggshmem/Makefile.am                   |   23 -
 ipc/shmem/ggshmem/Makefile.in                   |  589 --
 ..._util_ipc_shmem_GridIpcSharedMemoryUtils.cpp |  882 --
 ipc/shmem/igniteshmem/Makefile.am               |   23 +
 ipc/shmem/igniteshmem/Makefile.in               |  589 ++
 ...rnal_util_ipc_shmem_IpcSharedMemoryUtils.cpp |  882 ++
 ipc/shmem/include/Makefile.am                   |    2 +-
 ipc/shmem/include/Makefile.in                   |    2 +-
 ...ternal_util_ipc_shmem_IpcSharedMemoryUtils.h |  117 +
 ...id_util_ipc_shmem_GridIpcSharedMemoryUtils.h |  117 -
 ipc/shmem/readme.txt                            |   17 +-
 modules/aop/readme.txt                          |   12 +-
 .../apache/ignite/gridify/AbstractAopTest.java  |    2 +-
 .../apache/ignite/gridify/TestGridifyTask.java  |    2 +-
 .../singlesplit/SingleSplitsLoadTest.java       |    2 +-
 modules/aws/readme.txt                          |   12 +-
 .../spi/checkpoint/s3/S3CheckpointSpi.java      |    4 +-
 .../ClientAbstractMultiThreadedSelfTest.java    |    8 +-
 .../ignite/client/ClientStartNodeTask.java      |    2 +-
 .../ClientPropertiesConfigurationSelfTest.java  |    4 +-
 .../ClientAbstractMultiNodeSelfTest.java        |    5 +-
 .../integration/ClientAbstractSelfTest.java     |    8 +-
 .../rest/RestBinaryProtocolSelfTest.java        |    2 +-
 .../rest/RestProcessorStartSelfTest.java        |    3 +-
 .../rest/TaskCommandHandlerSelfTest.java        |    2 +-
 .../java/META-INF/native/linux64/libggshmem.so  |  Bin 138023 -> 0 bytes
 .../META-INF/native/linux64/libigniteshmem.so   |  Bin 0 -> 138345 bytes
 .../java/META-INF/native/osx/libggshmem.dylib   |  Bin 32940 -> 0 bytes
 .../META-INF/native/osx/libigniteshmem.dylib    |  Bin 0 -> 33116 bytes
 .../java/org/apache/ignite/IgniteCache.java     |   40 +-
 .../apache/ignite/IgniteCheckedException.java   |    2 +-
 .../java/org/apache/ignite/IgniteCluster.java   |    2 +-
 .../java/org/apache/ignite/IgniteCompute.java   |    2 +-
 .../org/apache/ignite/IgniteDataLoader.java     |   14 +-
 .../java/org/apache/ignite/IgniteEvents.java    |    2 +-
 .../java/org/apache/ignite/IgniteException.java |    2 +-
 .../main/java/org/apache/ignite/IgniteFs.java   |    2 +-
 .../java/org/apache/ignite/IgniteManaged.java   |    2 +-
 .../java/org/apache/ignite/IgniteMessaging.java |    2 +-
 .../java/org/apache/ignite/IgniteScheduler.java |    6 +-
 .../apache/ignite/IgniteSystemProperties.java   |    6 +-
 .../main/java/org/apache/ignite/Ignition.java   |   38 +-
 .../org/apache/ignite/cache/CacheEntry.java     |   27 +-
 .../java/org/apache/ignite/cache/CacheLock.java |   57 -
 .../org/apache/ignite/cache/CacheManager.java   |   10 +-
 .../apache/ignite/cache/CacheProjection.java    |   43 +-
 .../apache/ignite/cache/CachingProvider.java    |    2 +-
 .../java/org/apache/ignite/cache/GridCache.java |    5 +-
 .../ignite/cache/GridCacheVersionedEntry.java   |   82 +
 .../apache/ignite/cache/query/CacheQueries.java |    7 +-
 .../ignite/cache/query/CacheQueryFuture.java    |    4 +-
 .../ignite/compute/ComputeTaskFuture.java       |    4 +-
 .../ignite/compute/ComputeTaskSession.java      |    3 +-
 .../ignite/fs/mapreduce/IgniteFsTask.java       |    2 +-
 .../org/apache/ignite/hadoop/GridHadoop.java    |    6 +-
 .../ignite/internal/ClusterGroupAdapter.java    |    2 +-
 .../internal/ClusterNodeLocalMapImpl.java       |    2 +-
 .../java/org/apache/ignite/internal/GridEx.java |  143 -
 .../org/apache/ignite/internal/GridGainEx.java  | 2399 -----
 .../ignite/internal/GridJobSessionImpl.java     |    2 +-
 .../org/apache/ignite/internal/GridKernal.java  | 3322 -------
 .../ignite/internal/GridKernalContext.java      |    2 +-
 .../ignite/internal/GridKernalContextImpl.java  |    8 +-
 .../apache/ignite/internal/GridLoggerProxy.java |    2 +-
 .../ignite/internal/GridTaskSessionImpl.java    |    2 +-
 .../ignite/internal/GridUpdateNotifier.java     |    2 +-
 .../ignite/internal/IgniteClusterAsyncImpl.java |   13 +-
 .../ignite/internal/IgniteComputeImpl.java      |   70 +-
 .../ignite/internal/IgniteEventsImpl.java       |    9 +-
 .../org/apache/ignite/internal/IgniteEx.java    |  143 +
 .../ignite/internal/IgniteInternalFuture.java   |  190 +
 .../apache/ignite/internal/IgniteKernal.java    | 3322 +++++++
 .../ignite/internal/IgniteManagedImpl.java      |    2 +-
 .../ignite/internal/IgniteMessagingImpl.java    |   12 +-
 .../ignite/internal/IgniteSchedulerImpl.java    |    6 +-
 .../org/apache/ignite/internal/IgnitionEx.java  | 2396 +++++
 .../internal/executor/GridExecutorService.java  |   46 +-
 .../managers/communication/GridIoManager.java   |    3 +-
 .../discovery/GridDiscoveryManager.java         |    2 +-
 .../eventstorage/GridEventStorageManager.java   |    4 +-
 .../affinity/GridAffinityAssignmentCache.java   |    5 +-
 .../affinity/GridAffinityProcessor.java         |    8 +-
 .../processors/affinity/GridAffinityUtils.java  |    2 +-
 .../processors/cache/CacheLockImpl.java         |  134 +-
 .../processors/cache/GridCacheAdapter.java      |  376 +-
 .../cache/GridCacheAffinityManager.java         |    8 +-
 .../cache/GridCacheAtomicVersionComparator.java |    2 +
 .../cache/GridCacheBatchSwapEntry.java          |    1 +
 .../cache/GridCacheClearAllRunnable.java        |    1 +
 .../processors/cache/GridCacheContext.java      |   60 +-
 .../cache/GridCacheDeploymentManager.java       |    2 +-
 .../processors/cache/GridCacheEntryEx.java      |    9 +
 .../processors/cache/GridCacheEntryImpl.java    |   27 +-
 .../processors/cache/GridCacheEntryInfo.java    |    1 +
 .../cache/GridCacheEvictionEntry.java           |   27 +-
 .../cache/GridCacheEvictionManager.java         |    5 +-
 .../cache/GridCacheEvictionRequest.java         |    1 +
 .../cache/GridCacheExplicitLockSpan.java        |    5 +-
 .../cache/GridCacheFilterEvaluationEntry.java   |   27 +-
 .../processors/cache/GridCacheFuture.java       |    4 +-
 .../processors/cache/GridCacheIoManager.java    |   15 +-
 .../cache/GridCacheLockTimeoutException.java    |    2 +
 .../processors/cache/GridCacheMapEntry.java     |  117 +-
 .../cache/GridCacheMultiTxFuture.java           |    6 +-
 .../processors/cache/GridCacheMvcc.java         |    1 +
 .../cache/GridCacheMvccCandidate.java           |    5 +-
 .../processors/cache/GridCacheMvccManager.java  |   30 +-
 .../cache/GridCacheOffheapSwapEntry.java        |    1 +
 .../GridCachePartitionExchangeManager.java      |    9 +-
 .../processors/cache/GridCachePreloader.java    |    7 +-
 .../cache/GridCachePreloaderAdapter.java        |    9 +-
 .../processors/cache/GridCacheProcessor.java    |   10 +-
 .../processors/cache/GridCacheProjectionEx.java |   28 +-
 .../cache/GridCacheProjectionImpl.java          |   70 +-
 .../processors/cache/GridCacheProxyImpl.java    |   74 +-
 .../cache/GridCacheSharedContext.java           |   14 +-
 .../processors/cache/GridCacheStoreManager.java |   19 +-
 .../processors/cache/GridCacheSwapEntry.java    |    1 +
 .../cache/GridCacheSwapEntryImpl.java           |    1 +
 .../processors/cache/GridCacheSwapManager.java  |    1 +
 .../processors/cache/GridCacheTtlManager.java   |    1 +
 .../cache/GridCacheUpdateAtomicResult.java      |    7 +-
 .../processors/cache/GridCacheUtils.java        |    8 +-
 .../processors/cache/GridCacheVersion.java      |  256 -
 .../processors/cache/GridCacheVersionEx.java    |  104 -
 .../cache/GridCacheVersionManager.java          |  281 -
 .../processors/cache/GridCacheVersionable.java  |   28 -
 .../processors/cache/GridDrResolveResult.java   |   63 -
 .../cache/IgniteCacheExpiryPolicy.java          |    1 +
 .../processors/cache/IgniteCacheProxy.java      |   70 +-
 .../GridCacheAtomicSequenceImpl.java            |    3 +-
 .../GridCacheDataStructuresManager.java         |    4 +-
 .../distributed/GridCacheCommittedTxInfo.java   |    2 +-
 .../distributed/GridCacheMappedVersion.java     |    2 +-
 ...ridCacheOptimisticCheckPreparedTxFuture.java |    8 +-
 ...idCacheOptimisticCheckPreparedTxRequest.java |    2 +-
 ...dCacheOptimisticCheckPreparedTxResponse.java |    2 +-
 .../distributed/GridCacheTtlUpdateRequest.java  |    1 +
 .../distributed/GridCacheTxFinishSync.java      |    8 +-
 .../distributed/GridDistributedBaseMessage.java |    1 +
 .../GridDistributedCacheAdapter.java            |    8 +-
 .../distributed/GridDistributedCacheEntry.java  |    1 +
 .../distributed/GridDistributedLockRequest.java |    1 +
 .../GridDistributedLockResponse.java            |    1 +
 .../GridDistributedTxFinishRequest.java         |    1 +
 .../GridDistributedTxFinishResponse.java        |    1 +
 .../distributed/GridDistributedTxMapping.java   |    1 +
 .../GridDistributedTxPrepareRequest.java        |    1 +
 .../GridDistributedTxPrepareResponse.java       |    1 +
 .../GridDistributedTxRemoteAdapter.java         |   65 +-
 .../distributed/dht/GridDhtCacheAdapter.java    |   13 +-
 .../distributed/dht/GridDhtCacheEntry.java      |    8 +-
 .../distributed/dht/GridDhtEmbeddedFuture.java  |    8 +-
 .../cache/distributed/dht/GridDhtFuture.java    |    4 +-
 .../cache/distributed/dht/GridDhtGetFuture.java |   12 +-
 .../distributed/dht/GridDhtLocalPartition.java  |    6 +-
 .../distributed/dht/GridDhtLockFuture.java      |   12 +-
 .../distributed/dht/GridDhtLockRequest.java     |    1 +
 .../distributed/dht/GridDhtLockResponse.java    |    1 +
 .../distributed/dht/GridDhtTopologyFuture.java  |    4 +-
 .../dht/GridDhtTransactionalCacheAdapter.java   |   30 +-
 .../distributed/dht/GridDhtTxFinishFuture.java  |   12 +-
 .../distributed/dht/GridDhtTxFinishRequest.java |    1 +
 .../dht/GridDhtTxFinishResponse.java            |    2 +-
 .../cache/distributed/dht/GridDhtTxLocal.java   |   20 +-
 .../distributed/dht/GridDhtTxLocalAdapter.java  |   12 +-
 .../distributed/dht/GridDhtTxPrepareFuture.java |   12 +-
 .../dht/GridDhtTxPrepareRequest.java            |    1 +
 .../dht/GridDhtTxPrepareResponse.java           |    1 +
 .../cache/distributed/dht/GridDhtTxRemote.java  |    1 +
 .../dht/GridPartitionedGetFuture.java           |   33 +-
 .../dht/atomic/GridDhtAtomicCache.java          |  129 +-
 .../GridDhtAtomicDeferredUpdateResponse.java    |    1 +
 .../dht/atomic/GridDhtAtomicUpdateFuture.java   |    1 +
 .../dht/atomic/GridDhtAtomicUpdateRequest.java  |    1 +
 .../dht/atomic/GridDhtAtomicUpdateResponse.java |    1 +
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |   35 +-
 .../dht/atomic/GridNearAtomicUpdateRequest.java |    1 +
 .../atomic/GridNearAtomicUpdateResponse.java    |    1 +
 .../dht/colocated/GridDhtColocatedCache.java    |   25 +-
 .../colocated/GridDhtColocatedLockFuture.java   |   24 +-
 .../colocated/GridDhtDetachedCacheEntry.java    |    1 +
 .../dht/preloader/GridDhtForceKeysFuture.java   |    7 +-
 .../preloader/GridDhtPartitionDemandPool.java   |   13 +-
 .../GridDhtPartitionsAbstractMessage.java       |    1 +
 .../GridDhtPartitionsExchangeFuture.java        |   21 +-
 .../preloader/GridDhtPartitionsFullMessage.java |    1 +
 .../GridDhtPartitionsSingleMessage.java         |    1 +
 .../dht/preloader/GridDhtPreloader.java         |   29 +-
 .../distributed/near/GridNearAtomicCache.java   |   46 +-
 .../distributed/near/GridNearCacheAdapter.java  |   16 +-
 .../near/GridNearCacheClearAllRunnable.java     |    1 +
 .../distributed/near/GridNearCacheEntry.java    |    1 +
 .../distributed/near/GridNearGetFuture.java     |   37 +-
 .../distributed/near/GridNearGetRequest.java    |    1 +
 .../distributed/near/GridNearGetResponse.java   |    1 +
 .../distributed/near/GridNearLockFuture.java    |   24 +-
 .../distributed/near/GridNearLockRequest.java   |    1 +
 .../distributed/near/GridNearLockResponse.java  |    1 +
 .../near/GridNearTransactionalCache.java        |   10 +-
 .../near/GridNearTxFinishFuture.java            |   18 +-
 .../near/GridNearTxFinishRequest.java           |    2 +-
 .../near/GridNearTxFinishResponse.java          |    1 +
 .../cache/distributed/near/GridNearTxLocal.java |   57 +-
 .../near/GridNearTxPrepareFuture.java           |   18 +-
 .../near/GridNearTxPrepareResponse.java         |    1 +
 .../distributed/near/GridNearTxRemote.java      |    1 +
 .../cache/dr/GridCacheDrExpirationInfo.java     |    2 +-
 .../processors/cache/dr/GridCacheDrInfo.java    |    2 +-
 .../processors/cache/dr/GridCacheDrManager.java |   58 +-
 .../cache/dr/os/GridOsCacheDrManager.java       |   36 +-
 .../extras/GridCacheAttributesEntryExtras.java  |    1 +
 .../GridCacheAttributesMvccEntryExtras.java     |    1 +
 ...dCacheAttributesMvccObsoleteEntryExtras.java |    1 +
 ...cheAttributesMvccObsoleteTtlEntryExtras.java |    1 +
 .../GridCacheAttributesMvccTtlEntryExtras.java  |    1 +
 .../GridCacheAttributesObsoleteEntryExtras.java |    1 +
 ...idCacheAttributesObsoleteTtlEntryExtras.java |    1 +
 .../GridCacheAttributesTtlEntryExtras.java      |    1 +
 .../cache/extras/GridCacheEntryExtras.java      |    1 +
 .../extras/GridCacheEntryExtrasAdapter.java     |    1 +
 .../cache/extras/GridCacheMvccEntryExtras.java  |    1 +
 .../GridCacheMvccObsoleteEntryExtras.java       |    1 +
 .../GridCacheMvccObsoleteTtlEntryExtras.java    |    1 +
 .../extras/GridCacheMvccTtlEntryExtras.java     |    1 +
 .../extras/GridCacheObsoleteEntryExtras.java    |    1 +
 .../extras/GridCacheObsoleteTtlEntryExtras.java |    1 +
 .../cache/extras/GridCacheTtlEntryExtras.java   |    1 +
 .../processors/cache/local/GridLocalCache.java  |    8 +-
 .../cache/local/GridLocalCacheEntry.java        |    1 +
 .../cache/local/GridLocalLockFuture.java        |    1 +
 .../processors/cache/local/GridLocalTx.java     |   12 +-
 .../cache/local/GridLocalTxFuture.java          |    1 +
 .../local/atomic/GridLocalAtomicCache.java      |  140 +-
 .../GridCacheDistributedFieldsQueryFuture.java  |    4 +-
 .../query/GridCacheDistributedQueryManager.java |    9 +-
 .../query/GridCacheFieldsQueryErrorFuture.java  |    3 +-
 .../query/GridCacheLocalFieldsQueryFuture.java  |    4 +-
 .../cache/query/GridCacheLocalQueryFuture.java  |    3 +-
 .../cache/query/GridCacheQueriesEx.java         |    6 +-
 .../cache/query/GridCacheQueriesImpl.java       |   11 +-
 .../cache/query/GridCacheQueriesProxy.java      |   11 +-
 .../cache/query/GridCacheQueryManager.java      |   54 +-
 .../query/GridCacheQueryMetadataAware.java      |    4 +-
 .../GridCacheContinuousQueryEntry.java          |   27 +-
 .../jdbc/GridCacheQueryJdbcMetadataTask.java    |    2 +-
 .../query/jdbc/GridCacheQueryJdbcTask.java      |    2 +-
 .../transactions/IgniteTransactionsImpl.java    |    3 +-
 .../cache/transactions/IgniteTxAdapter.java     |   59 +-
 .../cache/transactions/IgniteTxEntry.java       |    1 +
 .../cache/transactions/IgniteTxEx.java          |   10 +-
 .../cache/transactions/IgniteTxHandler.java     |   43 +-
 .../transactions/IgniteTxLocalAdapter.java      |  167 +-
 .../cache/transactions/IgniteTxLocalEx.java     |   18 +-
 .../cache/transactions/IgniteTxManager.java     |   10 +-
 .../cache/transactions/IgniteTxProxyImpl.java   |   11 +-
 .../cache/transactions/IgniteTxRemoteEx.java    |    2 +-
 .../version/GridCachePlainVersionedEntry.java   |  131 +
 .../version/GridCacheRawVersionedEntry.java     |  238 +
 .../cache/version/GridCacheVersion.java         |  256 +
 ...ridCacheVersionAbstractConflictResolver.java |   56 +
 .../GridCacheVersionConflictContext.java        |   73 +
 .../GridCacheVersionConflictContextImpl.java    |  188 +
 .../GridCacheVersionConflictResolver.java       |   59 +
 .../cache/version/GridCacheVersionEx.java       |  104 +
 .../cache/version/GridCacheVersionManager.java  |  282 +
 .../cache/version/GridCacheVersionable.java     |   28 +
 .../version/GridCacheVersionedEntryEx.java      |   31 +
 .../closure/GridClosureProcessor.java           |   56 +-
 .../continuous/GridContinuousProcessor.java     |    4 +-
 .../dataload/GridDataLoaderProcessor.java       |    5 +-
 .../dataload/IgniteDataLoaderImpl.java          |   87 +-
 .../dr/GridDrDataLoadCacheUpdater.java          |    8 +-
 .../processors/dr/GridRawVersionedEntry.java    |  210 -
 .../processors/dr/GridVersionedEntry.java       |   80 -
 .../email/IgniteEmailProcessorAdapter.java      |    5 +-
 .../email/IgniteNoopEmailProcessor.java         |    5 +-
 .../processors/fs/GridGgfsAsyncImpl.java        |   10 +-
 .../processors/fs/GridGgfsDataManager.java      |   30 +-
 .../internal/processors/fs/GridGgfsEx.java      |    3 +-
 .../internal/processors/fs/GridGgfsImpl.java    |   20 +-
 .../processors/fs/GridGgfsInputStreamImpl.java  |   19 +-
 .../processors/fs/GridGgfsIpcHandler.java       |    4 +-
 .../processors/fs/GridGgfsMetaManager.java      |    9 +-
 .../internal/processors/fs/GridGgfsServer.java  |   34 +-
 .../processors/fs/GridGgfsServerHandler.java    |    4 +-
 .../processors/fs/GridGgfsServerManager.java    |    8 +-
 .../processors/fs/IgniteFsNoopProcessor.java    |    2 +-
 .../processors/fs/IgniteFsOutputStreamImpl.java |    3 +-
 .../processors/fs/IgniteFsProcessor.java        |    4 +-
 .../processors/fs/IgniteFsProcessorAdapter.java |    2 +-
 .../hadoop/IgniteHadoopNoopProcessor.java       |    5 +-
 .../hadoop/IgniteHadoopProcessorAdapter.java    |    5 +-
 .../processors/query/GridQueryIndexing.java     |    4 +-
 .../processors/query/GridQueryProcessor.java    |   12 +-
 .../resource/GridResourceProcessor.java         |    2 +-
 .../resource/GridSpringResourceContext.java     |    2 +-
 .../processors/rest/GridRestProcessor.java      |   18 +-
 .../rest/GridRestProtocolHandler.java           |    4 +-
 .../rest/handlers/GridRestCommandHandler.java   |    4 +-
 .../handlers/cache/GridCacheCommandHandler.java |   64 +-
 .../cache/GridCacheQueryCommandHandler.java     |   16 +-
 .../handlers/log/GridLogCommandHandler.java     |    3 +-
 .../metadata/GridPortableMetadataHandler.java   |    3 +-
 .../handlers/task/GridTaskCommandHandler.java   |   14 +-
 .../top/GridTopologyCommandHandler.java         |    3 +-
 .../version/GridVersionCommandHandler.java      |    3 +-
 .../tcp/GridTcpMemcachedNioListener.java        |   17 +-
 .../protocols/tcp/GridTcpRestNioListener.java   |    5 +-
 .../service/GridServiceProcessor.java           |   22 +-
 .../processors/service/GridServiceProxy.java    |    2 +-
 .../processors/streamer/IgniteStreamerImpl.java |    4 +-
 .../apache/ignite/internal/util/GridUtils.java  | 9109 -----------------
 .../ignite/internal/util/IgniteUtils.java       | 9141 ++++++++++++++++++
 .../GridTcpCommunicationMessageAdapter.java     |    1 +
 .../GridTcpCommunicationMessageState.java       |    3 +-
 .../util/future/GridCompoundFuture.java         |   28 +-
 .../util/future/GridCompoundIdentityFuture.java |    2 +-
 .../util/future/GridEmbeddedFuture.java         |   38 +-
 .../util/future/GridFinishedFuture.java         |    8 +-
 .../util/future/GridFinishedFutureEx.java       |    9 +-
 .../internal/util/future/GridFutureAdapter.java |   30 +-
 .../util/future/GridFutureAdapterEx.java        |   31 +-
 .../util/future/GridFutureChainListener.java    |    8 +-
 .../internal/util/ipc/GridIpcEndpoint.java      |   49 -
 .../util/ipc/GridIpcEndpointBindException.java  |   47 -
 .../util/ipc/GridIpcEndpointFactory.java        |   84 -
 .../internal/util/ipc/GridIpcEndpointType.java  |   29 -
 .../util/ipc/GridIpcServerEndpoint.java         |   73 -
 .../ipc/GridIpcServerEndpointDeserializer.java  |   66 -
 .../internal/util/ipc/GridIpcToNioAdapter.java  |  250 -
 .../ignite/internal/util/ipc/IpcEndpoint.java   |   49 +
 .../util/ipc/IpcEndpointBindException.java      |   47 +
 .../internal/util/ipc/IpcEndpointFactory.java   |   84 +
 .../internal/util/ipc/IpcEndpointType.java      |   29 +
 .../internal/util/ipc/IpcServerEndpoint.java    |   73 +
 .../util/ipc/IpcServerEndpointDeserializer.java |   66 +
 .../internal/util/ipc/IpcToNioAdapter.java      |  250 +
 .../ipc/loopback/GridIpcClientTcpEndpoint.java  |   87 -
 .../ipc/loopback/GridIpcServerTcpEndpoint.java  |  179 -
 .../util/ipc/loopback/IpcClientTcpEndpoint.java |   87 +
 .../util/ipc/loopback/IpcServerTcpEndpoint.java |  179 +
 .../GridIpcOutOfSystemResourcesException.java   |   59 -
 .../GridIpcSharedMemoryClientEndpoint.java      |  336 -
 .../shmem/GridIpcSharedMemoryInitRequest.java   |   67 -
 .../shmem/GridIpcSharedMemoryInitResponse.java  |  171 -
 .../shmem/GridIpcSharedMemoryInputStream.java   |   99 -
 .../shmem/GridIpcSharedMemoryNativeLoader.java  |  242 -
 ...cSharedMemoryOperationTimedoutException.java |   59 -
 .../shmem/GridIpcSharedMemoryOutputStream.java  |   80 -
 .../GridIpcSharedMemoryServerEndpoint.java      |  707 --
 .../ipc/shmem/GridIpcSharedMemorySpace.java     |  374 -
 .../ipc/shmem/GridIpcSharedMemoryUtils.java     |  242 -
 .../shmem/IpcOutOfSystemResourcesException.java |   59 +
 .../shmem/IpcSharedMemoryClientEndpoint.java    |  336 +
 .../ipc/shmem/IpcSharedMemoryInitRequest.java   |   67 +
 .../ipc/shmem/IpcSharedMemoryInitResponse.java  |  171 +
 .../ipc/shmem/IpcSharedMemoryInputStream.java   |   99 +
 .../ipc/shmem/IpcSharedMemoryNativeLoader.java  |  261 +
 ...cSharedMemoryOperationTimedoutException.java |   59 +
 .../ipc/shmem/IpcSharedMemoryOutputStream.java  |   80 +
 .../shmem/IpcSharedMemoryServerEndpoint.java    |  707 ++
 .../util/ipc/shmem/IpcSharedMemorySpace.java    |  374 +
 .../util/ipc/shmem/IpcSharedMemoryUtils.java    |  242 +
 .../ignite/internal/util/lang/GridFunc.java     |   53 +-
 .../ignite/internal/util/nio/GridNioFuture.java |    2 +-
 .../util/nio/GridShmemCommunicationClient.java  |    4 +-
 .../apache/ignite/internal/util/typedef/X.java  |    6 +-
 .../internal/util/typedef/internal/U.java       |    4 +-
 .../apache/ignite/internal/visor/VisorJob.java  |    2 +-
 .../internal/visor/VisorMultiNodeTask.java      |    2 +-
 .../ignite/internal/visor/cache/VisorCache.java |    2 +-
 .../visor/cache/VisorCachePreloadTask.java      |    6 +-
 .../compute/VisorComputeMonitoringHolder.java   |   10 +-
 .../visor/misc/VisorResolveHostNameTask.java    |    2 +-
 .../visor/node/VisorBasicConfiguration.java     |    2 +-
 .../visor/node/VisorGridConfiguration.java      |    2 +-
 .../visor/node/VisorNodeDataCollectorJob.java   |    6 +-
 .../internal/visor/query/VisorQueryTask.java    |    2 +-
 .../internal/visor/query/VisorQueryUtils.java   |    4 +-
 .../apache/ignite/lang/IgniteAsyncSupport.java  |    6 +-
 .../ignite/lang/IgniteAsyncSupportAdapter.java  |   25 +-
 .../ignite/lang/IgniteAsyncSupported.java       |    2 +-
 .../org/apache/ignite/lang/IgniteFuture.java    |  189 -
 .../optimized/IgniteOptimizedMarshaller.java    |    2 +-
 .../ignite/scheduler/SchedulerFuture.java       |    4 +-
 .../communication/tcp/TcpCommunicationSpi.java  |   24 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |    4 +-
 .../StreamerCacheAffinityEventRouter.java       |    2 +-
 .../ignite/GridExceptionHelpLinksSelfTest.java  |  106 -
 .../ignite/GridExternalizableAbstractTest.java  |   41 -
 .../org/apache/ignite/GridTestTaskSession.java  |    4 +-
 .../ignite/IgniteCacheAffinitySelfTest.java     |  283 +
 .../apache/ignite/IgniteCacheAffinityTest.java  |  266 -
 .../IgniteExceptionHelpLinksSelfTest.java       |  105 +
 .../IgniteExternalizableAbstractTest.java       |   41 +
 ...CachePartitionFairAffinityNodesSelfTest.java |    6 +-
 .../store/GridCacheBalancingStoreSelfTest.java  |    3 +-
 ...CacheJdbcBlobStoreMultithreadedSelfTest.java |    7 +-
 .../fs/GridGgfsEventsAbstractSelfTest.java      |    2 +-
 .../ignite/fs/GridGgfsFragmentizerSelfTest.java |    2 +-
 .../internal/GridCancelOnGridStopSelfTest.java  |    2 +-
 .../GridCancelledJobsMetricsSelfTest.java       |    2 +-
 .../internal/GridContinuousTaskSelfTest.java    |    4 +-
 .../internal/GridDiscoveryEventSelfTest.java    |    3 +-
 .../ignite/internal/GridDiscoverySelfTest.java  |    4 +-
 .../GridEventStorageCheckAllEventsSelfTest.java |    4 +-
 .../internal/GridExecutorServiceTest.java       |  315 -
 .../GridExplicitImplicitDeploymentSelfTest.java |  476 -
 .../GridFailoverCustomTopologySelfTest.java     |    2 +-
 .../GridJobMasterLeaveAwareSelfTest.java        |   90 +-
 .../ignite/internal/GridKernalTestUtils.java    |    3 +-
 .../internal/GridListenActorSelfTest.java       |    3 +-
 .../internal/GridMultipleJobsSelfTest.java      |    8 +-
 .../internal/GridProjectionAbstractTest.java    |   40 +-
 .../ignite/internal/GridReduceSelfTest.java     |    4 +-
 .../GridTaskCancelSingleNodeSelfTest.java       |    2 +-
 .../internal/GridTaskExecutionSelfTest.java     |    2 +-
 .../GridTaskFutureImplStopGridSelfTest.java     |    5 +-
 .../GridTaskInstanceExecutionSelfTest.java      |    2 +-
 .../internal/GridTaskJobRejectSelfTest.java     |    2 +-
 .../internal/GridTaskListenerSelfTest.java      |    4 +-
 .../GridTopicExternalizableSelfTest.java        |    3 +-
 .../GridTopologyBuildVersionSelfTest.java       |    2 +-
 .../internal/GridUpdateNotifierSelfTest.java    |    3 +-
 .../internal/IgniteExecutorServiceTest.java     |  315 +
 ...gniteExplicitImplicitDeploymentSelfTest.java |  476 +
 .../GridCheckpointManagerAbstractSelfTest.java  |    4 +-
 .../GridCommunicationSendMessageSelfTest.java   |    4 +-
 .../GridDeploymentMessageCountSelfTest.java     |    4 +-
 .../GridDiscoveryManagerAliveCacheSelfTest.java |    2 +-
 .../discovery/GridDiscoveryManagerSelfTest.java |    6 +-
 .../events/GridEventStorageManagerSelfTest.java |    3 +-
 .../swapspace/GridSwapSpaceManagerSelfTest.java |    2 +-
 .../GridAffinityProcessorAbstractSelfTest.java  |    6 +-
 .../GridCacheAbstractFailoverSelfTest.java      |    3 +-
 .../cache/GridCacheAbstractFlagsTest.java       |    4 +-
 ...cheAbstractFullApiMultithreadedSelfTest.java |    5 +-
 .../cache/GridCacheAbstractFullApiSelfTest.java |  473 +-
 .../GridCacheAbstractIteratorsSelfTest.java     |   10 +-
 .../cache/GridCacheAbstractMetricsSelfTest.java |   28 +-
 .../GridCacheAbstractProjectionSelfTest.java    |   50 +
 .../GridCacheAbstractRemoveFailureTest.java     |    6 +-
 .../cache/GridCacheAbstractSelfTest.java        |    2 +-
 .../cache/GridCacheAffinityApiSelfTest.java     |    4 +-
 .../GridCacheAsyncOperationsLimitSelfTest.java  |    8 +-
 .../cache/GridCacheBasicApiAbstractTest.java    |  229 +-
 .../cache/GridCacheConcurrentMapTest.java       |    6 +-
 .../GridCacheConcurrentTxMultiNodeTest.java     |    6 +-
 .../cache/GridCacheEntryVersionSelfTest.java    |    7 +-
 .../GridCacheFinishPartitionsSelfTest.java      |   52 +-
 ...CacheFullTextQueryMultithreadedSelfTest.java |    6 +-
 ...idCacheGetAndTransformStoreAbstractTest.java |    4 +-
 .../GridCacheGroupLockAbstractSelfTest.java     |   19 +-
 .../GridCacheGroupLockFailoverSelfTest.java     |    7 +-
 .../cache/GridCacheIncrementTransformTest.java  |    4 +-
 .../processors/cache/GridCacheLeakTest.java     |    2 +-
 .../cache/GridCacheLuceneQueryIndexTest.java    |   18 +-
 .../GridCacheMissingCommitVersionSelfTest.java  |    3 +-
 ...GridCacheMixedPartitionExchangeSelfTest.java |    6 +-
 .../cache/GridCacheMultiUpdateLockSelfTest.java |    5 +-
 .../cache/GridCacheMvccFlagsTest.java           |    5 +-
 .../cache/GridCacheMvccManagerSelfTest.java     |    4 +-
 .../cache/GridCacheMvccPartitionedSelfTest.java |    5 +-
 .../processors/cache/GridCacheMvccSelfTest.java |    5 +-
 .../cache/GridCacheNestedTxAbstractTest.java    |   15 +-
 .../cache/GridCacheObjectToStringSelfTest.java  |    2 +-
 ...HeapMultiThreadedUpdateAbstractSelfTest.java |    5 +-
 .../GridCacheOffHeapTieredAbstractSelfTest.java |   11 +-
 .../GridCacheOrderedPreloadingSelfTest.java     |    2 +-
 .../cache/GridCacheP2PUndeploySelfTest.java     |    6 +-
 .../cache/GridCachePartitionedGetSelfTest.java  |    2 +-
 .../GridCachePreloadingEvictionsSelfTest.java   |    8 +-
 .../cache/GridCachePutAllFailoverSelfTest.java  |   17 +-
 .../GridCacheQueryInternalKeysSelfTest.java     |    2 +-
 .../GridCacheReferenceCleanupSelfTest.java      |    6 +-
 ...ridCacheReplicatedSynchronousCommitTest.java |    4 +-
 .../GridCacheReturnValueTransferSelfTest.java   |    2 +-
 .../cache/GridCacheSlowTxWarnTest.java          |    4 +-
 .../processors/cache/GridCacheStopSelfTest.java |    6 +-
 .../cache/GridCacheStoreValueBytesSelfTest.java |    4 +-
 .../cache/GridCacheSwapPreloadSelfTest.java     |    4 +-
 .../cache/GridCacheSwapReloadSelfTest.java      |    2 +-
 .../processors/cache/GridCacheTestEntryEx.java  |    6 +
 .../cache/GridCacheTtlManagerLoadTest.java      |    5 +-
 .../cache/GridCacheTtlManagerSelfTest.java      |    2 +-
 .../GridCacheVariableTopologySelfTest.java      |    4 +-
 .../cache/GridCacheVersionSelfTest.java         |    1 +
 ...idCacheWriteBehindStoreAbstractSelfTest.java |    4 +-
 .../GridCacheWriteBehindStoreAbstractTest.java  |    4 +-
 .../GridCacheWriteBehindStoreSelfTest.java      |    6 +-
 .../IgniteCacheEntryListenerAbstractTest.java   |    7 +-
 .../cache/IgniteCacheInvokeAbstractTest.java    |   14 +-
 .../processors/cache/IgniteTxAbstractTest.java  |    2 +-
 .../IgniteTxConcurrentGetAbstractTest.java      |    3 +-
 .../IgniteTxExceptionAbstractSelfTest.java      |    2 +-
 .../cache/IgniteTxMultiNodeAbstractTest.java    |    6 +-
 .../IgniteTxMultiThreadedAbstractTest.java      |    6 +-
 .../IgniteTxStoreExceptionAbstractSelfTest.java |    2 +-
 ...eAbstractDataStructuresFailoverSelfTest.java |   27 +-
 ...actQueueFailoverDataConsistencySelfTest.java |    9 +-
 .../GridCacheCountDownLatchSelfTest.java        |   10 +-
 .../GridCacheQueueCleanupSelfTest.java          |    5 +-
 ...ridCacheQueueJoinedNodeSelfAbstractTest.java |   11 +-
 ...GridCacheQueueMultiNodeAbstractSelfTest.java |   17 +-
 .../GridCacheSetAbstractSelfTest.java           |   15 +-
 .../GridCacheSetFailoverAbstractSelfTest.java   |    6 +-
 ...PartitionedQueueCreateMultiNodeSelfTest.java |    6 +-
 ...dCachePartitionedQueueEntryMoveSelfTest.java |    6 +-
 .../GridCacheAbstractJobExecutionTest.java      |    8 +-
 .../GridCacheAtomicTimeoutSelfTest.java         |   11 +-
 .../GridCacheBasicOpAbstractTest.java           |    7 +-
 .../distributed/GridCacheEventAbstractTest.java |    2 +-
 ...heExpiredEntriesPreloadAbstractSelfTest.java |    2 +-
 .../distributed/GridCacheLockAbstractTest.java  |   68 +-
 .../GridCacheMultiNodeAbstractTest.java         |   15 +-
 .../GridCacheMultiNodeLockAbstractTest.java     |  141 +-
 ...dCacheMultithreadedFailoverAbstractTest.java |    4 +-
 .../GridCacheNodeFailureAbstractTest.java       |    6 +-
 ...iteTxConsistencyRestartAbstractSelfTest.java |    4 +-
 ...xOriginatingNodeFailureAbstractSelfTest.java |   10 +-
 ...cOriginatingNodeFailureAbstractSelfTest.java |   24 +-
 .../IgniteTxPreloadAbstractTest.java            |    4 +-
 .../dht/GridCacheAtomicFullApiSelfTest.java     |   11 +-
 .../dht/GridCacheAtomicNearCacheSelfTest.java   |    2 +-
 .../dht/GridCacheColocatedDebugTest.java        |   54 +-
 .../dht/GridCacheDhtEntrySelfTest.java          |    2 +-
 ...GridCacheDhtEvictionNearReadersSelfTest.java |   10 +-
 .../dht/GridCacheDhtEvictionSelfTest.java       |   12 +-
 .../dht/GridCacheDhtMappingSelfTest.java        |    2 +-
 .../dht/GridCacheDhtPreloadDelayedSelfTest.java |    2 +-
 .../dht/GridCacheDhtPreloadPutGetSelfTest.java  |    6 +-
 .../dht/GridCacheDhtPreloadSelfTest.java        |    5 +-
 .../GridCacheDhtPreloadStartStopSelfTest.java   |    5 +-
 .../dht/GridCacheGlobalLoadTest.java            |    2 +-
 ...dCachePartitionedTopologyChangeSelfTest.java |   60 +-
 ...itionedTxOriginatingNodeFailureSelfTest.java |    8 +-
 ...eAtomicInvalidPartitionHandlingSelfTest.java |    6 +-
 .../atomic/GridCacheAtomicPreloadSelfTest.java  |    4 +-
 ...GridCacheValueConsistencyAtomicSelfTest.java |    2 +-
 .../near/GridCacheNearMultiNodeSelfTest.java    |   31 +-
 .../near/GridCacheNearOneNodeSelfTest.java      |   42 +-
 .../near/GridCacheNearReadersSelfTest.java      |   17 +-
 .../near/GridCacheNearTxMultiNodeSelfTest.java  |    2 +-
 .../near/GridCachePartitionedBasicApiTest.java  |    4 +-
 .../GridCachePartitionedEntryLockSelfTest.java  |    7 +-
 ...titionedExplicitLockNodeFailureSelfTest.java |    6 +-
 .../GridCachePartitionedFullApiSelfTest.java    |    4 +-
 .../GridCachePartitionedLoadCacheSelfTest.java  |    2 +-
 ...achePartitionedMultiNodeCounterSelfTest.java |    2 +-
 ...achePartitionedMultiNodeFullApiSelfTest.java |    7 +-
 .../GridCachePartitionedProjectionSelfTest.java |    4 +-
 ...hePartitionedQueryMultiThreadedSelfTest.java |    6 +-
 .../GridCachePartitionedTxSalvageSelfTest.java  |    5 +-
 .../GridCacheReplicatedBasicApiTest.java        |    4 +-
 .../GridCacheReplicatedEvictionSelfTest.java    |    5 +-
 .../GridCacheBatchEvictUnswapSelfTest.java      |    5 +-
 ...heConcurrentEvictionConsistencySelfTest.java |    4 +-
 .../GridCacheConcurrentEvictionsSelfTest.java   |    4 +-
 .../GridCacheEvictionLockUnlockSelfTest.java    |    7 +-
 .../cache/eviction/GridCacheMockEntry.java      |   27 +-
 ...cheSynchronousEvictionsFailoverSelfTest.java |    4 +-
 .../IgniteCacheExpiryPolicyAbstractTest.java    |    2 +-
 .../local/GridCacheLocalBasicApiSelfTest.java   |    4 +-
 .../cache/local/GridCacheLocalLockSelfTest.java |   81 +-
 .../GridCacheLocalMultithreadedSelfTest.java    |   85 +-
 ...ridCacheContinuousQueryAbstractSelfTest.java |    4 +-
 .../clock/GridTimeSyncProcessorSelfTest.java    |    6 +-
 .../closure/GridClosureProcessorSelfTest.java   |   43 +-
 .../continuous/GridEventConsumeSelfTest.java    |   18 +-
 .../continuous/GridMessageListenSelfTest.java   |    4 +-
 .../GridDataLoaderProcessorSelfTest.java        |   23 +-
 .../processors/fs/GridGgfsAbstractSelfTest.java |    6 +-
 .../fs/GridGgfsDataManagerSelfTest.java         |    9 +-
 .../processors/fs/GridGgfsModesSelfTest.java    |    4 +-
 .../fs/GridGgfsProcessorSelfTest.java           |    2 +-
 ...IpcEndpointRegistrationAbstractSelfTest.java |    6 +-
 ...pcEndpointRegistrationOnWindowsSelfTest.java |    4 +-
 .../processors/fs/GridGgfsSizeSelfTest.java     |    8 +-
 .../processors/fs/GridGgfsTaskSelfTest.java     |    7 +-
 .../cache/GridCacheCommandHandlerSelfTest.java  |   13 +-
 .../GridServiceProcessorAbstractSelfTest.java   |   38 +-
 .../GridServiceProcessorMultiNodeSelfTest.java  |   14 +-
 .../GridServiceReassignmentSelfTest.java        |    2 +-
 .../streamer/GridStreamerFailoverSelfTest.java  |    4 +-
 .../streamer/GridStreamerSelfTest.java          |    2 +-
 .../timeout/GridTimeoutProcessorSelfTest.java   |    5 +-
 ...artupWithSpecifiedWorkDirectorySelfTest.java |    2 +-
 ...tartupWithUndefinedGridGainHomeSelfTest.java |    4 +-
 .../internal/util/GridTestClockTimer.java       |    6 +-
 .../ignite/internal/util/GridUtilsSelfTest.java |  717 --
 .../internal/util/IgniteUtilsSelfTest.java      |  728 ++
 .../util/future/GridCompoundFutureSelfTest.java |    8 +-
 .../util/future/GridEmbeddedFutureSelfTest.java |    7 +-
 .../util/future/GridFinishedFutureSelfTest.java |    9 +-
 .../util/future/GridFutureAdapterSelfTest.java  |   23 +-
 .../future/GridFutureListenPerformanceTest.java |    5 +-
 ...idIpcServerEndpointDeserializerSelfTest.java |  160 -
 .../IpcServerEndpointDeserializerSelfTest.java  |  160 +
 .../ipc/shmem/GgfsSharedMemoryTestClient.java   |   76 +
 .../ipc/shmem/GgfsSharedMemoryTestServer.java   |   71 +
 .../shmem/GridGgfsSharedMemoryTestClient.java   |   76 -
 .../shmem/GridGgfsSharedMemoryTestServer.java   |   71 -
 ...idIpcSharedMemoryCrashDetectionSelfTest.java |  500 -
 .../shmem/GridIpcSharedMemoryFakeClient.java    |   36 -
 .../shmem/GridIpcSharedMemoryNodeStartup.java   |   87 -
 .../shmem/GridIpcSharedMemorySpaceSelfTest.java |  259 -
 .../shmem/GridIpcSharedMemoryUtilsSelfTest.java |   84 -
 .../IpcSharedMemoryCrashDetectionSelfTest.java  |  500 +
 .../ipc/shmem/IpcSharedMemoryFakeClient.java    |   36 +
 .../IpcSharedMemoryNativeLoaderSelfTest.java    |   78 +
 .../ipc/shmem/IpcSharedMemoryNodeStartup.java   |   87 +
 .../ipc/shmem/IpcSharedMemorySpaceSelfTest.java |  267 +
 .../ipc/shmem/IpcSharedMemoryUtilsSelfTest.java |   84 +
 .../LoadWithCorruptedLibFileTestRunner.java     |   65 +
 .../GridIpcSharedMemoryBenchmarkParty.java      |   35 -
 .../GridIpcSharedMemoryBenchmarkReader.java     |  133 -
 .../GridIpcSharedMemoryBenchmarkWriter.java     |  125 -
 .../IpcSharedMemoryBenchmarkParty.java          |   35 +
 .../IpcSharedMemoryBenchmarkReader.java         |  133 +
 .../IpcSharedMemoryBenchmarkWriter.java         |  125 +
 .../internal/util/nio/GridNioSelfTest.java      |    8 +-
 .../offheap/GridOffHeapMapAbstractSelfTest.java |    7 +-
 ...idOffHeapPartitionedMapAbstractSelfTest.java |    3 +-
 ...apPartitionedMapPerformanceAbstractTest.java |   10 +-
 .../unsafe/GridUnsafeMemorySelfTest.java        |    6 +-
 .../ignite/jvmtest/ConcurrentMapTest.java       |    4 +-
 .../ignite/jvmtest/NetworkFailureTest.java      |   16 +-
 .../QueueSizeCounterMultiThreadedTest.java      |    4 +-
 .../jvmtest/ReadWriteLockMultiThreadedTest.java |   10 +-
 .../ignite/lang/GridBasicPerformanceTest.java   |    5 +-
 .../apache/ignite/lang/GridFuncSelfTest.java    |   13 +-
 .../lang/GridFutureListenPerformanceTest.java   |    5 +-
 .../ignite/lang/GridSetWrapperSelfTest.java     |    2 +-
 .../loadtest/GridSingleExecutionTest.java       |    2 +-
 ...idFileSwapSpaceSpiMultithreadedLoadTest.java |    6 +-
 .../cache/GridCacheAbstractLoadTest.java        |    6 +-
 .../cache/GridCachePutRemoveLoadTest.java       |    2 +-
 .../loadtests/cache/GridCacheSwapLoadTest.java  |   13 +-
 .../GridCacheWriteBehindStoreLoadTest.java      |    4 +-
 .../loadtests/colocation/GridTestMain.java      |   12 +-
 .../communication/GridIoManagerBenchmark.java   |   10 +-
 .../communication/GridIoManagerBenchmark0.java  |   22 +-
 .../GridContinuousOperationsLoadTest.java       |    4 +-
 .../multisplit/GridMultiSplitsLoadTest.java     |    2 +-
 ...ridSingleSplitsNewNodesAbstractLoadTest.java |    2 +-
 .../ignite/loadtests/dsi/GridDsiClient.java     |    2 +-
 .../ignite/loadtests/dsi/GridDsiPerfJob.java    |    2 +-
 .../loadtests/hashmap/GridCacheTestContext.java |    1 +
 .../loadtests/hashmap/GridHashMapLoadTest.java  |    1 +
 ...GridJobExecutionLoadTestClientSemaphore.java |    7 +-
 ...JobExecutionSingleNodeSemaphoreLoadTest.java |    9 +-
 .../loadtests/job/GridJobLoadTestSubmitter.java |    2 +-
 .../mergesort/GridMergeSortLoadTask.java        |    8 +-
 ...apPartitionedMapPerformanceAbstractTest.java |   10 +-
 .../streamer/GridStreamerIndexLoadTest.java     |    8 +-
 .../marshaller/GridMarshallerAbstractTest.java  |   20 +-
 .../ignite/messaging/GridMessagingSelfTest.java |   10 +-
 .../GridP2PContinuousDeploymentSelfTest.java    |    4 +-
 .../p2p/GridP2PLocalDeploymentSelfTest.java     |   10 +-
 .../GridP2PMissedResourceCacheSizeSelfTest.java |    8 +-
 .../ignite/p2p/GridP2PTimeoutSelfTest.java      |    8 +-
 .../ignite/p2p/GridP2PUndeploySelfTest.java     |    2 +-
 ...idSessionFutureWaitJobAttributeSelfTest.java |    2 +-
 ...GridSessionSetJobAttributeOrderSelfTest.java |    2 +-
 ...sionSetJobAttributeWaitListenerSelfTest.java |    2 +-
 .../GridSessionSetTaskAttributeSelfTest.java    |    2 +-
 ...GridSessionTaskWaitJobAttributeSelfTest.java |    2 +-
 .../GridSessionWaitAttributeSelfTest.java       |    2 +-
 ...redFsCheckpointSpiMultiThreadedSelfTest.java |    8 +-
 .../collision/GridTestCollisionTaskSession.java |    3 +-
 .../tcp/GridCacheDhtLockBackupSelfTest.java     |   21 +-
 ...mmunicationSpiConcurrentConnectSelfTest.java |    3 +-
 .../tcp/GridTcpCommunicationSpiLanTest.java     |    3 +-
 ...cpCommunicationSpiMultithreadedSelfTest.java |    9 +-
 ...GridTcpCommunicationSpiRecoverySelfTest.java |    7 +-
 ...ClusterMetricsSnapshotSerializeSelfTest.java |   52 +-
 .../tcp/GridTcpDiscoveryMultiThreadedTest.java  |    7 +-
 .../discovery/tcp/GridTcpDiscoverySelfTest.java |   14 +-
 .../file/GridFileSwapSpaceSpiSelfTest.java      |    7 +-
 .../GridCacheStoreValueBytesTest.java           |    7 +-
 .../index/GridStreamerIndexSelfTest.java        |    8 +-
 .../window/GridStreamerWindowSelfTest.java      |    4 +-
 .../ignite/testframework/GridTestUtils.java     |   12 +-
 .../testframework/junits/GridAbstractTest.java  |   22 +-
 .../junits/GridTestKernalContext.java           |    2 +-
 .../cache/GridAbstractCacheStoreSelfTest.java   |    5 +-
 .../junits/common/GridCommonAbstractTest.java   |   34 +-
 .../ignite/testsuites/IgniteBasicTestSuite.java |    2 +-
 .../ignite/testsuites/IgniteCacheTestSuite.java |    1 +
 .../testsuites/IgniteComputeGridTestSuite.java  |    4 +-
 .../ignite/testsuites/IgniteFsTestSuite.java    |    2 +-
 .../IgniteIpcSharedMemorySelfTestSuite.java     |    7 +-
 .../testsuites/IgniteUtilSelfTestSuite.java     |    2 +-
 ...dConcurrentLinkedDequeMultiThreadedTest.java |    6 +-
 ...rrentLinkedHashMapMultiThreadedSelfTest.java |   10 +-
 .../apache/ignite/util/GridIndexFillTest.java   |    4 +-
 .../ignite/util/GridSnapshotLockSelfTest.java   |    6 +-
 .../util/GridSpinReadWriteLockSelfTest.java     |    4 +-
 modules/core/src/test/resources/readme.txt      |    2 +-
 modules/email/readme.txt                        |   12 +-
 .../processors/email/IgniteEmailProcessor.java  |    5 +-
 modules/hadoop/readme.txt                       |   12 +-
 .../GridHadoopClientProtocolProvider.java       |    8 +-
 .../internal/fs/hadoop/GridGgfsHadoopIpcIo.java |   10 +-
 .../hadoop/GridHadoopClassLoader.java           |    2 +-
 .../processors/hadoop/GridHadoopImpl.java       |    6 +-
 .../hadoop/IgniteHadoopProcessor.java           |    5 +-
 .../hadoop/jobtracker/GridHadoopJobTracker.java |   19 +-
 .../GridHadoopDefaultMapReducePlanner.java      |    2 +-
 .../proto/GridHadoopProtocolJobStatusTask.java  |    7 +-
 .../hadoop/shuffle/GridHadoopShuffle.java       |    2 +-
 .../hadoop/shuffle/GridHadoopShuffleJob.java    |    7 +-
 .../GridHadoopExternalTaskExecutor.java         |   16 +-
 .../child/GridHadoopChildProcessRunner.java     |   18 +-
 .../GridHadoopExternalCommunication.java        |   26 +-
 .../GridHadoopIpcToNioAdapter.java              |    6 +-
 ...doop20FileSystemLoopbackPrimarySelfTest.java |    2 +-
 ...sHadoop20FileSystemShmemPrimarySelfTest.java |    2 +-
 .../GridGgfsHadoopFileSystemClientSelfTest.java |    4 +-
 ...idGgfsHadoopFileSystemHandshakeSelfTest.java |    2 +-
 ...ridGgfsHadoopFileSystemIpcCacheSelfTest.java |    2 +-
 ...adoopFileSystemLoopbackAbstractSelfTest.java |    2 +-
 ...fsHadoopFileSystemShmemAbstractSelfTest.java |    8 +-
 .../fs/GridGgfsNearOnlyMultiNodeSelfTest.java   |    4 +-
 .../ignite/fs/IgniteFsEventsTestSuite.java      |    4 +-
 .../hadoop/GridHadoopPopularWordsTest.java      |    4 +-
 ...idHadoopDefaultMapReducePlannerSelfTest.java |   16 +-
 .../hadoop/GridHadoopJobTrackerSelfTest.java    |    5 +-
 .../GridHadoopMapReduceEmbeddedSelfTest.java    |    4 +-
 .../hadoop/GridHadoopMapReduceTest.java         |    4 +-
 .../hadoop/GridHadoopTaskExecutionSelfTest.java |   12 +-
 .../GridHadoopExecutorServiceTest.java          |    4 +-
 ...GridHadoopExternalTaskExecutionSelfTest.java |    6 +-
 .../ggfs/GridGgfsPerformanceBenchmark.java      |    4 +-
 modules/hibernate/readme.txt                    |   14 +-
 .../hibernate/GridHibernateRegionFactory.java   |   10 +-
 modules/indexing/readme.txt                     |   12 +-
 .../processors/query/h2/IgniteH2Indexing.java   |    4 +-
 .../h2/twostep/GridReduceQueryExecutor.java     |    2 +-
 .../cache/GridCacheAbstractQuerySelfTest.java   |    6 +-
 .../cache/GridCacheOffHeapAndSwapSelfTest.java  |    8 +-
 .../cache/GridCacheQueryLoadSelfTest.java       |    2 +-
 .../GridCacheQueryMultiThreadedSelfTest.java    |   24 +-
 ...idCacheReduceQueryMultithreadedSelfTest.java |    6 +-
 .../near/GridCacheQueryNodeRestartSelfTest.java |    5 +-
 .../GridCacheReplicatedFieldsQuerySelfTest.java |    2 +-
 .../GridCacheReplicatedQuerySelfTest.java       |    6 +-
 .../query/h2/GridH2IndexRebuildTest.java        |    7 +-
 .../query/h2/GridH2IndexingGeoSelfTest.java     |    6 +-
 .../query/h2/sql/GridQueryParsingTest.java      |    2 +-
 .../tcp/GridOrderedMessageCancelSelfTest.java   |    4 +-
 modules/jcl/readme.txt                          |   12 +-
 modules/jta/readme.txt                          |   12 +-
 .../GridTmLookupLifecycleAwareSelfTest.java     |    2 +-
 modules/log4j/readme.txt                        |   12 +-
 modules/rest-http/readme.txt                    |   12 +-
 modules/scalar/readme.txt                       |    8 +-
 .../scalar/pimps/ScalarProjectionPimp.scala     |   33 +-
 modules/schedule/readme.txt                     |   12 +-
 .../processors/schedule/ScheduleFutureImpl.java |   22 +-
 .../schedule/GridScheduleSelfTest.java          |   13 +-
 modules/slf4j/readme.txt                        |   12 +-
 modules/spring/readme.txt                       |   12 +-
 .../java/org/apache/ignite/IgniteSpring.java    |    8 +-
 .../cache/spring/SpringDynamicCacheManager.java |    2 +-
 modules/ssh/readme.txt                          |   12 +-
 .../GridProjectionStartStopRestartSelfTest.java |    2 +-
 modules/urideploy/readme.txt                    |   12 +-
 .../GridTaskUriDeploymentDeadlockSelfTest.java  |    2 +-
 .../ignite/visor/commands/VisorConsole.scala    |    6 +-
 .../commands/alert/VisorAlertCommand.scala      |    2 +-
 .../config/VisorConfigurationCommand.scala      |    6 +-
 .../commands/deploy/VisorDeployCommand.scala    |    4 +-
 .../commands/disco/VisorDiscoveryCommand.scala  |    4 +-
 .../commands/events/VisorEventsCommand.scala    |    4 +-
 .../visor/commands/node/VisorNodeCommand.scala  |    4 +-
 .../commands/start/VisorStartCommand.scala      |    4 +-
 .../commands/tasks/VisorTasksCommand.scala      |    4 +-
 .../commands/top/VisorTopologyCommand.scala     |    6 +-
 .../visor/commands/vvm/VisorVvmCommand.scala    |    8 +-
 .../scala/org/apache/ignite/visor/visor.scala   |   26 +-
 .../commands/tasks/VisorTasksCommandSpec.scala  |    2 +-
 modules/web/readme.txt                          |   16 +-
 .../GridServletContextListenerStartup.java      |    4 +-
 .../startup/servlet/GridServletStartup.java     |    4 +-
 .../internal/websession/WebSessionSelfTest.java |    4 +-
 pom.xml                                         |    4 +-
 816 files changed, 30305 insertions(+), 28705 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/38121645/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 216c13c,2658b9a..7eb2aac
--- 
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
@@@ -4299,26 -4297,15 +4297,26 @@@ public abstract class GridCacheAdapter<
          holder.lock();
  
          try {
-             IgniteFuture fut = holder.future();
+             IgniteInternalFuture fut = holder.future();
  
 -            if (fut != null && !fut.isDone()) {
 -                final IgniteTxLocalAdapter<K, V> tx0 = tx;
 +            final IgniteTxLocalAdapter<K, V> tx0 = tx;
  
 +            if (fut != null && !fut.isDone()) {
-                 IgniteFuture<T> f = new GridEmbeddedFuture<>(fut,
-                     new C2<T, Exception, IgniteFuture<T>>() {
-                         @Override public IgniteFuture<T> apply(T t, Exception 
e) {
-                             return op.op(tx0).chain(new CX1<IgniteFuture<T>, 
T>() {
-                                 @Override public T applyx(IgniteFuture<T> 
tFut) throws IgniteCheckedException {
+                 IgniteInternalFuture<T> f = new GridEmbeddedFuture<>(fut,
+                     new C2<T, Exception, IgniteInternalFuture<T>>() {
+                         @Override public IgniteInternalFuture<T> apply(T t, 
Exception e) {
 -                            return op.op(tx0);
++                            return op.op(tx0).chain(new 
CX1<IgniteInternalFuture<T>, T>() {
++                                @Override public T 
applyx(IgniteInternalFuture<T> tFut) throws IgniteCheckedException {
 +                                    try {
 +                                        return tFut.get();
 +                                    }
 +                                    catch (IgniteCheckedException e1) {
 +                                        tx0.rollbackAsync();
 +
 +                                        throw e1;
 +                                    }
 +                                }
 +                            });
                          }
                      }, ctx.kernalContext());
  
@@@ -4327,18 -4314,7 +4325,18 @@@
                  return f;
              }
  
-             IgniteFuture<T> f = op.op(tx).chain(new CX1<IgniteFuture<T>, T>() 
{
-                 @Override public T applyx(IgniteFuture<T> tFut) throws 
IgniteCheckedException {
 -            IgniteInternalFuture<T> f = op.op(tx);
++            IgniteInternalFuture<T> f = op.op(tx).chain(new 
CX1<IgniteInternalFuture<T>, T>() {
++                @Override public T applyx(IgniteInternalFuture<T> tFut) 
throws IgniteCheckedException {
 +                    try {
 +                        return tFut.get();
 +                    }
 +                    catch (IgniteCheckedException e1) {
 +                        tx0.rollbackAsync();
 +
 +                        throw e1;
 +                    }
 +                }
 +            });
  
              saveFuture(holder, f);
  

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/38121645/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManager.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManager.java
index d92db74,61408cb..d89a670
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManager.java
@@@ -21,8 -21,8 +21,9 @@@ import org.apache.ignite.*
  import org.apache.ignite.cache.*;
  import org.apache.ignite.cache.store.*;
  import org.apache.ignite.internal.*;
+ 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.lang.*;
  import org.apache.ignite.lifecycle.*;
  import org.apache.ignite.transactions.*;

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/38121645/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 a3ea0502,c417e9d..4a11e8e
--- 
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
@@@ -503,33 -505,47 +505,46 @@@ public class GridDistributedTxRemoteAda
  
                                      GridCacheVersion explicitVer = 
txEntry.drVersion();
  
 -                                    if (finalizationStatus() == 
FinalizationStatus.RECOVERY_FINISH || optimistic()) {
 -                                        // Primary node has left the grid so 
we have to process conflicts on backups.
 -                                        if (explicitVer == null)
 -                                            explicitVer = writeVersion(); // 
Force write version to be used.
  
-                                     // Primary node has left the grid so we 
have to process conflicts on backups.
-                                     if (explicitVer == null)
-                                         explicitVer = writeVersion(); // 
Force write version to be used.
- 
-                                     GridDrResolveResult<V> drRes = 
cacheCtx.dr().resolveTx(cached,
-                                         txEntry,
-                                         explicitVer,
-                                         op,
-                                         val,
-                                         valBytes,
-                                         txEntry.ttl(),
-                                         txEntry.drExpireTime());
- 
-                                     if (drRes != null) {
-                                         op = drRes.operation();
-                                         val = drRes.value();
-                                         valBytes = drRes.valueBytes();
- 
-                                         if (drRes.isMerge())
-                                             explicitVer = writeVersion();
-                                         else if (op == NOOP)
-                                             txEntry.ttl(-1L);
+                                         boolean drNeedResolve =
+                                             
cacheCtx.conflictNeedResolve(cached.version(), explicitVer);
+ 
+                                         if (drNeedResolve) {
+                                             IgniteBiTuple<GridCacheOperation, 
GridCacheVersionConflictContextImpl<K, V>>
+                                                 drRes = conflictResolve(op, 
txEntry.key(), val, valBytes,
+                                                 txEntry.ttl(), 
txEntry.drExpireTime(), explicitVer, cached);
+ 
+                                             assert drRes != null;
+ 
+                                             
GridCacheVersionConflictContextImpl<K, V> drCtx = drRes.get2();
+ 
+                                             if (drCtx.isUseOld())
+                                                 op = NOOP;
+                                             else if (drCtx.isUseNew()) {
+                                                 txEntry.ttl(drCtx.ttl());
+ 
+                                                 if 
(drCtx.newEntry().dataCenterId() != cacheCtx.dataCenterId())
+                                                     
txEntry.drExpireTime(drCtx.expireTime());
+                                                 else
+                                                     txEntry.drExpireTime(-1L);
+                                             }
+                                             else if (drCtx.isMerge()) {
+                                                 op = drRes.get1();
+                                                 val = drCtx.mergeValue();
+                                                 valBytes = null;
+                                                 explicitVer = writeVersion();
+ 
+                                                 txEntry.ttl(drCtx.ttl());
+                                                 txEntry.drExpireTime(-1L);
+                                             }
+                                         }
+                                         else
+                                             // Nullify explicit version so 
that innerSet/innerRemove will work as usual.
+                                             explicitVer = null;
                                      }
 +                                    else
 +                                        // Nullify explicit version so that 
innerSet/innerRemove will work as usual.
 +                                        explicitVer = null;
  
                                      if (op == CREATE || op == UPDATE) {
                                          // Invalidate only for near nodes 
(backups cannot be invalidated).

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

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

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/38121645/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 2642769,64c0811..0b7c7c8
--- 
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
@@@ -821,11 -830,16 +823,11 @@@ public abstract class GridDhtTransactio
                              if (log.isDebugEnabled())
                                  log.debug("Performing DHT lock [tx=" + tx + 
", entries=" + entries + ']');
  
-                             IgniteFuture<GridCacheReturn<V>> txFut = 
tx.lockAllAsync(
 -                            assert req.writeEntries() == null || 
req.writeEntries().size() == entries.size();
 -
+                             IgniteInternalFuture<GridCacheReturn<V>> txFut = 
tx.lockAllAsync(
                                  cacheCtx,
                                  entries,
 -                                req.writeEntries(),
                                  req.onePhaseCommit(),
 -                                req.drVersions(),
                                  req.messageId(),
 -                                req.implicitTx(),
                                  req.txRead(),
                                  req.accessTtl());
  

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

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

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

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/38121645/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 b78561a,c3e8729..33509ab
--- 
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
@@@ -509,12 -482,14 +511,12 @@@ public abstract class GridDhtTxLocalAda
       * @param accessTtl TTL for read operation.
       * @return Lock future.
       */
 +    @SuppressWarnings("ForLoopReplaceableByForEach")
-     IgniteFuture<GridCacheReturn<V>> lockAllAsync(
+     IgniteInternalFuture<GridCacheReturn<V>> lockAllAsync(
          GridCacheContext<K, V> cacheCtx,
 -        Collection<GridCacheEntryEx<K, V>> entries,
 -        List<IgniteTxEntry<K, V>> writeEntries,
 +        List<GridCacheEntryEx<K, V>> entries,
          boolean onePhaseCommit,
 -        GridCacheVersion[] drVers,
          long msgId,
 -        boolean implicit,
          final boolean read,
          long accessTtl
      ) {

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

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

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/38121645/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 21e804d,ac5404b..f006508
--- 
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
@@@ -688,8 -694,8 +689,8 @@@ public class GridNearTxLocal<K, V> exte
      }
  
      /** {@inheritDoc} */
-     @Override public IgniteFuture<IgniteTxEx<K, V>> prepareAsync() {
+     @Override public IgniteInternalFuture<IgniteTxEx<K, V>> prepareAsync() {
 -        IgniteInternalFuture<IgniteTxEx<K, V>> fut = prepFut.get();
 +        GridNearTxPrepareFuture<K, V> fut = (GridNearTxPrepareFuture<K, 
V>)prepFut.get();
  
          if (fut == null) {
              // Future must be created before any exception can be thrown.
@@@ -873,9 -890,11 +874,9 @@@
       * @return Future that will be completed when locks are acquired.
       */
      @SuppressWarnings("TypeMayBeWeakened")
-     public IgniteFuture<IgniteTxEx<K, V>> prepareAsyncLocal(@Nullable 
Collection<IgniteTxEntry<K, V>> reads,
+     public IgniteInternalFuture<IgniteTxEx<K, V>> prepareAsyncLocal(@Nullable 
Collection<IgniteTxEntry<K, V>> reads,
          @Nullable Collection<IgniteTxEntry<K, V>> writes, Map<UUID, 
Collection<UUID>> txNodes, boolean last,
          Collection<UUID> lastBackups) {
 -        assert optimistic();
 -
          if (state() != PREPARING) {
              if (timedOut())
                  return new GridFinishedFuture<>(cctx.kernalContext(),

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/38121645/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 521c0e7,8df91e0..6c10ed4
--- 
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
@@@ -330,69 -325,65 +332,69 @@@ public final class GridNearTxPrepareFut
       * Waits for topology exchange future to be ready and then prepares user 
transaction.
       */
      public void prepare() {
 -        GridDhtTopologyFuture topFut = topologyReadLock();
 +        if (tx.optimistic()) {
 +            GridDhtTopologyFuture topFut = topologyReadLock();
  
 -        try {
 -            if (topFut.isDone()) {
 -                try {
 -                    if (!tx.state(PREPARING)) {
 -                        if (tx.setRollbackOnly()) {
 -                            if (tx.timedOut())
 -                                onError(null, null, new 
IgniteTxTimeoutException("Transaction timed out and " +
 -                                    "was rolled back: " + this));
 +            try {
 +                if (topFut.isDone()) {
 +                    try {
 +                        if (!tx.state(PREPARING)) {
 +                            if (tx.setRollbackOnly()) {
 +                                if (tx.timedOut())
 +                                    onError(null, null, new 
IgniteTxTimeoutException("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 
IgniteCheckedException("Invalid transaction state for prepare " +
 -                                    "[state=" + tx.state() + ", tx=" + this + 
']'));
 +                                onError(null, null, new 
IgniteTxRollbackException("Invalid transaction state for " +
 +                                    "prepare [state=" + tx.state() + ", tx=" 
+ this + ']'));
 +
 +                            return;
                          }
 -                        else
 -                            onError(null, null, new 
IgniteTxRollbackException("Invalid transaction state for " +
 -                                "prepare [state=" + tx.state() + ", tx=" + 
this + ']'));
  
 -                        return;
 -                    }
 +                        GridDiscoveryTopologySnapshot snapshot = 
topFut.topologySnapshot();
  
 -                    GridDiscoveryTopologySnapshot snapshot = 
topFut.topologySnapshot();
 +                        tx.topologyVersion(snapshot.topologyVersion());
 +                        tx.topologySnapshot(snapshot);
  
 -                    tx.topologyVersion(snapshot.topologyVersion());
 -                    tx.topologySnapshot(snapshot);
 +                        // Make sure to add future before calling prepare.
 +                        cctx.mvcc().addFuture(this);
  
 -                    // Make sure to add future before calling prepare.
 -                    cctx.mvcc().addFuture(this);
 +                        prepare0();
 +                    }
 +                    catch (IgniteTxTimeoutException | 
IgniteTxOptimisticException e) {
 +                        onError(cctx.localNodeId(), null, e);
 +                    }
 +                    catch (IgniteCheckedException e) {
 +                        tx.setRollbackOnly();
  
 -                    prepare0();
 -                }
 -                catch (IgniteTxTimeoutException | IgniteTxOptimisticException 
e) {
 -                    onError(cctx.localNodeId(), null, e);
 -                }
 -                catch (IgniteCheckedException e) {
 -                    tx.setRollbackOnly();
 +                        String msg = "Failed to prepare transaction (will 
attempt rollback): " + this;
  
 -                    String msg = "Failed to prepare transaction (will attempt 
rollback): " + this;
 +                        U.error(log, msg, e);
  
 -                    U.error(log, msg, e);
 +                        tx.rollbackAsync();
  
 -                    tx.rollbackAsync();
 +                        onError(null, null, new 
IgniteTxRollbackException(msg, e));
 +                    }
 +                }
 +                else {
 +                    topFut.syncNotify(false);
  
-                     topFut.listenAsync(new CI1<IgniteFuture<Long>>() {
-                         @Override public void apply(IgniteFuture<Long> t) {
 -                    onError(null, null, new IgniteTxRollbackException(msg, 
e));
++                    topFut.listenAsync(new CI1<IgniteInternalFuture<Long>>() {
++                        @Override public void 
apply(IgniteInternalFuture<Long> t) {
 +                            prepare();
 +                        }
 +                    });
                  }
              }
 -            else {
 -                topFut.syncNotify(false);
 -
 -                topFut.listenAsync(new CI1<IgniteInternalFuture<Long>>() {
 -                    @Override public void apply(IgniteInternalFuture<Long> t) 
{
 -                        prepare();
 -                    }
 -                });
 +            finally {
 +                topologyReadUnlock();
              }
          }
 -        finally {
 -            topologyReadUnlock();
 -        }
 +        else
 +            preparePessimistic();
      }
  
      /**

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

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

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

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

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/38121645/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 fa1e345,fb94cd2..6dfa1ff
--- 
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
@@@ -273,19 -284,7 +274,19 @@@ public class IgniteTxHandler<K, V> 
          }
  
          if (tx != null) {
 +            tx.transactionNodes(req.transactionNodes());
 +
 +            if (req.onePhaseCommit()) {
 +                assert req.last();
 +                assert F.isEmpty(req.lastBackups()) || 
req.lastBackups().size() <= 1;
 +
 +                tx.onePhaseCommit(true);
 +            }
 +
 +            if (req.returnValue())
 +                tx.needReturnValue(true);
 +
-             IgniteFuture<IgniteTxEx<K, V>> fut = tx.prepareAsync(req.reads(), 
req.writes(),
+             IgniteInternalFuture<IgniteTxEx<K, V>> fut = 
tx.prepareAsync(req.reads(), req.writes(),
                  req.dhtVersions(), req.messageId(), req.miniId(), 
req.transactionNodes(), req.last(),
                  req.lastBackups());
  
@@@ -427,10 -427,14 +428,10 @@@
          if (locTx != null && locTx.colocatedLocallyMapped())
              colocatedFinishFut = finishColocatedLocal(req.commit(), locTx);
  
-         IgniteFuture<IgniteTx> nearFinishFut = null;
+         IgniteInternalFuture<IgniteTx> nearFinishFut = null;
  
 -        if (locTx == null || locTx.nearLocallyMapped()) {
 -            if (locTx != null)
 -                req.cloneEntries();
 -
 +        if (locTx == null || locTx.nearLocallyMapped())
              nearFinishFut = finishDhtLocal(nodeId, locTx, req);
 -        }
  
          if (colocatedFinishFut != null && nearFinishFut != null) {
              GridCompoundFuture<IgniteTx, IgniteTx> res = new 
GridCompoundFuture<>(ctx.kernalContext());
@@@ -544,8 -548,22 +545,8 @@@
  
                  tx.nearFinishFutureId(req.futureId());
                  tx.nearFinishMiniId(req.miniId());
 -                tx.recoveryWrites(req.recoveryWrites());
 -
 -                Collection<IgniteTxEntry<K, V>> writeEntries = req.writes();
 -
 -                if (!F.isEmpty(writeEntries)) {
 -                    // In OPTIMISTIC mode, we get the values at PREPARE stage.
 -                    assert tx.concurrency() == PESSIMISTIC;
 -
 -                    for (IgniteTxEntry<K, V> entry : writeEntries)
 -                        tx.addEntry(req.messageId(), entry);
 -                }
 -
 -                if (tx.pessimistic())
 -                    tx.prepare();
  
-                 IgniteFuture<IgniteTx> commitFut = tx.commitAsync();
+                 IgniteInternalFuture<IgniteTx> commitFut = tx.commitAsync();
  
                  // Only for error logging.
                  commitFut.listenAsync(CU.errorLogger(log));

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/38121645/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 d1a2be5,502c058..7789023
--- 
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
@@@ -19,8 -19,9 +19,10 @@@ package org.apache.ignite.internal.proc
  
  import org.apache.ignite.*;
  import org.apache.ignite.cache.*;
+ import org.apache.ignite.internal.*;
 +import org.apache.ignite.cluster.*;
  import org.apache.ignite.internal.processors.cache.*;
+ import org.apache.ignite.internal.processors.cache.version.*;
  import org.apache.ignite.internal.util.*;
  import org.apache.ignite.lang.*;
  import org.apache.ignite.plugin.security.*;
@@@ -2690,34 -2636,13 +2709,34 @@@ public abstract class IgniteTxLocalAdap
                          cctx.kernalContext());
              }
              else {
 -                return loadFut.chain(new CX1<IgniteInternalFuture<Set<K>>, 
GridCacheReturn<V>>() {
 -                    @Override public GridCacheReturn<V> 
applyx(IgniteInternalFuture<Set<K>> f) throws IgniteCheckedException {
 -                        f.get();
 +                if (implicit()) {
 +                    // Should never load missing values for implicit 
transaction as values will be returned
 +                    // with prepare response, if required.
 +                    assert loadFut.isDone();
  
 -                        return ret;
 +                    try {
 +                        loadFut.get();
                      }
 -                });
 +                    catch (IgniteCheckedException e) {
 +                        return new GridFinishedFutureEx<>(new 
GridCacheReturn<V>(), e);
 +                    }
 +
-                     return commitAsync().chain(new 
CX1<IgniteFuture<IgniteTx>, GridCacheReturn<V>>() {
-                         @Override public GridCacheReturn<V> 
applyx(IgniteFuture<IgniteTx> txFut) throws IgniteCheckedException {
++                    return commitAsync().chain(new 
CX1<IgniteInternalFuture<IgniteTx>, GridCacheReturn<V>>() {
++                        @Override public GridCacheReturn<V> 
applyx(IgniteInternalFuture<IgniteTx> txFut) throws IgniteCheckedException {
 +                            txFut.get();
 +
 +                            return implicitRes;
 +                        }
 +                    });
 +                }
 +                else
-                     return loadFut.chain(new CX1<IgniteFuture<Set<K>>, 
GridCacheReturn<V>>() {
-                         @Override public GridCacheReturn<V> 
applyx(IgniteFuture<Set<K>> f) throws IgniteCheckedException {
++                    return loadFut.chain(new 
CX1<IgniteInternalFuture<Set<K>>, GridCacheReturn<V>>() {
++                        @Override public GridCacheReturn<V> 
applyx(IgniteInternalFuture<Set<K>> f) throws IgniteCheckedException {
 +                            f.get();
 +
 +                            return ret;
 +                        }
 +                    });
              }
          }
          catch (IgniteCheckedException e) {
@@@ -2914,27 -2836,13 +2933,27 @@@
                          cctx.kernalContext());
              }
              else {
 -                return loadFut.chain(new CX1<IgniteInternalFuture<Set<K>>, 
GridCacheReturn<V>>() {
 -                    @Override public GridCacheReturn<V> 
applyx(IgniteInternalFuture<Set<K>> f) throws IgniteCheckedException {
 -                        f.get();
 +                if (implicit()) {
 +                    // Should never load missing values for implicit 
transaction as values will be returned
 +                    // with prepare response, if required.
 +                    assert loadFut.isDone();
  
-                     return commitAsync().chain(new 
CX1<IgniteFuture<IgniteTx>, GridCacheReturn<V>>() {
-                         @Override public GridCacheReturn<V> 
applyx(IgniteFuture<IgniteTx> txFut) throws IgniteCheckedException {
 -                        return ret;
 -                    }
 -                });
++                    return commitAsync().chain(new 
CX1<IgniteInternalFuture<IgniteTx>, GridCacheReturn<V>>() {
++                        @Override public GridCacheReturn<V> 
applyx(IgniteInternalFuture<IgniteTx> txFut) throws IgniteCheckedException {
 +                            txFut.get();
 +
 +                            return implicitRes;
 +                        }
 +                    });
 +                }
 +                else
-                     return loadFut.chain(new CX1<IgniteFuture<Set<K>>, 
GridCacheReturn<V>>() {
-                         @Override public GridCacheReturn<V> 
applyx(IgniteFuture<Set<K>> f) throws IgniteCheckedException {
++                    return loadFut.chain(new 
CX1<IgniteInternalFuture<Set<K>>, GridCacheReturn<V>>() {
++                        @Override public GridCacheReturn<V> 
applyx(IgniteInternalFuture<Set<K>> f) throws IgniteCheckedException {
 +                            f.get();
 +
 +                            return ret;
 +                        }
 +                    });
              }
          }
          catch (IgniteCheckedException e) {

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

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

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

Reply via email to