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:51:41 UTC

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

Joe Luo created CAMEL-11010:
-------------------------------

             Summary: 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)