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


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.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to