Author: norman
Date: Sat Feb  6 18:16:09 2010
New Revision: 907264

URL: http://svn.apache.org/viewvc?rev=907264&view=rev
Log:
fix the LineLengthExceedException throwing

Modified:
    
james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/codec/CRLFTerminatedLineDecoder.java

Modified: 
james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/codec/CRLFTerminatedLineDecoder.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/codec/CRLFTerminatedLineDecoder.java?rev=907264&r1=907263&r2=907264&view=diff
==============================================================================
--- 
james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/codec/CRLFTerminatedLineDecoder.java
 (original)
+++ 
james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/codec/CRLFTerminatedLineDecoder.java
 Sat Feb  6 18:16:09 2010
@@ -49,9 +49,7 @@
      */
     protected boolean doDecode(IoSession session, IoBuffer in, 
ProtocolDecoderOutput out) throws Exception {
        
-        if (maxLineLength != -1 && in.capacity() > maxLineLength) {
-            throw new LineLengthExceededException(maxLineLength, 
in.capacity());
-        }
+      
 
         // Remember the initial position.
         int start = in.position();
@@ -59,9 +57,15 @@
         
         // Now find the first CRLF in the buffer.
         byte previous = 0;
+        int count = 0;
         while (in.hasRemaining()) {
             byte current = in.get();
-
+            count++;
+            
+            if (maxLineLength != -1 && count > maxLineLength) {
+                throw new LineLengthExceededException(maxLineLength, 
in.capacity());
+            }
+            
             if (previous == '\r' && current == '\n') {
                 // Remember the current position and limit.
                 int position = in.position();



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to