[ https://issues.apache.org/jira/browse/FELIX-2813?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Felix Meschberger updated FELIX-2813: ------------------------------------- Fix Version/s: (was: configadmin-1.2.10) configadmin-1.4.0 > NPE in UpdateThread when updating a configuration right after > ConfigurationAdmin service starts > ----------------------------------------------------------------------------------------------- > > Key: FELIX-2813 > URL: https://issues.apache.org/jira/browse/FELIX-2813 > Project: Felix > Issue Type: Bug > Components: Configuration Admin > Reporter: Marcel Offermans > Assignee: Felix Meschberger > Fix For: configadmin-1.4.0 > > > When you: > 1) register as a configuration listener > 2) wait for the ConfigurationAdmin service to start > 3) upon start, immediately create a new configuration and update its > properties > You (sometimes) get a NPE in the UpdateThread because there is a race > condition in the codebase: > a) ConfigurationManager.java:1818 will invoke getServiceReference() which > uses the service registration to get to the reference > b) ConfigurationManager.java:242 registers the service and assigns the > registration to 'configurationAdminRegistration' > First of all, the call to registerService in line 242 will already trigger > service listeners and trackers to invoke callbacks before this call returns, > so 'configurationAdminRegistration' will still be null. Furthermore, there is > no synchronization, the member is not volatile, so we need to make sure this > value is really written before any configuration events are created under a) > (now the thread doing that is started way before the service is registered). > I will commit a test that shows the exception, but since it happens in a > thread I cannot "catch" it won't show up as a failed test. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira