[ 
https://issues.apache.org/jira/browse/FELIX-5601?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Karl Pauls updated FELIX-5601:
------------------------------
    Fix Version/s: resolver-1.14.0

> issues resolving with substitutable exports when the export is the last 
> available provider
> ------------------------------------------------------------------------------------------
>
>                 Key: FELIX-5601
>                 URL: https://issues.apache.org/jira/browse/FELIX-5601
>             Project: Felix
>          Issue Type: Bug
>          Components: Resolver
>            Reporter: Thomas Watson
>            Assignee: Thomas Watson
>             Fix For: resolver-1.14.0
>
>
> Substitutable exports that are used by other exported packages can cause a 
> case where a valid solution cannot be found when one exists.  The issue only 
> can occur when a substitutable export is the only valid candidate left for a 
> resources mandatory requirement and the resolver decides to permute the 
> substitutable requirement becaused of a used blame.  Something like the 
> following resources
> resource A1
>   provides pkg X v1
>   provides pkg Y v1 uses->X
>   provides pkg Z v1 uses->Y
> resource A2
>   provides pkg X v2
>   provides pkg Y v2 uses->X
>   provides pkg Z v2 uses->Y
>   import pkg X v[2,4)
>   import pkg Y v[2,4)
>   import pkg Z v[2,4)
> resource A3
>   provides pkg X v3
>   provides pkg Y v3 uses->X
>   provides pkg Z v3 uses->Y
>   import pkg X v[2,4)
>   import pkg Y v[2,4)
>   import pkg Z v[2,4)
> resource B1
>   provides pkg W v1 uses->Z
>   import pkg Z v[1,4)
> resource C1
>   imports pkg X v[3,4)
> Resolve all resources A1, A2, A3, B1, C1 as mandatory resources.  This will 
> result in resolution error for B1 because it is exposed to two versions of X 
> through two uses blame chains.  The reason this fails is because the resolver 
> first chooses to permute the substitutable requirement from A3 for X which 
> causes X v3 to no longer be available for C1 to import.  This causes an error 
> and the permutation fails and all other permutations based off that 
> permutation will be ignored.  If instead the resolver would not permute the 
> requirement for X from A3 the resolver would find a valid solution.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to