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
>
>

Reply via email to