Further debugging shows that delayPattern never gets properly replaced
with the value configured with property placeholders, therefore the
string "{{redelivery.delayPattern}}" is passed into the
RedeliveryPolicy class as-is and fails during calculation in
calculateRedeliverDelayUsingPattern on line 246:long delay = Long.valueOf(ObjectHelper.after(group, ":")); Any ideas why delayPattern isn't replaced by the property placeholder mechanism while other properties of RedeliveryPolicy don't have this problem? Thanks, Gregor On Tue, Sep 8, 2015 at 9:50 PM, Gregor Zurowski <[email protected]> wrote: > 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
