You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by re...@apache.org on 2021/09/02 14:39:08 UTC
[cxf] branch master updated: Delete temporary queue when it is used
(#826)
This is an automated email from the ASF dual-hosted git repository.
reta pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/master by this push:
new ce10808 Delete temporary queue when it is used (#826)
ce10808 is described below
commit ce10808c887f6715e4126479cf942c485d02dc7a
Author: valentin-matignon <87...@users.noreply.github.com>
AuthorDate: Thu Sep 2 16:38:59 2021 +0200
Delete temporary queue when it is used (#826)
* Delete temporary queue when it is used
* Delete temporary queues in JMSConfiguration
* handle JMSException directly in resetCachedReplyDestination method
* Call JMSConfiguration.resetCachedReplyDestination() after shutdownListeners()
* Call JMSConfiguration.resetCachedReplyDestination() before ResourceCloser.close(...)
* Checkstyle correction
---
.../main/java/org/apache/cxf/transport/jms/JMSConduit.java | 5 +++--
.../java/org/apache/cxf/transport/jms/JMSConfiguration.java | 13 +++++++++++++
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java
index abc9650..030ce3e 100644
--- a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java
+++ b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java
@@ -127,7 +127,7 @@ public class JMSConduit extends AbstractConduit implements JMSExchangeSender, Me
private void trySetExListener(Connection conn) {
try {
conn.setExceptionListener(new ExceptionListener() {
-
+
@Override
public void onException(JMSException exception) {
jmsConfig.resetCachedReplyDestination();
@@ -186,9 +186,9 @@ public class JMSConduit extends AbstractConduit implements JMSExchangeSender, Me
if (exchange.get(JMSUtil.JMS_MESSAGE_CONSUMER) != null) {
ResourceCloser.close(exchange.get(JMSUtil.JMS_MESSAGE_CONSUMER));
}
+ jmsConfig.resetCachedReplyDestination();
ResourceCloser.close(connection);
this.connection = null;
- jmsConfig.resetCachedReplyDestination();
}
this.staticReplyDestination = null;
try {
@@ -511,6 +511,7 @@ public class JMSConduit extends AbstractConduit implements JMSExchangeSender, Me
}
public synchronized void close() {
shutdownListeners();
+ jmsConfig.resetCachedReplyDestination();
ResourceCloser.close(connection);
connection = null;
LOG.log(Level.FINE, "JMSConduit closed ");
diff --git a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConfiguration.java b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConfiguration.java
index a1034ba..44e7477 100644
--- a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConfiguration.java
+++ b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConfiguration.java
@@ -19,16 +19,20 @@
package org.apache.cxf.transport.jms;
import java.util.Properties;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
+import javax.jms.TemporaryQueue;
import javax.naming.NamingException;
import javax.transaction.TransactionManager;
import org.apache.cxf.common.injection.NoJSR250Annotations;
+import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.transport.jms.util.DestinationResolver;
import org.apache.cxf.transport.jms.util.JMSDestinationResolver;
import org.apache.cxf.transport.jms.util.JndiHelper;
@@ -40,6 +44,8 @@ public class JMSConfiguration {
*/
public static final int DEFAULT_VALUE = -1;
+ private static final Logger LOG = LogUtils.getL7dLogger(JMSConfiguration.class);
+
private volatile ConnectionFactory connectionFactory;
private Properties jndiEnvironment;
private String connectionFactoryName;
@@ -489,6 +495,13 @@ public class JMSConfiguration {
public void resetCachedReplyDestination() {
synchronized (this) {
+ if (replyDestinationDest instanceof TemporaryQueue) {
+ try {
+ ((TemporaryQueue) replyDestinationDest).delete();
+ } catch (JMSException exception) {
+ LOG.log(Level.WARNING, "Exception on temporary queue deletion", exception);
+ }
+ }
this.replyDestinationDest = null;
}
}