Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Information Provided
-
3.20.2
-
None
-
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.