diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyDisableTimeToLiveTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyDisableTimeToLiveTest.java index 5fd0e8348d7c8..6dd5ad5458633 100644 --- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyDisableTimeToLiveTest.java +++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyDisableTimeToLiveTest.java @@ -27,9 +27,14 @@ import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.jms.IllegalStateException; public class JmsInOnlyDisableTimeToLiveTest extends AbstractJMSTest { + private static final Logger LOG = LoggerFactory.getLogger(JmsInOnlyDisableTimeToLiveTest.class); + @Order(2) @RegisterExtension public static CamelContextExtension camelContextExtension = new DefaultCamelContextExtension(); @@ -144,17 +149,25 @@ public void someBusinessLogic() { // loop to empty queue while (true) { // receive the message from the queue, wait at most 2 sec - String msg = consumer.receiveBody("activemq:JmsInOnlyDisableTimeToLiveTest.in", 2000, String.class); - if (msg == null) { - // no more messages in queue - break; + try { + String msg = consumer.receiveBody("activemq:JmsInOnlyDisableTimeToLiveTest.in", 2000, String.class); + if (msg == null) { + // no more messages in queue + break; + } + // do something with body + msg = "Hello " + msg; + + // send it to the next queue + producer.sendBodyAndHeader("activemq:JmsInOnlyDisableTimeToLiveTest.out", msg, "number", count++); + } catch (IllegalStateException e) { + if (e.getCause() instanceof jakarta.jms.IllegalStateException) { + // session is closed + LOG.warn("JMS Session is closed"); + break; + } } - // do something with body - msg = "Hello " + msg; - - // send it to the next queue - producer.sendBodyAndHeader("activemq:JmsInOnlyDisableTimeToLiveTest.out", msg, "number", count++); } } }