[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mina-commits
Subject:    [1/2] mina git commit: Fix for DIRMINA-934/DIRMINA-1013
From:       elecharny () apache ! org
Date:       2015-10-07 16:31:23
Message-ID: 377ce360bc464c5b8e1cbf6d54fff7d6 () git ! apache ! org
[Download RAW message or body]

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


Fix for DIRMINA-934/DIRMINA-1013


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

Branch: refs/heads/2.0
Commit: 849e22afc822a5742756f5f729627cd4806ee717
Parents: bcf26ea
Author: Emmanuel Lécharny <elecharny@symas.com>
Authored: Wed Oct 7 18:30:25 2015 +0200
Committer: Emmanuel Lécharny <elecharny@symas.com>
Committed: Wed Oct 7 18:30:25 2015 +0200

----------------------------------------------------------------------
 .../apache/mina/filter/codec/ProtocolCodecFilter.java   | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina/blob/849e22af/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
                
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java \
b/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java index \
                c490226..30a1bcf 100644
--- a/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
+++ b/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
@@ -21,7 +21,6 @@ package org.apache.mina.filter.codec;
 
 import java.net.SocketAddress;
 import java.util.Queue;
-import java.util.concurrent.Semaphore;
 
 import org.apache.mina.core.buffer.IoBuffer;
 import org.apache.mina.core.file.FileRegion;
@@ -66,8 +65,6 @@ public class ProtocolCodecFilter extends IoFilterAdapter {
     /** The factory responsible for creating the encoder and decoder */
     private final ProtocolCodecFactory factory;
 
-    private final Semaphore lock = new Semaphore(1, true);
-
     /**
      * Creates a new instance of ProtocolCodecFilter, associating a factory
      * for the creation of the encoder and decoder.
@@ -228,9 +225,10 @@ public class ProtocolCodecFilter extends IoFilterAdapter {
         while (in.hasRemaining()) {
             int oldPos = in.position();
             try {
-                lock.acquire();
-                // Call the decoder with the read bytes
-                decoder.decode(session, in, decoderOut);
+                synchronized (session) {
+                    // Call the decoder with the read bytes
+                    decoder.decode(session, in, decoderOut);
+                }
                 // Finish decoding if no exception was thrown.
                 decoderOut.flush(nextFilter, session);
             } catch (Exception e) {
@@ -257,8 +255,6 @@ public class ProtocolCodecFilter extends IoFilterAdapter {
                 if (!(e instanceof RecoverableProtocolDecoderException) || \
(in.position() == oldPos)) {  break;
                 }
-            } finally {
-                lock.release();
             }
         }
     }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic