summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java6
1 files changed, 3 insertions, 3 deletions
diff --git a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java
index 94a0eebbb4..e459575974 100644
--- a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java
+++ b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java
@@ -301,8 +301,8 @@ public class MessageProducerImpl implements MessageProducer, QueueSender, TopicP
final org.apache.qpid.amqp_1_0.client.Message clientMessage = new org.apache.qpid.amqp_1_0.client.Message(msg.getSections());
DispositionAction action = null;
-
- if(_syncPublish)
+ final boolean doSync = _syncPublish || (deliveryMode == DeliveryMode.PERSISTENT && _session.getTxn() == null);
+ if(doSync)
{
action = new DispositionAction(_sender);
}
@@ -324,7 +324,7 @@ public class MessageProducerImpl implements MessageProducer, QueueSender, TopicP
throw jmsException;
}
- if(_syncPublish && !action.wasAccepted(_syncPublishTimeout))
+ if(doSync && !action.wasAccepted(_syncPublishTimeout))
{
if (action.getOutcome() instanceof Rejected)
{