You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Thomas Diesler (JIRA)" <ji...@apache.org> on 2012/05/23 09:29:40 UTC

[jira] [Created] (FELIX-3522) Regression related to uses clause with multiple package providers

Thomas Diesler created FELIX-3522:
-------------------------------------

             Summary: 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


For this test

https://github.com/tdiesler/jbosgi-resolver/blob/3.0/felix/src/test/java/org/jboss/test/osgi/resolver/RequireBundleResolverTest.java#L226

I get

Tests run: 7, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.313 sec <<< FAILURE!
testImportBySymbolicName(org.jboss.test.osgi.resolver.RequireBundleResolverTest)  Time elapsed: 0.053 sec  <<< FAILURE!
junit.framework.AssertionFailedError: expected:<AbstractResource[requirebundleC:0.0.0]> but was:<AbstractResource[requirebundleB:0.0.0]>



--
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

        

[jira] [Commented] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Richard S. Hall (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13293804#comment-13293804 ] 

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

The logs don't help me too much, since I cannot reproduce it. Perhaps you could look into adding such a test case to the OSGi CT for this spec and we can investigate it from that angle.
                
> 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

        

[jira] [Updated] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Thomas Diesler (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-3522?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas Diesler updated FELIX-3522:
----------------------------------

    Description: 
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)


  was:
For this test

https://github.com/tdiesler/jbosgi-resolver/blob/3.0/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)


    
> 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

        

[jira] [Updated] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Thomas Diesler (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-3522?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas Diesler updated FELIX-3522:
----------------------------------

    Attachment: trace-test-resolve-ok.log
                trace-test-resolve-fail.log
    
> 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/3.0/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

        

[jira] [Commented] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Richard S. Hall (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13294449#comment-13294449 ] 

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

Thanks, that's an interesting clue, but it still seems like it fixes a symptom rather than the cause. If that patch actually helps, then it might mean we are calculating the package space incorrectly, since a substituted export shouldn't appear in the exported packages in the package space if the revision is importing the package (it should appear in the imported packages). I'll look into that area more closely. Still odd that it works on the framework, since it has the same code.
                
> 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

        

[jira] [Commented] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Thomas Watson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13293805#comment-13293805 ] 

Thomas Watson commented on FELIX-3522:
--------------------------------------

I don't claim to understand the log output completely, but I would like a dump of the wiring map for the second resolve.  I cannot reproduce this with my own ResolveContext implementation.  My only guess is that the wiring for your ResolveContext may have an incorrect List<Wire> for http.service.provider that indicates that it does not import the javax.servlet package (so it is treated as a exporter by the resolver).
                
> 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

        

[jira] [Commented] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Thomas Diesler (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13294207#comment-13294207 ] 

Thomas Diesler commented on FELIX-3522:
---------------------------------------

@Richard
Jan is working on adding this to the CT. You could add trace logging to the resolver, so we have a similar dump as for the ok case.

@Tom
The wiring for the http.service.provider is identical in both cases 

{code}
AbstractResource[http.service.provider:0.0.0]: 1 wires
   AbstractPackageRequirement[atts={osgi.wiring.package=javax.servlet, version=[2.3.0,2.6.0)},dirs={resolution=optional},[http.service.provider:0.0.0]] -> [AbstractResource[javax.servlet.api:0.0.0]]
{code}

                
> 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

        

[jira] [Updated] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Thomas Diesler (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-3522?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas Diesler updated FELIX-3522:
----------------------------------

    Description: 
For this test

https://github.com/tdiesler/jbosgi-resolver/blob/3.0/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)


  was:
For this test

https://github.com/tdiesler/jbosgi-resolver/blob/3.0/felix/src/test/java/org/jboss/test/osgi/resolver/RequireBundleResolverTest.java#L226

I get

Tests run: 7, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.313 sec <<< FAILURE!
testImportBySymbolicName(org.jboss.test.osgi.resolver.RequireBundleResolverTest)  Time elapsed: 0.053 sec  <<< FAILURE!
junit.framework.AssertionFailedError: expected:<AbstractResource[requirebundleC:0.0.0]> but was:<AbstractResource[requirebundleB:0.0.0]>



    
> 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
>
>
> For this test
> https://github.com/tdiesler/jbosgi-resolver/blob/3.0/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

        

[jira] [Commented] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Richard S. Hall (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13284993#comment-13284993 ] 

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

As with the other bug report, it would be better to include the scenario description in the issue description. Regardless, can you tell me if the fix for FELIX-3521 has any impact on this regression? Thanks.
                
> 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
>
>
> For this test
> https://github.com/tdiesler/jbosgi-resolver/blob/3.0/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

        

[jira] [Commented] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Thomas Diesler (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13294345#comment-13294345 ] 

Thomas Diesler commented on FELIX-3522:
---------------------------------------

I restored code from the old felix resolver that fixes this. Please review

https://github.com/tdiesler/felix-resolver/commit/2ece12f7f1d29598f45f718671f4fbf7271eae63


                
> 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

        

[jira] [Commented] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Richard S. Hall (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13290197#comment-13290197 ] 

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

That's right. You need to grab the Capability from the wire to get the package name.
                
> 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
>
>
> For this test
> https://github.com/tdiesler/jbosgi-resolver/blob/3.0/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

        

[jira] [Commented] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Richard S. Hall (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13285756#comment-13285756 ] 

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

This scenario appears to work fine on the framework.

One suspicious thing is that war.extender.jar shouldn't even see http.service.provider as a candidate for javax.servlet since it was chosen as an importer of that package, not an exporter. Perhaps your ResolveContext implementation is forgetting to filter substituted exports?

Technically, at this point in the resolve there is only one viable candidate for javax.servlet, which is the api bundle.
                
> 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
>
>
> For this test
> https://github.com/tdiesler/jbosgi-resolver/blob/3.0/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

        

[jira] [Comment Edited] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Thomas Diesler (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13293503#comment-13293503 ] 

Thomas Diesler edited comment on FELIX-3522 at 6/12/12 10:57 AM:
-----------------------------------------------------------------

I attached two trace logs. trace-test-resolve-ok.log shows whats happened before this regression (i.e. with the old felix framework resolver code base). trace-test-resolve-fail.log shows what happens with the latest Resolver RI candidate.

Note, that in both cases the ResolverContext provides the same capabilities
                
      was (Author: tdiesler):
    I attached to trace log files. trace-test-resolve-ok.log shows whats happened before this regression (i.e. with the old felix framework resolver code base). trace-test-resolve-fail.log shows what happens with the latest Resolver RI candidate.

Note, that in both cases the ResolverContext provides the same capabilities
                  
> 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/3.0/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

        

[jira] [Closed] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Thomas Diesler (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-3522?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas Diesler closed FELIX-3522.
---------------------------------

    Resolution: Won't Fix

Yes, that was it. Merci.
                
> 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

        

[jira] [Commented] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Richard S. Hall (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13289509#comment-13289509 ] 

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

Thinking about this some more, my last comment is probably not correct. It is not clear that the http.service.provider is being offered as a candidate, but for some reason it is being seen as the exporter of javax.servlet, which is not correct. Need more investigation, but as I said, this does work on the framework.
                
> 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
>
>
> For this test
> https://github.com/tdiesler/jbosgi-resolver/blob/3.0/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

        

[jira] [Commented] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Thomas Watson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13290191#comment-13290191 ] 

Thomas Watson commented on FELIX-3522:
--------------------------------------

One nit in your testcase with the following code:

            Requirement req = wire.getRequirement();
            String pkgname = (String) req.getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE);

My understanding is that the osgi.wiring.package namespace requirements (as constructed from the Import-Package header) must have an empty attribute map since all the attributes are used for the filter directive.  In my implementation of Requirement for the osgi.wiring.package namespace I certainly have an empty map and this would return a null req.
                
> 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
>
>
> For this test
> https://github.com/tdiesler/jbosgi-resolver/blob/3.0/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

        

[jira] [Commented] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Thomas Diesler (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13284997#comment-13284997 ] 

Thomas Diesler commented on FELIX-3522:
---------------------------------------

Have a look at the comments in the test case, as with the other issue those are the description. The fix for FELIX-3521 did not have an impact on this. 
                
> 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
>
>
> For this test
> https://github.com/tdiesler/jbosgi-resolver/blob/3.0/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

        

[jira] [Commented] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Thomas Diesler (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13293465#comment-13293465 ] 

Thomas Diesler commented on FELIX-3522:
---------------------------------------

Ok, I see if I can find more info on why this stoped working with the new resolver codebase
                
> 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
>
>
> For this test
> https://github.com/tdiesler/jbosgi-resolver/blob/3.0/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

        

[jira] [Commented] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Thomas Diesler (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13293503#comment-13293503 ] 

Thomas Diesler commented on FELIX-3522:
---------------------------------------

I attached to trace log files. trace-test-resolve-ok.log shows whats happened before this regression (i.e. with the old felix framework resolver code base). trace-test-resolve-fail.log shows what happens with the latest Resolver RI candidate.

Note, that in both cases the ResolverContext provides the same capabilities
                
> 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/3.0/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

        

[jira] [Commented] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Thomas Watson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13290132#comment-13290132 ] 

Thomas Watson commented on FELIX-3522:
--------------------------------------

I have tried to reproduce the ResolutionException using the bundle meta-data outlined in the testcase with my own ResolverContext implementation and I don't see how to reproduce it.  I think Richard's comment about ResolverContext returning package capabilities which have been substituted with a package requirement wire is key.  My ResolveContext neglected to filter out substituted package capabilities, but in my case I always sorted the "api" bundle's capability first since it was the first bundle installed (with the lowest bundle id) and the javax.servlet package is exported at the same version from the two bundles involved in the testcase.

But even when I forced the sort order to reverse the capabilities (so the substituted one came first) I could not reproduce the ResolutionException you mention in this issue report.  Instead I ran into an interesting issue in the resolver where it does not detect a class space consistency correctly and allows a wire to be formed to the substituted export.  This is because the resolver implementation looks for the "root" sources for a package capability, but in this case it finds none, because the export should have been substituted.  The end result is that we have an empty set of sources X which is compared to another set of one source Y and the check for consistency just sees if (X.isSubset(Y) || Y.isSubset(X))  and obviously an empty set is a subset of all other sets so the check passes.  This is not necessarily a resolver bug since the resolver was given invalid input from ResolveContext.findProviders.  But we should probably check the spec to see if it makes it clear that the resolve context must filter substituted package exports in ResolveContext.findProviders.  It certainly slipped my mind when I implemented my ResolveContext.

None of this really explains why Thomas D. is seeing this issue.  Thomas would you have a chance to debug this and help shed some light on the issue?
                
> 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
>
>
> For this test
> https://github.com/tdiesler/jbosgi-resolver/blob/3.0/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

       

[jira] [Updated] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Thomas Diesler (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-3522?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas Diesler updated FELIX-3522:
----------------------------------

    Attachment: test.log
    
> 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
>
>
> For this test
> https://github.com/tdiesler/jbosgi-resolver/blob/3.0/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

        

[jira] [Commented] (FELIX-3522) Regression related to uses clause with multiple package providers

Posted by "Richard S. Hall (JIRA)" <ji...@apache.org>.
    [ 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