camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yi Yan (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CAMEL-10340) camel-aws - SQS option deleteAfterRead not work if set deleteIfFiltered=false
Date Fri, 30 Sep 2016 10:06:20 GMT

    [ https://issues.apache.org/jira/browse/CAMEL-10340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15535604#comment-15535604
] 

Yi Yan commented on CAMEL-10340:
--------------------------------

What about to change the behavior like this? When deleteAfterRead is set to true, it will
always remove message, and the deleteIfFiltered with true value will only work that the route
must has a filter, and the message passed through the filter. I have test by this modification,
it works as expected.

{code}
    private boolean shouldDelete(Exchange exchange) {
        boolean shouldDeleteByFilter = exchange.getProperty(Exchange.FILTER_MATCHED) != null
                && getConfiguration().isDeleteIfFiltered()
                && passedThroughFilter(exchange);
        return getConfiguration().isDeleteAfterRead()
                || shouldDeleteByFilter;
    }
{code}

> camel-aws - SQS option deleteAfterRead not work if set deleteIfFiltered=false
> -----------------------------------------------------------------------------
>
>                 Key: CAMEL-10340
>                 URL: https://issues.apache.org/jira/browse/CAMEL-10340
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-aws
>    Affects Versions: 2.17.3
>            Reporter: Yi Yan
>            Priority: Minor
>         Attachments: SqsConsumerDeleteTest.java
>
>
> I'm using aws-sqs 2.17.3, if I set deleteAfterRead=true and deleteIfFiltered=false in
my DSL, the message will not be deleted. If I want to delete the message after read it, I
have to set deleteAfterRead and deleteIfFiltered both with true when I use the two options
in one DSL, but in fact there is no filter in my route, the message should be removed whatever
the deleteIfFiltered option set to ture or false.
> {code:title=SqsConsumerDeleteTest.java|borderStyle=solid}
> from("aws-sqs:my-quque"
>     + "?amazonSQSClient=#conn_cAWSConnection_1"
>     + "&deleteAfterRead=" + true + "&deleteIfFiltered="
>     + false).to("log:qs_route.cLog_1" + "?level=DEBUG").to("mock:mock_1");
> {code}
> I attached my test file, after run the test method, the sqs message still exists in the
sqs queue after 30 seconds.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message