# ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/98587c6c Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/98587c6c Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/98587c6c Branch: refs/heads/ignite-721 Commit: 98587c6cd66c42eee2fd8a27ad0715599ef8665b Parents: 35537fa Author: sboikov <semen.boi...@inria.fr> Authored: Sat Apr 11 00:38:39 2015 +0300 Committer: sboikov <semen.boi...@inria.fr> Committed: Sat Apr 11 00:38:39 2015 +0300 ---------------------------------------------------------------------- .../ignite/spi/discovery/tcp/TcpDiscoverySpi.java | 7 ++++--- .../tcp/messages/TcpDiscoveryCustomEventMessage.java | 14 +++++++++++++- 2 files changed, 17 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/98587c6c/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 3301303..5392331 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 @@ -1257,7 +1257,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov msgBytes = marsh.marshal(evt); - msgWorker.addMessage(new TcpDiscoveryCustomEventMessage(getLocalNodeId(), msgBytes)); + msgWorker.addMessage(new TcpDiscoveryCustomEventMessage(getLocalNodeId(), evt, msgBytes)); } catch (IgniteCheckedException e) { throw new IgniteSpiException("Failed to marshal custom event: " + evt, e); @@ -4600,10 +4600,11 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov TcpDiscoveryNode node = ring.node(msg.creatorNodeId()); - Serializable msgObj; + Serializable msgObj = msg.message(); try { - msgObj = marsh.unmarshal(msg.messageBytes(), customMessageClassLoader(node)); + if (msgObj == null) + msgObj = marsh.unmarshal(msg.messageBytes(), customMessageClassLoader(node)); } catch (IgniteCheckedException e) { throw new IgniteSpiException("Failed to unmarshal discovery custom message.", e); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/98587c6c/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java index 3144b93..4e42f2d 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java @@ -19,6 +19,7 @@ package org.apache.ignite.spi.discovery.tcp.messages; import org.apache.ignite.internal.util.typedef.internal.*; +import java.io.*; import java.util.*; /** @@ -30,19 +31,30 @@ public class TcpDiscoveryCustomEventMessage extends TcpDiscoveryAbstractMessage private static final long serialVersionUID = 0L; /** */ + private transient Serializable msg; + + /** */ private final byte[] msgBytes; /** * @param creatorNodeId Creator node id. * @param msgBytes Serialized message. */ - public TcpDiscoveryCustomEventMessage(UUID creatorNodeId, byte[] msgBytes) { + public TcpDiscoveryCustomEventMessage(UUID creatorNodeId, Serializable msg, byte[] msgBytes) { super(creatorNodeId); + this.msg = msg; this.msgBytes = msgBytes; } /** + * @return Message. + */ + public Serializable message() { + return msg; + } + + /** * @return Serialized message. */ public byte[] messageBytes() {