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/11/08 15:35:53 UTC
svn commit: r1032585 - in
/james/server/trunk/core-library/src/main/java/org/apache/james/core:
MimeMessageInputStream.java MimeMessageWrapper.java
Author: norman
Date: Mon Nov 8 14:35:53 2010
New Revision: 1032585
URL: http://svn.apache.org/viewvc?rev=1032585&view=rev
Log:
Reuse code of MimeMessageInputStream in MimeMessageWrapper
Modified:
james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageInputStream.java
james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageWrapper.java
Modified: james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageInputStream.java
URL: http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageInputStream.java?rev=1032585&r1=1032584&r2=1032585&view=diff
==============================================================================
--- james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageInputStream.java (original)
+++ james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageInputStream.java Mon Nov 8 14:35:53 2010
@@ -36,17 +36,25 @@ import org.apache.james.util.stream.Comb
public class MimeMessageInputStream extends InputStream {
private InputStream in;
+ /**
+ * Provide an {@link InputStream} over a {@link MimeMessage}.
+ *
+ * @param message the message to wrap
+ * @param tryCast try to cast the {@link MimeMessage} to {@link MimeMessageCopyOnWriteProxy} / {@link MimeMessageWrapper} to do some optimized processing
+ * if possible
+ * @throws MessagingException
+ */
@SuppressWarnings("unchecked")
- public MimeMessageInputStream(MimeMessage message) throws MessagingException {
+ public MimeMessageInputStream(MimeMessage message, boolean tryCast) throws MessagingException {
MimeMessage m = message;
// check if we need to use the wrapped message
- if (m instanceof MimeMessageCopyOnWriteProxy) {
+ if (tryCast && m instanceof MimeMessageCopyOnWriteProxy) {
m = ((MimeMessageCopyOnWriteProxy) m).getWrappedMessage();
}
// check if we can use optimized operations
- if (m instanceof MimeMessageWrapper) {
+ if (tryCast && m instanceof MimeMessageWrapper) {
in = ((MimeMessageWrapper) m).getMessageInputStream();
} else {
try {
@@ -67,6 +75,15 @@ public class MimeMessageInputStream exte
}
+ /**
+ * Use true as tryCast parameter
+ *
+ * {@link #MimeMessageInputStream(MimeMessage, boolean)}
+ */
+ public MimeMessageInputStream(MimeMessage message) throws MessagingException {
+ this(message, true);
+ }
+
@Override
public int read() throws IOException {
return in.read();
Modified: james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageWrapper.java
URL: http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageWrapper.java?rev=1032585&r1=1032584&r2=1032585&view=diff
==============================================================================
--- james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageWrapper.java (original)
+++ james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageWrapper.java Mon Nov 8 14:35:53 2010
@@ -40,7 +40,6 @@ import javax.mail.util.SharedByteArrayIn
import org.apache.commons.io.IOUtils;
import org.apache.james.lifecycle.Disposable;
import org.apache.james.lifecycle.LifecycleUtil;
-import org.apache.james.util.stream.CombinedInputStream;
/**
* This object wraps a MimeMessage, only loading the underlying MimeMessage
@@ -575,7 +574,7 @@ public class MimeMessageWrapper
throw new MessagingException("Unable to get inputstream", e);
}
} else {
- return new CombinedInputStream(new InputStream[] { new InternetHeadersInputStream(getAllHeaderLines()), getRawInputStream()});
+ return new MimeMessageInputStream(this, false);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org