Author: gertv
Date: Thu Jun 10 13:21:52 2010
New Revision: 953318
URL: http://svn.apache.org/viewvc?rev=953318&view=rev
Log:
SMX4NMR-194: JBI Cluster engine exception at shutdown
Modified:
servicemix/smx4/nmr/trunk/jbi/cluster/requestor/src/main/java/org/apache/servicemix/jbi/cluster/requestor/ActiveMQJmsRequestorPool.java
Modified:
servicemix/smx4/nmr/trunk/jbi/cluster/requestor/src/main/java/org/apache/servicemix/jbi/cluster/requestor/ActiveMQJmsRequestorPool.java
URL:
http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/jbi/cluster/requestor/src/main/java/org/apache/servicemix/jbi/cluster/requestor/ActiveMQJmsRequestorPool.java?rev=953318&r1=953317&r2=953318&view=diff
==============================================================================
---
servicemix/smx4/nmr/trunk/jbi/cluster/requestor/src/main/java/org/apache/servicemix/jbi/cluster/requestor/ActiveMQJmsRequestorPool.java
(original)
+++
servicemix/smx4/nmr/trunk/jbi/cluster/requestor/src/main/java/org/apache/servicemix/jbi/cluster/requestor/ActiveMQJmsRequestorPool.java
Thu Jun 10 13:21:52 2010
@@ -71,18 +71,36 @@ public class ActiveMQJmsRequestorPool ex
return true;
}
+ public void destroy() {
+ if (sharedConnectionEnabled()) {
+ removeExceptionListener();
+ }
+ super.destroy();
+ }
+
public void onException(JMSException exception) {
handleListenerException(exception);
if (sharedConnectionEnabled()) {
try {
+ removeExceptionListener();
refreshSharedConnection();
- } catch (JMSException e) {
+ } catch (Exception e) {
logger.debug("Error while refreshing shared connection", e);
}
}
recreateConsumers(true);
}
+ private void removeExceptionListener() {
+ try {
+ getSharedConnection().setExceptionListener(null);
+ } catch (JMSException e) {
+ logger.debug("Unable to remove exception listener", e);
+ } catch (SharedConnectionNotInitializedException e) {
+ // ignore this -- there was no need to unset the exception
listener in the first place
+ }
+ }
+
protected Connection createConnection() throws JMSException {
Connection con = getConnectionFactory().createConnection();
con.setExceptionListener(this);