Felix,
I am using org.apache.felix.scr-0.9.0-incubator-20070515.104418-2. I
couldn't find a 1.0.0 version of it in the maven repository.
There is no multi-threading inside the test. But there are two versions of
each test bundle installed.
Thank you...
Regards,
Rajini
On 8/20/07, Felix Meschberger <[EMAIL PROTECTED]> wrote:
>
> Hi Rajini,
>
> Just a quick question: What version of the Felix SCR Bundle are you
> using ?
>
> Is there anything special about your test case, like for example
> Multi-threadedness in some way or the other ?
>
> Thanks and Regards
> Felix
>
> Am Montag, den 20.08.2007, 15:18 +0100 schrieb Rajini Sivaram:
> > Hello,
> >
> > One of my testcases intermittently throws an exception during shutdown.
> I
> > have managed to recreate the exception under a debugger, and it shows
> two
> > threads trying to unregister the same service. The test fails only when
> > declarative services are used. I am using Felix 1.0.0. The test uses
> > multiple versions of a bundle, but I am not sure if that has anything to
> do
> > with the exception.
> >
> > The exception thrown is:
> >
> > --- Exception with component : Unexpected problem executing task ---
> > java.lang.IllegalStateException: Service already unregistered.
> > at org.apache.felix.framework.ServiceRegistrationImpl.unregister
> (
> > ServiceRegistrationImpl.java:105)
> > at
> > org.apache.felix.scr.AbstractComponentManager.unregisterComponentService
> (
> > AbstractComponentManager.java:503)
> > at
> org.apache.felix.scr.AbstractComponentManager.deactivateInternal(
> > AbstractComponentManager.java:369)
> > at org.apache.felix.scr.AbstractComponentManager.access$200(
> > AbstractComponentManager.java:55)
> > at org.apache.felix.scr.AbstractComponentManager$3.run(
> > AbstractComponentManager.java:176)
> > at org.apache.felix.scr.ComponentActorThread.run(
> > ComponentActorThread.java:81)
> >
> > Here is the stack trace of the two threads under the debugger (both are
> > using the same object):
> >
> > Thread [FelixStartLevel] (Suspended (breakpoint at line
> 97
> > in ServiceRegistrationImpl))
> > ServiceRegistrationImpl.unregister() line: 97
> > ServiceRegistry.unregisterServices(Bundle) line:
> 119
> > Felix._stopBundle(FelixBundle, boolean) line:
> 1946
> > Felix.stopBundle(FelixBundle, boolean) line:
> 1866
> > Felix.setFrameworkStartLevel(int) line: 1080
> > StartLevelImpl.run() line: 258
> > Thread.run() line: 803
> > Thread [SCR Component Actor] (Suspended (breakpoint at
> line
> > 97 in ServiceRegistrationImpl))
> > ServiceRegistrationImpl.unregister() line: 97
> >
> >
> ImmediateComponentManager(AbstractComponentManager).unregisterComponentService()
> > line: 503
> >
> > ImmediateComponentManager(AbstractComponentManager).deactivateInternal()
> > line: 369
> >
> > AbstractComponentManager.access$200(AbstractComponentManager)
> > line: 55
> > AbstractComponentManager$3.run() line: 176
> > ComponentActorThread.run() line: 81
> >
> >
> > The exception thrown is the IllegalStateException from
> > public void unregister()
> > {
> > if (m_svcObj != null)
> > {
> > m_registry.unregisterService(m_bundle, this);
> > m_svcObj = null;
> > m_factory = null;
> > }
> > else
> > {
> > * throw new IllegalStateException("Service already
> > unregistered.");
> > * }
> > }
> >
> >
> >
> > Thank you...
> >
> > Regards,
> >
> > Rajini
>
>