You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2008/10/30 15:32:55 UTC

svn commit: r709173 - in /activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor: StreamResequencer.java resequencer/ResequencerEngine.java

Author: janstey
Date: Thu Oct 30 07:32:55 2008
New Revision: 709173

URL: http://svn.apache.org/viewvc?rev=709173&view=rev
Log:
CAMEL-1034 - Fix issue with the StreamResequencer. Many thanks to Martin Krasser for providing the patch for this!


Modified:
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/StreamResequencer.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/StreamResequencer.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/StreamResequencer.java?rev=709173&r1=709172&r2=709173&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/StreamResequencer.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/StreamResequencer.java Thu Oct 30 07:32:55 2008
@@ -200,7 +200,7 @@
     }
 
     public void process(Exchange exchange) throws Exception {
-        // empty since exchanges come from endpoint's polling consumer
+        engine.insert(exchange);
     }
 
 }
\ No newline at end of file

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java?rev=709173&r1=709172&r2=709173&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java Thu Oct 30 07:32:55 2008
@@ -53,9 +53,6 @@
  * element needs <code>timeout</code> milliseconds in any case for becoming
  * <i>ready-for-delivery</i>.
  * <p>
- * <strong>Note:</strong> Instances of this class are not thread-safe.
- * Resequencing should be done by calling {@link #insert(Object)} and
- * {@link #deliver()} or {@link #deliverNext()} from a single thread.
  *
  * @author Martin Krasser
  *
@@ -117,7 +114,7 @@
      *
      * @return the number of elements currently maintained by this resequencer.
      */
-    public int size() {
+    public synchronized int size() {
         return sequence.size();
     }
 
@@ -186,7 +183,7 @@
      *
      * @param o an element.
      */
-    public void insert(E o) {
+    public synchronized void insert(E o) {
         // wrap object into internal element
         Element<E> element = new Element<E>(o);
         // add element to sequence in proper order
@@ -217,7 +214,7 @@
      *
      * @see ResequencerEngine#deliverNext() 
      */
-    public void deliver() throws Exception {
+    public synchronized void deliver() throws Exception {
         while (deliverNext()) {
             // do nothing here
         }