You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Joe Luo (JIRA)" <ji...@apache.org> on 2017/03/14 10:54:41 UTC

[jira] [Commented] (CAMEL-11010) Failed to set delayPattern using property placeholder in redeliveryPolicy tag

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

Joe Luo commented on CAMEL-11010:
---------------------------------

It works if using <redeliveryPolicyProfile> tag instead:
{code}
...
    <camelContext id="redeliveryTestContext" trace="true" xmlns="http://camel.apache.org/schema/blueprint" >
        <redeliveryPolicyProfile id="myRedelivery"
                delayPattern="{{delayPattern}}"
                maximumRedeliveries="{{maxDeliveries}}"
                retryAttemptedLogLevel="WARN" logRetryAttempted="true" />
								
		<onException useOriginalMessage="false" redeliveryPolicyRef="myRedelivery">
            <exception>java.lang.IllegalStateException</exception>
            <handled>
                <constant>true</constant>
            </handled>
            <to uri="log:org.apache.camel.test?level=DEBUG" />
        </onException>

        <route id="startExceptionTest">
            <from uri="timer://foo?repeatCount=1" />
       ...
{code}

> Failed to set delayPattern using property placeholder in redeliveryPolicy tag
> -----------------------------------------------------------------------------
>
>                 Key: CAMEL-11010
>                 URL: https://issues.apache.org/jira/browse/CAMEL-11010
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.15.1
>            Reporter: Joe Luo
>
> Setting "delayPattern" using property placeholder in <redeliveryPolicy> tag does not work. 
> Here is my camel route:
> {code}
> <?xml version="1.0" encoding="UTF-8"?>
> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
>         xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
>         xmlns:camel="http://camel.apache.org/schema/blueprint" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>         xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
>                             http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">
>     <cm:property-placeholder id="properties" persistent-id="org.apache.camel.test">
>         <cm:default-properties>
>             <cm:property name="delayPattern" value="1:1000;2:2000;3:3000" />
>             <cm:property name="maxDeliveries" value="3" />
>         </cm:default-properties>
>     </cm:property-placeholder>
>     <bean id="ex" class="java.lang.IllegalStateException" />
>     <camelContext id="redeliveryTestContext" trace="true" xmlns="http://camel.apache.org/schema/blueprint" >
> 		<onException useOriginalMessage="false">
>             <exception>java.lang.IllegalStateException</exception>
> 			<redeliveryPolicy delayPattern="{{delayPattern}}"
>                     maximumRedeliveries="{{maxDeliveries}}"
>                     retryAttemptedLogLevel="WARN" logRetryAttempted="true" />
>             <handled>
>                 <constant>true</constant>
>             </handled>
>             <to uri="log:org.apache.camel.test?level=DEBUG" />
>         </onException>
>         <route id="startExceptionTest">
>             <from uri="timer://foo?repeatCount=1" />
>             <setBody>
>                 <constant>Hello Camel!</constant>
>             </setBody>
>             <filter>
>                 <simple>'{{maxDeliveries}}' == 3</simple>
>                 <throwException ref="ex" />
>             </filter>
>         </route>
>     </camelContext>
> </blueprint>
> {code}
> The error I got:
> {quote}
> 10:48:37,344 | WARN  | #2 - timer://foo | DefaultErrorHandler              | 198 - org.apache.camel.camel-core - 2.15.1.redhat-621084 | Failed delivery for (MessageId: ID-jluomac-57289-1489488438889-1-1 on ExchangeId: ID-jluomac-57289-1489488438889-1-2). On delivery attempt: 0 caught: java.lang.IllegalStateException
> 10:48:37,345 | WARN  | #2 - timer://foo | TimerConsumer                    | 198 - org.apache.camel.camel-core - 2.15.1.redhat-621084 | Error processing exchange. This exception will be ignored, to let the timer be able to trigger again.
> java.lang.NumberFormatException: null
> 	at java.lang.Long.parseLong(Long.java:404)\[:1.7.0_67]
> 	at java.lang.Long.valueOf(Long.java:540)\[:1.7.0_67]
> 	at org.apache.camel.processor.RedeliveryPolicy.calculateRedeliverDelayUsingPattern(RedeliveryPolicy.java:246)\[198:org.apache.camel.camel-core:2.15.1.redhat-621084]
> 	at org.apache.camel.processor.RedeliveryPolicy.calculateRedeliveryDelay(RedeliveryPolicy.java:205)\[198:org.apache.camel.camel-core:2.15.1.redhat-621084]
> 	at org.apache.camel.processor.RedeliveryErrorHandler.determineRedeliveryDelay(RedeliveryErrorHandler.java:504)\[198:org.apache.camel.camel-core:2.15.1.redhat-621084]
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:394)\[198:org.apache.camel.camel-core:2.15.1.redhat-621084]
> ...
> {quote}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)