[
https://issues.apache.org/jira/browse/FELIX-1565?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12752717#action_12752717
]
Karl Pauls commented on FELIX-1565:
-----------------------------------
Yes, there is a possibility for deadlock if a Url is created/used while the
framework is shutdown. While your simple fix would solve that it introduces
another possibility for a different deadlock.
However, I can see a fix for this - I will test it tomorrow and come back to
this issue asap.
> Deadlock UrlHandlers
> --------------------
>
> Key: FELIX-1565
> URL: https://issues.apache.org/jira/browse/FELIX-1565
> Project: Felix
> Issue Type: Bug
> Components: Framework
> Affects Versions: felix-1.8.1
> Environment: java version "1.6.0_14"
> Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
> Java HotSpot(TM) Server VM (build 14.0-b16, mixed mode)
> Linux
> Reporter: Don Brown
> Assignee: Karl Pauls
> Fix For: felix-2.2.0
>
>
> I'm getting a deadlock quite frequently in the URLHandlers class during our
> unit tests:
> build 07-Sep-2009 23:13:49 Java stack information for the threads listed
> above:
> build 07-Sep-2009 23:13:49
> ===================================================
> build 07-Sep-2009 23:13:49 "FelixShutdown":
> build 07-Sep-2009 23:13:49 at
> org.apache.felix.framework.URLHandlers.unregisterFrameworkListsForContextSearch(URLHandlers.java:265)
> build 07-Sep-2009 23:13:49 - waiting to lock <0xb41335e0> (a
> java.util.HashMap)
> build 07-Sep-2009 23:13:49 - locked <0xb00fd0e8> (a
> java.lang.Class for java.net.URL)
> build 07-Sep-2009 23:13:49 at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> build 07-Sep-2009 23:13:49 at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> build 07-Sep-2009 23:13:49 at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> build 07-Sep-2009 23:13:49 at
> java.lang.reflect.Method.invoke(Method.java:597)
> build 07-Sep-2009 23:13:49 at
> org.apache.felix.framework.util.SecureAction.invoke(SecureAction.java:763)
> build 07-Sep-2009 23:13:49 at
> org.apache.felix.framework.URLHandlers.unregisterFrameworkInstance(URLHandlers.java:533)
> build 07-Sep-2009 23:13:49 - locked <0xb4133590> (a
> java.util.ArrayList)
> build 07-Sep-2009 23:13:49 at
> org.apache.felix.framework.URLHandlersActivator.stop(URLHandlersActivator.java:63)
> build 07-Sep-2009 23:13:49 at
> org.apache.felix.framework.util.SecureAction.stopActivator(SecureAction.java:611)
> build 07-Sep-2009 23:13:49 at
> org.apache.felix.framework.Felix$SystemBundleActivator.run(Felix.java:4041)
> build 07-Sep-2009 23:13:49 at java.lang.Thread.run(Thread.java:619)
> build 07-Sep-2009 23:13:49 "main":
> build 07-Sep-2009 23:13:49 at
> org.apache.felix.framework.URLHandlers.getFrameworkFromContext(URLHandlers.java:571)
> build 07-Sep-2009 23:13:49 - waiting to lock <0xb4133590> (a
> java.util.ArrayList)
> build 07-Sep-2009 23:13:49 - locked <0xb41335e0> (a
> java.util.HashMap)
> build 07-Sep-2009 23:13:49 at
> org.apache.felix.framework.URLHandlersStreamHandlerProxy.getStreamHandlerService(URLHandlersStreamHandlerProxy.java:465)
> build 07-Sep-2009 23:13:49 at
> org.apache.felix.framework.URLHandlersStreamHandlerProxy.hashCode(URLHandlersStreamHandlerProxy.java:225)
> build 07-Sep-2009 23:13:49 at java.net.URL.hashCode(URL.java:857)
> build 07-Sep-2009 23:13:49 - locked <0xefb8c0a8> (a java.net.URL)
> build 07-Sep-2009 23:13:49 at
> java.util.HashMap.get(HashMap.java:300)
> build 07-Sep-2009 23:13:49 at
> sun.net.www.protocol.jar.JarFileFactory.getCachedJarFile(JarFileFactory.java:90)
> build 07-Sep-2009 23:13:49 at
> sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:50)
> build 07-Sep-2009 23:13:49 - locked <0xb40027d8> (a
> sun.net.www.protocol.jar.JarFileFactory)
> build 07-Sep-2009 23:13:49 at
> sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:104)
> build 07-Sep-2009 23:13:49 at
> sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:132)
> build 07-Sep-2009 23:13:49 at
> java.net.URL.openStream(URL.java:1009)
> build 07-Sep-2009 23:13:49 at
> aQute.lib.osgi.Analyzer.getBndManifest(Analyzer.java:591)
> build 07-Sep-2009 23:13:49 at
> aQute.lib.osgi.Analyzer.getVersion(Analyzer.java:554)
> build 07-Sep-2009 23:13:49 at
> aQute.lib.osgi.Analyzer.calcManifest(Analyzer.java:303)
> build 07-Sep-2009 23:13:49 at
> com.atlassian.plugin.osgi.container.felix.ExportsBuilder.determineExports(ExportsBuilder.java:84)
> build 07-Sep-2009 23:13:49 at
> com.atlassian.plugin.osgi.container.felix.TestExportsBuilder.testDetermineExportsIncludeServiceInterfaces(TestExportsBuilder.java:68)
> build 07-Sep-2009 23:13:49 at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> build 07-Sep-2009 23:13:49 at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> build 07-Sep-2009 23:13:49 at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> build 07-Sep-2009 23:13:49 at
> java.lang.reflect.Method.invoke(Method.java:597)
> build 07-Sep-2009 23:13:49 at
> junit.framework.TestCase.runTest(TestCase.java:154)
> build 07-Sep-2009 23:13:49 at
> junit.framework.TestCase.runBare(TestCase.java:127)
> build 07-Sep-2009 23:13:49 at
> junit.framework.TestResult$1.protect(TestResult.java:106)
> build 07-Sep-2009 23:13:49 at
> junit.framework.TestResult.runProtected(TestResult.java:124)
> build 07-Sep-2009 23:13:49 at
> junit.framework.TestResult.run(TestResult.java:109)
> build 07-Sep-2009 23:13:49 at
> junit.framework.TestCase.run(TestCase.java:118)
> build 07-Sep-2009 23:13:49 at
> junit.framework.TestSuite.runTest(TestSuite.java:208)
> build 07-Sep-2009 23:13:49 at
> junit.framework.TestSuite.run(TestSuite.java:203)
> build 07-Sep-2009 23:13:49 at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.