You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by Guillaume Nodet <gn...@apache.org> on 2017/06/06 13:47:09 UTC

Resolver problem causing a fragment to have a wire to the framework ?

I just hit a problem where refreshing a fragment cause the framework to
be wrongly refreshed.
This is caused by the fragment's wiring having 2 wires: one to its host,
and another one for an osgi.ee requirement.
My understanding is that fragments should only be wired to their hosts.
This is a regression between 5.6.1 and 5.6.2, which may have been cause by
the upgrade to resolver 1.12.0.

At first glance, it could be related to the following commit:
  https://github.com/apache/felix/commit/b844e1ebd944bbbb5d18c8a3d37f38
f5e43e1a13

Any hint appreciated...
Btw, i've raised FELIX-5649
<https://issues.apache.org/jira/browse/FELIX-5649> for that.

-- 
------------------------
Guillaume Nodet

Re: Resolver problem causing a fragment to have a wire to the framework ?

Posted by Guillaume Nodet <gn...@apache.org>.
From the specs (section 3.15.1,
https://github.com/apache/felix/blob/trunk/resolver/src/main/java/org/apache/felix/resolver/ResolverImpl.java#L2027-L2028),
it seems that the fact that there are 2 wires on the fragment is expected.
However, such a wire should definitely not cause a refresh of the framework
if a fragment is refreshed.
So I'm planning to add an additional test around the following line:
https://github.com/apache/felix/blob/trunk/framework/src/main/java/org/apache/felix/framework/BundleRevisionDependencies.java#L173

                        if
(HostNamespace.HOST_NAMESPACE.equals(bw.getCapability().getNamespace()))
                        {
                            result.add(bw.getProvider().getBundle());
                        }


2017-06-06 16:12 GMT+02:00 Guillaume Nodet <gn...@apache.org>:

> Actually, the bug (if it's a bug) is much older, as I can observe the same
> behavior with framework 5.0.0.
> I can't easily try with 4.x lines though...
>
> 2017-06-06 15:47 GMT+02:00 Guillaume Nodet <gn...@apache.org>:
>
>> I just hit a problem where refreshing a fragment cause the framework to
>> be wrongly refreshed.
>> This is caused by the fragment's wiring having 2 wires: one to its host,
>> and another one for an osgi.ee requirement.
>> My understanding is that fragments should only be wired to their hosts.
>> This is a regression between 5.6.1 and 5.6.2, which may have been cause
>> by the upgrade to resolver 1.12.0.
>>
>> At first glance, it could be related to the following commit:
>>   https://github.com/apache/felix/commit/b844e1ebd944bbbb5d1
>> 8c8a3d37f38f5e43e1a13
>>
>> Any hint appreciated...
>> Btw, i've raised FELIX-5649
>> <https://issues.apache.org/jira/browse/FELIX-5649> for that.
>>
>> --
>> ------------------------
>> Guillaume Nodet
>>
>>
>
>
> --
> ------------------------
> Guillaume Nodet
>
>


-- 
------------------------
Guillaume Nodet

Re: Resolver problem causing a fragment to have a wire to the framework ?

Posted by Guillaume Nodet <gn...@apache.org>.
Actually, the bug (if it's a bug) is much older, as I can observe the same
behavior with framework 5.0.0.
I can't easily try with 4.x lines though...

2017-06-06 15:47 GMT+02:00 Guillaume Nodet <gn...@apache.org>:

> I just hit a problem where refreshing a fragment cause the framework to
> be wrongly refreshed.
> This is caused by the fragment's wiring having 2 wires: one to its host,
> and another one for an osgi.ee requirement.
> My understanding is that fragments should only be wired to their hosts.
> This is a regression between 5.6.1 and 5.6.2, which may have been cause by
> the upgrade to resolver 1.12.0.
>
> At first glance, it could be related to the following commit:
>   https://github.com/apache/felix/commit/b844e1ebd944bbbb5d1
> 8c8a3d37f38f5e43e1a13
>
> Any hint appreciated...
> Btw, i've raised FELIX-5649
> <https://issues.apache.org/jira/browse/FELIX-5649> for that.
>
> --
> ------------------------
> Guillaume Nodet
>
>


-- 
------------------------
Guillaume Nodet