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 [EMAIL PROTECTED] #insert(Object)} 
and
- * [EMAIL PROTECTED] #deliver()} or [EMAIL PROTECTED] #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
         }


Reply via email to