Author: wstrzalka
Date: Thu Sep 22 19:59:28 2011
New Revision: 1174351

URL: http://svn.apache.org/viewvc?rev=1174351&view=rev
Log:
Fix for adding/removing listeners. See MAILBOX-134

Modified:
    
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/AbstractDelegatingMailboxListener.java

Modified: 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/AbstractDelegatingMailboxListener.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/AbstractDelegatingMailboxListener.java?rev=1174351&r1=1174350&r2=1174351&view=diff
==============================================================================
--- 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/AbstractDelegatingMailboxListener.java
 (original)
+++ 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/AbstractDelegatingMailboxListener.java
 Thu Sep 22 19:59:28 2011
@@ -113,13 +113,13 @@ public abstract class AbstractDelegating
         Map<MailboxPath, List<MailboxListener>> listeners = getListeners();
         synchronized (listeners) {
             List<MailboxListener> mListeners = listeners.get(path);
-            if (mListeners != null) {
-                mListeners.remove(listener);
-                if (mListeners.isEmpty()) {
-                    listeners.remove(path);
-                }
+            if (mListeners == null) {
+                mListeners = new ArrayList<MailboxListener>();
+                listeners.put(path, mListeners);
             }
-                  
+            if (mListeners.contains(listener) == false) {
+                mListeners.add(listener);
+            }        
         }
     }
 
@@ -145,12 +145,11 @@ public abstract class AbstractDelegating
         Map<MailboxPath, List<MailboxListener>> listeners = getListeners();
         synchronized (listeners) {
             List<MailboxListener> mListeners = listeners.get(mailboxPath);
-            if (mListeners == null) {
-                mListeners = new ArrayList<MailboxListener>();
-                listeners.put(mailboxPath, mListeners);
-            }
-            if (mListeners.contains(listener) == false) {
-                mListeners.add(listener);
+            if (mListeners != null) {
+                mListeners.remove(listener);
+                if (mListeners.isEmpty()) {
+                    listeners.remove(mailboxPath);
+                }
             }        
         }        
     }



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

Reply via email to