Uploaded image for project: 'Felix'
  1. Felix
  2. FELIX-5170

Missing toString in FelixRequirementAdapter makes missing dep error impossible to solve

    XMLWordPrintableJSON

Details

    Description

      While using OBR, a missing dependency will raise this error in logs:

      org.osgi.service.subsystem.SubsystemException: org.osgi.service.resolver.ResolutionException: Unable to resolve XXX;osgi.bundle: missing requirement org.apache.felix.bundlerepository.impl.FelixRequirementAdapter@ee869b56 [caused by: Unable to resolve XXX;osgi.bundle: missing requirement org.apache.felix.bundlerepository.impl.FelixRequirementAdapter@863065e7]
      at org.apache.aries.subsystem.core.internal.SubsystemResource.computeDependencies(SubsystemResource.java:395) ~[na:na]
      at org.apache.aries.subsystem.core.internal.SubsystemResource.computeDependencies(SubsystemResource.java:356) ~[na:na]
      at org.apache.aries.subsystem.core.internal.SubsystemResource.<init>(SubsystemResource.java:98) ~[na:na]
      at org.apache.aries.subsystem.core.internal.SubsystemResource.<init>(SubsystemResource.java:90) ~[na:na]
      at org.apache.aries.subsystem.core.internal.InstallAction.run(InstallAction.java:54) ~[na:na]
      at org.apache.aries.subsystem.core.internal.InstallAction.run(InstallAction.java:30) ~[na:na]
      at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_66]
      at org.apache.aries.subsystem.core.internal.BasicSubsystem.install(BasicSubsystem.java:646) ~[na:na]
      at org.apache.aries.subsystem.core.internal.BasicSubsystem.install(BasicSubsystem.java:690) ~[na:na]
      at org.apache.aries.subsystem.core.internal.BasicSubsystem.install(BasicSubsystem.java:278) ~[na:na]
      at org.apache.aries.subsystem.core.internal.BasicSubsystem.install(BasicSubsystem.java:65) ~[na:na]
      ...
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_66]
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_66]
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_66]
      at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_66]
      at org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:222) [2.0.2:na]
      at org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:37) [2.0.2:na]
      at org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:615) [2.0.2:na]
      at org.apache.felix.scr.impl.helper.BaseMethod.invoke(BaseMethod.java:499) [2.0.2:na]
      at org.apache.felix.scr.impl.helper.ActivateMethod.invoke(ActivateMethod.java:295) [2.0.2:na]
      at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:302) [2.0.2:na]
      at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:113) [2.0.2:na]
      at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:866) [2.0.2:na]
      at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:833) [2.0.2:na]
      at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:724) [2.0.2:na]
      at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:399) [2.0.2:na]
      at org.apache.felix.scr.impl.config.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:676) [2.0.2:na]
      at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:339) [2.0.2:na]
      at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:360) [2.0.2:na]
      at org.apache.felix.scr.impl.Activator.access$000(Activator.java:53) [2.0.2:na]
      at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:260) [2.0.2:na]
      at org.apache.felix.utils.extender.AbstractExtender.createExtension(AbstractExtender.java:259) [2.0.2:na]
      at org.apache.felix.utils.extender.AbstractExtender.modifiedBundle(AbstractExtender.java:232) [2.0.2:na]
      at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:482) [org.apache.felix.framework-5.4.0.jar:na]
      at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:415) [org.apache.felix.framework-5.4.0.jar:na]
      at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232) [org.apache.felix.framework-5.4.0.jar:na]
      at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:444) [org.apache.felix.framework-5.4.0.jar:na]
      at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:916) [org.apache.felix.framework-5.4.0.jar:na]
      at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:835) [org.apache.felix.framework-5.4.0.jar:na]
      at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:517) [org.apache.felix.framework-5.4.0.jar:na]
      at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4541) [org.apache.felix.framework-5.4.0.jar:na]
      at org.apache.felix.framework.Felix.startBundle(Felix.java:2172) [org.apache.felix.framework-5.4.0.jar:na]
      at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998) [org.apache.felix.framework-5.4.0.jar:na]
      at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:984) [org.apache.felix.framework-5.4.0.jar:na]
      ...
      at org.apache.felix.framework.util.EventDispatcher.invokeFrameworkListenerCallback(EventDispatcher.java:882) [org.apache.felix.framework-5.4.0.jar:na]
      at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:831) [org.apache.felix.framework-5.4.0.jar:na]
      at org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:1148) [org.apache.felix.framework-5.4.0.jar:na]
      at org.apache.felix.framework.util.EventDispatcher.access$000(EventDispatcher.java:55) [org.apache.felix.framework-5.4.0.jar:na]
      at org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:103) [org.apache.felix.framework-5.4.0.jar:na]
      at java.lang.Thread.run(Thread.java:745) [na:1.8.0_66]
      Caused by: org.osgi.service.resolver.ResolutionException: Unable to resolve XXX;osgi.bundle: missing requirement org.apache.felix.bundlerepository.impl.FelixRequirementAdapter@ee869b56 [caused by: Unable to resolve XXX;osgi.bundle: missing requirement org.apache.felix.bundlerepository.impl.FelixRequirementAdapter@863065e7]
      at org.apache.felix.resolver.ResolutionError.toException(ResolutionError.java:42) ~[org.apache.felix.framework-5.4.0.jar:na]
      at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:235) ~[org.apache.felix.framework-5.4.0.jar:na]
      at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:158) ~[org.apache.felix.framework-5.4.0.jar:na]
      at org.apache.aries.subsystem.core.internal.SubsystemResource.computeDependencies(SubsystemResource.java:373) ~[na:na]
      ... 56 common frames omitted

      The missing dependency is unknown, because FelixRequirementAdapter does not provide a toString method.
      This class should provide such a method, delegating to the real Requirement instance (which already provide a toString method).

      Same thing with FelixCapabilityAdapter.

      Attachments

        Activity

          People

            bosschaert David Bosschaert
            romale Alexandre Roman
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: