Unable to reproduce the problem today.  Maybe all that time I was just
short by a refresh.

Thanks anyway for the help...

Don

On Wed, Aug 17, 2011 at 11:41 AM, Donald Whytock <[email protected]> wrote:
>>> When BundleB is started, ActivatorA.start() instantiates and starts an
>>> extension of ServiceTracker, myServiceTracker.
>>> myServiceTracker.addingReference() calls getServiceImpl() for a
>>> ServiceImpA and calls showStatus() on it.
>>>
>>> If ServiceImplB.showStatus() calls super.showStatus(),
>>> ServiceImplB.showStatus() is called.  If ServiceImplB.showStatus()
>>> does not call super.showStatus(), ServiceImplA.showStatus() is called.
>>
>> Are you saying that invoking ServiceImplB.showStatus() bypasses the code in
>> ServiceImplB.showStatus() and directly goes to ServiceImplA.showStatus()?
>
> Yes. Code in the ServiceTracker launched by ActivatorA does
> serviceImpl = getServiceImpl(); getServiceImpl() is abstract, and
> implemented by ActivatorB to return a ServiceImplB.  If
> serviceImpl.showStatus() is called, ServiceImplA.showStatus() is run,
> unless ServiceImplB.showStatus() calls super.showStatus().
>
>>
>>>
>>> I don't believe this is normal Java behavior.  I believe in a
>>> command-line-JVM situation, ServiceImplB.showStatus() would always be
>>> called, whether or not it called super.showStatus().  So is this an
>>> idiosyncracy of classloaders in Felix?
>>
>> I doubt it. I would imagine something else is going on. If you want to email
>> me a simple working example, I can take a look at it.
>
> Not sure I have an example I'd call simple, but I'll see what I can
> do. :)  Thanks...
>
> Don
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to