[
https://issues.apache.org/jira/browse/FELIX-3962?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Guillaume Nodet closed FELIX-3962.
----------------------------------
Resolution: Not A Problem
Assignee: Guillaume Nodet
Please reopen if needed.
> 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
> Assignee: Guillaume Nodet
>
> 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 was sent by Atlassian JIRA
(v6.3.4#6332)