You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2011/11/24 12:06:17 UTC

svn commit: r1205788 - /james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponseImpl.java

Author: norman
Date: Thu Nov 24 11:06:17 2011
New Revision: 1205788

URL: http://svn.apache.org/viewvc?rev=1205788&view=rev
Log:
Make sure all registered listeners get executed even if an unchecked exception was thrown. See PROTOCOLS-52

Modified:
    james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponseImpl.java

Modified: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponseImpl.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponseImpl.java?rev=1205788&r1=1205787&r2=1205788&view=diff
==============================================================================
--- james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponseImpl.java (original)
+++ james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponseImpl.java Thu Nov 24 11:06:17 2011
@@ -22,6 +22,9 @@ package org.apache.james.protocols.api;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * {@link FutureResponse} implementation which wraps a {@link AbstractResponse} implementation
  * 
@@ -29,6 +32,8 @@ import java.util.List;
  */
 public class FutureResponseImpl implements FutureResponse{
 
+	private final static Logger LOGGER = LoggerFactory.getLogger(FutureResponseImpl.class);
+	
     protected Response response;
     private List<ResponseListener> listeners;
     private int waiters;
@@ -103,7 +108,11 @@ public class FutureResponseImpl implemen
                 notifyAll();
             }
             for (ResponseListener listener: listeners) {
-                listener.onResponse(this);
+                try {
+                    listener.onResponse(this);
+                } catch (Throwable e) {
+                    LOGGER.warn("An exception was thrown by the listener " + listener, e);
+                }
             }
             listeners = null;
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org