You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2017/11/29 17:30:00 UTC
svn commit: r1816642 -
/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/TimeoutEnabledQueueRequestor.java
Author: pmouawad
Date: Wed Nov 29 17:30:00 2017
New Revision: 1816642
URL: http://svn.apache.org/viewvc?rev=1816642&view=rev
Log:
Bug 61829 - JMS Point-to-Point : If Receive Queue is empty and a timeout is set, it is not taken into account
Fixes closing order and don't close session as it's closed by caller
Bugzilla Id: 61829
Modified:
jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/TimeoutEnabledQueueRequestor.java
Modified: jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/TimeoutEnabledQueueRequestor.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/TimeoutEnabledQueueRequestor.java?rev=1816642&r1=1816641&r2=1816642&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/TimeoutEnabledQueueRequestor.java (original)
+++ jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/TimeoutEnabledQueueRequestor.java Wed Nov 29 17:30:00 2017
@@ -45,7 +45,6 @@ import org.slf4j.LoggerFactory;
*/
public class TimeoutEnabledQueueRequestor {
private static final Logger logger = LoggerFactory.getLogger(TimeoutEnabledQueueRequestor.class);
- private Session session; // The queue session to which the queue belongs.
private TemporaryQueue tempQueue;
private MessageProducer sender;
private MessageConsumer receiver;
@@ -58,8 +57,8 @@ public class TimeoutEnabledQueueRequesto
* with a delivery mode of either <code>AUTO_ACKNOWLEDGE</code> or
* <code>DUPS_OK_ACKNOWLEDGE</code>.
*
- * @paramsession the <code>QueueSession</code> the queue belongs to
- * @paramqueue the queue to performthe request/reply call on
+ * @param session the <code>QueueSession</code> the queue belongs to, session will not be closed by {@link TimeoutEnabledQueueRequestor}
+ * @param queue the queue to performthe request/reply call on
*
* @exception JMSException
* if the JMS provider fails to create the
@@ -69,7 +68,6 @@ public class TimeoutEnabledQueueRequesto
* if an invalid queue is specified.
*/
public TimeoutEnabledQueueRequestor(Session session, Queue queue) throws JMSException {
- this.session = session;
tempQueue = session.createTemporaryQueue();
sender = session.createProducer(queue);
receiver = session.createConsumer(tempQueue);
@@ -80,7 +78,7 @@ public class TimeoutEnabledQueueRequesto
* the <code>JMSReplyTo</code> destination, and only one reply per request
* is expected. The method blocks indefinitely until a message arrives!
*
- * @parammessage the message to send
+ * @param message the message to send
*
* @return the reply message
*
@@ -139,15 +137,19 @@ public class TimeoutEnabledQueueRequesto
public void close() throws JMSException {
String queueName = tempQueue.getQueueName();
try {
- tempQueue.delete();
- } catch (Exception e) {
- logger.error("Error deleting tempQueue {}", queueName);
+ sender.close();
+ } catch (Exception e1) {
+ logger.error("Error closing sender");
}
- // publisher and consumer created by constructor are implicitly closed.
try {
- session.close();
+ receiver.close();
+ } catch (Exception e1) {
+ logger.error("Error closing receiver");
+ }
+ try {
+ tempQueue.delete();
} catch (Exception e) {
- logger.error("Error closing session", e);
+ logger.error("Error deleting tempQueue {}", queueName);
}
}
}