Author: norman Date: Fri Aug 7 18:02:01 2009 New Revision: 802110 URL: http://svn.apache.org/viewvc?rev=802110&view=rev Log: Correctly support searching messages
Modified: labs/hupa/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java Modified: labs/hupa/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java?rev=802110&r1=802109&r2=802110&view=diff ============================================================================== --- labs/hupa/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java (original) +++ labs/hupa/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java Fri Aug 7 18:02:01 2009 @@ -33,7 +33,10 @@ import javax.mail.internet.MimeUtility; import javax.mail.internet.MimeMessage.RecipientType; import javax.mail.search.BodyTerm; +import javax.mail.search.FromStringTerm; +import javax.mail.search.OrTerm; import javax.mail.search.SearchTerm; +import javax.mail.search.SubjectTerm; import javax.servlet.http.HttpSession; import net.customware.gwt.dispatch.server.ExecutionContext; @@ -104,8 +107,15 @@ if (searchString == null) { messages = f.getMessages(exists - end, exists - start); } else { - SearchTerm term = new BodyTerm(searchString); - messages = f.search(term); + SearchTerm subjectTerm = new SubjectTerm(searchString); + SearchTerm fromTerm = new FromStringTerm(searchString); + SearchTerm bodyTerm = new BodyTerm(searchString); + SearchTerm orTerm = new OrTerm(new SearchTerm[]{subjectTerm,fromTerm,bodyTerm}); + messages = f.search(orTerm); + if (end > messages.length) { + end = messages.length -1; + } + exists = messages.length; } // Setup fetchprofile to limit the stuff which is fetched @@ -181,6 +191,9 @@ content.setAttachments(hasAttachment(m.getContent())); msg.setMessageContent(content); mList.add(0, msg); + if (i > action.getOffset()) { + break; + } } f.close(false); @@ -193,6 +206,23 @@ } } + private List<Message> copy(Message[] messages) { + List<Message> mList = new ArrayList<Message>(); + if (messages != null) { + for (int i = 0; i <messages.length; i++) { + mList.add(messages[i]); + } + } + return mList; + } + private Message[] copy(List<Message> mList) { + Message[] mArray = new Message[mList.size()]; + for (int i = 0; i < mList.size(); i++) { + mArray[i] = mList.get(i); + } + return mArray; + } + private boolean hasAttachment(Object content) throws MessagingException { if (content instanceof Multipart) { Multipart mp = (Multipart) content; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@labs.apache.org For additional commands, e-mail: commits-h...@labs.apache.org