Author: boday
Date: Tue Jul 17 16:50:06 2012
New Revision: 1362565

URL: http://svn.apache.org/viewvc?rev=1362565&view=rev
Log:
CAMEL-4327 added more complex rejectOld feature unit test and removed rejected 
messages from the sequence

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

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java?rev=1362565&r1=1362564&r2=1362565&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java
 Tue Jul 17 16:50:06 2012
@@ -223,6 +223,7 @@ public class ResequencerEngine<E> {
         } else if (sequence.predecessor(element) != null) {
             // nothing to schedule
         } else if (rejectOld != null && rejectOld.booleanValue() && 
beforeLastDelivered(element)) {
+            sequence.remove(element);
             throw new MessageRejectedException("rejecting message [" + 
element.getObject()
                     + "], it should have been sent before the last delivered 
message [" + lastDelivered.getObject() + "]");
         } else {

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ResequenceStreamRejectOldExchangesTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ResequenceStreamRejectOldExchangesTest.java?rev=1362565&r1=1362564&r2=1362565&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ResequenceStreamRejectOldExchangesTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ResequenceStreamRejectOldExchangesTest.java
 Tue Jul 17 16:50:06 2012
@@ -51,28 +51,30 @@ public class ResequenceStreamRejectOldEx
         assertMockEndpointsSatisfied();
     }
 
-    public void testOutOfSequenceAfterTimeout() throws Exception {
-        getMockEndpoint("mock:result").expectedBodiesReceived("A", "C", "D");
-        getMockEndpoint("mock:error").expectedBodiesReceived("B");
+    public void testOutOfSequenceAfterTimeoutSimple() throws Exception {
+        getMockEndpoint("mock:result").expectedBodiesReceived("B", "C", "D");
+        getMockEndpoint("mock:error").expectedBodiesReceived("A");
 
         template.sendBodyAndHeader("direct:start", "D", "seqno", 4);
         template.sendBodyAndHeader("direct:start", "C", "seqno", 3);
-        template.sendBodyAndHeader("direct:start", "A", "seqno", 1);
-        Thread.sleep(1100);
         template.sendBodyAndHeader("direct:start", "B", "seqno", 2);
+        Thread.sleep(1100);
+        template.sendBodyAndHeader("direct:start", "A", "seqno", 1);
 
         assertMockEndpointsSatisfied();
     }
 
-    public void testOutOfSequenceAfterTimeout2() throws Exception {
-        getMockEndpoint("mock:result").expectedBodiesReceived("B", "C", "D");
-        getMockEndpoint("mock:error").expectedBodiesReceived("A");
+    public void testOutOfSequenceAfterTimeoutComplex() throws Exception {
+        getMockEndpoint("mock:result").expectedBodiesReceived("A", "D", "E", 
"F");
+        getMockEndpoint("mock:error").expectedBodiesReceived("B", "C");
 
         template.sendBodyAndHeader("direct:start", "D", "seqno", 4);
-        template.sendBodyAndHeader("direct:start", "C", "seqno", 3);
-        template.sendBodyAndHeader("direct:start", "B", "seqno", 2);
-        Thread.sleep(1100);
         template.sendBodyAndHeader("direct:start", "A", "seqno", 1);
+        Thread.sleep(1100);
+        template.sendBodyAndHeader("direct:start", "B", "seqno", 2);
+        template.sendBodyAndHeader("direct:start", "E", "seqno", 5);
+        template.sendBodyAndHeader("direct:start", "C", "seqno", 3);
+        template.sendBodyAndHeader("direct:start", "F", "seqno", 6);
 
         assertMockEndpointsSatisfied();
     }


Reply via email to