From 6820d7bfff9714c580bada0d6c286a4b21ef5fad Mon Sep 17 00:00:00 2001 From: Sajinie Date: Tue, 20 Aug 2024 16:14:01 +0530 Subject: [PATCH] Removing jms polling consumer reference from jms task to avoid dangling consumers in broker side Fixes https://github.com/wso2/micro-integrator/issues/3460 --- .../carbon/inbound/endpoint/protocol/jms/JMSTask.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/components/mediation/inbound-endpoints/org.wso2.micro.integrator.inbound.endpoint/src/main/java/org/wso2/carbon/inbound/endpoint/protocol/jms/JMSTask.java b/components/mediation/inbound-endpoints/org.wso2.micro.integrator.inbound.endpoint/src/main/java/org/wso2/carbon/inbound/endpoint/protocol/jms/JMSTask.java index ec2bf6262c..56e9ddd551 100644 --- a/components/mediation/inbound-endpoints/org.wso2.micro.integrator.inbound.endpoint/src/main/java/org/wso2/carbon/inbound/endpoint/protocol/jms/JMSTask.java +++ b/components/mediation/inbound-endpoints/org.wso2.micro.integrator.inbound.endpoint/src/main/java/org/wso2/carbon/inbound/endpoint/protocol/jms/JMSTask.java @@ -43,7 +43,11 @@ public JMSTask(JMSPollingConsumer jmsPollingConsumer, long interval) { protected void taskExecute() { logger.debug("Executing JMS Task Execution."); - jmsPollingConsumer.execute(); + if (jmsPollingConsumer != null) { + jmsPollingConsumer.execute(); + } else { + logger.error("JMS Polling Consumer is closed. Cannot execute the task."); + } } @Override @@ -58,6 +62,8 @@ public void init(SynapseEnvironment synapseEnvironment) { public void destroy() { logger.debug("Destroying JMS Task."); jmsPollingConsumer.destroy(); + // removing the consumer reference to avoid dangling consumers in broker side. + jmsPollingConsumer = null; } /**