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: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to