Bug 1427189

Summary: Unresolved OSGi requirement breaks Eclipse help system
Product: [Fedora] Fedora Reporter: Mat Booth <mat.booth>
Component: jettyAssignee: Mikolaj Izdebski <mizdebsk>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 26CC: akurtako, eclipse-sig, java-sig-commits, krzysztof.daniel, mizdebsk, msimacek, puntogil
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 9.4.3-3.v20170317 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-04-18 21:50:37 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Mat Booth 2017-02-27 14:42:49 UTC
Description of problem:

When using the integrated Eclipse help system, I see this error in the log:

!ENTRY org.eclipse.ui 4 0 2017-02-27 14:19:57.069
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.NoClassDefFoundError: org/eclipse/equinox/http/jetty/JettyConfigurator
        at org.eclipse.help.internal.server.JettyHelpServer$StartServerThread.run(JettyHelpServer.java:79)
Caused by: java.lang.ClassNotFoundException: org.eclipse.equinox.http.jetty.JettyConfigurator cannot be found by org.eclipse.help.base_4.1.2.v20170227-1124
        at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:461)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
        at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 1 more


Looking at the OSGi console, I see the following unresolved bundles:

g! ss -s INSTALLED
id      State       Bundle
97      INSTALLED   org.eclipse.equinox.http.jetty_3.3.0.v20170227-1124
143     INSTALLED   org.eclipse.jetty.http_9.4.2.v20170220
145     INSTALLED   org.eclipse.jetty.security_9.4.2.v20170220
146     INSTALLED   org.eclipse.jetty.server_9.4.2.v20170220
147     INSTALLED   org.eclipse.jetty.servlet_9.4.2.v20170220


And it seems to be caused by a missing capability:

g! diag 143
org.eclipse.jetty.http [143]
  Unresolved requirement: Require-Capability: osgi.extender; filter:="(osgi.extender=osgi.serviceloader.processor)"


This requirement seems to be new in:

jetty-http-9.4.2-1.v20170220.fc26.noarch


It doesn't look like there is a provider of this capability in Fedora. Any idea if this requirement can be made optional?

Comment 1 Mat Booth 2017-02-28 12:10:33 UTC
Adding link upstream bug report.

Comment 2 Fedora End Of Life 2017-02-28 12:27:34 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 26 development cycle.
Changing version to '26'.

Comment 3 Michael Simacek 2017-02-28 15:41:05 UTC
The reference implementation for the capability is Apache Aries SPI Fly [1], which is not packaged in Fedora. I can package it if needed. But from the discussion at [2] it seems that eclipse's dependencies are too coarse grained. Can you check whether you can use the suggested solution?

[1] http://aries.apache.org/modules/spi-fly.html
[2] https://github.com/eclipse/jetty.project/issues/1290

Comment 4 Mat Booth 2017-03-01 13:05:19 UTC
(In reply to Michael Simacek from comment #3)
> The reference implementation for the capability is Apache Aries SPI Fly [1],
> which is not packaged in Fedora. I can package it if needed. But from the
> discussion at [2] it seems that eclipse's dependencies are too coarse
> grained. Can you check whether you can use the suggested solution?
> 
> [1] http://aries.apache.org/modules/spi-fly.html
> [2] https://github.com/eclipse/jetty.project/issues/1290

The discussion at [2] is a bit misleading because Eclipse does not make use of  jetty-http2, it only makes use of the regular jetty-http bundle as it always has done.

From my tests (as suggested by Tom Watson in the eclipse bug), this dependency can be made optional in the jetty-http bundle.

Comment 5 Michael Simacek 2017-03-07 16:37:45 UTC
Applying Matt's patch for now.

Comment 6 Fedora Update System 2017-03-07 16:38:13 UTC
jetty-9.4.2-2.v20170220.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-94ac9ce627

Comment 7 Fedora Update System 2017-03-10 23:19:58 UTC
jetty-9.4.2-2.v20170220.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-94ac9ce627

Comment 8 Fedora Update System 2017-04-01 16:50:47 UTC
jetty-9.4.2-2.v20170220.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.

Comment 9 Mat Booth 2017-04-05 11:27:31 UTC
It turns out this is not as fixed as I though it was as there is a second dependency on Apache Aries SPI Fly that should be optional :-(

I submitted another patch upstream here: https://github.com/eclipse/jetty.project/pull/1451/commits/1b9ec463a3b8b83d60359fe786c5be9b99b40591

I'd like to see this applied to F26 and F27, if possible.

Comment 10 Mikolaj Izdebski 2017-04-05 11:42:22 UTC
Fixed in jetty-9.4.3-2.v20170317

Comment 11 Fedora Update System 2017-04-05 13:31:41 UTC
jetty-9.4.3-2.v20170317.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-4a95e07013

Comment 12 Mikolaj Izdebski 2017-04-05 13:35:21 UTC
Buildroot override activated, https://bodhi.fedoraproject.org/overrides/jetty-9.4.3-2.v20170317.fc26

Comment 13 Fedora Update System 2017-04-05 21:56:05 UTC
jetty-9.4.3-2.v20170317.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-4a95e07013

Comment 14 Fedora Update System 2017-04-06 13:44:17 UTC
jetty-9.4.3-2.v20170317.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.

Comment 15 Mikolaj Izdebski 2017-04-18 21:50:37 UTC
I believe that this bug is fixed in jetty-9.4.3-3.v20170317,
which is available in Fedora 26, so I am closing this bug now.

The build containing the fix can be found at Koji:
http://koji.fedoraproject.org/koji/buildinfo?buildID=880501