Description
The JMSConduit.sendAndReceiveMessage should throw JMSException as in the caller JMSConduit.sendExchange we catch the JMSException and refresh the JMS connection so that we can get a useful retry with refreshed connection like
} catch (JMSException e) { // Close connection so it will be refreshed on next try ResourceCloser.close(connection); this.connection = null; this.staticReplyDestination = null; if (this.jmsListener != null) { this.jmsListener.shutdown(); } this.jmsListener = null; try { Thread.sleep(1000); } catch (InterruptedException e1) { // Ignore } throw JMSUtil.convertJmsException(e); } finally { closer.close(); }
ensure the connection get refreshed is important for example when the external jms broker get restarted.