You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2010/04/07 12:59:52 UTC

svn commit: r931501 - in /james/imap/trunk: decode/src/main/java/org/apache/james/imap/decode/base/ processor/src/main/java/org/apache/james/imap/processor/

Author: norman
Date: Wed Apr  7 10:59:52 2010
New Revision: 931501

URL: http://svn.apache.org/viewvc?rev=931501&view=rev
Log:
* Make sure we consume the message on exceptions when try to append it to the mailbox
* only call eol() one time, when reaching the end of the EolInputStream

Modified:
    james/imap/trunk/decode/src/main/java/org/apache/james/imap/decode/base/EolInputStream.java
    james/imap/trunk/decode/src/main/java/org/apache/james/imap/decode/base/FixedLengthInputStream.java
    james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AppendProcessor.java

Modified: james/imap/trunk/decode/src/main/java/org/apache/james/imap/decode/base/EolInputStream.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/decode/src/main/java/org/apache/james/imap/decode/base/EolInputStream.java?rev=931501&r1=931500&r2=931501&view=diff
==============================================================================
--- james/imap/trunk/decode/src/main/java/org/apache/james/imap/decode/base/EolInputStream.java (original)
+++ james/imap/trunk/decode/src/main/java/org/apache/james/imap/decode/base/EolInputStream.java Wed Apr  7 10:59:52 2010
@@ -34,7 +34,8 @@ import org.apache.james.imap.decode.Imap
 public class EolInputStream extends FilterInputStream{
 
     private ImapRequestLineReader reader;
-
+    private boolean eolCalled = false;
+    
     public EolInputStream(ImapRequestLineReader reader, InputStream in) {
         super(in);
         this.reader = reader;
@@ -62,9 +63,15 @@ public class EolInputStream extends Filt
     }
 
     private void eol(int i ) throws IOException{
-        if (i == -1) {
+        if (i == -1 && eolCalled == false) {
             reader.eol();
+            eolCalled = true;
         }
     }
+
+    @Override
+    public int available() throws IOException {
+        return in.available();
+    }
     
 }

Modified: james/imap/trunk/decode/src/main/java/org/apache/james/imap/decode/base/FixedLengthInputStream.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/decode/src/main/java/org/apache/james/imap/decode/base/FixedLengthInputStream.java?rev=931501&r1=931500&r2=931501&view=diff
==============================================================================
--- james/imap/trunk/decode/src/main/java/org/apache/james/imap/decode/base/FixedLengthInputStream.java (original)
+++ james/imap/trunk/decode/src/main/java/org/apache/james/imap/decode/base/FixedLengthInputStream.java Wed Apr  7 10:59:52 2010
@@ -81,7 +81,7 @@ public class FixedLengthInputStream exte
     }
 
     public int available() throws IOException {
-        return 0;
+        return (int) (length - pos);
     }
 
     public void close() throws IOException {

Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AppendProcessor.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AppendProcessor.java?rev=931501&r1=931500&r2=931501&view=diff
==============================================================================
--- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AppendProcessor.java (original)
+++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AppendProcessor.java Wed Apr  7 10:59:52 2010
@@ -74,25 +74,31 @@ public class AppendProcessor extends Abs
             appendToMailbox(messageIn, datetime, flags, session, tag,
                     command, mailbox, responder, fullMailboxName);
         } catch (MailboxNotFoundException e) {
-            // consume stream
-            try {
-                while(messageIn.read() != -1);
-            } catch (IOException e1) {
-                // just consume
-            }
+            // consume message on exception
+            cosume(messageIn);
             
 //          Indicates that the mailbox does not exist
 //          So TRY CREATE
             tryCreate(session, tag, command, responder, e);
             
         } catch (MailboxException e) {
-           
+            // consume message on exception
+            cosume(messageIn);
+            
 //          Some other issue
             no(command, tag, responder, e, session);
             
         }
 
     }
+    
+    private void cosume(InputStream in) {
+        try {
+            while(in.read() != -1);
+        } catch (IOException e1) {
+            // just consume
+        } 
+    }
 
     /**
      * Issues a TRY CREATE response.



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org