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 b608b46a49..90dd3fd739 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 @@ -298,9 +298,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... + } } } }