Details
-
Bug
-
Resolution: Done
-
Critical
-
None
-
jboss-fuse-6.2.1
-
None
-
%
-
Description
When deploying a camel blueprint application with a blueprint cm:property-placehoder defined as below:
cm:property-placeholder persistent-id="org.drools.example.kie" update-strategy="reload" xmlns="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"> <cm:default-properties> <cm:property name="activeMQ.uri" value="tcp://localhost:61616" /> <cm:property name="activeMQ.username" value="admin" /> <cm:property name="activeMQ.password" value="admin" /> <cm:property name="activeMQ.concurrentConsumers" value="100" /> </cm:default-properties> </cm:property-placeholder>
The following stacktrace occurs:
org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to initialize bean .droolsBlueprint.processor.bean.camel-context at org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:714)[23:org.apache.aries.blueprint.core:1.4.4] at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:824)[23:org.apache.aries.blueprint.core:1.4.4] at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:787)[23:org.apache.aries.blueprint.core:1.4.4] at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)[23:org.apache.aries.blueprint.core:1.4.4] at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_91] at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[23:org.apache.aries.blueprint.core:1.4.4] at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:247)[23:org.apache.aries.blueprint.core:1.4.4] at org.apache.aries.blueprint.container.BlueprintRepository.createInstance(BlueprintRepository.java:230)[23:org.apache.aries.blueprint.core:1.4.4] at org.apache.aries.blueprint.container.BlueprintRepository.create(BlueprintRepository.java:155)[23:org.apache.aries.blueprint.core:1.4.4] at org.apache.aries.blueprint.container.BlueprintContainerImpl.processProcessors(BlueprintContainerImpl.java:531)[23:org.apache.aries.blueprint.core:1.4.4] at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:361)[23:org.apache.aries.blueprint.core:1.4.4] at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:269)[23:org.apache.aries.blueprint.core:1.4.4] at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:294)[23:org.apache.aries.blueprint.core:1.4.4] at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:263)[23:org.apache.aries.blueprint.core:1.4.4] at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:253)[23:org.apache.aries.blueprint.core:1.4.4] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)[17:org.apache.aries.util:1.1.0] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)[17:org.apache.aries.util:1.1.0] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)[17:org.apache.aries.util:1.1.0] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)[17:org.apache.aries.util:1.1.0] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)[17:org.apache.aries.util:1.1.0] at org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1127)[org.apache.felix.framework-4.4.1.jar:] at org.apache.felix.framework.util.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:696)[org.apache.felix.framework-4.4.1.jar:] at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:484)[org.apache.felix.framework-4.4.1.jar:] at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4429)[org.apache.felix.framework-4.4.1.jar:] at org.apache.felix.framework.Felix.startBundle(Felix.java:2100)[org.apache.felix.framework-4.4.1.jar:] at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:976)[org.apache.felix.framework-4.4.1.jar:] at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:963)[org.apache.felix.framework-4.4.1.jar:] at org.apache.karaf.features.internal.FeaturesServiceImpl.doInstallFeatures(FeaturesServiceImpl.java:546)[10:org.apache.karaf.features.core:2.4.0.redhat-621084] at org.apache.karaf.features.internal.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:432)[10:org.apache.karaf.features.core:2.4.0.redhat-621084] at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_91] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_91] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_91] at java.lang.Thread.run(Thread.java:745)[:1.7.0_91] Caused by: java.lang.ClassCastException: org.apache.aries.blueprint.ext.AbstractPropertyPlaceholder$LateBindingValueMetadata cannot be cast to org.apache.aries.blueprint.mutable.MutableValueMetadata at org.kie.aries.blueprint.namespace.KieObjectsInjector.getKieModuleModel(KieObjectsInjector.java:204) at org.kie.aries.blueprint.namespace.KieObjectsInjector.createOsgiKieModule(KieObjectsInjector.java:139) at org.kie.aries.blueprint.namespace.KieObjectsInjector.afterPropertiesSet(KieObjectsInjector.java:106) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_91] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_91] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_91] at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_91] at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:299)[23:org.apache.aries.blueprint.core:1.4.4] at org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:956)[23:org.apache.aries.blueprint.core:1.4.4] at org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:712)[23:org.apache.aries.blueprint.core:1.4.4] ... 32 more
This happens whether the property-placeholder is defined in the kie.xml blueprint or in the camel blueprint.
Cause:
Line 205 of org.kie.aries.blueprint.namespace.KieObjectsInjector casts each BeanArgument it processes to MutableValueMetadata; however the cm:properties are descended instead from NonNullableValueMetadata, so no cast path is available for that component:
String kBaseName = ((MutableValueMetadata) kbRefArg.getValue()).getStringValue();
Attachments
Issue Links
- relates to
-
DROOLS-1055 ClassCastException when using blueprint with cm:property-placehoder
- Closed