[ https://issues.apache.org/jira/browse/SLING-1728?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Felix Meschberger updated SLING-1728: ------------------------------------- Attachment: SLING-1728-v1.patch SLING-1728-v2.patch Attaching two patch variants: v1 works along the initial idea to not get at the service registry if not absolutely required. v2 changes this assumption and goes to the service registry eagerly. In the (probably rare) case of more than one thread fetching the same service at the same time, the extra services are returned again. I like the second patch more, because it is simpler and easier to understand while the first version goes a long way with synchronization and notification. Also the gain (reducing load on the service registry) is IMHO not worth the pain (more complex code). Opinions ? > ServiceCache is prone to deadlocks > ---------------------------------- > > Key: SLING-1728 > URL: https://issues.apache.org/jira/browse/SLING-1728 > Project: Sling > Issue Type: Bug > Components: Scripting > Affects Versions: Scripting Core 2.0.12 > Reporter: Felix Meschberger > Assignee: Felix Meschberger > Fix For: Scripting Core 2.0.12 > > Attachments: SLING-1728-v1.patch, SLING-1728-v2.patch > > > The ServiceCache introduce with SLING-1478 is prone to deadlocks with the > Framework. > The serviceChanged method is called from the framework and tries to > synchronize on the cache. The getService method on the other hand > synchronizes on the cache and while holding the lock calls into the framework. > The fix is to not hold a lock while calling into the framework. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.