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