[ https://issues.apache.org/jira/browse/FELIX-1477?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Felix Meschberger resolved FELIX-1477. -------------------------------------- Resolution: Fixed Fix Version/s: configadmin-1.0.12 Assignee: Felix Meschberger Thanks for providing the patch. I have applied it (slightly modified for formatting) in Rev. 804344. Please close this issue, if it now works as expected for you. Thanks. > ConfigAdmin implementation is not thread-safe > --------------------------------------------- > > Key: FELIX-1477 > URL: https://issues.apache.org/jira/browse/FELIX-1477 > Project: Felix > Issue Type: Bug > Components: Configuration Admin > Affects Versions: configadmin-1.0.10 > Reporter: Andy Wilkinson > Assignee: Felix Meschberger > Fix For: configadmin-1.0.12 > > Attachments: thread-safety.patch > > > I've been doing some work with ConfigAdmin in a multi-threaded environment > and have come across a number of issues caused by thread safety problems. The > symptoms are typically either an IllegalStateException from > ConfiguationAdapter.checkDeleted when, in fact, the Configuration has not > been deleted, or a NPE, where PersistenceManager is checked once for being > non-null, and the used again without re-checking for it having been nulled > out, e.g. due to concurrent invocations of delete and update. > I tracked down a common cause of the IllegalStateException from checkDeleted > to FilePersistenceManager's exists method. If exists is called on one thread > while store (for an update) is being run on another, the rename can cause > exists to incorrectly return false. synchronizing on this in exists appears > to resolve this problem. > I've produced a patch that goes someway to improve the thread-safety, > although I does not make the implementation completely thread-safe. Without > the patch in place I was seeing a failure about one run in three. Since > applying the patch I have yet to see a failure after more than 100 runs. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.