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