Hi everyone:

I am trying to configure "delayPattern" in an onException clause as follows:

.onException(Exception.class)
   .delayPattern("{{redelivery.delayPattern}}")

The "redelivery.delayPattern" property is configured in Blueprint like this:

<cm:property name="redelivery.delayPattern" value="0:5000" />

When an exception is handled, redelivery fails with the following exception:

java.lang.NumberFormatException: null
        at java.lang.Long.parseLong(Long.java:552)[:1.8.0_51]
        at java.lang.Long.valueOf(Long.java:803)[:1.8.0_51]
        at 
org.apache.camel.processor.RedeliveryPolicy.calculateRedeliverDelayUsingPattern(RedeliveryPolicy.java:246)[141:org.apache.camel.camel-core:2.15.2]
        at 
org.apache.camel.processor.RedeliveryPolicy.calculateRedeliveryDelay(RedeliveryPolicy.java:205)[141:org.apache.camel.camel-core:2.15.2]
        at 
org.apache.camel.processor.RedeliveryErrorHandler.determineRedeliveryDelay(RedeliveryErrorHandler.java:504)[141:org.apache.camel.camel-core:2.15.2]
        at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:394)[141:org.apache.camel.camel-core:2.15.2]

The configured property can be logged without issues:

.log("delayPattern: {{redelivery.delayPattern}}") => delayPattern: 0:5000

Other properties of RedeliveryPolicy, such as "maximumRedeliveries",
work without any issues, e.g.:

.onException(Exception.class)
   .maximumRedeliveries("{{redelivery.maximumRedeliveries}}")

I use Camel 2.15.2 on Karaf 3.0.4/ServiceMix 6.0.0.

Any ideas why delayPattern can't be configured with property placeholders?

Thanks in advance,
Gregor

Reply via email to