Details
-
Bug
-
Status: Closed
-
Blocker
-
Resolution: Fixed
-
framework-1.0.3
-
None
-
None
-
1.6.0_03-b05;Sun Microsystems Inc.;mixed mode, sharing;Linux;32 bit JVM
and
1.5.0_13-119;Apple Inc.;mixed mode, sharing;Mac OS X;32 bit JVM
Description
Sometimes Felix gets stuck at startup with a threadlock when using a log bundle, including the Felix provided log bundle.
jdb reveals the following information:
FelixDispatchQueue[1] threadlocks 0x3c1
Monitor information for thread FelixDispatchQueue:
Owned monitor: instance of org.apache.felix.framework.searchpolicy.ContentClassLoader(id=970)
Waiting for monitor: instance of org.apache.felix.moduleloader.ModuleFactoryImpl(id=971)
FelixDispatchQueue[1] threadlocks 0x3c0
Monitor information for thread FelixStartLevel:
Owned monitor: instance of org.apache.felix.moduleloader.ModuleFactoryImpl(id=971)
Waiting for monitor: instance of org.apache.felix.framework.searchpolicy.ContentClassLoader(id=970)
FelixStartLevel[1] where
[1] sun.misc.Unsafe.defineClass (native method)
[2] sun.reflect.ClassDefiner.defineClass (ClassDefiner.java:45)
[3] sun.reflect.MethodAccessorGenerator$1.run (MethodAccessorGenerator.java:381)
[4] java.security.AccessController.doPrivileged (native method)
[5] sun.reflect.MethodAccessorGenerator.generate (MethodAccessorGenerator.java:377)
[6] sun.reflect.MethodAccessorGenerator.generateMethod (MethodAccessorGenerator.java:59)
[7] sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:28)
[8] sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
[9] java.lang.reflect.Method.invoke (Method.java:585)
[10] org.apache.felix.framework.Logger._logReflectively (Logger.java:163)
[11] org.apache.felix.framework.Logger._log (Logger.java:143)
[12] org.apache.felix.framework.Logger.log (Logger.java:81)
[13] org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.createWires (R4SearchPolicyCore.java:2,154)
[14] org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.resolve (R4SearchPolicyCore.java:1,034)
[15] org.apache.felix.framework.Felix._resolveBundle (Felix.java:1,693)
[16] org.apache.felix.framework.Felix._startBundle (Felix.java:1,566)
[17] org.apache.felix.framework.Felix.startBundle (Felix.java:1,519)
[18] org.apache.felix.framework.Felix.setFrameworkStartLevel (Felix.java:1,104)
[19] org.apache.felix.framework.StartLevelImpl.run (StartLevelImpl.java:258)
[20] java.lang.Thread.run (Thread.java:613)
FelixDispatchQueue[1] where
[1] org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.resolve (R4SearchPolicyCore.java:989)
[2] org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource (R4SearchPolicyCore.java:374)
[3] org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass (R4SearchPolicyCore.java:186)
[4] org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass (R4SearchPolicy.java:45)
[5] org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass (ContentClassLoader.java:109)
[6] java.lang.ClassLoader.loadClass (ClassLoader.java:251)
[7] java.lang.ClassLoader.loadClassInternal (ClassLoader.java:374)
I have been reading
http://www.mail-archive.com/dev@felix.apache.org/msg03142.html
But I think that it does not really provide a "solution" to this problem and that this is an issue in the framework implementation. I don't think that the specification of the LogService implies that it cannot be configurable or loading any classes.....
Regards,
Dieter