You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Karl Pauls (JIRA)" <ji...@apache.org> on 2008/10/21 23:54:44 UTC

[jira] Closed: (FELIX-748) Deadlock with class loading and URLHandlers

     [ https://issues.apache.org/jira/browse/FELIX-748?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Karl Pauls closed FELIX-748.
----------------------------

    Resolution: Fixed

I commited the patch to trunk (rev 706790).

> 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
>             Fix For: felix-1.4.0
>
>         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.