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 2017/04/24 15:03:50 UTC

[27/50] [abbrv] ignite git commit: ignite-3054 - Small fixes

ignite-3054 - Small fixes


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

Branch: refs/heads/ignite-3054
Commit: 689f178f3fc8f9fd62d3d49c980725af4e147fa4
Parents: 3d21809
Author: dkarachentsev <dk...@gridgain.com>
Authored: Mon Dec 12 10:47:42 2016 +0300
Committer: dkarachentsev <dk...@gridgain.com>
Committed: Mon Dec 12 10:47:42 2016 +0300

----------------------------------------------------------------------
 .../ignite/spi/discovery/tcp/ServerImpl.java    | 27 ++++++++++----------
 1 file changed, 14 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/689f178f/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
index 0e92de5..f6d19e0 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
@@ -208,6 +208,9 @@ class ServerImpl extends TcpDiscoveryImpl {
     /** Node ID in GridNioSession. */
     private static final int NODE_ID_META = GridNioSessionMetaKey.nextUniqueKey();
 
+    /** ClientNioMessageWorker in GridNioSession. */
+    private static final int NIO_WORKER_META = GridNioSessionMetaKey.nextUniqueKey();
+
     /**
      * Number of tries to reopen ServerSocketChannel on 'SocketException: Invalid argument'.
      * <p>This error may happen on simultaneous server nodes startup on the same JVM.</p>
@@ -305,18 +308,12 @@ class ServerImpl extends TcpDiscoveryImpl {
                 log.debug("Stopping message worker on disconnect [remoteAddr=" + ses.remoteAddress() +
                     ", remote node ID=" + clientNodeId + ']');
 
-            final ClientMessageProcessor proc = clientMsgWorkers.get(clientNodeId);
+            final ClientNioMessageWorker proc = ses.meta(NIO_WORKER_META);
 
-            if (proc != null && proc instanceof ClientNioMessageWorker && ((ClientNioMessageWorker)proc).ses == ses) {
-                if (clientMsgWorkers.remove(clientNodeId, proc))
-                    ((ClientNioMessageWorker)proc).nonblockingStop();
-            }
-            else {
-                if (log.isDebugEnabled())
-                    log.error("Illegal ClientMessageProcessor: " + proc);
+            if (proc != null) {
+                clientMsgWorkers.remove(clientNodeId, proc);
 
-                if (ses.closeTime() == 0)
-                    ses.close();
+                proc.nonblockingStop();
             }
         }
 
@@ -5667,6 +5664,8 @@ class ServerImpl extends TcpDiscoveryImpl {
 
             ses = clientNioSrv.createSession(ch, meta).get();
 
+            ses.addMeta(NIO_WORKER_META, this);
+
             state = WorkerState.STARTED;
         }
 
@@ -5710,6 +5709,8 @@ class ServerImpl extends TcpDiscoveryImpl {
 
             nioWorkers.remove(this);
 
+            ses.removeMeta(NIO_WORKER_META);
+
             return res;
         }
 
@@ -5880,12 +5881,12 @@ class ServerImpl extends TcpDiscoveryImpl {
             final UUID nodeId = getConfiguredNodeId();
             final UUID clientNodeId = clientNodeId(ses);
 
-            final ClientNioMessageWorker clientMsgWrk = (ClientNioMessageWorker)clientMsgWorkers.get(clientNodeId);
+            final ClientNioMessageWorker clientMsgWrk = ses.meta(NIO_WORKER_META);
 
-            if (clientMsgWrk == null || clientMsgWrk.ses != ses) {
+            if (clientMsgWrk == null) {
                 if (log.isDebugEnabled())
                     log.debug("NIO Worker has been closed, drop message. [clientNodeId="
-                        + clientNodeId + ", message=" + msg + ", clientMsgWrk=" + clientMsgWrk + "]");
+                        + clientNodeId + ", message=" + msg + "]");
 
                 if (ses.closeTime() == 0)
                     ses.close();