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

Erroneous entry in split-plugin-cycles.txt for jdk-tool and apache-httpcomponents-client-4-api


    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • core

      Problem: If apache-httpcomponents-client-4-api is tested with a core dependency of 2.112 or higher it will fail with ClassNotFoundException for hudson.tools.JDKInstaller.

      In JENKINS-22367 I detached JDKInstaller from core into the jdk-tool plugin. At one point the work-in-progress jdk-tool build depended on apache-httpcomponents-client-4-api so that JDKInstaller could be updated to use httpcomponents-client version 4 instead of version 3, so I added an entry to split-plugins.txt to break the cycle between these plugins. Later, I decided to wait to refactor the httpcomponents-client code until the plugin was detached, and removed the dependency on apache-httpcomponents-client-4-api, but did not remove the entry in split-plugin-cycles.txt. EDIT: Adding that dependency would have required a circular dependency. I should never have tried to make jdk-tool depend on apache-httpcomponents-client-4-api with first changing apache-httpcomponents-client-4-api's tests that used JDKInstaller.

      In practice, this means that apache-httpcomponents-client-4-api does not have an implied dependency on jdk-tool even though it should. This is not an issue in standard usage of the plugin, but apache-httpcomponents-client-4-api has a (broken) test that uses JDKInstaller: Client4JDKInstallerTest.

      This issue was discovered by testing the plugin using the PCT with a new core version. We can fix it by removing the split-plugin-cycles.txt entry.

            dnusbaum Devin Nusbaum
            dnusbaum Devin Nusbaum
            0 Vote for this issue
            3 Start watching this issue