You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Bengt Rodehav (JIRA)" <ji...@apache.org> on 2010/11/22 19:03:25 UTC

[jira] Commented: (CAMEL-3350) Camel context not started although the start() method succeeded

    [ https://issues.apache.org/activemq/browse/CAMEL-3350?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=63443#action_63443 ] 

Bengt Rodehav commented on CAMEL-3350:
--------------------------------------

Claus, I have now tested your fix in trunc. Yes, setting a name of null now causes an exception to be thrown - in that respect it works.

However, I still need a safe way to know that I succeeded in starting the camel context. Now that you eliminated this problem
(setting the name to null), does that mean that an exception will always be thrown if the context could not be started? Or,
conversely, if a call to CamelContext.start() returns without throwing an exception, does that mean that I managed to start the
context?

Also, it shouldn't be possible for the camel context to report that it is started while JMX does not show the context and
when in fact it didn't succeed. To me it seems like this issue isn't really resolved yet - unless setting the name to null was the only
thing that could possibly cause this situation.



> Camel context not started although the start() method succeeded
> ---------------------------------------------------------------
>
>                 Key: CAMEL-3350
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-3350
>             Project: Apache Camel
>          Issue Type: Improvement
>          Components: camel-core
>    Affects Versions: 2.5.0
>            Reporter: Bengt Rodehav
>            Assignee: Claus Ibsen
>             Fix For: 2.6.0
>
>
> I accidentally set the name of the context to null. and got the exception below:
> \\
> \\
> {code}
> 2010-11-17 11:32:34,456 | WARN  | guration Updater | DefaultCamelContext              | e.camel.impl.DefaultCamelContext 1278 | Cannot start lifecycle strategy: org.apache.camel.management.DefaultManagementLifecycleStrategy@1060ee9. This strategy will be removed. Cause: java.lang.NullPointerException
> org.apache.camel.RuntimeCamelException: java.lang.NullPointerException
> 	at org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1140)
> 	at org.apache.camel.management.DefaultManagementLifecycleStrategy.onContextStart(DefaultManagementLifecycleStrategy.java:161)
> 	at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1270)
> 	at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1213)
> 	at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:65)
> 	at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
> 	at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1191)
> 	at se.digia.connect.core.service.RouteServiceBase.doStart(RouteServiceBase.java:51)
> 	at se.digia.connect.core.service.ServiceBase.start(ServiceBase.java:50)
> 	at se.digia.connect.services.skandia.filetransfer.FileTransferService.__start(FileTransferService.java:63)
> 	at se.digia.connect.services.skandia.filetransfer.FileTransferService.start(FileTransferService.java)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.6.0_07]
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)[:1.6.0_07]
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.0_07]
> 	at java.lang.reflect.Method.invoke(Method.java:597)[:1.6.0_07]
> 	at org.apache.felix.ipojo.util.Callback.call(Callback.java:237)[77:org.apache.felix.ipojo:1.7.0.SNAPSHOT]
> 	at org.apache.felix.ipojo.util.Callback.call(Callback.java:193)[77:org.apache.felix.ipojo:1.7.0.SNAPSHOT]
> 	at org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallback.call(LifecycleCallback.java:86)[77:org.apache.felix.ipojo:1.7.0.SNAPSHOT]
> 	at org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallbackHandler.__stateChanged(LifecycleCallbackHandler.java:162)[77:org.apache.felix.ipojo:1.7.0.SNAPSHOT]
> 	at org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallbackHandler.stateChanged(LifecycleCallbackHandler.java)[77:org.apache.felix.ipojo:1.7.0.SNAPSHOT]
> 	at org.apache.felix.ipojo.InstanceManager.setState(InstanceManager.java:441)[77:org.apache.felix.ipojo:1.7.0.SNAPSHOT]
> 	at org.apache.felix.ipojo.InstanceManager.start(InstanceManager.java:322)[77:org.apache.felix.ipojo:1.7.0.SNAPSHOT]
> 	at org.apache.felix.ipojo.InstanceManager.reconfigure(InstanceManager.java:1169)[77:org.apache.felix.ipojo:1.7.0.SNAPSHOT]
> 	at org.apache.felix.ipojo.IPojoFactory.reconfigure(IPojoFactory.java:481)[77:org.apache.felix.ipojo:1.7.0.SNAPSHOT]
> 	at org.apache.felix.ipojo.IPojoFactory.updated(IPojoFactory.java:648)[77:org.apache.felix.ipojo:1.7.0.SNAPSHOT]
> 	at org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1460)[5:org.apache.felix.configadmin:1.2.4]
> 	at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:88)[5:org.apache.felix.configadmin:1.2.4]
> Caused by: java.lang.NullPointerException
> 	at javax.management.ObjectName.quote(ObjectName.java:1846)[:1.6.0_07]
> 	at org.apache.camel.management.DefaultManagementNamingStrategy.getObjectNameForCamelContext(DefaultManagementNamingStrategy.java:95)
> 	at org.apache.camel.management.DefaultManagementLifecycleStrategy.onContextStart(DefaultManagementLifecycleStrategy.java:128)
> 	... 25 more
> {code}
> \\
> The above exception was however caught and not rethrown which fooled me to believe that the context was successfully started while it in fact wasn't.
> Immediately after the call to the context's start() method I check if the context is started using the getStatus() method. It is then reported as started despite the fact that it failed (due to the exception above).
> I then started jconsole to see via JMX if the context is considered to be started but it's not. Sounds a lot like a bug to me. There should be a safe (and simple) way to find out (after having attempted to start the context) whether the context was successfully started or not.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.