[ https://issues.apache.org/jira/browse/OAK-3201?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Francesco Mari updated OAK-3201: -------------------------------- Comment: was deleted (was: I'm also wondering if explicit synchronization could be removed from the "bind" and "unbind" methods. The state-changing actions performed by those methods are: - add a service to or remove a service from the list of referenced services; - add a candidate to or remove a candidate from the list of prerequisites; - maybe activate or deactivate the {{SecurityProvider}}. Given that the last operation is a no-op if the prerequisites are not satisfied, only the last step should be properly synchronized. [~chetanm], what do you think?) > Use static references in SecurityProviderImpl for composite services > -------------------------------------------------------------------- > > Key: OAK-3201 > URL: https://issues.apache.org/jira/browse/OAK-3201 > Project: Jackrabbit Oak > Issue Type: Bug > Components: core > Reporter: Francesco Mari > Assignee: Francesco Mari > Fix For: 1.3.7 > > Attachments: OAK-3201-01.patch, OAK-3201-02.patch, OAK-3201-03.patch, > OAK-3201-04.patch, OAK-3201-05.patch, OAK-3201-06.patch, OAK-3201-07.patch, > mbean-test.log > > > {{SecurityProviderImpl}} has dynamic references to many other services, like > {{RestrictionProvider}}, that represent the configuration of this component. > Being these services dynamic, the OSGi runtime has no clear dependency > relationship between the {{SecurityProviderImpl}} and the required services. > Thus, it may happen that an instance of {{SecurityProviderImpl}} is published > before the services it requires are started, creating a window where the > {{SecurityProviderimpl}} is operating differently from the way it's > configured. > I suggest to turn the dynamic references in {{SecurityProviderImpl}} to > static ones to improve the consistency of the implementation. -- This message was sent by Atlassian JIRA (v6.3.4#6332)