You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2016/02/12 17:18:04 UTC

[1/3] mina git commit: Fixed some warnings

Repository: mina
Updated Branches:
  refs/heads/2.0 6f9992e92 -> a7d16a8a9


Fixed some warnings

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

Branch: refs/heads/2.0
Commit: ab3b93337dacd1ff7f6473ce71efa7b277b96019
Parents: 53120dc
Author: Emmanuel Lécharny <el...@symas.com>
Authored: Wed Feb 10 09:40:46 2016 +0100
Committer: Emmanuel Lécharny <el...@symas.com>
Committed: Wed Feb 10 09:40:46 2016 +0100

----------------------------------------------------------------------
 .../org/apache/mina/example/echoserver/EchoProtocolHandler.java  | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina/blob/ab3b9333/mina-example/src/main/java/org/apache/mina/example/echoserver/EchoProtocolHandler.java
----------------------------------------------------------------------
diff --git a/mina-example/src/main/java/org/apache/mina/example/echoserver/EchoProtocolHandler.java b/mina-example/src/main/java/org/apache/mina/example/echoserver/EchoProtocolHandler.java
index ffc2bdb..4524812 100644
--- a/mina-example/src/main/java/org/apache/mina/example/echoserver/EchoProtocolHandler.java
+++ b/mina-example/src/main/java/org/apache/mina/example/echoserver/EchoProtocolHandler.java
@@ -20,12 +20,10 @@
 package org.apache.mina.example.echoserver;
 
 import org.apache.mina.core.buffer.IoBuffer;
-import org.apache.mina.core.future.WriteFuture;
 import org.apache.mina.core.service.IoHandler;
 import org.apache.mina.core.service.IoHandlerAdapter;
 import org.apache.mina.core.session.IdleStatus;
 import org.apache.mina.core.session.IoSession;
-import org.apache.mina.core.write.WriteRequest;
 import org.apache.mina.filter.ssl.SslFilter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -63,7 +61,7 @@ public class EchoProtocolHandler extends IoHandlerAdapter {
 
     @Override
     public void exceptionCaught(IoSession session, Throwable cause) {
-        session.close(true);
+        session.closeNow();
     }
 
     @Override


[2/3] mina git commit: Applied correctly the patch submitted by Terence Marks (https://issues.apache.org/jira/browse/DIRMINA-1019) that I stupidely fucked up before injecting it a first time. My bad.

Posted by el...@apache.org.
Applied correctly the patch submitted by Terence Marks
(https://issues.apache.org/jira/browse/DIRMINA-1019) that I stupidely
fucked up before injecting it a first time. My bad.

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

Branch: refs/heads/2.0
Commit: 1d43747721ea26664bf272738f6c33b6439cef30
Parents: ab3b933
Author: Emmanuel Lécharny <el...@symas.com>
Authored: Fri Feb 12 11:33:29 2016 +0100
Committer: Emmanuel Lécharny <el...@symas.com>
Committed: Fri Feb 12 11:33:29 2016 +0100

----------------------------------------------------------------------
 .../org/apache/mina/filter/ssl/SslHandler.java  | 43 ++++++++++++--------
 1 file changed, 27 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina/blob/1d437477/mina-core/src/main/java/org/apache/mina/filter/ssl/SslHandler.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/filter/ssl/SslHandler.java b/mina-core/src/main/java/org/apache/mina/filter/ssl/SslHandler.java
index 6706627..fa51002 100644
--- a/mina-core/src/main/java/org/apache/mina/filter/ssl/SslHandler.java
+++ b/mina-core/src/main/java/org/apache/mina/filter/ssl/SslHandler.java
@@ -23,6 +23,7 @@ import java.net.InetSocketAddress;
 import java.nio.ByteBuffer;
 import java.util.Queue;
 import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.locks.ReentrantLock;
 
 import javax.net.ssl.SSLEngine;
@@ -115,7 +116,11 @@ class SslHandler {
      * for data being produced during the handshake). */
     private boolean writingEncryptedData;
 
+    /** A lock to protect the SSL flush of events */
     private ReentrantLock sslLock = new ReentrantLock();
+    
+    /** A counter of schedules events */
+    private final AtomicInteger scheduled_events = new AtomicInteger(0);
 
     /**
      * Create a new SSL Handler, and initialize it.
@@ -300,24 +305,29 @@ class SslHandler {
     }
 
     /* no qualifier */void flushScheduledEvents() {
-        // Fire events only when the lock is available for this handler.
-        IoFilterEvent event;
-        try {
-            sslLock.lock();
+        scheduled_events.incrementAndGet();
 
-            // We need synchronization here inevitably because filterWrite can be
-            // called simultaneously and cause 'bad record MAC' integrity error.
-            while ((event = filterWriteEventQueue.poll()) != null) {
-                NextFilter nextFilter = event.getNextFilter();
-                nextFilter.filterWrite(session, (WriteRequest) event.getParameter());
+        // Fire events only when the lock is available for this handler.
+        if (sslLock.tryLock()) {
+            IoFilterEvent event;
+            
+            try {
+                do {
+                    // We need synchronization here inevitably because filterWrite can be
+                    // called simultaneously and cause 'bad record MAC' integrity error.
+                    while ((event = filterWriteEventQueue.poll()) != null) {
+                        NextFilter nextFilter = event.getNextFilter();
+                        nextFilter.filterWrite(session, (WriteRequest) event.getParameter());
+                    }
+            
+                    while ((event = messageReceivedEventQueue.poll()) != null) {
+                        NextFilter nextFilter = event.getNextFilter();
+                        nextFilter.messageReceived(session, event.getParameter());
+                    }
+                } while (scheduled_events.decrementAndGet() > 0);
+            } finally {
+                sslLock.unlock();
             }
-        } finally {
-            sslLock.unlock();
-        }
-
-        while ((event = messageReceivedEventQueue.poll()) != null) {
-            NextFilter nextFilter = event.getNextFilter();
-            nextFilter.messageReceived(session, event.getParameter());
         }
     }
 
@@ -440,6 +450,7 @@ class SslHandler {
         while (src.hasRemaining()) {
 
             SSLEngineResult result = sslEngine.wrap(src, outNetBuffer.buf());
+            
             if (result.getStatus() == SSLEngineResult.Status.OK) {
                 if (result.getHandshakeStatus() == SSLEngineResult.HandshakeStatus.NEED_TASK) {
                     doTasks();


[3/3] mina git commit: Merge branch '2.0' of https://git-wip-us.apache.org/repos/asf/mina into 2.0

Posted by el...@apache.org.
Merge branch '2.0' of https://git-wip-us.apache.org/repos/asf/mina into 2.0


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

Branch: refs/heads/2.0
Commit: a7d16a8a933086bca0a2b7c4d638328b6602fa48
Parents: 1d43747 6f9992e
Author: Emmanuel Lécharny <el...@symas.com>
Authored: Fri Feb 12 17:17:43 2016 +0100
Committer: Emmanuel Lécharny <el...@symas.com>
Committed: Fri Feb 12 17:17:43 2016 +0100

----------------------------------------------------------------------
 NOTICE-bin.txt | 2 +-
 NOTICE.txt     | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------