Author: norman
Date: Thu Sep 3 11:16:04 2009
New Revision: 810894
URL: http://svn.apache.org/viewvc?rev=810894&view=rev
Log:
Try to avoid fetching the whole message whenever possible
Move setting raw headers to ExposeMessageHandler
Modified:
labs/hupa/server/src/main/java/org/apache/hupa/server/handler/ExposeMessageHandler.java
labs/hupa/server/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java
Modified:
labs/hupa/server/src/main/java/org/apache/hupa/server/handler/ExposeMessageHandler.java
URL:
http://svn.apache.org/viewvc/labs/hupa/server/src/main/java/org/apache/hupa/server/handler/ExposeMessageHandler.java?rev=810894&r1=810893&r2=810894&view=diff
==============================================================================
---
labs/hupa/server/src/main/java/org/apache/hupa/server/handler/ExposeMessageHandler.java
(original)
+++
labs/hupa/server/src/main/java/org/apache/hupa/server/handler/ExposeMessageHandler.java
Thu Sep 3 11:16:04 2009
@@ -150,6 +150,8 @@
f.close(false);
msg.setMessageContent(content);
+
msg.getHeader().setRawHeader(message.getAllHeaders().toString());
+
return msg;
} catch (Exception e) {
logger.error("Unable to expose msg for user " + user +
" in folder "+ folder + " with uid "+ msg.getUid(),e);
Modified:
labs/hupa/server/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java
URL:
http://svn.apache.org/viewvc/labs/hupa/server/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java?rev=810894&r1=810893&r2=810894&view=diff
==============================================================================
---
labs/hupa/server/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java
(original)
+++
labs/hupa/server/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java
Thu Sep 3 11:16:04 2009
@@ -19,6 +19,7 @@
package org.apache.hupa.server.handler;
+import java.io.IOException;
import java.util.ArrayList;
import javax.mail.Address;
@@ -133,9 +134,7 @@
// loop over the fetched messages
for (int i = 0; i < messages.length; i++) {
Message m = messages[i];
-
MessageHeader newHeader = new MessageHeader();
-
newHeader.setRawHeader(m.getAllHeaders().toString());
newHeader.setFrom(m.getFrom()[0].toString().trim());
ArrayList<String> to = new ArrayList<String>();
@@ -203,7 +202,7 @@
msg.setTags(tags);
MessageContent content = new MessageContent();
-
content.setAttachments(hasAttachment(m.getContent()));
+ content.setAttachments(hasAttachment(m));
msg.setMessageContent(content);
mList.add(0, msg);
if (i > action.getOffset()) {
@@ -221,21 +220,32 @@
}
}
- private boolean hasAttachment(Object content) throws MessagingException
{
- if (content instanceof Multipart) {
- Multipart mp = (Multipart) content;
- if (mp.getCount() > 1) {
- for (int i = 0 ; i < mp.getCount(); i++) {
- String disp = mp.getBodyPart(i).getDisposition();
- if ( disp != null &&
disp.equalsIgnoreCase(Part.ATTACHMENT)) {
- return true;
- }
- }
- }
-
-
- }
- return false;
+ private boolean hasAttachment(Message message) throws
MessagingException {
+ if (message.getContentType().startsWith("multipart/")) {
+ try {
+ Object content;
+
+ content = message.getContent();
+
+ if (content instanceof Multipart) {
+ Multipart mp = (Multipart) content;
+ if (mp.getCount() > 1) {
+ for (int i = 0; i <
mp.getCount(); i++) {
+ String disp =
mp.getBodyPart(i).getDisposition();
+ if (disp != null
+ &&
disp.equalsIgnoreCase(Part.ATTACHMENT)) {
+ return true;
+ }
+ }
+ }
+
+ }
+ } catch (IOException e) {
+ logger.error("Error while get content of
message " + message.getMessageNumber());
+ }
+
+ }
+ return false;
}
/*
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]