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);


Reply via email to