[jboss-svn-commits] JBL Code SVN: r27091 - labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/internal/soa/esb/couriers.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jun 23 04:35:13 EDT 2009
Author: beve
Date: 2009-06-23 04:35:12 -0400 (Tue, 23 Jun 2009)
New Revision: 27091
Modified:
labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java
Log:
Attempting to fixa a deadlock issue.
Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java 2009-06-23 08:14:50 UTC (rev 27090)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java 2009-06-23 08:35:12 UTC (rev 27091)
@@ -280,7 +280,7 @@
private boolean jmsConnectRetry(Exception exc) {
- _logger.debug("JMS error. Attempting JMS reconnect.", exc);
+ _logger.info("JMS error. Attempting JMS reconnect.", exc);
synchronized(this) {
try {
@@ -421,6 +421,33 @@
}
javax.jms.Message jmsMessage = null;
+ try
+ {
+ jmsMessage = receiveOne(millis);
+ _logger.debug("Received : " + jmsMessage);
+ }
+ catch (final JMSException e)
+ {
+ if (!jmsConnectRetry(e))
+ {
+ throw new CourierTransportException("Caught exception during receive and could not reconnect! ",e);
+ }
+ // Try again...
+ try
+ {
+ jmsMessage = receiveOne(millis);
+ }
+ catch (final JMSException e2)
+ {
+ throw new CourierTransportException("Caught exception during delivery having successfully recovered! ",e2);
+ }
+ }
+ catch (Exception e)
+ {
+ throw new CourierTransportException("Exception caught : ", e);
+ }
+
+ /*
synchronized(this) {
if (null != _messageConsumer) {
try {
@@ -442,8 +469,17 @@
}
}
}
+ */
return jmsMessage;
} // ________________________________
+
+ private javax.jms.Message receiveOne(final long timeout) throws JMSException
+ {
+ if (_messageConsumer == null)
+ return null;
+
+ return _messageConsumer.receive(timeout);
+ }
/**
* Sets the strategy for handling the setting of properties on an outgoing
More information about the jboss-svn-commits
mailing list