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]