You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ch...@apache.org on 2007/10/05 16:12:54 UTC

svn commit: r582282 - in /activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component: seda/SedaConsumer.java vm/VmComponent.java

Author: chirino
Date: Fri Oct  5 07:12:53 2007
New Revision: 582282

URL: http://svn.apache.org/viewvc?rev=582282&view=rev
Log:
Some small enhancements suggested by William Tam

Modified:
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/vm/VmComponent.java

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java?rev=582282&r1=582281&r2=582282&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java Fri Oct  5 07:12:53 2007
@@ -50,7 +50,7 @@
     }
 
     public void run() {
-        while (!isStopping()) {
+        while (!isStopping() && !isStopped()) {
             final Exchange exchange;
             try {
                 exchange = endpoint.getQueue().poll(1000, TimeUnit.MILLISECONDS);

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/vm/VmComponent.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/vm/VmComponent.java?rev=582282&r1=582281&r2=582282&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/vm/VmComponent.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/vm/VmComponent.java Fri Oct  5 07:12:53 2007
@@ -19,6 +19,7 @@
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
@@ -34,6 +35,8 @@
  * @version $Revision: 1.1 $
  */
 public class VmComponent extends SedaComponent {
+    
+    private static final AtomicInteger START_COUNTER = new AtomicInteger();
     protected static Map<String, BlockingQueue> queues = new HashMap<String, BlockingQueue>();
 
     @Override
@@ -52,4 +55,24 @@
             return answer;
         }
     }
+
+    @Override
+    protected void doStart() throws Exception {
+        super.doStart();
+        START_COUNTER.incrementAndGet();
+    }
+    
+    @Override
+    protected void doStop() throws Exception {
+        super.doStop();
+        if (START_COUNTER.decrementAndGet() == 0) {
+            synchronized (queues) {
+                for (BlockingQueue q : queues.values()) {
+                    q.clear();
+                }
+                queues.clear();
+            }
+        }
+    }
+
 }