diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java b/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java index d8a5b06e7b..8c4d8f592f 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java @@ -305,9 +305,15 @@ public class CachingConnectionFactory extends SingleConnectionFactory { if (active) { synchronized (this.sessionList) { if (this.sessionList.size() < getSessionCacheSize()) { - logicalClose((Session) proxy); - // Remain open in the session list. - return null; + try { + logicalClose((Session) proxy); + // Remain open in the session list. + return null; + } + catch (JMSException ex) { + logger.trace("Logical close of cached JMS Session failed - discarding it", ex); + // Proceed to physical close from here... + } } } }