Author: ningjiang
Date: Thu Nov  1 10:15:34 2012
New Revision: 1404532

URL: http://svn.apache.org/viewvc?rev=1404532&view=rev
Log:
CAMEL-5761 Update SqsConsumer to extend Visibility Timeout correctly with 
thanks to Carlos

Modified:
    
camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java
    
camel/trunk/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsExtendMessageVisibilityTest.java

Modified: 
camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java?rev=1404532&r1=1404531&r2=1404532&view=diff
==============================================================================
--- 
camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java
 (original)
+++ 
camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java
 Thu Nov  1 10:15:34 2012
@@ -113,8 +113,11 @@ public class SqsConsumer extends Schedul
                 int period = visibilityTimeout.intValue();
                 LOG.debug("Scheduled TimeoutExtender task to start after {} 
delay, and run with {} period (seconds) to extend exchangeId: {}",
                         new Object[]{delay, period, exchange.getExchangeId()});
+                int repeatSeconds = new Double(visibilityTimeout.doubleValue() 
* 1.5).intValue();   //
+                LOG.debug("period :" + period);
+                LOG.debug("repeatSeconds :" + repeatSeconds);
                 final ScheduledFuture<?> scheduledFuture = 
this.scheduledExecutor.scheduleAtFixedRate(
-                        new TimeoutExtender(exchange, visibilityTimeout), 
delay, period, TimeUnit.SECONDS);
+                        new TimeoutExtender(exchange, repeatSeconds), delay, 
period, TimeUnit.SECONDS);
                 exchange.addOnCompletion(new Synchronization() {
                     @Override
                     public void onComplete(Exchange exchange) {
@@ -269,4 +272,4 @@ public class SqsConsumer extends Schedul
         }
     }
 
-}
\ No newline at end of file
+}

Modified: 
camel/trunk/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsExtendMessageVisibilityTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsExtendMessageVisibilityTest.java?rev=1404532&r1=1404531&r2=1404532&view=diff
==============================================================================
--- 
camel/trunk/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsExtendMessageVisibilityTest.java
 (original)
+++ 
camel/trunk/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsExtendMessageVisibilityTest.java
 Thu Nov  1 10:15:34 2012
@@ -61,7 +61,8 @@ public class SqsExtendMessageVisibilityT
         for (ChangeMessageVisibilityRequest req : 
this.clientMock.changeMessageVisibilityRequests) {
             assertEquals("https://queue.amazonaws.com/541925086079/MyQueue";, 
req.getQueueUrl());
             assertEquals(RECEIPT_HANDLE, req.getReceiptHandle());
-            assertEquals(new Integer(4), req.getVisibilityTimeout());
+            Integer expectedTimeout = new Integer(6); // Should be 1.5 x 
TIMEOUT as takes into account the delay period
+            assertEquals(expectedTimeout, req.getVisibilityTimeout());
         }
     }
 


Reply via email to