You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2007/03/22 14:44:27 UTC

svn commit: r521262 - /incubator/servicemix/branches/servicemix-3.1/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/nmr/flow/jms/JMSFlow.java

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