Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-68506

Prepare GitHub Coverage Reporter for removal of JAXB and Java 11 requirement

      As described in Dependencies and Class Loading:

      Java defines a Thread.getContextClassLoader(). Jenkins does not use this much; it will normally be set by the servlet container to the Jenkins core loader.

      Unfortunately, JAXB has a design flaw in that JAXBContext#newInstance expects JAXB to be available in the thread's context class loader. With JAXB being detached to a separate plugin as of recent Java 11 changes, JAXB is no longer available in the Jenkins core loader. This causes a failure to load JAXB.

      This plugin has been identified as containing such a call to JAXBContext#newInstance The suggested solution is to wrap calls to JAXBContext#newInstance with a try/finally block to set the thread's context class loader to that of the plugin, which (by virtue of a plugin-to-plugin dependency on JAXB API plugin) enables JAXB to be loaded. See the following PR for an example:

      https://github.com/jenkinsci/xcode-plugin/pull/113/files

          [JENKINS-68506] Prepare GitHub Coverage Reporter for removal of JAXB and Java 11 requirement

          Basil Crow added a comment -

          Hi jnewc, gentle ping regarding this ticket and pull request. Jenkins will begin requiring Java 11 in weekly releases on or after June 21, 2022, and in LTS releases on or after September 2022.

          Basil Crow added a comment - Hi jnewc , gentle ping regarding this ticket and pull request. Jenkins will begin requiring Java 11 in weekly releases on or after June 21, 2022, and in LTS releases on or after September 2022.

            basil Basil Crow
            basil Basil Crow
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: