Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-19896

DeadLetterChannelBuilder can't be configured with a redeliveryPolicy

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Information Provided
    • 3.20.2
    • None
    • came-core
    • None
    • Unknown

    Description

      The following snippet is contained in a global ActiveMQ definition XML

      <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
              xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0">
              ...
              <bean id="redeliveryPolicyConfig" class="org.apache.camel.processor.errorhandler.RedeliveryPolicy">
                      <property name="maximumRedeliveries" value="6" />
                      <property name="redeliveryDelay" value="10000" />
              </bean>        <bean id="deadLetterErrorHandler" class="org.apache.camel.builder.DeadLetterChannelBuilder">
                      <property name="deadLetterUri" value="activemq:queue:dl" />
                      <property name="redeliveryPolicy" ref="redeliveryPolicyConfig" />
              </bean> 

      During the deployment the following error occurs

      org.osgi.service.blueprint.container.ComponentDefinitionException: Error setting property: PropertyDescriptor <name: redeliveryPolicy, getter: class org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition.getRedeliveryPolicy(), setter: [class org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition.setRedeliveryPolicy(class org.apache.camel.model.RedeliveryPolicyDefinition)]
              at org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:818) ~[?:?]
              at org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:784) ~[?:?]
              at org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:765) ~[?:?]
              at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:699) ~[?:?]
              at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:666) ~[?:?]
              at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:81) ~[?:?]
              at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?]
              at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:90) ~[?:?]
              at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:360) ~[?:?]
              at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:190) ~[?:?]
              at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:737) ~[?:?]
              at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:433) ~[?:?]
              at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:298) ~[?:?]
              at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:335) ~[?:?]
              at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:288) ~[?:?]
              at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:284) ~[?:?]
              at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:274) ~[?:?]
              at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500) ~[?:?]
              at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433) ~[?:?]
              at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725) ~[?:?]
              at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463) ~[?:?]
              at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422) ~[?:?]
              at org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1384) ~[?:?]
              at org.apache.felix.framework.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:730) ~[?:?]
              at org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:485) ~[?:?]
              at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4847) ~[?:?]
              at org.apache.felix.framework.Felix.startBundle(Felix.java:2363) ~[?:?]
              at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:1006) ~[?:?]
              at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) ~[?:?]
              at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) ~[?:?]
              at org.apache.felix.fileinstall.internal.DirectoryWatcher.startAllBundles(DirectoryWatcher.java:1221) ~[?:?]
              at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:515) ~[?:?]
              at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) ~[?:?]
              at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) ~[?:?]
      Caused by: java.lang.Exception: Unable to convert value RedeliveryPolicy[maximumRedeliveries=6, redeliveryDelay=10000, maximumRedeliveryDelay=60000, asyncDelayedRedelivery=false, allowRedeliveryWhileStopping=true, retriesExhaustedLogLevel=ERROR, retryAttemptedLogLevel=DEBUG, retryAttemptedLogInterval=1, logRetryAttempted=true, logStackTrace=true, logRetryStackTrace=false, logHandled=false, logContinued=false, logExhausted=true, logNewException=true, logExhaustedMessageHistory=null, logExhaustedMessageBody=null, useExponentialBackOff=false, backOffMultiplier=2.0, useCollisionAvoidance=false, collisionAvoidanceFactor=0.15, delayPattern=null, exchangeFormatterRef=null] to type org.apache.camel.model.RedeliveryPolicyDefinition
              at org.apache.aries.blueprint.container.AggregateConverter.convert(AggregateConverter.java:187) ~[?:?]
              at org.apache.aries.blueprint.container.BlueprintRepository.convert(BlueprintRepository.java:516) ~[?:?]
              at org.apache.aries.blueprint.utils.ReflectionUtils$PropertyDescriptor.convert(ReflectionUtils.java:434) ~[?:?]
              at org.apache.aries.blueprint.utils.ReflectionUtils$MethodPropertyDescriptor.internalSet(ReflectionUtils.java:668) ~[?:?]
              at org.apache.aries.blueprint.utils.ReflectionUtils$PropertyDescriptor.set(ReflectionUtils.java:418) ~[?:?]
              at org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:816) ~[?:?]
              ... 33 more 

      It worked similar in earlier Camel versions (2.x). Not sure if this is a bug or just an migration issue that needs to be handled differently.

      Attachments

        Activity

          People

            Unassigned Unassigned
            catshout Gerald Kallas
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: