felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard S. Hall (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FELIX-3962) Resolver does not handle it well if the ResolveContext hands back hosts capabilities that are already resolved
Date Tue, 12 Mar 2013 13:33:13 GMT

    [ https://issues.apache.org/jira/browse/FELIX-3962?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13600031#comment-13600031
] 

Richard S. Hall commented on FELIX-3962:
----------------------------------------

Technically, from this resolver's perspective, returning a resolved host capability is invalid.
However, if we want to patch it so that it filters it so that it doesn't lead to strange errors,
then we can do that.
                
> Resolver does not handle it well if the ResolveContext hands back hosts capabilities
that are already resolved
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-3962
>                 URL: https://issues.apache.org/jira/browse/FELIX-3962
>             Project: Felix
>          Issue Type: Bug
>          Components: Resolver
>            Reporter: Thomas Watson
>
> I was running into some very strange uses constraint violations if my resolve context
handed back host capabilities from resources that already have wirings (already resolved).
 It is hard to pin point all the issues, but the end result was that when checking for consistencies
I found the compare being done between WrappedCapability and the raw Capability and failing.
 I think this was happening because of some inconsistencies for when a WrappedResource is
created.
> I easily worked around the issue in my ResolveContext implementation by not returning
host capabilities for already resolved resources.  But I think the resolver impl should be
more robust if this happens and weed out the host capabilities from resolved hosts if the
resolver does not support attaching fragments to already resolved hosts.
> I also would like to understand if the intention of the code is to only create WrappedResource
objects for resources that have no wiring.  I know WrappedRequirement and WrappedCapability
objects can get created for already resolved resources that have reqs and caps from attached
fragments, but my understanding is that WrappedResource objects are only to be created for
resources that are unresolved (no wirings).  If not then there are a whole bunch of calls
to ResolveContext.getWirings().get(...) that we need to check because currently the code will
pass WrappedResource objects to this.  That probably is not correct anyway, but it is dead
wrong if the resource being wrapped really has wirings according to the ResolveContext.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message