Merge branch 'master' into ignite-2004

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

Branch: refs/heads/ignite-2004
Commit: 194455ad08adb9017bb11803e09b5cdf3f6e7200
Parents: 80b134e fcfbf2c
Author: Tikhonov Nikolay <[email protected]>
Authored: Wed Apr 6 11:00:23 2016 +0300
Committer: Tikhonov Nikolay <[email protected]>
Committed: Wed Apr 6 11:00:23 2016 +0300

----------------------------------------------------------------------
 .../ClientAbstractMultiNodeSelfTest.java        |    8 +-
 .../ignite/cache/affinity/AffinityFunction.java |    2 +
 .../configuration/IgniteConfiguration.java      |   50 +
 .../apache/ignite/internal/IgniteKernal.java    |    2 +
 .../ignite/internal/IgniteNodeAttributes.java   |    3 +
 .../internal/binary/BinaryObjectImpl.java       |   52 +-
 .../binary/BinaryObjectOffheapImpl.java         |   40 +-
 .../internal/binary/BinaryReaderExImpl.java     |   62 +-
 .../ignite/internal/binary/BinaryTypeImpl.java  |    8 +
 .../ignite/internal/binary/BinaryUtils.java     |    4 +-
 .../internal/binary/GridBinaryMarshaller.java   |    4 +-
 .../binary/builder/BinaryBuilderReader.java     |   11 +-
 .../communication/GridIoMessageFactory.java     |    4 +-
 .../discovery/GridDiscoveryManager.java         |   70 +-
 .../affinity/GridAffinityAssignment.java        |   49 +-
 .../affinity/GridAffinityAssignmentCache.java   |  246 +-
 .../affinity/GridAffinityProcessor.java         |    2 +-
 .../processors/affinity/GridAffinityUtils.java  |    3 +-
 .../cache/CacheAffinityChangeMessage.java       |  160 ++
 .../cache/CacheAffinitySharedManager.java       | 1805 ++++++++++++
 .../cache/DynamicCacheChangeRequest.java        |   17 +
 .../cache/DynamicCacheDescriptor.java           |   49 +
 .../processors/cache/GridCacheAdapter.java      |  276 +-
 .../cache/GridCacheAffinityManager.java         |  125 +-
 .../cache/GridCacheClearAllRunnable.java        |    1 -
 .../processors/cache/GridCacheContext.java      |    2 +-
 .../cache/GridCacheEvictionManager.java         |   18 +-
 .../processors/cache/GridCacheIoManager.java    |   29 +-
 .../processors/cache/GridCacheMapEntry.java     |    1 -
 .../cache/GridCacheMvccCandidate.java           |   16 +-
 .../GridCachePartitionExchangeManager.java      |  161 +-
 .../processors/cache/GridCachePreloader.java    |   18 +-
 .../cache/GridCachePreloaderAdapter.java        |   12 +-
 .../processors/cache/GridCacheProcessor.java    |  216 +-
 .../processors/cache/GridCacheProxyImpl.java    |   13 +
 .../cache/GridCacheSharedContext.java           |   18 +-
 .../processors/cache/GridCacheUtils.java        |  122 -
 .../processors/cache/IgniteInternalCache.java   |    5 +
 .../cache/affinity/GridCacheAffinityImpl.java   |    2 +-
 .../CacheDataStructuresManager.java             |    4 +-
 .../distributed/GridCacheCommittedTxInfo.java   |    1 +
 .../GridDistributedCacheAdapter.java            |    2 +-
 .../GridDistributedLockResponse.java            |    8 -
 .../GridDistributedTxFinishRequest.java         |    2 +
 .../GridDistributedTxRemoteAdapter.java         |    9 +-
 .../dht/CacheDistributedGetFutureAdapter.java   |    3 -
 .../dht/GridClientPartitionTopology.java        |   10 +-
 .../dht/GridDhtAffinityAssignmentResponse.java  |  198 +-
 .../dht/GridDhtAssignmentFetchFuture.java       |   80 +-
 .../distributed/dht/GridDhtCacheAdapter.java    |   56 +-
 .../cache/distributed/dht/GridDhtGetFuture.java |    2 +
 .../distributed/dht/GridDhtGetSingleFuture.java |    2 +
 .../distributed/dht/GridDhtLockFuture.java      |    7 -
 .../dht/GridDhtPartitionTopology.java           |   10 +-
 .../dht/GridDhtPartitionTopologyImpl.java       |  328 ++-
 .../dht/GridDhtTransactionalCacheAdapter.java   |    5 +-
 .../distributed/dht/GridDhtTxFinishFuture.java  |   29 +-
 .../cache/distributed/dht/GridDhtTxLocal.java   |  210 +-
 .../distributed/dht/GridDhtTxLocalAdapter.java  |    4 +-
 .../distributed/dht/GridDhtTxPrepareFuture.java |   16 +-
 .../cache/distributed/dht/GridDhtTxRemote.java  |    9 +-
 .../dht/GridPartitionedGetFuture.java           |    8 +-
 .../dht/GridPartitionedSingleGetFuture.java     |    8 +-
 .../dht/atomic/GridDhtAtomicCache.java          |    1 +
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |    2 +-
 .../dht/colocated/GridDhtColocatedCache.java    |    6 +-
 .../colocated/GridDhtColocatedLockFuture.java   |   17 +-
 .../dht/preloader/GridDhtPartitionDemander.java |   19 +-
 .../dht/preloader/GridDhtPartitionMap2.java     |    4 +-
 .../dht/preloader/GridDhtPartitionSupplier.java |   29 +-
 .../GridDhtPartitionsExchangeFuture.java        | 1547 +++++-----
 .../dht/preloader/GridDhtPreloader.java         |  103 +-
 .../distributed/near/GridNearCacheAdapter.java  |    2 +-
 .../distributed/near/GridNearCacheEntry.java    |  118 +-
 .../distributed/near/GridNearGetFuture.java     |   26 +-
 .../distributed/near/GridNearLockFuture.java    |   10 +-
 ...arOptimisticSerializableTxPrepareFuture.java |    5 +-
 .../near/GridNearOptimisticTxPrepareFuture.java |   34 +-
 ...ridNearOptimisticTxPrepareFutureAdapter.java |   16 +-
 .../near/GridNearTransactionalCache.java        |    7 +-
 .../near/GridNearTxFinishFuture.java            |  123 +-
 .../near/GridNearTxFinishRequest.java           |   46 +-
 .../cache/distributed/near/GridNearTxLocal.java |   50 +-
 .../near/GridNearTxPrepareFutureAdapter.java    |    2 +-
 .../distributed/near/GridNearTxRemote.java      |   24 +-
 .../processors/cache/dr/GridCacheDrManager.java |    4 +-
 .../cache/dr/GridOsCacheDrManager.java          |    2 +-
 .../cache/local/GridLocalCacheEntry.java        |   27 -
 .../cache/local/GridLocalLockFuture.java        |   15 -
 .../cache/query/GridCacheQueryManager.java      |   15 -
 .../continuous/CacheContinuousQueryHandler.java |    3 +-
 .../cache/transactions/IgniteInternalTx.java    |   30 +-
 .../cache/transactions/IgniteTxAdapter.java     |   82 +-
 .../cache/transactions/IgniteTxEntry.java       |    8 +-
 .../cache/transactions/IgniteTxHandler.java     |   33 +-
 .../IgniteTxImplicitSingleStateImpl.java        |    7 +-
 .../transactions/IgniteTxLocalAdapter.java      |   97 +-
 .../cache/transactions/IgniteTxLocalEx.java     |   13 +-
 .../cache/transactions/IgniteTxManager.java     |   93 +-
 .../IgniteTxRemoteStateAdapter.java             |    7 +-
 .../cache/transactions/IgniteTxState.java       |    5 +-
 .../cache/transactions/IgniteTxStateImpl.java   |   28 +-
 .../cache/version/GridCacheVersion.java         |   14 +-
 .../cache/version/GridCacheVersionEx.java       |    9 +
 .../cache/version/GridCacheVersionManager.java  |   21 +-
 .../continuous/GridContinuousProcessor.java     |    1 -
 .../datastructures/DataStructuresProcessor.java |    4 +-
 .../processors/odbc/OdbcMessageParser.java      |    2 +-
 .../platform/PlatformContextImpl.java           |    1 +
 .../service/GridServiceProcessor.java           |   64 +-
 .../ignite/internal/util/IgniteUtils.java       |   16 +
 .../internal/util/future/GridFutureAdapter.java |    3 +-
 .../apache/ignite/marshaller/Marshaller.java    |    6 +-
 .../ignite/spi/discovery/tcp/ServerImpl.java    |  127 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |    1 +
 .../GridCacheAffinityBackupsSelfTest.java       |    2 +-
 .../affinity/AffinityClientNodeSelfTest.java    |    4 +-
 .../fair/FairAffinityFunctionNodesSelfTest.java |    2 +
 .../ignite/internal/GridAffinitySelfTest.java   |    5 +-
 .../GridTaskFailoverAffinityRunTest.java        |    6 +-
 .../IgniteClientReconnectAbstractTest.java      |    8 +-
 .../IgniteClientReconnectAtomicsTest.java       |    8 +-
 .../IgniteClientReconnectCollectionsTest.java   |    4 +-
 .../IgniteClientReconnectComputeTest.java       |    6 +-
 .../IgniteClientReconnectFailoverTest.java      |    2 +
 .../IgniteClientReconnectServicesTest.java      |    4 +-
 .../IgniteClientReconnectStreamerTest.java      |    2 +-
 .../internal/TestRecordingCommunicationSpi.java |   65 +-
 .../cache/CacheAffinityCallSelfTest.java        |   45 +-
 .../processors/cache/CacheNamesSelfTest.java    |   16 +-
 ...cheNearUpdateTopologyChangeAbstractTest.java |    2 +
 .../cache/CacheReadThroughRestartSelfTest.java  |    2 +
 .../GridCacheAbstractRemoveFailureTest.java     |   10 +-
 .../cache/GridCacheDeploymentSelfTest.java      |    2 +
 .../cache/GridCacheEntryVersionSelfTest.java    |    2 +-
 ...ridCacheStoreManagerDeserializationTest.java |   40 +-
 ...acheTcpClientDiscoveryMultiThreadedTest.java |    2 +-
 .../GridCacheVersionTopologyChangeTest.java     |  246 ++
 .../IgniteCacheEntryProcessorNodeJoinTest.java  |  147 +-
 .../cache/IgniteCacheIncrementTxTest.java       |  299 ++
 .../cache/IgniteCacheNearLockValueSelfTest.java |    2 +-
 .../IgniteCacheP2pUnmarshallingErrorTest.java   |    1 -
 ...CacheP2pUnmarshallingRebalanceErrorTest.java |   36 +-
 .../IgniteCacheP2pUnmarshallingTxErrorTest.java |    2 +
 .../IgniteCacheReadThroughEvictionSelfTest.java |  352 +++
 .../IgniteClientAffinityAssignmentSelfTest.java |    2 +-
 ...niteDynamicCacheStartStopConcurrentTest.java |    6 +-
 .../cache/IgniteTxReentryAbstractSelfTest.java  |    2 +-
 ...eAbstractDataStructuresFailoverSelfTest.java |   12 +-
 .../CacheGetInsideLockChangingTopologyTest.java |    6 +
 ...eLateAffinityAssignmentFairAffinityTest.java |   32 +
 .../CacheLateAffinityAssignmentTest.java        | 2688 ++++++++++++++++++
 .../GridCacheAbstractJobExecutionTest.java      |    6 +-
 .../GridCacheTransformEventSelfTest.java        |    2 +-
 ...niteCacheClientNodeChangingTopologyTest.java |   28 +-
 ...teCacheClientNodePartitionsExchangeTest.java |   85 +-
 .../IgniteCacheClientReconnectTest.java         |    2 +
 .../distributed/IgniteCacheGetRestartTest.java  |    4 +
 .../IgniteCacheNearRestartRollbackSelfTest.java |   28 +-
 .../distributed/IgniteCachePrimarySyncTest.java |   45 +-
 .../IgniteCacheReadFromBackupTest.java          |   12 +-
 .../IgniteCacheSingleGetMessageTest.java        |    8 +-
 .../IgniteTxCachePrimarySyncTest.java           | 1114 ++++++++
 ...teSynchronizationModesMultithreadedTest.java |  422 +++
 .../GridCacheDhtPreloadMessageCountTest.java    |    6 +-
 ...idCachePartitionedPreloadEventsSelfTest.java |   11 +
 ...ridCachePartitionedUnloadEventsSelfTest.java |    2 +
 .../dht/GridCacheTxNodeFailureSelfTest.java     |   10 +-
 .../IgniteCachePutRetryAbstractSelfTest.java    |    4 +-
 ...imaryWriteOrderMultiNodeFullApiSelfTest.java |   35 +
 .../near/GridCacheNearJobExecutionSelfTest.java |    2 -
 .../near/GridCacheNearMultiNodeSelfTest.java    |    4 +-
 .../near/GridCacheNearReadersSelfTest.java      |    2 +
 .../near/GridCacheNearTxForceKeyTest.java       |    6 +-
 ...LateAffDisabledMultiNodeFullApiSelfTest.java |   34 +
 ...achePartitionedMultiNodeCounterSelfTest.java |   43 +-
 ...achePartitionedMultiNodeFullApiSelfTest.java |    2 +
 ...idCacheRendezvousAffinityClientSelfTest.java |    2 +
 .../GridCacheRebalancingSyncSelfTest.java       |   83 +-
 .../GridCacheReplicatedJobExecutionTest.java    |    2 -
 ...acheContinuousQueryExecuteInPrimaryTest.java |  306 ++
 ...ContinuousQueryFailoverAbstractSelfTest.java |   36 +-
 ...BehindStorePartitionedMultiNodeSelfTest.java |   11 +-
 .../loadtests/hashmap/GridCacheTestContext.java |    2 +
 .../testframework/junits/GridAbstractTest.java  |    3 +-
 .../junits/common/GridCommonAbstractTest.java   |  116 +-
 .../IgniteCacheFullApiSelfTestSuite.java        |    6 +
 .../testsuites/IgniteCacheTestSuite2.java       |    4 +
 .../testsuites/IgniteCacheTestSuite3.java       |    2 +
 .../testsuites/IgniteCacheTestSuite4.java       |    6 +
 .../testsuites/IgniteCacheTestSuite5.java       |    5 +
 .../processors/hadoop/HadoopContext.java        |    3 +-
 .../child/HadoopChildProcessRunner.java         |    2 +-
 .../HadoopIgfs20FileSystemAbstractSelfTest.java |    2 +
 .../IgniteHadoopFileSystemAbstractSelfTest.java |    2 +
 .../h2/twostep/GridReduceQueryExecutor.java     |    4 +-
 .../cache/IgniteClientReconnectQueriesTest.java |    4 +-
 .../IgniteCacheQueryNodeRestartSelfTest2.java   |    3 +
 .../IgniteCacheQuerySelfTestSuite3.java         |    2 +
 .../Continuous/ContinuousQueryAbstractTest.cs   |   25 +-
 .../Apache.Ignite.Core.Tests/ExceptionsTest.cs  |    5 +
 201 files changed, 11483 insertions(+), 2768 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/194455ad/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/194455ad/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------

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

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

