You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2015/05/22 17:44:46 UTC

[07/10] incubator-ignite git commit: # IGNITE-709 Bug Fix: don't hang discovery worker if failed to unmarshal custom message.

# IGNITE-709 Bug Fix: don't hang discovery worker if failed to unmarshal custom message.


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

Branch: refs/heads/ignite-23
Commit: c9819825c0ef4bc66915a464fd6d79543b39a773
Parents: b195327
Author: sevdokimov <se...@gridgain.com>
Authored: Fri May 22 17:05:47 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Fri May 22 17:05:47 2015 +0300

----------------------------------------------------------------------
 .../spi/discovery/tcp/TcpDiscoverySpi.java      | 22 ++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c9819825/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 67a562a..0164e5c 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -4533,16 +4533,26 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                 else {
                     stats.onRingMessageReceived(msg);
 
+                    DiscoverySpiCustomMessage msgObj = null;
+
                     try {
-                        DiscoverySpiCustomMessage msgObj = marsh.unmarshal(msg.messageBytes(), U.gridClassLoader());
+                        msgObj = marsh.unmarshal(msg.messageBytes(), U.gridClassLoader());
+                    }
+                    catch (Throwable e) {
+                        U.error(log, "Failed to unmarshal discovery custom message.", e);
+                    }
 
+                    if (msgObj != null) {
                         DiscoverySpiCustomMessage nextMsg = msgObj.ackMessage();
 
-                        if (nextMsg != null)
-                            addMessage(new TcpDiscoveryCustomEventMessage(getLocalNodeId(), marsh.marshal(nextMsg)));
-                    }
-                    catch (IgniteCheckedException e) {
-                        U.error(log, "Failed to unmarshal discovery custom message.", e);
+                        if (nextMsg != null) {
+                            try {
+                                addMessage(new TcpDiscoveryCustomEventMessage(getLocalNodeId(), marsh.marshal(nextMsg)));
+                            }
+                            catch (IgniteCheckedException e) {
+                                U.error(log, "Failed to marshal discovery custom message.", e);
+                            }
+                        }
                     }
 
                     addMessage(new TcpDiscoveryDiscardMessage(getLocalNodeId(), msg.id()));