# 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() {

Reply via email to