Author: norman
Date: Wed Mar 24 12:03:19 2010
New Revision: 927023

URL: http://svn.apache.org/viewvc?rev=927023&view=rev
Log:
Use a parser with no line length limit when append messages. Limit the line 
length should be handled by an smtpserver not the mailboxmanager (IMAP-122)

Modified:
    
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java

Modified: 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java?rev=927023&r1=927022&r2=927023&view=diff
==============================================================================
--- 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java
 (original)
+++ 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java
 Wed Mar 24 12:03:19 2010
@@ -57,6 +57,7 @@ import org.apache.james.imap.store.mail.
 import org.apache.james.imap.store.transaction.TransactionalMapper;
 import org.apache.james.mime4j.MimeException;
 import org.apache.james.mime4j.descriptor.MaximalBodyDescriptor;
+import org.apache.james.mime4j.parser.MimeEntityConfig;
 import org.apache.james.mime4j.parser.MimeTokenStream;
 
 /**
@@ -151,8 +152,13 @@ public abstract class StoreMailbox<Id> i
                 final long uid = mailbox.getLastUid();
                 final int size = messageBytes.length;
                 final int bodyStartOctet = bodyStartOctet(messageBytes);
-                
-                final MimeTokenStream parser = 
MimeTokenStream.createMaximalDescriptorStream();
+
+                // Disable line length... This should be handled by the smtp 
server component and not the parser itself
+                // https://issues.apache.org/jira/browse/IMAP-122
+                MimeEntityConfig config = new MimeEntityConfig();
+                config.setMaximalBodyDescriptor(true);
+                config.setMaxLineLen(-1);
+                final ConfigurableMimeTokenStream parser = new 
ConfigurableMimeTokenStream(config);
                
                 parser.setRecursionMode(MimeTokenStream.M_NO_RECURSE);
                 parser.parse(new ByteArrayInputStream(messageBytes));
@@ -619,4 +625,12 @@ public abstract class StoreMailbox<Id> i
         return new MailboxMetaData(recent, permanentFlags, uidValidity, 
uidNext, messageCount, unseenCount, firstUnseen, isWriteable());
     }
     
+    
+    private final class ConfigurableMimeTokenStream extends MimeTokenStream {
+        
+        public ConfigurableMimeTokenStream(MimeEntityConfig config) {
+            super(config);
+        }
+    }
+    
 }



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

Reply via email to