Author: norman
Date: Thu Feb 17 11:39:29 2011
New Revision: 1071584

URL: http://svn.apache.org/viewvc?rev=1071584&view=rev
Log:
Make sure we only consume the line if no literal is used. This also helps for 
append requests which were "igoring" the first header of a message. See 
JAMES-1199

Modified:
    
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java

Modified: 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java?rev=1071584&r1=1071583&r2=1071584&view=diff
==============================================================================
--- 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java
 (original)
+++ 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java
 Thu Feb 17 11:39:29 2011
@@ -75,10 +75,10 @@ public class ImapRequestFrameDecoder ext
         ImapRequestLineReader reader;
         // check if we failed before and if we already know how much data we 
need to sucess next run
         Map<String,Object> attachment = (Map<String, Object>) 
ctx.getAttachment();
-       
+        int size = -1;
         if (attachment.containsKey(NEEDED_DATA)) {
             retry = true;
-            int size = (Integer) attachment.get(NEEDED_DATA);
+             size = (Integer) attachment.get(NEEDED_DATA);
             // now see if the buffer hold enough data to process.
             if (size != 
NettyImapRequestLineReader.NotEnoughDataException.UNKNOWN_SIZE && size > 
buffer.readableBytes()) {
                 
@@ -158,7 +158,12 @@ public class ImapRequestFrameDecoder ext
         
         try {      
             ImapMessage message = decoder.decode(reader, (ImapSession) 
attributes.get(channel));
-            reader.consumeLine();
+            
+            // if size is != -1 the case was a literal. if thats the case we 
should not consume the line
+            // See JAMES-1199
+            if (size == -1) {
+                reader.consumeLine();
+            }
             attachment.clear();
             return message;
         } catch (NettyImapRequestLineReader.NotEnoughDataException e) {



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

Reply via email to