Uploaded image for project: 'Tools (JBoss Tools)'
  1. Tools (JBoss Tools)
  2. JBIDE-26578

org.jboss.tools.openshift.ui fails to load

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 4.11.0.Final
    • 4.11.0.AM1
    • openshift
    • None
    • devex #163 March 2019

      The bundle fails to load with this error:

      !ENTRY org.jboss.tools.openshift.ui 4 0 2019-03-18 18:56:49.104
      !MESSAGE FrameworkEvent ERROR
      !STACK 0
      org.osgi.framework.BundleException: Could not resolve module: org.jboss.tools.openshift.ui [1088]
        Bundle was not resolved because of a uses constraint violation.
        org.apache.felix.resolver.reason.ReasonException: Uses constraint violation. Unable to resolve resource org.jboss.tools.openshift.ui [osgi.identity; type="osgi.bundle"; version:Version="3.6.0.v20190220-1733"; osgi.identity="org.jboss.tools.openshift.ui"; singleton:="true"] because it is exposed to package 'javax.xml.bind.annotation' from resources org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.13.300.v20190218-1622"; singleton:="true"] and javax.xml.bind [osgi.identity; type="osgi.bundle"; version:Version="2.2.0.v201105210648"; osgi.identity="javax.xml.bind"] via two dependency chains.
      
      
      {code:java}
      Chain 1:
        org.jboss.tools.openshift.ui [osgi.identity; type="osgi.bundle"; version:Version="3.6.0.v20190220-1733"; osgi.identity="org.jboss.tools.openshift.ui"; singleton:="true"]
          require: (osgi.wiring.bundle=org.eclipse.core.runtime)
           |
          provide: osgi.wiring.bundle: org.eclipse.core.runtime
        org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.13.300.v20190218-1622"; singleton:="true"]
      
      Chain 2:
        org.jboss.tools.openshift.ui [osgi.identity; type="osgi.bundle"; version:Version="3.6.0.v20190220-1733"; osgi.identity="org.jboss.tools.openshift.ui"; singleton:="true"]
          require: (&(osgi.wiring.bundle=com.spotify.docker.client)(bundle-version>=3.4.0))
           |
          provide: osgi.wiring.bundle; bundle-version:Version="8.11.7.v20180731-1413"; osgi.wiring.bundle="com.spotify.docker.client"
        com.spotify.docker.client [osgi.identity; type="osgi.bundle"; version:Version="8.11.7.v20180731-1413"; osgi.identity="com.spotify.docker.client"]
          import: (&(osgi.wiring.package=javax.ws.rs)(version>=2.0.0))
           |
          export: osgi.wiring.package=javax.ws.rs; uses:=javax.xml.bind.annotation
        javax.ws.rs [osgi.identity; type="osgi.bundle"; version:Version="2.0.1.v201504171603"; osgi.identity="javax.ws.rs"]
          import: (&(osgi.wiring.package=javax.xml.bind.annotation)(&(version>=2.2.0)(!(version>=3.0.0))))
           |
          export: osgi.wiring.package: javax.xml.bind.annotation
        javax.xml.bind [osgi.identity; type="osgi.bundle"; version:Version="2.2.0.v201105210648"; osgi.identity="javax.xml.bind"]
      	at org.eclipse.osgi.container.Module.start(Module.java:452)
      	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1784)
      	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1763)
      	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1726)
      	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1657)
      	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
      	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:233)
      	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:343)
      
      

      This does not happen with Java11. This seems to be cause because org.eclipse.osgi exports javax.xml.bind packages and the new Docker stuff is requesting a specific version of javax.xml.bind thus we have two versions of the packages.
      Solution is to replace require bundle org.eclipse.core.runtime by import package

              jmaury@redhat.com Jeff MAURY
              jmaury@redhat.com Jeff MAURY
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: