You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Andrea Cosentino (JIRA)" <ji...@apache.org> on 2018/02/23 20:27:00 UTC
[jira] [Resolved] (CAMEL-12291) Blueprint error: "name is already
instanciated as null and cannot be removed"
[ https://issues.apache.org/jira/browse/CAMEL-12291?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrea Cosentino resolved CAMEL-12291.
--------------------------------------
Resolution: Duplicate
> Blueprint error: "name is already instanciated as null and cannot be removed"
> -----------------------------------------------------------------------------
>
> Key: CAMEL-12291
> URL: https://issues.apache.org/jira/browse/CAMEL-12291
> Project: Camel
> Issue Type: Bug
> Components: camel-blueprint
> Affects Versions: 2.20.2
> Environment: Mac OSX, {color:#000000}Karaf 4.2.5{color}
> Reporter: Alex Soto
> Assignee: Grzegorz Grzybek
> Priority: Major
>
> The error "name is already instanciated (sic) as null and cannot be removed" is thrown when configuring a component in Blueprint using property placeholders.
> I noticed when trying to migrate my project to Camel 2.20.2 (from 2.17.4)
> Example:
> {code:java}
> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:camel="http://camel.apache.org/schema/blueprint"
> xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
> xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0"
> xsi:schemaLocation="
> http://www.osgi.org/xmlns/blueprint/v1.0.0
> https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd”>
>
> <cm:property-placeholder
> persistent-id="audit.log"
> update-strategy="reload”
> placeholder-prefix="#{" placeholder-suffix="}">
> <cm:default-properties>
> <cm:property name="audit-log.reaper.cron" value="0 0/30 * * * ?" />
> <cm:property name="startDelaySeconds" value="600" />
> </cm:default-properties>
> </cm:property-placeholder>
> <bean id="audit-log-reaper-quartz"
> class="org.apache.camel.component.quartz2.QuartzComponent">
> <property name="startDelayedSeconds" value="#{startDelaySeconds}" />
> </bean>{code}
>
> The bean is referenced in a Camel route:
> {code:java}
> <route id="reaper-scheduler">
> <from uri="[audit-log-reaper-quartz://reaper?cron=\{{cron}}]" />
> {code}
> Throws exception:
> {quote}org.osgi.service.blueprint.container.ComponentDefinitionException: Name audit-log-reaper-quartz is already +instanciated+ as null and cannot be removed.
> at org.apache.aries.blueprint.container.BlueprintRepository.removeRecipe(BlueprintRepository.java:131) [38:org.apache.aries.blueprint.core:1.8.3]
> at org.apache.aries.blueprint.container.BlueprintContainerImpl.updateUninstantiatedRecipes(BlueprintContainerImpl.java:572) [38:org.apache.aries.blueprint.core:1.8.3]
> at org.apache.aries.blueprint.container.BlueprintContainerImpl.processProcessors(BlueprintContainerImpl.java:559) [38:org.apache.aries.blueprint.core:1.8.3]
> at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:394) [38:org.apache.aries.blueprint.core:1.8.3]
> at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:275) [38:org.apache.aries.blueprint.core:1.8.3]
> {quote}
>
>
> Removing the property placeholder fixes the issue:
>
> {code:java}
> <bean id="audit-log-reaper-quartz"
> class="org.apache.camel.component.quartz2.QuartzComponent">
>
> <property name="startDelayedSeconds" value="600" />
> </bean>
> {code}
>
> According to Guillaume Nodet, this seems to have been introduced by this pull request:
> [https://github.com/apache/camel/commit/a4e94f036d02943814c84195d73837cf607c8c20]
> Solution proposed by Guillaume Nodet is to change line 106 of /camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
> to
> {code:java}
> if (camelContext.getComponent(component, false) == null) {
> {code}
> I tested this change locally and it seems to work, however I don't know if this can cause other problems.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)