Author: norman
Date: Fri Oct 15 17:44:30 2010
New Revision: 1023037

URL: http://svn.apache.org/viewvc?rev=1023037&view=rev
Log:
fix possible NPE

Modified:
    
james/imap/trunk/mailbox/src/main/java/org/apache/james/mailbox/util/MailboxEventDispatcher.java

Modified: 
james/imap/trunk/mailbox/src/main/java/org/apache/james/mailbox/util/MailboxEventDispatcher.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/mailbox/src/main/java/org/apache/james/mailbox/util/MailboxEventDispatcher.java?rev=1023037&r1=1023036&r2=1023037&view=diff
==============================================================================
--- 
james/imap/trunk/mailbox/src/main/java/org/apache/james/mailbox/util/MailboxEventDispatcher.java
 (original)
+++ 
james/imap/trunk/mailbox/src/main/java/org/apache/james/mailbox/util/MailboxEventDispatcher.java
 Fri Oct 15 17:44:30 2010
@@ -22,6 +22,7 @@ package org.apache.james.mailbox.util;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
+import java.util.List;
 import java.util.NoSuchElementException;
 import java.util.Set;
 import java.util.concurrent.CopyOnWriteArraySet;
@@ -112,10 +113,17 @@ public class MailboxEventDispatcher impl
      * @see 
org.apache.james.mailbox.MailboxListener#event(org.apache.james.mailbox.MailboxListener.Event)
      */
     public void event(Event event) {
+        List<MailboxListener> closed = new ArrayList<MailboxListener>();
         for (Iterator<MailboxListener> iter = listeners.iterator(); 
iter.hasNext();) {
             MailboxListener mailboxListener = iter.next();
-            mailboxListener.event(event);
+            if (mailboxListener.isClosed() == false) {
+                mailboxListener.event(event);
+            } else {
+                closed.add(mailboxListener);
+            }
         }
+        for (int i = 0; i < closed.size(); i++)
+            listeners.remove(closed.get(i));
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to