[jboss-svn-commits] JBL Code SVN: r27391 - labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jul 1 11:39:34 EDT 2009
Author: kevin.conner at jboss.com
Date: 2009-07-01 11:39:34 -0400 (Wed, 01 Jul 2009)
New Revision: 27391
Modified:
labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsConnectionPool.java
Log:
Cleanup and retry session creation on connection error: JBESB-2480
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsConnectionPool.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsConnectionPool.java 2009-07-01 15:37:19 UTC (rev 27390)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsConnectionPool.java 2009-07-01 15:39:34 UTC (rev 27391)
@@ -210,6 +210,34 @@
*/
public synchronized JmsSession getSession(final int acknowledgeMode) throws NamingException, JMSException, ConnectionException
{
+ try
+ {
+ return internalGetSession(acknowledgeMode) ;
+ }
+ catch (final JMSException jmse)
+ {
+ /*
+ * JBoss Messaging may drop the connection from the server side.
+ * We check for IllegalStateException as this appears to be the indicator
+ * exception used by JBoss Messaging when the connection has disappeared.
+ */
+ Throwable cause = jmse ;
+ while(cause.getCause() != null)
+ {
+ cause = cause.getCause() ;
+ }
+ if (cause instanceof IllegalStateException)
+ {
+ removeSessionPool() ;
+ return internalGetSession(acknowledgeMode) ;
+ }
+ throw jmse ;
+ }
+ }
+
+ private synchronized JmsSession internalGetSession(final int acknowledgeMode)
+ throws NamingException, JMSException, ConnectionException
+ {
try {
initConnection() ;
} catch (final NamingContextException nce) {
More information about the jboss-svn-commits
mailing list