http://git-wip-us.apache.org/repos/asf/ignite/blob/194455ad/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java
index fff8a92,767697a..4bf22e7
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java
@@@ -1251,275 -1258,6 +1251,276 @@@ public class CacheContinuousQueryHandle
      }
  
      /**
 +     *
 +     */
 +    private class ContinuousQueryClosureImpl implements 
CacheContinuousQueryClosure {
 +        /** */
 +        private final IgniteCache cache;
 +
 +        /** */
 +        private final IgniteLogger log;
 +
 +        /** */
 +        private final boolean fireEvent;
 +
 +        /** */
 +        private CacheContinuousQueryEvent<K, V> evt;
 +
 +        /** */
 +        private CacheEntryEventFilter filter;
 +
 +        /** */
 +        private final GridCacheContext<K, V> cctx;
 +
 +        /** */
 +        private boolean primary;
 +
 +        /** */
 +        private boolean loc;
 +
 +        /** */
 +        private GridKernalContext ctx;
 +
 +        /** */
 +        private UUID nodeId;
 +
 +        /** */
 +        private UUID routineId;
 +
 +        /** */
 +        private boolean recordIgniteEvt;
 +
 +        /** */
 +        private final String taskName;
 +
 +        /** */
 +        private boolean notify;
 +
 +        /** */
 +        private boolean backup;
 +
 +        /** */
 +        private final CountDownLatch latch = new CountDownLatch(1);
 +
 +        /**
 +         * @param taskName Task name.
 +         * @param recordIgniteEvt Fired event.
 +         * @param routineId Routine id.
 +         * @param nodeId Node id.
 +         * @param ctx Kernal context.
 +         * @param loc Local.
 +         * @param primary Primary flag.
 +         * @param cctx Cache context.
 +         * @param filter Filter.
 +         * @param evt Event.
 +         * @param fireEvent Immediately fire event.
 +         * @param cache Cache.
 +         */
 +        ContinuousQueryClosureImpl(String taskName,
 +            boolean recordIgniteEvt,
 +            UUID routineId,
 +            UUID nodeId,
 +            GridKernalContext ctx,
 +            boolean loc,
 +            boolean primary,
 +            GridCacheContext<K, V> cctx,
 +            CacheEntryEventFilter filter,
 +            CacheContinuousQueryEvent<K, V> evt,
 +            boolean fireEvent, IgniteCache cache) {
 +            this.taskName = taskName;
 +            this.recordIgniteEvt = recordIgniteEvt;
 +            this.routineId = routineId;
 +            this.nodeId = nodeId;
 +            this.ctx = ctx;
 +            this.loc = loc;
 +            this.primary = primary;
 +            this.cctx = cctx;
 +            this.filter = filter;
 +            this.evt = evt;
 +            this.cache = cache;
 +            this.fireEvent = fireEvent;
 +
 +            log = ctx.log(CacheContinuousQueryHandler.class);
 +        }
 +
 +        /** {@inheritDoc} */
 +        @Override public void run() {
 +            filter();
 +
 +            if (fireEvent || waitIfAsync())
 +                onEntryUpdate0();
 +        }
 +
 +        /**
 +         * @return {@code True} if event fired on this node.
 +         */
 +        private boolean primary() {
 +            return primary || skipPrimaryCheck;
 +        }
 +
 +        /**
 +         * @return {@code False} if filter sync.
 +         */
 +        private boolean waitIfAsync() {
 +            if (backup)
 +                return false;
 +
 +            try {
 +                U.await(latch);
 +            }
 +            catch (IgniteInterruptedCheckedException e) {
 +                log.error("Failed to wait latch.");
 +            }
 +
 +            return true;
 +        }
 +
 +        /** {@inheritDoc} */
 +        @Override public void skipEvent() {
 +            if (evt != null && evt.entry() != null)
 +                evt.entry().markFiltered();
 +
 +            onEntryUpdate();
 +        }
 +
 +        /** {@inheritDoc} */
 +        @Override public void onEntryUpdate() {
 +            if (backup)
 +                return;
 +
 +            if (!fireEvent && asyncCallback) {
 +                latch.countDown();
 +
 +                return;
 +            }
 +
 +            onEntryUpdate0();
 +        }
 +
 +        /**
 +         *
 +         */
 +        private void onEntryUpdate0() {
 +            try {
 +                final CacheContinuousQueryEntry entry = evt.entry();
 +
 +                if (loc) {
 +                    if (!locCache) {
 +                        T2<Collection<CacheContinuousQueryEntry>, 
PartitionRecovery> events =
 +                            handleEvent(ctx, entry, asyncCallback);
 +
 +                        try {
 +                            Collection<CacheContinuousQueryEntry> entries = 
events.get1();
 +
 +                            if (!entries.isEmpty()) {
 +                                Iterable<CacheEntryEvent<? extends K, ? 
extends V>> evts = F.viewReadOnly(entries,
 +                                    new C1<CacheContinuousQueryEntry, 
CacheEntryEvent<? extends K, ? extends V>>() {
 +                                        @Override public CacheEntryEvent<? 
extends K, ? extends V> apply(
 +                                            CacheContinuousQueryEntry e) {
 +                                            return new 
CacheContinuousQueryEvent<>(cache, cctx, e);
 +                                        }
 +                                    },
 +                                    new 
IgnitePredicate<CacheContinuousQueryEntry>() {
 +                                        @Override public boolean 
apply(CacheContinuousQueryEntry entry) {
 +                                            return !entry.isFiltered();
 +                                        }
 +                                    }
 +                                );
 +
-                                 locLsnr.onUpdated(evts);
++                                if (!F.isEmpty(evts))
++                                    locLsnr.onUpdated(evts);
 +
 +                                if (!internal && !skipPrimaryCheck)
 +                                    
sendBackupAcknowledge(ackBuf.onAcknowledged(entry), routineId, ctx);
 +                            }
 +                        }
 +                        finally {
 +                            if (events.get2() != null)
 +                                events.get2().unlock();
 +                        }
 +                    }
 +                    else {
 +                        if (!entry.isFiltered())
 +                            locLsnr.onUpdated(F.<CacheEntryEvent<? extends K, 
? extends V>>asList(evt));
 +                    }
 +                }
 +                else {
 +                    if (!entry.isFiltered())
 +                        prepareEntry(cctx, nodeId, entry);
 +
 +                    CacheContinuousQueryEntry e = handleEntry(entry);
 +
 +                    if (e != null)
 +                        ctx.continuous().addNotification(nodeId, routineId, 
entry, topic, sync, true);
 +                }
 +            }
 +            catch (ClusterTopologyCheckedException ex) {
 +                if (log.isDebugEnabled())
 +                    log.debug("Failed to send event notification to node, 
node left cluster " +
 +                        "[node=" + nodeId + ", err=" + ex + ']');
 +            }
 +            catch (IgniteCheckedException ex) {
 +                U.error(ctx.log(getClass()), "Failed to send event 
notification to node: " + nodeId, ex);
 +            }
 +
 +            if (recordIgniteEvt && notify) {
 +                ctx.event().record(new CacheQueryReadEvent<>(
 +                    ctx.discovery().localNode(),
 +                    "Continuous query executed.",
 +                    EVT_CACHE_QUERY_OBJECT_READ,
 +                    CacheQueryType.CONTINUOUS.name(),
 +                    cacheName,
 +                    null,
 +                    null,
 +                    null,
 +                    filter instanceof CacheEntryEventSerializableFilter ?
 +                        (CacheEntryEventSerializableFilter)filter : null,
 +                    null,
 +                    nodeId,
 +                    taskName,
 +                    evt.getKey(),
 +                    evt.getValue(),
 +                    evt.getOldValue(),
 +                    null
 +                ));
 +            }
 +        }
 +
 +        /**
 +         *
 +         */
 +        public void filter() {
 +            CacheContinuousQueryEntry entry = evt.entry();
 +
 +            notify = !entry.isFiltered();
 +
 +            try {
 +                if (notify && filter != null)
 +                    notify = filter.evaluate(evt);
 +            }
 +            catch (Exception e) {
 +                U.error(log, "CacheEntryEventFilter failed: " + e);
 +            }
 +
 +            if (!notify)
 +                entry.markFiltered();
 +
 +            if (!primary()) {
 +                if (!internal) {
 +                    // Skip init query and expire entries.
 +                    if (entry.updateCounter() != -1L) {
 +                        entry.markBackup();
 +
 +                        backupQueue.add(entry);
 +                    }
 +                }
 +
 +                backup = true;
 +            }
 +        }
 +    }
 +
 +    /**
       * Deployable object.
       */
      protected static class DeployableObject implements Externalizable {

http://git-wip-us.apache.org/repos/asf/ignite/blob/194455ad/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite3.java
----------------------------------------------------------------------
diff --cc 
modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite3.java
index b7d9daf,fbb3091..0b43613
--- 
a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite3.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite3.java
@@@ -20,12 -20,9 +20,13 @@@ package org.apache.ignite.testsuites
  import junit.framework.TestSuite;
  import 
org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousBatchAckTest;
  import 
org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousBatchForceServerModeAckTest;
 +import 
org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryAsyncFilterListenerTest;
 +import 
org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryDeadlockTest;
 +import 
org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryFactoryAsyncFilterRandomOperationTest;
 +import 
org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryFactoryFilterRandomOperationTest;
+ import 
org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryExecuteInPrimaryTest;
 -import 
org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryFactoryFilterTest;
  import 
org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryOperationP2PTest;
 +import 
org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryOrderingEventTest;
  import 
org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryRandomOperationsTest;
  import 
org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryRandomOperationsTwoNodesTest;
  import 
org.apache.ignite.internal.processors.cache.query.continuous.GridCacheContinuousQueryAtomicNearEnabledSelfTest;

Reply via email to