You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by je...@apache.org on 2014/12/07 22:35:07 UTC

mina git commit: Fix for DIRMINA-999

Repository: mina
Updated Branches:
  refs/heads/trunk f59036b58 -> 244bc2584


Fix for DIRMINA-999


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

Branch: refs/heads/trunk
Commit: 244bc2584e53301d494637c78a229f5a6ceb161e
Parents: f59036b
Author: Jeff MAURY <je...@jeffmaury.com>
Authored: Sun Dec 7 22:34:55 2014 +0100
Committer: Jeff MAURY <je...@jeffmaury.com>
Committed: Sun Dec 7 22:34:55 2014 +0100

----------------------------------------------------------------------
 .../mina/transport/nio/AbstractNioSession.java  |  1 +
 .../transport/nio/NioTcpClientReleaseTest.java  | 30 ++++++++++++++++++++
 2 files changed, 31 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina/blob/244bc258/core/src/main/java/org/apache/mina/transport/nio/AbstractNioSession.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/mina/transport/nio/AbstractNioSession.java b/core/src/main/java/org/apache/mina/transport/nio/AbstractNioSession.java
index f2bc4c2..c66fd1f 100644
--- a/core/src/main/java/org/apache/mina/transport/nio/AbstractNioSession.java
+++ b/core/src/main/java/org/apache/mina/transport/nio/AbstractNioSession.java
@@ -326,6 +326,7 @@ public abstract class AbstractNioSession extends AbstractIoSession {
 
                         // we was flushing writes, now we to the close
                         channelClose();
+                        processSessionClosed();
                     } else {
                         // no more write event needed
                         selectorLoop.modifyRegistration(false, !isReadSuspended(), false, (SelectorListener) this,

http://git-wip-us.apache.org/repos/asf/mina/blob/244bc258/core/src/test/java/org/apache/mina/transport/nio/NioTcpClientReleaseTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/mina/transport/nio/NioTcpClientReleaseTest.java b/core/src/test/java/org/apache/mina/transport/nio/NioTcpClientReleaseTest.java
index fc13539..f3a0064 100644
--- a/core/src/test/java/org/apache/mina/transport/nio/NioTcpClientReleaseTest.java
+++ b/core/src/test/java/org/apache/mina/transport/nio/NioTcpClientReleaseTest.java
@@ -80,4 +80,34 @@ public class NioTcpClientReleaseTest {
             closedLatch.countDown();
         }
     }
+    
+    /**
+     * Test added for DIRMINA-999
+     */
+    @Test
+    public void checkSessionCloseEventIsSentClientSideWhenImmediateIsFalse() throws IOException, InterruptedException,
+            ExecutionException {
+
+        NioTcpServer server = new NioTcpServer();
+        server.bind(0);
+
+        NioTcpClient client = new NioTcpClient();
+        final CountDownLatch closeCounter = new CountDownLatch(1);
+        client.setIoHandler(new AbstractIoHandler() {
+
+            @Override
+            public void sessionOpened(IoSession session) {
+                session.close(false);
+            }
+
+            @Override
+            public void sessionClosed(IoSession session) {
+                closeCounter.countDown();
+            }
+            
+        });
+        client.connect(new InetSocketAddress(server.getServerSocketChannel().socket().getLocalPort()));
+        assertTrue(closeCounter.await(WAIT_TIME, TimeUnit.MILLISECONDS));
+    }
+    
 }