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: Bug
          Components: camel-core
    Affects Versions: 2.5.0
            Reporter: Bengt Rodehav


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.defaultmanagementlifecyclestrat...@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.

Reply via email to