Hello everybody, I did some more tests and found out, that the described issue does not exist in a setting with Karaf 2.2.11 and Camel 2.10.4.
I suggest to open a bug for Camel 2.11. Regards, Tobias ----- Original Message ----- > From: "Tobias Hofer" <tobias.ho...@basis06.ch> > To: users@camel.apache.org > Sent: Thursday, May 2, 2013 10:18:54 AM > Subject: Re: NoSuchComponentException in CamelContext during Karaf Shutdown > > Thanks for the hint. I forgot to check that. > > I switched now to Camel 2.11.0 but the problem still exists. The > behavior is > exactly the same as I already described. > > Regards, > Tobias > > ----- Original Message ----- > > From: "Claus Ibsen" <claus.ib...@gmail.com> > > To: users@camel.apache.org > > Sent: Thursday, May 2, 2013 7:23:13 AM > > Subject: Re: NoSuchComponentException in CamelContext during Karaf > > Shutdown > > > > Ah yeah you should use Karaf 2.2.x with Camel 2.10.x. And Karaf > > 2.3.x > > with Camel 2.11.x. > > > > As documented here: > > http://camel.apache.org/karaf > > > > > > On Wed, May 1, 2013 at 11:08 PM, Christian Müller > > <christian.muel...@gmail.com> wrote: > > > Camel 2.10.x is only tested with Karaf 2.2.x. > > > > > > Sent from a mobile device > > > Am 01.05.2013 10:41 schrieb "Tobias Hofer" > > > <tobias.ho...@basis06.ch>: > > > > > >> Hi > > >> > > >> > Yeah would assume depends-on attributes ought to tell > > >> > blueprint > > >> > in > > >> > which order to shutdown its beans etc. > > >> > Or somehow you can try to get <camelContext> as being the > > >> > first > > >> > "bean" > > >> > blueprint should try to shutdown, as then Camel will complete > > >> > all its > > >> > inflight messages first, and hence the <beans> should be > > >> > shutdown > > >> > later. > > >> Exactly. Blueprint is responsible for computing the dependency > > >> order. On > > >> shutdown, the deconstruction must be done in reverse order. > > >> > > >> Therefore I tried to explicitly declare the dependency from > > >> CamelContext > > >> to Bean in order to get the CamelContext deconstructed first. > > >> > > >> Is Blueprint able to compute the dependencies for a > > >> CamelContext? > > >> Has it > > >> any clue about the referenced beans? > > >> > > >> Does the CamelContext shutdown synchronously to the > > >> deconstruction > > >> request of Blueprint? If not, that could be a possible cause, > > >> that > > >> dependent Beans get destroyed even if CamelContext is still > > >> alive. > > >> > > >> > > >> > You can also enable cache on the bean endpoint to avoid the > > >> > lookups > > >> > > > >> > <bean uri="ref:myBean?cache=true" /> > > >> > > > >> Yes this helps, but only for beans (component instances). If the > > >> bean endpoint calls a OSGi service reference then call will fail > > >> caused > > >> by a ServiceUnavailableException. > > >> > > >> > > >> > And when you see this error, does that only happen if the > > >> > aggregator > > >> > has messages that hasn't been fully aggregated, but are forced > > >> > to be > > >> > completed when stopping? eg this doesn't happen when stopping > > >> > and the > > >> > aggregator is empty? > > >> Stopping it without any inflight and pending exchanges works. In > > >> other > > >> words, there error does not occur, if the aggregator did never > > >> aggregate > > >> a message, or if all messages has been aggregated before > > >> shutdown. > > >> > > >> I'm able to stop the CamelContext manually at any time > > >> successfully. Even > > >> if there are pending messages that are forced to be completed > > >> when > > >> stopping. > > >> > > >> The error occurs only if I stop the whole Bundle. > > >> > > >> > > >> > > >> > > > >> > > > >> > > > >> > On Tue, Apr 30, 2013 at 1:25 PM, Tobias Hofer > > >> > <tobias.ho...@basis06.ch> wrote: > > >> > > Hi all, > > >> > > > > >> > > I'm running Camel 2.10.4 in Karaf 2.3.1 and get > > >> > > NoSuchComponentException > > >> > > during the shutdown process. > > >> > > > > >> > > My blueprint configuration file declares a bean which is a > > >> > > Camel > > >> > > Processor > > >> > > > > >> > > <bean id="myBean" class="org.example.MyBean" /> > > >> > > > > >> > > The CamelContext contains a route that aggregates incoming > > >> > > messages > > >> > > and > > >> > > which forces a completion on stop. > > >> > > > > >> > > <route> > > >> > > <from uri="direct:aggregate" /> > > >> > > <aggregate strategyRef="aggregationStrategy" > > >> > > forceCompletionOnStop="true" ...> > > >> > > ... > > >> > > <to uri="direct:onCompletion" /> > > >> > > </aggregate> > > >> > > </route> > > >> > > > > >> > > The second route contains the bean invocation > > >> > > > > >> > > <route> > > >> > > <from uri="direct:onCompletion" /> > > >> > > ... > > >> > > <bean ref="myBean" /> > > >> > > ... > > >> > > </route> > > >> > > > > >> > > During shutdown the bean invocation in the second route > > >> > > fails > > >> > > > > >> > > org.apache.camel.RuntimeCamelException: > > >> > > org.osgi.service.blueprint.container.NoSuchComponentException: > > >> > > No > > >> > > component with id > > >> > > 'myBean' could be found > > >> > > at > > >> > > > > >> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1316) > > >> > > at > > >> > > > > >> org.apache.camel.impl.PropertyPlaceholderDelegateRegistry.lookup(PropertyPlaceholderDelegateRegistry.java:51) > > >> > > at > > >> > > > > >> org.apache.camel.component.bean.RegistryBean.lookupBean(RegistryBean.java:136) > > >> > > at > > >> > > > > >> org.apache.camel.component.bean.RegistryBean.getBean(RegistryBean.java:62) > > >> > > at > > >> > > > > >> org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:77) > > >> > > at > > >> > > > > >> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) > > >> > > ... > > >> > > Caused by: > > >> > > org.osgi.service.blueprint.container.NoSuchComponentException: > > >> > > No > > >> > > component with id 'myBean' could be found > > >> > > at > > >> > > > > >> org.apache.aries.blueprint.container.BlueprintContainerImpl.getComponentInstance(BlueprintContainerImpl.java:742) > > >> > > at > > >> > > > > >> org.apache.camel.blueprint.BlueprintContainerRegistry.lookup(BlueprintContainerRegistry.java:41) > > >> > > at > > >> > > > > >> org.apache.camel.impl.CompositeRegistry.lookup(CompositeRegistry.java:68) > > >> > > at > > >> > > > > >> org.apache.camel.impl.PropertyPlaceholderDelegateRegistry.lookup(PropertyPlaceholderDelegateRegistry.java:49) > > >> > > > > >> > > I tried to add a 'depends-on' property on the CamelContext > > >> > > declaration but > > >> > > this seems not to help. > > >> > > > > >> > > It looks like that the Blueprint Container is no longer > > >> > > available. > > >> > > > > >> > > Any suggestions? > > >> > > > > >> > > Regards, > > >> > > Tobias Hofer > > >> > > > > >> > > > > >> > > > > >> > > > > >> > > > > >> > > > >> > > > >> > > > >> > -- > > >> > Claus Ibsen > > >> > ----------------- > > >> > Red Hat, Inc. > > >> > FuseSource is now part of Red Hat > > >> > Email: cib...@redhat.com > > >> > Web: http://fusesource.com > > >> > Twitter: davsclaus > > >> > Blog: http://davsclaus.com > > >> > Author of Camel in Action: http://www.manning.com/ibsen > > >> > > > >> > > > > > > > > -- > > Claus Ibsen > > ----------------- > > Red Hat, Inc. > > FuseSource is now part of Red Hat > > Email: cib...@redhat.com > > Web: http://fusesource.com > > Twitter: davsclaus > > Blog: http://davsclaus.com > > Author of Camel in Action: http://www.manning.com/ibsen > > >