Repository: mina
Updated Branches:
  refs/heads/2.0 79c4f4173 -> 9b5c07f92


Fix for DIRMINA-1019


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

Branch: refs/heads/2.0
Commit: 9b5c07f92d3de0d587cbfdc007756313fb39de12
Parents: 79c4f41
Author: Emmanuel Lécharny <[email protected]>
Authored: Wed Oct 7 18:33:42 2015 +0200
Committer: Emmanuel Lécharny <[email protected]>
Committed: Wed Oct 7 18:33:42 2015 +0200

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


http://git-wip-us.apache.org/repos/asf/mina/blob/9b5c07f9/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 356933d..c905d04 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
@@ -116,7 +116,7 @@ class SslHandler {
      * for data being produced during the handshake). */
     private boolean writingEncryptedData;
 
-    private Lock sslLock = new ReentrantLock();
+    private ReentrantLock sslLock = new ReentrantLock();
 
     /**
      * Create a new SSL Handler, and initialize it.
@@ -302,25 +302,23 @@ class SslHandler {
 
     /* no qualifier */void flushScheduledEvents() {
         // Fire events only when the lock is available for this handler.
-        if (sslLock.tryLock()) {
-
-            IoFilterEvent event;
+        IoFilterEvent event;
+        try {
+            sslLock.lock();
 
             // We need synchronization here inevitably because filterWrite can 
be
             // called simultaneously and cause 'bad record MAC' integrity 
error.
-            try {
-                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());
-                }
-            } finally {
-                sslLock.unlock();
+            while ((event = filterWriteEventQueue.poll()) != null) {
+                NextFilter nextFilter = event.getNextFilter();
+                nextFilter.filterWrite(session, (WriteRequest) 
event.getParameter());
             }
+        } finally {
+            sslLock.unlock();
+        }
+
+        while ((event = messageReceivedEventQueue.poll()) != null) {
+            NextFilter nextFilter = event.getNextFilter();
+            nextFilter.messageReceived(session, event.getParameter());
         }
     }
 

Reply via email to