Author: gnodet
Date: Thu Mar 22 06:44:26 2007
New Revision: 521262
URL: http://svn.apache.org/viewvc?view=rev&rev=521262
Log:
SM-893: Fix synchronization problems in JMS flow
Modified:
incubator/servicemix/branches/servicemix-3.1/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/nmr/flow/jms/JMSFlow.java
Modified:
incubator/servicemix/branches/servicemix-3.1/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/nmr/flow/jms/JMSFlow.java
URL:
http://svn.apache.org/viewvc/incubator/servicemix/branches/servicemix-3.1/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/nmr/flow/jms/JMSFlow.java?view=diff&rev=521262&r1=521261&r2=521262
==============================================================================
---
incubator/servicemix/branches/servicemix-3.1/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/nmr/flow/jms/JMSFlow.java
(original)
+++
incubator/servicemix/branches/servicemix-3.1/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/nmr/flow/jms/JMSFlow.java
Thu Mar 22 06:44:26 2007
@@ -393,7 +393,9 @@
if (broadcast) {
log.debug(broker.getContainer().getName() + ": broadcasting
info for " + event);
ObjectMessage msg =
broadcastSession.createObjectMessage(event);
- topicProducer.send(msg);
+ synchronized (topicProducer) {}
+ topicProducer.send(msg);
+ }
}
} catch (Exception e) {
log.error("Cannot create consumer for " + event.getEndpoint(), e);
@@ -410,7 +412,9 @@
if (broadcast) {
ObjectMessage msg =
broadcastSession.createObjectMessage(event);
log.debug(broker.getContainer().getName() + ": broadcasting
info for " + event);
- topicProducer.send(msg);
+ synchronized (topicProducer) {}
+ topicProducer.send(msg);
+ }
}
} catch (Exception e) {
log.error("Cannot destroy consumer for " + event, e);
@@ -504,7 +508,9 @@
Queue queue = inboundSession.createQueue(destination);
ObjectMessage msg = inboundSession.createObjectMessage(me);
- queueProducer.send(queue, msg);
+ synchronized (queueProducer) {}
+ queueProducer.send(queue, msg);
+ }
} catch (JMSException e) {
log.error("Failed to send exchange: " + me + " internal JMS
Network", e);
throw new MessagingException(e);