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 2011/06/26 18:41:52 UTC
svn commit: r1139832 -
/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java
Author: norman
Date: Sun Jun 26 16:41:52 2011
New Revision: 1139832
URL: http://svn.apache.org/viewvc?rev=1139832&view=rev
Log:
Make sure we can process headers of any length
Modified:
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java
Modified: james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java?rev=1139832&r1=1139831&r2=1139832&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java (original)
+++ james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java Sun Jun 26 16:41:52 2011
@@ -41,7 +41,10 @@ import org.apache.james.mailbox.store.st
import org.apache.james.mailbox.store.streaming.InputStreamContent.Type;
import org.apache.james.mailbox.store.streaming.PartContentBuilder;
import org.apache.james.mime4j.MimeException;
+import org.apache.james.mime4j.parser.AbstractContentHandler;
import org.apache.james.mime4j.parser.Field;
+import org.apache.james.mime4j.parser.MimeEntityConfig;
+import org.apache.james.mime4j.parser.MimeStreamParser;
/**
*
@@ -55,22 +58,29 @@ public class ResultUtils {
static final Charset US_ASCII = Charset.forName("US-ASCII");
public static List<MessageResult.Header> createHeaders(final Message<?> document) throws IOException {
- org.apache.james.mime4j.message.Header header = new org.apache.james.mime4j.message.Header(document.getHeaderContent());
-
final List<MessageResult.Header> results = new ArrayList<MessageResult.Header>();
- List<Field> fields = header.getFields();
- for (Field field: fields) {
- String fieldValue = field.getBody();
- if (fieldValue.endsWith("\r\f")) {
- fieldValue = fieldValue.substring(0,fieldValue.length() - 2);
+ MimeEntityConfig config = new MimeEntityConfig();
+ config.setMaxLineLen(-1);
+ final MimeStreamParser parser = new MimeStreamParser(config);
+ parser.setContentHandler(new AbstractContentHandler() {
+ @Override
+ public void endHeader() {
+ parser.stop();
}
- if (fieldValue.startsWith(" ")) {
- fieldValue = fieldValue.substring(1);
+ @Override
+ public void field(Field field) throws MimeException {
+ String fieldValue = field.getBody();
+ if (fieldValue.endsWith("\r\f")) {
+ fieldValue = fieldValue.substring(0,fieldValue.length() - 2);
+ }
+ if (fieldValue.startsWith(" ")) {
+ fieldValue = fieldValue.substring(1);
+ }
+
+ final ResultHeader resultHeader = new ResultHeader(field.getName(), fieldValue);
+ results.add(resultHeader);
}
-
- final ResultHeader resultHeader = new ResultHeader(field.getName(), fieldValue);
- results.add(resultHeader);
- }
+ });
return results;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org