You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Ben Manes (Jira)" <ji...@apache.org> on 2022/06/26 16:37:00 UTC

[jira] [Closed] (FELIX-6544) SRC backwards compatibility

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

Ben Manes closed FELIX-6544.
----------------------------
    Resolution: Done

> SRC backwards compatibility
> ---------------------------
>
>                 Key: FELIX-6544
>                 URL: https://issues.apache.org/jira/browse/FELIX-6544
>             Project: Felix
>          Issue Type: Bug
>          Components: SCR Tooling
>            Reporter: Ben Manes
>            Priority: Major
>
> To run OSGi compatibility tests ([code|https://github.com/ben-manes/caffeine/blob/1e0eaa27eb8973cfe4d2c86093a4644ffbeaca35/jcache/src/test/java/com/github/benmanes/caffeine/jcache/OSGiTest.java]), I use pax-exam with Felix as the container. This uses the SRC dependency (see [commit|https://github.com/ben-manes/caffeine/commit/ac014b531aace241a423968697179737ceb4f926]) adding it). I am not very familiar with OSGi and related details, so I apologize for my naivety here.
> When upgrading dependencies from 2.2.0 to 2.2.2, this test fails with a {{{}ServiceLookupException{}}}. If keeping at the prior version it works fine, so this is not a blocker. However I am confused as to why it breaks for a patch release and it might indicate a newly introduced bug. From the [changelog|https://github.com/apache/felix-dev/blob/eb99876e44791648939cb0fc7fdee22f00ed27b8/scr/changelog.txt#L1-L7], it seems that an export was removed and might therefore not be backwards compatible ([FELIX-6521|https://issues.apache.org/jira/browse/FELIX-6521]).
> Is there something in my build that should be updated to conform to these changes or is this an unintentional change in behavior. Thanks!
> {code:java}
> $ gradle jcache:clean jcache:test --no-scan
> Configuration on demand is an incubating feature.
> > Task :jcache:osgiTest
> com.github.benmanes.caffeine.jcache.OSGiTest > sanity FAILED
>     org.ops4j.pax.swissbox.tracker.ServiceLookupException: gave up waiting for service javax.cache.spi.CachingProvider
>         at org.ops4j.pax.swissbox.tracker.ServiceLookup.getService(ServiceLookup.java:208)
>         at org.ops4j.pax.swissbox.tracker.ServiceLookup.getService(ServiceLookup.java:145)
>         at org.ops4j.pax.exam.inject.internal.ServiceInjector.injectField(ServiceInjector.java:89)
>         at org.ops4j.pax.exam.inject.internal.ServiceInjector.injectDeclaredFields(ServiceInjector.java:69)
>         at org.ops4j.pax.exam.inject.internal.ServiceInjector.injectFields(ServiceInjector.java:61)
>         at org.ops4j.pax.exam.invoker.junit.internal.ContainerTestRunner.createTest(ContainerTestRunner.java:68)
>         at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:266)
>         at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>         at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:263)
>         at org.ops4j.pax.exam.invoker.junit.internal.ContainerTestRunner.runChildWithRetry(ContainerTestRunner.java:84)
>         at org.ops4j.pax.exam.invoker.junit.internal.ContainerTestRunner.runChild(ContainerTestRunner.java:75)
>         at org.ops4j.pax.exam.invoker.junit.internal.ContainerTestRunner.runChild(ContainerTestRunner.java:43)
>         at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>         at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>         at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>         at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>         at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>         at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>         at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
>         at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
>         at org.ops4j.pax.exam.invoker.junit.internal.JUnitProbeInvoker.invokeViaJUnit(JUnitProbeInvoker.java:124)
>         at org.ops4j.pax.exam.invoker.junit.internal.JUnitProbeInvoker.findAndInvoke(JUnitProbeInvoker.java:97)
>         at org.ops4j.pax.exam.invoker.junit.internal.JUnitProbeInvoker.call(JUnitProbeInvoker.java:73)
>         at app//org.ops4j.pax.exam.nat.internal.NativeTestContainer.call(NativeTestContainer.java:112)
>         at app//org.ops4j.pax.exam.spi.reactors.AllConfinedStagedReactor.invoke(AllConfinedStagedReactor.java:84)
>         at app//org.ops4j.pax.exam.junit.impl.ProbeRunner$2.evaluate(ProbeRunner.java:267)
>         at app//org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
>         at app//org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
>         at app//org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
>         at app//org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
>         at app//org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
>         at app//org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
>         at app//org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
>         at app//org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
>         at app//org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
>         at app//org.junit.runners.ParentRunner.run(ParentRunner.java:413)
>         at app//org.ops4j.pax.exam.junit.impl.ProbeRunner.run(ProbeRunner.java:98)
>         at app//org.ops4j.pax.exam.junit.PaxExam.run(PaxExam.java:93)
>         at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
>         at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
>         at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
>         at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
>         at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
>         at java.base@11.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at java.base@11.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at java.base@11.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.base@11.0.2/java.lang.reflect.Method.invoke(Method.java:566)
>         at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
>         at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
>         at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
>         at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
>         at com.sun.proxy.$Proxy5.processTestClass(Unknown Source)
>         at org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:176)
>         at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
>         at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
>         at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
>         at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
>         at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133)
>         at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71)
>         at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
>         at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.7#820007)