Author: norman
Date: Thu Nov 24 13:58:59 2011
New Revision: 1205834
URL: http://svn.apache.org/viewvc?rev=1205834&view=rev
Log:
Make sure all registered IFutureSPFResultListener get executed even on an
unchecked Exception. See JSPF-95
Modified:
james/jspf/trunk/resolver/src/main/java/org/apache/james/jspf/executor/FutureSPFResult.java
james/jspf/trunk/resolver/src/main/java/org/apache/james/jspf/impl/SPF.java
Modified:
james/jspf/trunk/resolver/src/main/java/org/apache/james/jspf/executor/FutureSPFResult.java
URL:
http://svn.apache.org/viewvc/james/jspf/trunk/resolver/src/main/java/org/apache/james/jspf/executor/FutureSPFResult.java?rev=1205834&r1=1205833&r2=1205834&view=diff
==============================================================================
---
james/jspf/trunk/resolver/src/main/java/org/apache/james/jspf/executor/FutureSPFResult.java
(original)
+++
james/jspf/trunk/resolver/src/main/java/org/apache/james/jspf/executor/FutureSPFResult.java
Thu Nov 24 13:58:59 2011
@@ -22,6 +22,7 @@ package org.apache.james.jspf.executor;
import java.util.ArrayList;
import java.util.List;
+import org.apache.james.jspf.core.Logger;
import org.apache.james.jspf.core.SPFSession;
@@ -34,12 +35,19 @@ public class FutureSPFResult extends SPF
private boolean isReady;
private List<IFutureSPFResultListener> listeners;
private int waiters;
+ private final Logger log;
public FutureSPFResult() {
+ this.log = null;
isReady = false;
}
- /**
+ public FutureSPFResult(Logger log) {
+ this.log = log;
+ this.isReady = false;
+ }
+
+ /**
* Set SPFResult using the given SPFsession
*
* @param session
@@ -54,7 +62,14 @@ public class FutureSPFResult extends SPF
}
if (listeners != null) {
for (IFutureSPFResultListener listener : listeners) {
- listener.onSPFResult(this);
+ try {
+ listener.onSPFResult(this);
+ } catch (Throwable e) {
+ // catch exception. See JSPF-95
+ if (log != null) {
+ log.warn("An exception was thrown by the listener
" + listener, e);
+ }
+ }
}
}
listeners = null;
Modified:
james/jspf/trunk/resolver/src/main/java/org/apache/james/jspf/impl/SPF.java
URL:
http://svn.apache.org/viewvc/james/jspf/trunk/resolver/src/main/java/org/apache/james/jspf/impl/SPF.java?rev=1205834&r1=1205833&r2=1205834&view=diff
==============================================================================
--- james/jspf/trunk/resolver/src/main/java/org/apache/james/jspf/impl/SPF.java
(original)
+++ james/jspf/trunk/resolver/src/main/java/org/apache/james/jspf/impl/SPF.java
Thu Nov 24 13:58:59 2011
@@ -310,7 +310,7 @@ public class SPF implements SPFChecker {
spfData.pushChecker(resultHandler);
spfData.pushChecker(this);
- FutureSPFResult ret = new FutureSPFResult();
+ FutureSPFResult ret = new FutureSPFResult(log);
executor.execute(spfData, ret);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]