Author: norman
Date: Fri Sep 25 15:10:11 2009
New Revision: 818874
URL: http://svn.apache.org/viewvc?rev=818874&view=rev
Log:
Update message count when fetching messages (Hupa-28)
Modified:
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/events/MessagesReceivedEvent.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/FetchMessagesResult.java
Modified:
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java
URL:
http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java?rev=818874&r1=818873&r2=818874&view=diff
==============================================================================
---
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java
(original)
+++
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java
Fri Sep 25 15:10:11 2009
@@ -60,12 +60,13 @@
ExecutionContext context) throws ActionException {
User user = getUser(action.getSessionId());
IMAPFolder folder = action.getFolder();
+ com.sun.mail.imap.IMAPFolder f = null;
try {
IMAPStore store = cache.get(user);
int start = action.getStart();
int offset = action.getOffset();
- com.sun.mail.imap.IMAPFolder f =
(com.sun.mail.imap.IMAPFolder)store.getFolder(folder.getFullName());
+ f =
(com.sun.mail.imap.IMAPFolder)store.getFolder(folder.getFullName());
// check if the folder is open, if not open it read only
if (f.isOpen() == false) {
@@ -76,18 +77,26 @@
// if the folder is empty we have no need to process
if (exists == 0) {
- return new FetchMessagesResult(new
ArrayList<org.apache.hupa.shared.data.Message>(),start,offset,exists);
+ return new FetchMessagesResult(new
ArrayList<org.apache.hupa.shared.data.Message>(),start,offset,exists,0);
}
Message[] messages = getMessagesToConvert(f,action);
- return new FetchMessagesResult(convert(action, f,
messages),start,offset,exists);
+ return new FetchMessagesResult(convert(action, f,
messages),start,offset,exists,f.getUnreadMessageCount());
} catch (Exception e) {
logger.error("Error while fetching headers for user " +
user.getName() + " in folder " + folder,e);
throw new ActionException(
"Error while fetching headers for user
" + user.getName() + " in folder " + folder);
+ } finally {
+ if (f != null && f.isOpen()) {
+ try {
+ f.close(false);
+ } catch (MessagingException e) {
+ // we don't care to much about an
exception on close here...
+ }
+ }
}
}
@@ -174,7 +183,6 @@
break;
}
}
- f.close(false);
return mList;
}
Modified:
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/events/MessagesReceivedEvent.java
URL:
http://svn.apache.org/viewvc/james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/events/MessagesReceivedEvent.java?rev=818874&r1=818873&r2=818874&view=diff
==============================================================================
---
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/events/MessagesReceivedEvent.java
(original)
+++
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/events/MessagesReceivedEvent.java
Fri Sep 25 15:10:11 2009
@@ -20,6 +20,7 @@
import java.util.ArrayList;
+import org.apache.hupa.shared.data.IMAPFolder;
import org.apache.hupa.shared.data.Message;
import com.google.gwt.event.shared.GwtEvent;
@@ -27,14 +28,22 @@
public class MessagesReceivedEvent extends
GwtEvent<MessagesReceivedEventHandler>{
public static Type<MessagesReceivedEventHandler> TYPE = new
Type<MessagesReceivedEventHandler>();
private ArrayList<Message> messages;
+ private IMAPFolder folder;
- public MessagesReceivedEvent(ArrayList<Message> messages) {
+ public MessagesReceivedEvent(IMAPFolder folder, ArrayList<Message>
messages) {
this.messages = messages;
+ this.folder = folder;
}
public ArrayList<Message> getMessages() {
return messages;
}
+
+ public IMAPFolder getFolder() {
+ return folder;
+ }
+
+
@Override
protected void dispatch(MessagesReceivedEventHandler handler) {
handler.onMessagesReceived(this);
Modified:
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/FetchMessagesResult.java
URL:
http://svn.apache.org/viewvc/james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/FetchMessagesResult.java?rev=818874&r1=818873&r2=818874&view=diff
==============================================================================
---
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/FetchMessagesResult.java
(original)
+++
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/FetchMessagesResult.java
Fri Sep 25 15:10:11 2009
@@ -53,16 +53,18 @@
private int start;
private int offset;
private int realCount;
+ private int realUnreadCount;
@SuppressWarnings("unused")
private FetchMessagesResult() {
}
- public FetchMessagesResult(ArrayList<Message> messages,int start,int
offset,int realCount) {
+ public FetchMessagesResult(ArrayList<Message> messages,int start,int
offset,int realCount, int realUnreadCount) {
this.messages = messages;
this.start = start;
this.offset = offset;
this.realCount = realCount;
+ this.realUnreadCount = realUnreadCount;
}
public ArrayList<Message> getMessages() {
@@ -80,4 +82,8 @@
public int getRealCount() {
return realCount;
}
+
+ public int getRealUnreadCount() {
+ return realUnreadCount;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]