I got the difference.

It's: org.apache.aries.util.tracker.hook.BundleHookBundleTracker#close()

blueprint.core embeds aries.util 1.0.0 and 1.7.1 used 1.1.0.

In 1.0.0 we have:

  @Override
  public void close() {
    sr.unregister();
    tracked.close();
    tracked = null;
  }

and in 1.1.0 we have:

public void close() {
    Bundle[] bundles;
    BundleHookBundleTracker.Tracked outgoing;
    synchronized(this) {
        outgoing = this.tracked;
        if(outgoing == null) {
            return;
        }
        this.tracked.close();
        bundles = this.getBundles();
        this.tracked = null;
        try {
            this.sr.unregister();
        } catch (IllegalStateException var6) {
            ;
        }
    }
...

IMO it'd be better to have aries-util 1.1.3 in blueprint.core 1.8.0...

regards
Grzegorz

2017-03-20 15:59 GMT+01:00 Grzegorz Grzybek <[email protected]>:

> The exact exception is:
>
> java.lang.IllegalStateException: Service already unregistered.
>     at org.apache.felix.framework.ServiceRegistrationImpl.unregister(
> ServiceRegistrationImpl.java:124)
>     at org.apache.aries.util.tracker.hook.BundleHookBundleTracker.
> close(BundleHookBundleTracker.java:88)
>     at org.apache.aries.util.tracker.RecursiveBundleTracker.close(
> RecursiveBundleTracker.java:106)
>     at org.apache.aries.blueprint.container.BlueprintExtender.
> stop(BlueprintExtender.java:187)
>     at org.apache.felix.framework.util.SecureAction.
> stopActivator(SecureAction.java:667)
>     at org.apache.felix.framework.Felix.stopBundle(Felix.java:2538)
>     at org.apache.felix.framework.Felix.setActiveStartLevel(
> Felix.java:1317)
>     at org.apache.felix.framework.FrameworkStartLevelImpl.run(
> FrameworkStartLevelImpl.java:304)
>     at java.lang.Thread.run(Thread.java:745)
>
> when system bundle is stopped, extender is stopped once and then, at
> start-level decrease it's stopped again. "ServiceUtil.
> safeUnregisterService(parserServiceReg);" is fine, but
> "((RecursiveBundleTracker) bt).close();" is throwing exception.
>
> regards
> Grzegorz
>
> 2017-03-20 15:18 GMT+01:00 Grzegorz Grzybek <[email protected]>:
>
>> Looks like it's my env, so "+1 (non-binding)"
>>
>> regards
>> Grzegorz Grzybek
>>
>> 2017-03-20 15:16 GMT+01:00 David Bosschaert <[email protected]>:
>>
>>> +1
>>>
>>> David
>>>
>>> On 20 March 2017 at 13:48, Guillaume Nodet <[email protected]> wrote:
>>>
>>> > I've staged 4 bundles for vote:
>>> >   * Aries Proxy Api 1.1.0
>>> >   * Aries Proxy 1.1.0
>>> >   * Blueprint Core 1.8.0
>>> >   * Blueprint CM 1.1.0
>>> >
>>> > The bundles are staged in the following repositories:
>>> >   https://repository.apache.org/content/repositories/orgapach
>>> earies-1102
>>> >   https://repository.apache.org/content/repositories/orgapach
>>> earies-1103
>>> >
>>> > The changes are the following:
>>> >
>>> > Proxy
>>> >   [ARIES-1706] Use Provide-Capability instead of Export-Service
>>> >  [ARIES-1659] Only produce the combined bundle
>>> >
>>> >  [ARIES-1658] Require OSGi 4.3 and slf4j
>>> >
>>> >  [ARIES-1657] Make proxy impl indepdendent of aries test support
>>> >
>>> >  [ARIES-1656] Remove dependency to aries utils
>>> >
>>> >
>>> > Blueprint-Core
>>> >
>>> >   [ARIES-1682] Fallback to URL API if URI.resolve(systemId) is still
>>> > relative (case of jar:file:)
>>> >
>>> >   [ARIES-1678] Add requirement for ProxyManager service
>>> >
>>> >   [ARIES-1662] Fix behavior when Interceptor.preCall thows exception
>>> >
>>> >   [ARIES-1660] Make blueprint independent from aries util
>>> >
>>> >   [ARIES-960] Make sure X.class is assignable to Class<X>
>>> >
>>> >   [ARIES-960] Support conversion from Iterable<String> to Iterable
>>> >
>>> >   [ARIES-960] Improve error message when unable to find a matching
>>> > constructor / method
>>> >
>>> >
>>> > Blueprint-CM
>>> >
>>> >   [ARIES-1660] Make blueprint independent from aries util
>>> >
>>> > Please review and vote.
>>> >
>>> > Cheers,
>>> > Guillaume Nodet
>>> >
>>>
>>
>>
>

Reply via email to