Mohammed Boukada created FELIX-4154:
---------------------------------------

             Summary: InstanceManager.setState() method should throws exception 
in case of failure
                 Key: FELIX-4154
                 URL: https://issues.apache.org/jira/browse/FELIX-4154
             Project: Felix
          Issue Type: Bug
          Components: iPOJO
    Affects Versions: ipojo-runtime-1.10.1
            Reporter: Mohammed Boukada


In my use case, I create an instance of a component using 
factory.createComponentInstance(props). If an error occurs in setState() 
method, it is managed internally and does not return anything to the caller. 

Code :
 try {
                    for (int i = 0; i < m_handlers.length; i++) {
                        m_handlers[i].getHandler().stateChanged(state);
                    }
                } catch (IllegalStateException e) {
                    // When an illegal state exception happens, the instance 
manager must be stopped immediately.
                    stop();
                    m_logger.log(Logger.ERROR, e.getMessage(), e);
                    return;
                }

Exception stack trace :

java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.apache.felix.ipojo.util.Callback.call(Callback.java:237)
        at org.apache.felix.ipojo.util.Callback.call(Callback.java:193)
        at 
org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallback.call(LifecycleCallback.java:86)
        at 
org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallbackHandler.__M_stateChanged(LifecycleCallbackHandler.java:162)
        at 
org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallbackHandler.stateChanged(LifecycleCallbackHandler.java)
        at 
org.apache.felix.ipojo.InstanceManager.setState(InstanceManager.java:536)
        at 
org.apache.felix.ipojo.InstanceManager.start(InstanceManager.java:418)
        at 
org.apache.felix.ipojo.ComponentFactory.createInstance(ComponentFactory.java:178)
        at 
org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:309)
        at 
org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:236)


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to