felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jad Naous <...@nerati.com>
Subject Re: IPOJO initialization + refresh deadlock
Date Tue, 01 Jan 2013 16:51:37 GMT
On Tue, Jan 1, 2013 at 8:30 AM, Richard S. Hall <heavy@ungoverned.org>wrote:

> On 1/1/13 11:13, Jad Naous wrote:
>
>> On Tue, Jan 1, 2013 at 7:58 AM, Richard S. Hall <heavy@ungoverned.org
>> >wrote:
>>
>>  On 1/1/13 10:37, Jad Naous wrote:
>>>
>>>  On Tue, Jan 1, 2013 at 6:21 AM, Richard S. Hall<heavy@ungoverned.org>**
>>>>
>>>> wrote:
>>>>
>>>>   On 1/1/13 06:09, Jad Naous wrote:
>>>>
>>>>>   Happy new year!
>>>>>
>>>>>> I'm running into another deadlock now. It seems like there needs
to
>>>>>> be a
>>>>>> more rigorous study of how locking is used in the framework. In
>>>>>> particular,
>>>>>> it seems like the framework should not be invoking any listeners
>>>>>> within
>>>>>> the
>>>>>> same thread that's executing the stopping/starting/refreshing of
>>>>>> bundles...
>>>>>> Anywhere that happens there will be a potential for a deadlock because
>>>>>> of
>>>>>> a
>>>>>> misordering of lock acquisition. The framework should never call
into
>>>>>> user
>>>>>> code with any locks held.
>>>>>>
>>>>>>   Yeah, tell me about it, but it is not possible in all cases,
>>>>>>
>>>>> unfortunately. I personally feel that all events should be
>>>>> asynchronous,
>>>>> but that's another story.
>>>>>
>>>>> -> richard
>>>>>
>>>>>
>>>>>   I'm happy to help fix this, but I need some pointers as to what
>>>>> needs to
>>>>>
>>>> happen. For synchronous events, what are the requirements? Or is this
>>>> not
>>>> fixable? Can the lock be released before firing the events?
>>>>
>>>>  I don't think it can be fixed, some of these things are baked into the
>>> spec. I think the spec even states somewhere that synchronous event
>>> listeners must be careful since they may be holding framework locks, so
>>> they shouldn't try to do too much. Of course, that is not easy advice to
>>> follow since framework impls vary.
>>>
>>> We even have bugs open that say we aren't holding locks when we should
>>> be,
>>> e.g.:
>>>
>>>      https://issues.apache.org/****jira/browse/FELIX-3806<https://issues.apache.org/**jira/browse/FELIX-3806>
>>> <https:/**/issues.apache.org/jira/**browse/FELIX-3806<https://issues.apache.org/jira/browse/FELIX-3806>
>>> >
>>>
>>>
>>> This is one of the poorly designed parts of the OSGi spec. It was meant
>>> to
>>> work in a world were services can "come and go at anytime", but it allows
>>> users to clings to synchronous events to do tons of work.
>>>
>>>  Then I guess this is something that ipojo is doing incorrectly?
>>
>
> Hard for me to say, but if there is a case where we can fire events
> without holding locks, then you are correct in saying that we should try to
> avoid doing so. Likewise, users should avoid doing too much when they
> receive synchronous events.
>

Well, iPOJO is not doing anything. It is just loading a class, and that's
what's causing the global lock to be acquired.


> -> richard
>
>
>>
>>  -> richard
>>>
>>>
>>>    Name: Thread-2
>>>>
>>>>> State: WAITING on [Ljava.lang.Object;@4a018e1b
>>>>>> Total blocked: 38,871,649  Total waited: 38,871,650
>>>>>>
>>>>>> Stack trace:
>>>>>>     java.lang.Object.wait(Native Method)
>>>>>> java.lang.Object.wait(Object.******java:485)
>>>>>> org.apache.felix.framework.******Felix.acquireGlobalLock(**Felix.**
>>>>>> **java:5033)
>>>>>> org.apache.felix.framework.******StatefulResolver.resolve(**
>>>>>> StatefulResolver.java:451)
>>>>>> org.apache.felix.framework.******BundleWiringImpl.****
>>>>>> searchDynamicImports(**
>>>>>> BundleWiringImpl.java:1578)
>>>>>> org.apache.felix.framework.******BundleWiringImpl.**
>>>>>> findClassOrResourceByDelegatio******n(BundleWiringImpl.java:****1478)
>>>>>> org.apache.felix.framework.******BundleWiringImpl.access$400(****
>>>>>> BundleWiringImpl.java:75)
>>>>>> org.apache.felix.framework.******BundleWiringImpl$**
>>>>>> BundleClassLoader.loadClass(******BundleWiringImpl.java:1882)
>>>>>> java.lang.ClassLoader.******loadClass(ClassLoader.java:******247)
>>>>>> org.apache.felix.framework.******BundleWiringImpl.****
>>>>>> getClassByDelegation(**
>>>>>> BundleWiringImpl.java:1356)
>>>>>> org.apache.felix.framework.******ServiceRegistrationImpl$**
>>>>>> ServiceReferenceImpl.******isAssignableTo(****
>>>>>> ServiceRegistrationImpl.java:******
>>>>>> 548)
>>>>>> org.apache.felix.framework.******util.Util.**isServiceAssignable(****
>>>>>> Util.java:280)
>>>>>> org.apache.felix.framework.******util.EventDispatcher.**
>>>>>> invokeServiceListenerCallback(******EventDispatcher.java:916)
>>>>>> org.apache.felix.framework.******util.EventDispatcher.****
>>>>>> fireEventImmediately(
>>>>>> **EventDispatcher.java:793)
>>>>>> org.apache.felix.framework.******util.EventDispatcher.****
>>>>>> fireServiceEvent(**
>>>>>> EventDispatcher.java:543)
>>>>>> org.apache.felix.framework.******Felix.fireServiceEvent(Felix.*****
>>>>>> *java:4346)
>>>>>> org.apache.felix.framework.******Felix.registerService(Felix.******
>>>>>> java:3356)
>>>>>> org.apache.felix.framework.******BundleContextImpl.******
>>>>>> registerService(**
>>>>>> BundleContextImpl.java:346)
>>>>>> org.apache.felix.ipojo.******IPojoFactory.start(****
>>>>>> IPojoFactory.java:613)
>>>>>>       - locked org.apache.felix.ipojo.******ComponentFactory@468034b6
>>>>>> org.apache.felix.ipojo.******Extender.******createAbstractFactory(**
>>>>>> Extender.java:520)
>>>>>> org.apache.felix.ipojo.******Extender.parse(Extender.java:******301)
>>>>>> org.apache.felix.ipojo.******Extender.startManagementFor(******
>>>>>> Extender.java:237)
>>>>>> org.apache.felix.ipojo.******Extender.access$600(Extender.***
>>>>>> ***java:52)
>>>>>> org.apache.felix.ipojo.******Extender$CreatorThread.run(******
>>>>>> Extender.java:769)
>>>>>> java.lang.Thread.run(Thread.******java:662)
>>>>>>
>>>>>> Name: FelixFrameworkWiring
>>>>>> State: BLOCKED on org.apache.felix.ipojo.****
>>>>>>
>>>>>> ComponentFactory@468034b6owned
>>>>>>
>>>>>> by: Thread-2
>>>>>> Total blocked: 7  Total waited: 1
>>>>>>
>>>>>> Stack trace:
>>>>>>     org.apache.felix.ipojo.******IPojoFactory.****
>>>>>> removeFactoryStateListener(**
>>>>>> IPojoFactory.java:511)
>>>>>> org.apache.felix.ipojo.******InstanceCreator.removeFactory(******
>>>>>> InstanceCreator.java:199)
>>>>>> org.apache.felix.ipojo.******Extender.closeManagementFor(******
>>>>>> Extender.java:180)
>>>>>> org.apache.felix.ipojo.******Extender.bundleChanged(****
>>>>>> Extender.java:153)
>>>>>> org.apache.felix.framework.******util.EventDispatcher.**
>>>>>> invokeBundleListenerCallback(******EventDispatcher.java:868)
>>>>>> org.apache.felix.framework.******util.EventDispatcher.****
>>>>>> fireEventImmediately(
>>>>>> **EventDispatcher.java:789)
>>>>>> org.apache.felix.framework.******util.EventDispatcher.****
>>>>>> fireBundleEvent(**
>>>>>> EventDispatcher.java:514)
>>>>>> org.apache.felix.framework.******Felix.fireBundleEvent(Felix.******
>>>>>> java:4330)
>>>>>> org.apache.felix.framework.******Felix.stopBundle(Felix.java:***
>>>>>> ***2451)
>>>>>> org.apache.felix.framework.******Felix$RefreshHelper.stop(****
>>>>>> Felix.java:4715)
>>>>>> org.apache.felix.framework.******Felix.refreshPackages(Felix.******
>>>>>> java:4037)
>>>>>> org.apache.felix.framework.******FrameworkWiringImpl.run(**
>>>>>> FrameworkWiringImpl.java:178)
>>>>>> java.lang.Thread.run(Thread.******java:662)
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Sat, Dec 22, 2012 at 6:39 PM, Richard S. Hall <
>>>>>> heavy@ungoverned.org
>>>>>>
>>>>>>  wrote:
>>>>>>>
>>>>>>>     On 12/22/12 20:41 , Jad Naous wrote:
>>>>>>
>>>>>>     Thanks! I was building with java6. Don't know if that is the
>>>>>>> issue.
>>>>>>>
>>>>>>>  Anyway,
>>>>>>>> I tested the snapshot, and looks like that fixes it.
>>>>>>>>
>>>>>>>> Any idea when 4.1.0 will be released? Do you know if
>>>>>>>> http://svn.apache.org/viewvc?********view=revision&revision=****
>>>>>>>> **1421958<http://svn.apache.org/viewvc?******view=revision&revision=****1421958>
>>>>>>>> <http://svn.apache.**org/viewvc?****view=revision&**
>>>>>>>> revision=**1421958<http://svn.apache.org/viewvc?****view=revision&revision=**1421958>
>>>>>>>> >
>>>>>>>> <http://svn.apache.org/****viewvc?**view=revision&****
>>>>>>>> revision=1421958<http://svn.apache.org/**viewvc?**view=revision&**revision=1421958>
>>>>>>>> <http://svn.**apache.org/viewvc?**view=**revision&revision=1421958<http://svn.apache.org/viewvc?**view=revision&revision=1421958>
>>>>>>>> >
>>>>>>>> <http://svn.apache.org/******viewvc?view=revision&revision=**
>>>>>>>> ****1421958<http://svn.apache.org/****viewvc?view=revision&revision=****1421958>
>>>>>>>> <http://svn.apache.**org/**viewvc?view=revision&**
>>>>>>>> revision=**1421958<http://svn.apache.org/**viewvc?view=revision&revision=**1421958>
>>>>>>>> >
>>>>>>>> <http://svn.apache.**org/**viewvc?view=revision&****
>>>>>>>> revision=1421958<http://svn.**apache.org/viewvc?view=**
>>>>>>>> revision&revision=1421958<http://svn.apache.org/viewvc?view=revision&revision=1421958>
>>>>>>>> >
>>>>>>>>
>>>>>>>>  will
>>>>>>>>>>
>>>>>>>>> apply
>>>>>>>>
>>>>>>>> cleanly onto 4.0.3? Otherwise, how stable do you think is
>>>>>>>> 4.1.0-SNAPSHOT?
>>>>>>>>
>>>>>>>>    The release version will be 4.2.0, but the 4.1.0-SNAPSHOT
build
>>>>>>>> should
>>>>>>>>
>>>>>>>>  be
>>>>>>> reasonably stable. We try to keep trunk stable.
>>>>>>>
>>>>>>> I want to try to get a release out soon, but I don't have a specific
>>>>>>> time
>>>>>>> table. I'll try to get in done in January if all goes well.
>>>>>>>
>>>>>>> -> richard
>>>>>>>
>>>>>>>
>>>>>>>    Thanks!
>>>>>>>
>>>>>>>  Jad.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, Dec 21, 2012 at 6:49 AM, Richard S. Hall <
>>>>>>>> heavy@ungoverned.org
>>>>>>>>
>>>>>>>>   wrote:
>>>>>>>>
>>>>>>>>>      It built fine for me. I'm was building with Java
7.
>>>>>>>>>
>>>>>>>>   Regardless, I deployed snapshots of framework, main, and
>>>>>>>>
>>>>>>>>> main.distribution, so just grab what you want from the
Apache
>>>>>>>>> snapshot
>>>>>>>>> repo
>>>>>>>>> to try it out.
>>>>>>>>>
>>>>>>>>> -> richard
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 12/20/12 18:56 , Jad Naous wrote:
>>>>>>>>>
>>>>>>>>>     It does look like the same issue.
>>>>>>>>>
>>>>>>>>>   Got the trunk/framework. mvn clean install gives:
>>>>>>>>>
>>>>>>>>>> [INFO] --- maven-compiler-plugin:2.3.2:**********compile
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> (default-compile) @
>>>>>>>>>> org.apache.felix.framework ---
>>>>>>>>>> Dec 20, 2012 3:54:59 PM org.sonatype.guice.bean.****
>>>>>>>>>> reflect.Logs$JULSink
>>>>>>>>>> warn
>>>>>>>>>> WARNING: Error injecting: org.apache.maven.plugin.**********
>>>>>>>>>> CompilerMojo
>>>>>>>>>> java.lang.**********NoClassDefFoundError:
>>>>>>>>>> org/codehaus/plexus/compiler/**********util/scan/******
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> InclusionScanException
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> jad.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Thu, Dec 20, 2012 at 3:22 PM, Richard S. Hall
<
>>>>>>>>>> heavy@ungoverned.org
>>>>>>>>>>
>>>>>>>>>>    wrote:
>>>>>>>>>>
>>>>>>>>>>        On 12/20/12 4:10 PM, Jad Naous wrote:
>>>>>>>>>>>
>>>>>>>>>>>        If a bundle undergoes a refresh while
ipojo is still
>>>>>>>>>> initializing
>>>>>>>>>>
>>>>>>>>>>     components, a deadlock can happen.  The issue
is that if
>>>>>>>>>>> ipojo is
>>>>>>>>>>>
>>>>>>>>>>>  attempting to register a service, it will be
doing it while
>>>>>>>>>>>> synchronizing
>>>>>>>>>>>> on the InstanceCreator instance. It will
then try to register a
>>>>>>>>>>>> service
>>>>>>>>>>>> which requires the framework's global lock.
>>>>>>>>>>>>
>>>>>>>>>>>>      Registering a service doesn't require
a global, just a
>>>>>>>>>>>> bundle
>>>>>>>>>>>> lock.
>>>>>>>>>>>> I
>>>>>>>>>>>>
>>>>>>>>>>>>    think this could be related to:
>>>>>>>>>>>>
>>>>>>>>>>>>           https://issues.apache.org/******
>>>>>>>>>>> ******jira/browse/FELIX-3761<https://issues.apache.org/**********jira/browse/FELIX-3761>
>>>>>>>>>>> <h**ttps://issues.apache.org/**********jira/browse/FELIX-3761<https://issues.apache.org/********jira/browse/FELIX-3761>
>>>>>>>>>>> >
>>>>>>>>>>> <htt**ps://issues.apache.org/**********jira/browse/FELIX-3761<http://issues.apache.org/********jira/browse/FELIX-3761>
>>>>>>>>>>> <**https://issues.apache.org/********jira/browse/FELIX-3761<https://issues.apache.org/******jira/browse/FELIX-3761>
>>>>>>>>>>> >
>>>>>>>>>>> <https**://issues.apache.org/********jira/**browse/FELIX-3761<http://issues.apache.org/******jira/**browse/FELIX-3761>
>>>>>>>>>>> <**http://issues.apache.org/******jira/**browse/FELIX-3761<http://issues.apache.org/****jira/**browse/FELIX-3761>
>>>>>>>>>>> >
>>>>>>>>>>> <ht**tps://issues.apache.org/********jira/browse/FELIX-3761<http://issues.apache.org/******jira/browse/FELIX-3761>
>>>>>>>>>>> <ht**tps://issues.apache.org/******jira/browse/FELIX-3761<https://issues.apache.org/****jira/browse/FELIX-3761>
>>>>>>>>>>> >
>>>>>>>>>>> <https:/**/issues.apache.org/********jira/**browse/FELIX-3761<http://issues.apache.org/******jira/**browse/FELIX-3761>
>>>>>>>>>>> <**http://issues.apache.org/******jira/**browse/FELIX-3761<http://issues.apache.org/****jira/**browse/FELIX-3761>
>>>>>>>>>>> >
>>>>>>>>>>> <ht**tp://issues.apache.org/****jira/****browse/FELIX-3761<http://issues.apache.org/**jira/****browse/FELIX-3761>
>>>>>>>>>>> <htt**p://issues.apache.org/**jira/****browse/FELIX-3761<http://issues.apache.org/**jira/**browse/FELIX-3761>
>>>>>>>>>>> >
>>>>>>>>>>> <http**s://issues.apache.org/******jira/**browse/FELIX-3761<http://issues.apache.org/****jira/**browse/FELIX-3761>
>>>>>>>>>>> <ht**tp://issues.apache.org/**jira/****browse/FELIX-3761<http://issues.apache.org/**jira/**browse/FELIX-3761>
>>>>>>>>>>> >
>>>>>>>>>>> <http**s://issues.apache.org/****jira/**browse/FELIX-3761<http://issues.apache.org/**jira/**browse/FELIX-3761>
>>>>>>>>>>> <http**s://issues.apache.org/**jira/**browse/FELIX-3761<https://issues.apache.org/**jira/browse/FELIX-3761>
>>>>>>>>>>> >
>>>>>>>>>>> <https:/**/issues.apache.org/********jira/**browse/FELIX-3761<http://issues.apache.org/******jira/**browse/FELIX-3761>
>>>>>>>>>>> <**http://issues.apache.org/******jira/**browse/FELIX-3761<http://issues.apache.org/****jira/**browse/FELIX-3761>
>>>>>>>>>>> >
>>>>>>>>>>> <ht**tp://issues.apache.org/****jira/****browse/FELIX-3761<http://issues.apache.org/**jira/****browse/FELIX-3761>
>>>>>>>>>>> <htt**p://issues.apache.org/**jira/****browse/FELIX-3761<http://issues.apache.org/**jira/**browse/FELIX-3761>
>>>>>>>>>>> >
>>>>>>>>>>> <http**://issues.apache.org/****jira/****browse/FELIX-3761<http://issues.apache.org/**jira/****browse/FELIX-3761>
>>>>>>>>>>> <htt**p://issues.apache.org/jira/******browse/FELIX-3761<http://issues.apache.org/jira/****browse/FELIX-3761>
>>>>>>>>>>> >
>>>>>>>>>>> <htt**p://issues.apache.org/**jira/****browse/FELIX-3761<http://issues.apache.org/jira/****browse/FELIX-3761>
>>>>>>>>>>> <htt**p://issues.apache.org/jira/****browse/FELIX-3761<http://issues.apache.org/jira/**browse/FELIX-3761>
>>>>>>>>>>> >
>>>>>>>>>>> <https**://issues.apache.org/******jira/**browse/FELIX-3761<http://issues.apache.org/****jira/**browse/FELIX-3761>
>>>>>>>>>>> <ht**tp://issues.apache.org/**jira/****browse/FELIX-3761<http://issues.apache.org/**jira/**browse/FELIX-3761>
>>>>>>>>>>> >
>>>>>>>>>>>
>>>>>>>>>>> <http**://issues.apache.org/**jira/****browse/FELIX-3761<http://issues.apache.org/jira/****browse/FELIX-3761>
>>>>>>>>>>> <htt**p://issues.apache.org/jira/****browse/FELIX-3761<http://issues.apache.org/jira/**browse/FELIX-3761>
>>>>>>>>>>> >
>>>>>>>>>>> <https**://issues.apache.org/****jira/**browse/FELIX-3761<http://issues.apache.org/**jira/**browse/FELIX-3761>
>>>>>>>>>>> <http**://issues.apache.org/jira/****browse/FELIX-3761<http://issues.apache.org/jira/**browse/FELIX-3761>
>>>>>>>>>>> >
>>>>>>>>>>> <https**://issues.apache.org/**jira/**browse/FELIX-3761<http://issues.apache.org/jira/**browse/FELIX-3761>
>>>>>>>>>>> <https**://issues.apache.org/jira/**browse/FELIX-3761<https://issues.apache.org/jira/browse/FELIX-3761>
>>>>>>>>>>> >
>>>>>>>>>>> This avoid grabbing the bundle lock when registering
a service,
>>>>>>>>>>> so
>>>>>>>>>>> maybe
>>>>>>>>>>> it will help your situation. You could try to
build the framework
>>>>>>>>>>> from
>>>>>>>>>>> trunk and see if it makes a difference.
>>>>>>>>>>>
>>>>>>>>>>> If you aren't able to build from trunk, let me
know and I'll try
>>>>>>>>>>> to
>>>>>>>>>>> publish a snapshot build since I don't think
we have a recent one
>>>>>>>>>>> (we
>>>>>>>>>>> should do this no matter what).
>>>>>>>>>>>
>>>>>>>>>>> -> richard
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>      If a refresh is happening in another thread,
the refresh
>>>>>>>>>>> will
>>>>>>>>>>> be
>>>>>>>>>>> holding
>>>>>>>>>>>
>>>>>>>>>>>    the framework's global lock, which will then
call IPOJO's
>>>>>>>>>>> extender,
>>>>>>>>>>>
>>>>>>>>>>>  which
>>>>>>>>>>>> then attempts to call a method on InstanceCreator,
hence leading
>>>>>>>>>>>> to
>>>>>>>>>>>> the
>>>>>>>>>>>> deadlock.
>>>>>>>>>>>>
>>>>>>>>>>>> Here are the stack traces:
>>>>>>>>>>>>
>>>>>>>>>>>> Daemon Thread [Thread-1] (Suspended)
>>>>>>>>>>>> Object.wait(long) line: not available [native
method]
>>>>>>>>>>>> Object[](Object).wait() line: 485
>>>>>>>>>>>> Felix.acquireBundleLock(************BundleImpl,
int) line: 4871
>>>>>>>>>>>> Felix.registerService(************BundleImpl,
String[], Object,
>>>>>>>>>>>> Dictionary)
>>>>>>>>>>>> line:
>>>>>>>>>>>> 3205
>>>>>>>>>>>> BundleContextImpl.************registerService(String[],
Object,
>>>>>>>>>>>> Dictionary)
>>>>>>>>>>>> line:
>>>>>>>>>>>> 346
>>>>>>>>>>>>
>>>>>>>>>>>> IPojoContext.registerService(************String[],
Object,
>>>>>>>>>>>> Dictionary)
>>>>>>>>>>>> line:
>>>>>>>>>>>> 385
>>>>>>>>>>>> ProvidedService.************registerService()
line: 362
>>>>>>>>>>>> ProvidedServiceHandler.__M_************stateChanged(int)
line:
>>>>>>>>>>>> 509
>>>>>>>>>>>> ProvidedServiceHandler.************stateChanged(int)
line: not
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> available
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> InstanceManager.setState(int) line: 536
>>>>>>>>>>>> InstanceManager.start() line: 418
>>>>>>>>>>>> ComponentFactory.************createInstance(Dictionary,
>>>>>>>>>>>>
>>>>>>>>>>>> IPojoContext,
>>>>>>>>>>>> HandlerManager[])
>>>>>>>>>>>> line: 179
>>>>>>>>>>>>
>>>>>>>>>>>> ComponentFactory(IPojoFactory)************.**
>>>>>>>>>>>>
>>>>>>>>>>>> createComponentInstance(******
>>>>>>>>>>>> Dictionary,
>>>>>>>>>>>> ServiceContext) line: 310
>>>>>>>>>>>> ComponentFactory(IPojoFactory)************.**
>>>>>>>>>>>> createComponentInstance(******
>>>>>>>>>>>> Dictionary)
>>>>>>>>>>>> line: 239
>>>>>>>>>>>> InstanceCreator$************ManagedInstance.create(************
>>>>>>>>>>>> IPojoFactory)
>>>>>>>>>>>> line: 355
>>>>>>>>>>>> InstanceCreator.addInstance(************Dictionary,
long)
>>>>>>>>>>>> line: 89
>>>>>>>>>>>> Extender.parse(Bundle, String) line: 306
>>>>>>>>>>>> Extender.startManagementFor(************Bundle)
line: 237
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Extender.access$600(Extender, Bundle) line:
52
>>>>>>>>>>>> Extender$CreatorThread.run() line: 769
>>>>>>>>>>>> Thread.run() line: 662
>>>>>>>>>>>>
>>>>>>>>>>>> Daemon Thread [FelixFrameworkWiring] (Suspended)
>>>>>>>>>>>> InstanceCreator.************removeInstancesFromBundle(********
>>>>>>>>>>>> ****long)
>>>>>>>>>>>> line: 116
>>>>>>>>>>>> Extender.closeManagementFor(************Bundle)
line: 171
>>>>>>>>>>>> Extender.bundleChanged(************BundleEvent)
line: 153
>>>>>>>>>>>> EventDispatcher.************invokeBundleListenerCallback(***
>>>>>>>>>>>> ****
>>>>>>>>>>>>
>>>>>>>>>>>> *****Bundle,
>>>>>>>>>>>> EventListener,
>>>>>>>>>>>> EventObject) line: 868
>>>>>>>>>>>> EventDispatcher.************fireEventImmediately(********
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> EventDispatcher,
>>>>>>>>>>>>
>>>>>>>>>>>> int, Map,
>>>>>>>>>>>> EventObject, Dictionary) line: 789
>>>>>>>>>>>> EventDispatcher.************fireBundleEvent(BundleEvent,
>>>>>>>>>>>> Framework)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> line:
>>>>>>>>>>>>
>>>>>>>>>>>> 514
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Felix.fireBundleEvent(int, Bundle) line:
4244
>>>>>>>>>>>> Felix.stopBundle(BundleImpl, boolean) line:
2351
>>>>>>>>>>>> Felix$RefreshHelper.stop() line: 4629
>>>>>>>>>>>> Felix.refreshPackages(************Collection,
>>>>>>>>>>>> FrameworkListener[])
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> line:
>>>>>>>>>>>>
>>>>>>>>>>>> 3951
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> FrameworkWiringImpl.run() line: 172
>>>>>>>>>>>> Thread.run() line: 662
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message