[
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.