You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Michael Dürig (JIRA)" <ji...@apache.org> on 2013/12/17 11:40:07 UTC
[jira] [Resolved] (OAK-1290) ObservationManager#removeEventListener
prone to deadlocks
[ https://issues.apache.org/jira/browse/OAK-1290?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Dürig resolved OAK-1290.
--------------------------------
Resolution: Fixed
Fix Version/s: (was: 0.15)
0.14
Fixed at http://svn.apache.org/r1551502.
Unregistering an observation listener now blocks for no more than one second. If a pending {{onEvent()}} call does not complete by then a warning is logged and the listener will be unregistered without further waiting for the pending {{onEvent()}} call to complete.
> ObservationManager#removeEventListener prone to deadlocks
> ----------------------------------------------------------
>
> Key: OAK-1290
> URL: https://issues.apache.org/jira/browse/OAK-1290
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: jcr
> Reporter: Michael Dürig
> Assignee: Michael Dürig
> Fix For: 0.14
>
>
> The contract for {{ObservationManager#removeEventListener}} mandates: "A listener may be deregistered while it is being executed. The deregistration method will block until the listener has completed executing."
> However a strict implementation of this contract is prone to deadlocks: clients unregistering event listeners need to take care not to hold a lock that is also acquired from the event listener being unregistered as this will lead to a deadlock
--
This message was sent by Atlassian JIRA
(v6.1.4#6159)