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

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

In ResolverImpl.calculateExportedPackages() we do this to calculate exported 
packages for a revision:

        Wiring wiring = rc.getWirings().get(resource);
        List<Capability> caps = (wiring != null)
            ? wiring.getResourceCapabilities(null)
            : resource.getCapabilities(null);

Notice that if there is a wiring (i.e., the revision is resolved), we get the 
caps from Wiring.getResourceCapabilities(). This method should not return 
exported packages that were imported (i.e., substituted); it is supposed to 
return the "resolved" capabilities.

If it does this correctly, then it shouldn't be the case later that we will see 
the same package as being both exported and imported in the package space. Are 
you sure that your Wiring.getResourceCapabilities() method is filtering out 
substituted exported packages?
                
> Regression related to uses clause with multiple package providers
> -----------------------------------------------------------------
>
>                 Key: FELIX-3522
>                 URL: https://issues.apache.org/jira/browse/FELIX-3522
>             Project: Felix
>          Issue Type: Bug
>          Components: Resolver
>            Reporter: Thomas Diesler
>         Attachments: test.log, trace-test-resolve-fail.log, 
> trace-test-resolve-ok.log
>
>
> For this test
> https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java
> I get
> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.116 sec <<< 
> FAILURE!
> testMultipleProviders(org.jboss.test.osgi.resolver.UsesDirectiveResolverTest) 
>  Time elapsed: 0.096 sec  <<< ERROR!
> org.osgi.service.resolver.ResolutionException: Uses constraint violation. 
> Unable to resolve resource war.extender.jar 
> [AbstractResource[war.extender.jar:0.0.0]] because it is exposed to package 
> 'javax.servlet' from resources javax.servlet.api 
> [AbstractResource[javax.servlet.api:0.0.0]] and http.service.provider 
> [AbstractResource[http.service.provider:0.0.0]] via two dependency chains.
> Chain 1:
>   war.extender.jar [AbstractResource[war.extender.jar:0.0.0]]
>     import: null
>      |
>     export: osgi.wiring.package=javax.servlet
>   javax.servlet.api [AbstractResource[javax.servlet.api:0.0.0]]
> Chain 2:
>   war.extender.jar [AbstractResource[war.extender.jar:0.0.0]]
>     import: null
>      |
>     export: osgi.wiring.package=org.ops4j.pax.web.service; uses:=javax.servlet
>     export: osgi.wiring.package=javax.servlet
>   http.service.provider [AbstractResource[http.service.provider:0.0.0]]
>       at 
> org.apache.felix.resolver.ResolverImpl.checkPackageSpaceConsistency(ResolverImpl.java:1134)
>       at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:197)
>       at 
> org.jboss.osgi.resolver.felix.StatelessResolver.resolve(StatelessResolver.java:57)
>       at 
> org.jboss.test.osgi.resolver.UsesDirectiveResolverTest.testMultipleProviders(UsesDirectiveResolverTest.java:158)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to