Author: norman
Date: Thu Mar 25 11:50:56 2010
New Revision: 927355
URL: http://svn.apache.org/viewvc?rev=927355&view=rev
Log:
Check if we are in selected state before try to fetch messages from mailbox.
This prevent a NPE (IMAP-124)
Modified:
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
Modified:
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java?rev=927355&r1=927354&r2=927355&view=diff
==============================================================================
---
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
(original)
+++
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
Thu Mar 25 11:50:56 2010
@@ -56,10 +56,18 @@ public class FetchProcessor extends Abst
super(next, mailboxManager, factory);
}
+ /*
+ * (non-Javadoc)
+ * @see
org.apache.james.imap.processor.base.AbstractChainedProcessor#isAcceptable(org.apache.james.imap.api.ImapMessage)
+ */
protected boolean isAcceptable(ImapMessage message) {
return (message instanceof FetchRequest);
}
+ /*
+ * (non-Javadoc)
+ * @see
org.apache.james.imap.processor.AbstractMailboxProcessor#doProcess(org.apache.james.imap.api.message.request.ImapRequest,
org.apache.james.imap.api.process.ImapSession, java.lang.String,
org.apache.james.imap.api.ImapCommand,
org.apache.james.imap.api.process.ImapProcessor.Responder)
+ */
protected void doProcess(ImapRequest message, ImapSession session,
String tag, ImapCommand command, Responder responder) {
final FetchRequest request = (FetchRequest) message;
@@ -69,6 +77,11 @@ public class FetchProcessor extends Abst
try {
FetchGroup resultToFetch = getFetchGroup(fetch);
final Mailbox mailbox = getSelectedMailbox(session);
+
+ if (mailbox == null) {
+ throw new MessagingException("Session not in SELECTED state");
+ }
+
for (int i = 0; i < idSet.length; i++) {
final FetchResponseBuilder builder = new FetchResponseBuilder(
new EnvelopeBuilder(session.getLog()));
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]