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.

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

          Devin Nusbaum created issue -
          Devin Nusbaum made changes -
          Link New: This issue relates to JENKINS-22367 [ JENKINS-22367 ]
          Devin Nusbaum made changes -
          Description Original: 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 jdk-tool 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|https://github.com/jenkinsci/jenkins/blob/9966c5d479a7ef35b6e4171cf5f351121d66b097/core/src/main/resources/jenkins/split-plugin-cycles.txt#L14] 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.

          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|https://github.com/jenkinsci/apache-httpcomponents-client-4-api-plugin/blob/master/src/test/java/org/jenkinsci/plugins/apachehttpclient4api/Client4JDKInstallerTest.java].

          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.
          New: 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|https://github.com/jenkinsci/jenkins/blob/9966c5d479a7ef35b6e4171cf5f351121d66b097/core/src/main/resources/jenkins/split-plugin-cycles.txt#L14] 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.

          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|https://github.com/jenkinsci/apache-httpcomponents-client-4-api-plugin/blob/master/src/test/java/org/jenkinsci/plugins/apachehttpclient4api/Client4JDKInstallerTest.java].

          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.
          Devin Nusbaum made changes -
          Remote Link New: This issue links to "jenkinsci/jenkins#3454 (Web Link)" [ 20725 ]
          Devin Nusbaum made changes -
          Status Original: Open [ 1 ] New: In Progress [ 3 ]
          Devin Nusbaum made changes -
          Status Original: In Progress [ 3 ] New: In Review [ 10005 ]
          Devin Nusbaum made changes -
          Description Original: 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|https://github.com/jenkinsci/jenkins/blob/9966c5d479a7ef35b6e4171cf5f351121d66b097/core/src/main/resources/jenkins/split-plugin-cycles.txt#L14] 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.

          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|https://github.com/jenkinsci/apache-httpcomponents-client-4-api-plugin/blob/master/src/test/java/org/jenkinsci/plugins/apachehttpclient4api/Client4JDKInstallerTest.java].

          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.
          New: 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|https://github.com/jenkinsci/jenkins/blob/9966c5d479a7ef35b6e4171cf5f351121d66b097/core/src/main/resources/jenkins/split-plugin-cycles.txt#L14] 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|https://github.com/jenkinsci/apache-httpcomponents-client-4-api-plugin/blob/master/src/test/java/org/jenkinsci/plugins/apachehttpclient4api/Client4JDKInstallerTest.java].

          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.

          Code changed in jenkins
          User: Devin Nusbaum
          Path:
          core/src/main/resources/jenkins/split-plugin-cycles.txt
          http://jenkins-ci.org/commit/jenkins/7bef2e44aef54bc76235fee4970a52f6f0456f49
          Log:
          JENKINS-51483 Remove erroneous entry in split-plugin-cycles.txt

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Devin Nusbaum Path: core/src/main/resources/jenkins/split-plugin-cycles.txt http://jenkins-ci.org/commit/jenkins/7bef2e44aef54bc76235fee4970a52f6f0456f49 Log: JENKINS-51483 Remove erroneous entry in split-plugin-cycles.txt

          Code changed in jenkins
          User: Oleg Nenashev
          Path:
          core/src/main/resources/jenkins/split-plugin-cycles.txt
          http://jenkins-ci.org/commit/jenkins/d7da517678ebfbef66c58b9e1e2fff0a5f21e23e
          Log:
          Merge pull request #3454 from dwnusbaum/JENKINS-51483

          JENKINS-51483 Remove erroneous entry in split-plugin-cycles.txt

          Compare: https://github.com/jenkinsci/jenkins/compare/d79c6afd2163...d7da517678eb
          *NOTE:* This service been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

          Functionality will be removed from GitHub.com on January 31st, 2019.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Oleg Nenashev Path: core/src/main/resources/jenkins/split-plugin-cycles.txt http://jenkins-ci.org/commit/jenkins/d7da517678ebfbef66c58b9e1e2fff0a5f21e23e Log: Merge pull request #3454 from dwnusbaum/ JENKINS-51483 JENKINS-51483 Remove erroneous entry in split-plugin-cycles.txt Compare: https://github.com/jenkinsci/jenkins/compare/d79c6afd2163...d7da517678eb * NOTE: * This service been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019.

          Devin Nusbaum added a comment -

          Fixed in Jenkins 2.126. See the changelog for details.

          Devin Nusbaum added a comment - Fixed in Jenkins 2.126. See the changelog for details.
          Devin Nusbaum made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: In Review [ 10005 ] New: Resolved [ 5 ]

            dnusbaum Devin Nusbaum
            dnusbaum Devin Nusbaum
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: