You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by av...@apache.org on 2016/11/24 13:24:21 UTC

[11/50] [abbrv] ignite git commit: IGNITE-2079 (revert commit) GridCacheIoManager eats exception trail if it falls into the directed case

IGNITE-2079 (revert commit) GridCacheIoManager eats exception trail if it falls into the directed case


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

Branch: refs/heads/ignite-4242
Commit: e821dc0083003bc81058b1cb223d8a8a2ee44daf
Parents: 40ef2f5
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Tue Nov 8 15:09:21 2016 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Tue Nov 8 15:09:21 2016 +0300

----------------------------------------------------------------------
 .../org/apache/ignite/events/EventType.java     |   6 -
 .../ignite/events/UnhandledExceptionEvent.java  |  61 ----
 .../processors/cache/GridCacheIoManager.java    |  70 ++---
 .../cache/query/GridCacheQueryManager.java      |  10 -
 .../query/GridCacheQueryMetricsAdapter.java     |   7 -
 .../cache/query/GridCacheQueryResponse.java     |   2 +-
 .../continuous/CacheContinuousQueryHandler.java |  50 ++-
 ...2pUnmarshallingContinuousQueryErrorTest.java | 302 -------------------
 ...niteCacheP2pUnmarshallingErrorTestSuite.java |   6 +-
 9 files changed, 60 insertions(+), 454 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/e821dc00/modules/core/src/main/java/org/apache/ignite/events/EventType.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/events/EventType.java b/modules/core/src/main/java/org/apache/ignite/events/EventType.java
index 7778f67..103dbd4 100644
--- a/modules/core/src/main/java/org/apache/ignite/events/EventType.java
+++ b/modules/core/src/main/java/org/apache/ignite/events/EventType.java
@@ -859,12 +859,6 @@ public interface EventType {
     public static final int EVT_IGFS_FILE_PURGED = 127;
 
     /**
-     * Built-in event type: event for unhandled exception.
-     *
-     */
-    public static final int EVT_UNHANDLED_EXCEPTION = 128;
-
-    /**
      * All checkpoint events. This array can be directly passed into
      * {@link IgniteEvents#localListen(IgnitePredicate, int...)} method to
      * subscribe to all checkpoint events.

http://git-wip-us.apache.org/repos/asf/ignite/blob/e821dc00/modules/core/src/main/java/org/apache/ignite/events/UnhandledExceptionEvent.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/events/UnhandledExceptionEvent.java b/modules/core/src/main/java/org/apache/ignite/events/UnhandledExceptionEvent.java
deleted file mode 100644
index cb6cd85..0000000
--- a/modules/core/src/main/java/org/apache/ignite/events/UnhandledExceptionEvent.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.events;
-
-import org.apache.ignite.cluster.ClusterNode;
-
-/**
- * Cache fail event.
- */
-public class UnhandledExceptionEvent extends EventAdapter {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** */
-    private Exception ex;
-
-    /**
-     * Default constructor.
-     */
-    public UnhandledExceptionEvent() {
-    }
-
-    /**
-     * @param node Node.
-     * @param msg Message.
-     * @param ex Exception.
-     * @param type Type.
-     */
-    public UnhandledExceptionEvent(ClusterNode node, String msg, Exception ex, int type) {
-        super(node, msg, type);
-        this.ex = ex;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return "msg=" + message() + ", type=" + type() + "ex=" + ex;
-    }
-
-    /**
-     *
-     * @return inner exception
-     */
-    public Exception getException() {
-        return ex;
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/e821dc00/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
index 5d7cb00..78dddd3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
@@ -17,26 +17,50 @@
 
 package org.apache.ignite.internal.processors.cache;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicLong;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.cluster.ClusterNode;
-import org.apache.ignite.events.UnhandledExceptionEvent;
-import org.apache.ignite.internal.GridKernalContext;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
 import org.apache.ignite.internal.managers.communication.GridMessageListener;
 import org.apache.ignite.internal.managers.deployment.GridDeploymentInfo;
 import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
-import org.apache.ignite.internal.processors.cache.distributed.dht.*;
+import org.apache.ignite.internal.processors.cache.distributed.dht.CacheGetFuture;
+import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtAffinityAssignmentRequest;
+import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockRequest;
+import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockResponse;
+import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxFinishRequest;
+import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxFinishResponse;
+import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareRequest;
+import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareResponse;
+import org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicUpdateRequest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicUpdateResponse;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateRequest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateResponse;
 import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtForceKeysRequest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtForceKeysResponse;
-import org.apache.ignite.internal.processors.cache.distributed.near.*;
+import org.apache.ignite.internal.processors.cache.distributed.near.GridNearGetRequest;
+import org.apache.ignite.internal.processors.cache.distributed.near.GridNearGetResponse;
+import org.apache.ignite.internal.processors.cache.distributed.near.GridNearLockRequest;
+import org.apache.ignite.internal.processors.cache.distributed.near.GridNearLockResponse;
+import org.apache.ignite.internal.processors.cache.distributed.near.GridNearSingleGetRequest;
+import org.apache.ignite.internal.processors.cache.distributed.near.GridNearSingleGetResponse;
+import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxFinishRequest;
+import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxFinishResponse;
+import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxPrepareRequest;
+import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxPrepareResponse;
 import org.apache.ignite.internal.processors.cache.query.GridCacheQueryRequest;
 import org.apache.ignite.internal.processors.cache.query.GridCacheQueryResponse;
 import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
@@ -55,12 +79,6 @@ import org.apache.ignite.lang.IgniteUuid;
 import org.jetbrains.annotations.Nullable;
 import org.jsr166.ConcurrentHashMap8;
 
-import java.util.*;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicLong;
-
-import static org.apache.ignite.events.EventType.EVT_UNHANDLED_EXCEPTION;
 import static org.apache.ignite.internal.GridTopic.TOPIC_CACHE;
 
 /**
@@ -675,11 +693,6 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter {
 
             break;
 
-            case 59:
-                // No additional actions required, just skipping default switch section,
-                // since UnhandledException already registered.
-                break;
-
             case 114: {
                 processMessage(nodeId,msg,c);// Will be handled by Rebalance Demander.
             }
@@ -724,34 +737,13 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter {
 
             break;
 
-            default:{
-                String shortMsg = "Failed to send response to node. Unsupported direct type [message=" + msg + "]";
-
-                IgniteCheckedException e = new IgniteCheckedException(shortMsg, msg.classError());
-
-                registerUnhandledException(ctx, shortMsg, e);
-            }
+            default:
+                throw new IgniteCheckedException("Failed to send response to node. Unsupported direct type [message="
+                    + msg + "]", msg.classError());
         }
     }
 
     /**
-     * @param ctx Grid cache context.
-     * @param shortMsg Short message.
-     * @param ex Original Exception.
-     */
-    public static void registerUnhandledException(GridCacheContext ctx, String shortMsg, IgniteCheckedException ex) {
-        GridKernalContext kctx = ctx.kernalContext();
-
-        kctx.exceptionRegistry().onException(shortMsg, ex);
-
-        ClusterNode node = ctx.discovery().localNode();
-
-        UnhandledExceptionEvent evt = new UnhandledExceptionEvent(node, shortMsg, ex, EVT_UNHANDLED_EXCEPTION);
-
-        kctx.event().record(evt);
-    }
-
-    /**
      * @param nodeId Node ID.
      * @param msg Message.
      * @param c Closure.

http://git-wip-us.apache.org/repos/asf/ignite/blob/e821dc00/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
index 97e59c1..7bd1a51 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
@@ -326,16 +326,6 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
     }
 
     /**
-     * Increment fails counter.
-     */
-    public void onUnhandledException() {
-        final boolean statsEnabled = cctx.config().isStatisticsEnabled();
-
-        if (statsEnabled)
-            metrics.incrementOnFails();
-    }
-
-    /**
      * Processes cache query request.
      *
      * @param sndId Sender node id.

http://git-wip-us.apache.org/repos/asf/ignite/blob/e821dc00/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryMetricsAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryMetricsAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryMetricsAdapter.java
index d25b7c4..99056a2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryMetricsAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryMetricsAdapter.java
@@ -172,11 +172,4 @@ public class GridCacheQueryMetricsAdapter implements QueryMetrics, Externalizabl
     @Override public String toString() {
         return S.toString(GridCacheQueryMetricsAdapter.class, this);
     }
-
-    /**
-     * Increment fails counter.
-     */
-    public void incrementOnFails() {
-        fails.increment();
-    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/e821dc00/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryResponse.java
index 2b86efe..8492c38 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryResponse.java
@@ -357,6 +357,6 @@ public class GridCacheQueryResponse extends GridCacheMessage implements GridCach
 
     /** {@inheritDoc} */
     @Override public String toString() {
-        return S.toString(GridCacheQueryResponse.class, this, super.toString());
+        return S.toString(GridCacheQueryResponse.class, this);
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/e821dc00/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java
----------------------------------------------------------------------
diff --git 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
index 4c91ea7..304d031 100644
--- 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
@@ -17,6 +17,28 @@
 
 package org.apache.ignite.internal.processors.cache.query.continuous;
 
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.NavigableSet;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.atomic.AtomicLong;
+import javax.cache.event.CacheEntryEvent;
+import javax.cache.event.CacheEntryEventFilter;
+import javax.cache.event.CacheEntryUpdatedListener;
+import javax.cache.event.EventType;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteLogger;
@@ -39,7 +61,6 @@ import org.apache.ignite.internal.processors.cache.GridCacheContext;
 import org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicUpdateFuture;
 import org.apache.ignite.internal.processors.cache.query.CacheQueryType;
-import org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager;
 import org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryManager.JCacheQueryLocalListener;
 import org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryManager.JCacheQueryRemoteFilter;
 import org.apache.ignite.internal.processors.continuous.GridContinuousBatch;
@@ -61,22 +82,8 @@ import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 import org.jsr166.ConcurrentLinkedDeque8;
 
-import javax.cache.event.CacheEntryEvent;
-import javax.cache.event.CacheEntryEventFilter;
-import javax.cache.event.CacheEntryUpdatedListener;
-import javax.cache.event.EventType;
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.atomic.AtomicLong;
-
 import static org.apache.ignite.events.EventType.EVT_CACHE_QUERY_EXECUTED;
 import static org.apache.ignite.events.EventType.EVT_CACHE_QUERY_OBJECT_READ;
-import static org.apache.ignite.internal.processors.cache.GridCacheIoManager.registerUnhandledException;
 
 /**
  * Continuous query handler.
@@ -681,17 +688,8 @@ public class CacheContinuousQueryHandler<K, V> implements GridContinuousHandler
             catch (IgniteCheckedException ex) {
                 if (ignoreClsNotFound)
                     assert internal;
-                else {
-                    String shortMsg = "Failed to unmarshal entry.";
-
-                    U.error(ctx.log(getClass()), shortMsg, ex);
-
-                    GridCacheQueryManager qryMgr = cctx.queries();
-
-                    qryMgr.onUnhandledException();
-
-                    registerUnhandledException(cctx, shortMsg, ex);
-                }
+                else
+                    U.error(ctx.log(getClass()), "Failed to unmarshal entry.", ex);
             }
         }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/e821dc00/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingContinuousQueryErrorTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingContinuousQueryErrorTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingContinuousQueryErrorTest.java
deleted file mode 100644
index 82f5f09..0000000
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingContinuousQueryErrorTest.java
+++ /dev/null
@@ -1,302 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.processors.cache;
-
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.atomic.AtomicInteger;
-import javax.cache.Cache;
-import javax.cache.event.CacheEntryEvent;
-import javax.cache.event.CacheEntryUpdatedListener;
-import org.apache.ignite.IgniteCache;
-import org.apache.ignite.IgniteException;
-import org.apache.ignite.cache.query.ContinuousQuery;
-import org.apache.ignite.cache.query.QueryCursor;
-import org.apache.ignite.cache.query.ScanQuery;
-import org.apache.ignite.cache.query.annotations.QuerySqlField;
-import org.apache.ignite.cluster.ClusterNode;
-import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.events.Event;
-import org.apache.ignite.events.EventType;
-import org.apache.ignite.events.UnhandledExceptionEvent;
-import org.apache.ignite.internal.IgniteEx;
-import org.apache.ignite.internal.processors.cache.query.GridCacheQueryMetricsAdapter;
-import org.apache.ignite.internal.util.lang.GridAbsPredicate;
-import org.apache.ignite.internal.util.typedef.X;
-import org.apache.ignite.lang.IgniteBiPredicate;
-import org.apache.ignite.lang.IgnitePredicate;
-import org.apache.ignite.testframework.GridTestUtils;
-import org.apache.ignite.thread.IgniteThread;
-
-/**
- * Checks behavior on exception while unmarshalling key for continuous query.
- */
-public class IgniteCacheP2pUnmarshallingContinuousQueryErrorTest extends IgniteCacheP2pUnmarshallingErrorTest {
-    /**
-     * {@inheritDoc}
-     */
-    @Override protected int gridCount() {
-        return 3;
-    }
-
-    /** Used inside InitialQuery listener. */
-    private static final CountDownLatch latch = new CountDownLatch(1);
-
-    /** Node where unmarshalling fails with exceptions. */
-    private static volatile String failNode;
-
-    /** Used to count UnhandledExceptionEvents at client node. */
-    private static final AtomicInteger cnt = new AtomicInteger();
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override protected CacheConfiguration cacheConfiguration(String gridName) throws Exception {
-        CacheConfiguration cacheCfg = super.cacheConfiguration(gridName);
-
-        cacheCfg.setStatisticsEnabled(true);
-
-        return cacheCfg;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override public void testResponseMessageOnUnmarshallingFailed() throws Exception {
-        IgniteEx client = grid(0);
-        IgniteEx node1 = grid(1);
-        IgniteEx node2 = grid(2);
-
-        assert client.configuration().isClientMode() &&
-            !node1.configuration().isClientMode() &&
-            !node2.configuration().isClientMode();
-
-        failNode = client.name();
-
-        client.events().localListen(new IgnitePredicate<Event>() {
-            @Override public boolean apply(Event evt) {
-                UnhandledExceptionEvent uex = (UnhandledExceptionEvent)evt;
-
-                assertTrue(X.getFullStackTrace(uex.getException()).
-                    contains("IOException: Class can not be unmarshalled"));
-
-                cnt.incrementAndGet();
-
-                return true;
-            }
-        }, EventType.EVT_UNHANDLED_EXCEPTION);
-
-        node1.events().localListen(new IgnitePredicate<Event>() {
-            @Override public boolean apply(Event evt) {
-                fail("This line should newer calls.");
-
-                return true;
-            }
-        }, EventType.EVT_UNHANDLED_EXCEPTION);
-
-        ContinuousQuery<TestKey, String> qry = new ContinuousQuery<>();
-
-        qry.setInitialQuery(new ScanQuery<>(new IgniteBiPredicate<TestKey, String>() {
-            @Override public boolean apply(TestKey key, String val) {
-                latch.countDown(); // Gives guarantee query initialized.
-
-                return true;
-            }
-        }));
-
-        qry.setLocalListener(new CacheEntryUpdatedListener<TestKey, String>() {
-            @Override public void onUpdated(Iterable<CacheEntryEvent<? extends TestKey, ? extends String>> evts) {
-                fail("This line should newer calls.");
-            }
-        });
-
-        validate(
-            0,//execs
-            0,//evts
-            0,//fails
-            client,
-            node1,
-            node2);
-
-        // Put element before creating QueryCursor.
-        putPrimary(node1);
-
-        try (QueryCursor<Cache.Entry<TestKey, String>> cur = client.cache(null).query(qry)) {
-            latch.await();
-
-            validate(
-                1,//execs
-                0,//evts
-                0,//fails
-                client,
-                node1,
-                node2);
-
-            putPrimary(node1);
-
-            validate(
-                1,//execs
-                1,//evts
-                1,//fails
-                client,
-                node1,
-                node2);
-
-            putPrimary(node2);
-
-            validate(
-                1,//execs
-                2,//evts
-                2,//fails
-                client,
-                node1,
-                node2);
-        }
-    }
-
-    /**
-     * @param ignite Ignite.
-     */
-    private void putPrimary(IgniteEx ignite) {
-        IgniteCache<TestKey, Object> cache = ignite.cache(null);
-
-        cache.put(generateNodeKeys(ignite, cache), "value");
-    }
-
-    /**
-     * @param execs Executions.
-     * @param evts Events.
-     * @param failsNum Fails number.
-     * @param client Client.
-     * @param node1 Node 1.
-     * @param node2 Node 2.
-     */
-    private void validate(final int execs, final int evts, final int failsNum, final IgniteEx client, IgniteEx node1,
-        IgniteEx node2) throws Exception {
-        assertTrue(GridTestUtils.waitForCondition(new GridAbsPredicate() {
-            @Override public boolean apply() {
-                return client.cache(null).queryMetrics().fails() == failsNum;
-            }
-        }, 5_000));
-
-        assertEquals(evts, cnt.intValue());
-
-        validateCacheQueryMetrics(client, execs, failsNum);
-        validateCacheQueryMetrics(node1, 0, 0);
-        validateCacheQueryMetrics(node2, 0, 0);
-    }
-
-    /**
-     * @param ignite Ignite.
-     * @param executions Executions.
-     * @param fails Fails.
-     */
-    private void validateCacheQueryMetrics(IgniteEx ignite, int executions, int fails) {
-        IgniteCache<Object, Object> cache = ignite.cache(null);
-
-        GridCacheQueryMetricsAdapter metr = (GridCacheQueryMetricsAdapter)cache.queryMetrics();
-
-        assertEquals(metr.executions(), executions);
-
-        assertEquals(metr.fails(), fails);
-    }
-
-    /**
-     * @param node Node.
-     * @param cache Cache.
-     */
-    private TestKey generateNodeKeys(IgniteEx node, IgniteCache<TestKey, Object> cache) {
-
-        ClusterNode locNode = node.localNode();
-
-        for (int ind = 0; ind < 100_000; ind++) {
-            TestKey key = new TestKey("key" + ind);
-
-            if (affinity(cache).isPrimary(locNode, key))
-                return key;
-        }
-
-        throw new IgniteException("Unable to find key keys as primary for cache.");
-    }
-
-    /**
-     *
-     * */
-    private static class TestKey implements Externalizable {
-        /**
-         * Field.
-         */
-        @QuerySqlField(index = true)
-        private String field;
-
-        /**
-         * Required by {@link Externalizable}.
-         */
-        public TestKey() {
-        }
-
-        /**
-         * @param field Test key 1.
-         */
-        public TestKey(String field) {
-            this.field = field;
-        }
-
-        /**
-         * {@inheritDoc}
-         */
-        @Override public boolean equals(Object o) {
-            if (this == o)
-                return true;
-            if (o == null || getClass() != o.getClass())
-                return false;
-
-            IgniteCacheP2pUnmarshallingContinuousQueryErrorTest.TestKey key = (IgniteCacheP2pUnmarshallingContinuousQueryErrorTest.TestKey)o;
-
-            return !(field != null ? !field.equals(key.field) : key.field != null);
-        }
-
-        /**
-         * {@inheritDoc}
-         */
-        @Override public int hashCode() {
-            return field != null ? field.hashCode() : 0;
-        }
-
-        /**
-         * {@inheritDoc}
-         */
-        @Override public void writeExternal(ObjectOutput out) throws IOException {
-            out.writeObject(field);
-        }
-
-        /**
-         * {@inheritDoc}
-         */
-        @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-            field = (String)in.readObject();
-
-            if (((IgniteThread)Thread.currentThread()).getGridName().equals(failNode))
-                throw new IOException("Class can not be unmarshalled.");
-
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/e821dc00/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheP2pUnmarshallingErrorTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheP2pUnmarshallingErrorTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheP2pUnmarshallingErrorTestSuite.java
index b45d134..dfc96dc 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheP2pUnmarshallingErrorTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheP2pUnmarshallingErrorTestSuite.java
@@ -19,7 +19,10 @@ package org.apache.ignite.testsuites;
 
 import java.util.Set;
 import junit.framework.TestSuite;
-import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.processors.cache.IgniteCacheP2pUnmarshallingErrorTest;
+import org.apache.ignite.internal.processors.cache.IgniteCacheP2pUnmarshallingNearErrorTest;
+import org.apache.ignite.internal.processors.cache.IgniteCacheP2pUnmarshallingRebalanceErrorTest;
+import org.apache.ignite.internal.processors.cache.IgniteCacheP2pUnmarshallingTxErrorTest;
 import org.apache.ignite.testframework.GridTestUtils;
 
 /**
@@ -46,7 +49,6 @@ public class IgniteCacheP2pUnmarshallingErrorTestSuite extends TestSuite {
         GridTestUtils.addTestIfNeeded(suite, IgniteCacheP2pUnmarshallingNearErrorTest.class, ignoredTests);
         GridTestUtils.addTestIfNeeded(suite, IgniteCacheP2pUnmarshallingRebalanceErrorTest.class, ignoredTests);
         GridTestUtils.addTestIfNeeded(suite, IgniteCacheP2pUnmarshallingTxErrorTest.class, ignoredTests);
-        GridTestUtils.addTestIfNeeded(suite, IgniteCacheP2pUnmarshallingContinuousQueryErrorTest.class, ignoredTests);
 
         return suite;
     }