[
https://issues.apache.org/jira/browse/FELIX-748?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12641385#action_12641385
]
Felix Meschberger commented on FELIX-748:
-----------------------------------------
Just tested your patch with framework trunk and it seems to work. Thanks.
> Deadlock with class loading and URLHandlers
> -------------------------------------------
>
> Key: FELIX-748
> URL: https://issues.apache.org/jira/browse/FELIX-748
> Project: Felix
> Issue Type: Bug
> Components: Framework
> Affects Versions: felix-1.0.4
> Reporter: Felix Meschberger
> Assignee: Karl Pauls
> Attachments: FELIX-748-deadlock.txt, URLHandlers.patch
>
>
> We have a tricky dead lock issue involving Java ClassLoaders and the Felix
> framework URLHandlers class. We have two web apps: An Apache Sling web app
> using Felix as its framework and a second Web App providing a JCR repository.
> While starting up, someone is accessing the JCR repository web app which
> causes a JSP compilation. This involves class loading and calls into the
> Felix URLHandlers to create some URL.
> The deadlock description is:
> Found one Java-level deadlock:
> =============================
> "SimpleQuartzScheduler_QuartzSchedulerThread":
> waiting to lock monitor 0x0aaa6634 (object 0x03256ac0, a
> java.net.URLClassLoader),
> which is held by "SCR Component Actor"
> "SCR Component Actor":
> waiting to lock monitor 0x0aaa65cc (object 0x02ebba58, a
> java.net.URLClassLoader),
> which is held by "127.0.0.1 [1222693412656] GET /crx/browser/index.jsp
> HTTP/1.1"
> "127.0.0.1 [1222693412656] GET /crx/browser/index.jsp HTTP/1.1":
> waiting to lock monitor 0x0aaa6634 (object 0x03256ac0, a
> java.net.URLClassLoader),
> which is held by "SCR Component Actor"
> Looking at the code, it seems, that the URLHandlers.createURLStreamHandler
> class is using a synchronized blog which looks too big. In addition it uses
> the SecureAction.forName method, which in turn uses Class.forName, which has
> its issues, too.
> So maybe the URLHandlers.createURLStreamHandler method should employ a
> different synchronization mechanism so as to avoid deadlocks through
> classloaders.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.