[ https://issues.apache.org/jira/browse/FELIX-2372?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Felix Meschberger updated FELIX-2372: ------------------------------------- Description: BundleContext.getService() may throw an IllegalStateException if the bundle context is invalid. In addition the Felix implementation may also throw this exception of the service to be trieved is a ServiceFactory whose real service cannot be retrieved due to a cycle in service dependencies. The DependencyManager should log this exception clearly to help solve the actual problem. In the current Felix Declarative Service implementation such a loop can be created if there is a depedency loop amongst delayed service components, like this: Delayed Component A, provides Service A, requires Service C Delayed Component B, provides Service B, requires Service A Delayed Component C, provides Service C, requires Service B Such cycles should actually be detected by SCR (Declarative Services Specification Section 112.3.5, Circular References), but this is not currently implemented, see FELIX-1824. Still, such cycles may of course exist amongst services registered outside of the Declarative Services world, in which case, such an exception may still occur. was: BundleContext.getService() may throw an IllegalStateException if the bundle context is invalid. In addition the Felix implementation may also throw this exception of the service to be trieved is a ServiceFactory whose real service cannot be retrieved due to a cycle in service dependencies. The DependencyManager should log this exception clearly to help solve the actual problem. In the current Felix Declarative Service implementation such a loop can be created if there is a depedency loop amongst delayed service components, like this: Delayed Component A, provides Service A, requires Service C Delayed Component B, provides Service B, requires Service A Delayed Component C, provides Service C, requires Service B > Improve logging on IllegalStateException getting a service > ---------------------------------------------------------- > > Key: FELIX-2372 > URL: https://issues.apache.org/jira/browse/FELIX-2372 > Project: Felix > Issue Type: Improvement > Components: Declarative Services (SCR) > Affects Versions: scr-1.4.0 > Reporter: Felix Meschberger > Assignee: Felix Meschberger > Fix For: scr-1.4.2 > > > BundleContext.getService() may throw an IllegalStateException if the bundle > context is invalid. In addition the Felix implementation may also throw this > exception of the service to be trieved is a ServiceFactory whose real service > cannot be retrieved due to a cycle in service dependencies. > The DependencyManager should log this exception clearly to help solve the > actual problem. > In the current Felix Declarative Service implementation such a loop can be > created if there is a depedency loop amongst delayed service components, like > this: > Delayed Component A, provides Service A, requires Service C > Delayed Component B, provides Service B, requires Service A > Delayed Component C, provides Service C, requires Service B > Such cycles should actually be detected by SCR (Declarative Services > Specification Section 112.3.5, Circular References), but this is not > currently implemented, see FELIX-1824. Still, such cycles may of course exist > amongst services registered outside of the Declarative Services world, in > which case, such an exception may still occur. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.