Skip to content

[JENKINS-60449] Optional extensions can blow up Jenkins #20749

Closed

Description

@jenkins-infra-bot

If you have an optional extension (using the variant plugin) that is defining a private static method which has in its signature a type from its optional dependency, then Guice will blow up when attempting to load it, causing every subsequent extensions to fail loading.

Upon loading a new extension, the ExtensionFinder scans for potential classloading problems but doesn't catch all cases.

Additionally, I have found that when you load a plugin dynamically, extensions are refreshed before classloader of existing plugins have been updated which lead to having Guice trying to load classes without having the right classloading.


Originally reported by vlatombe, imported from: Optional extensions can blow up Jenkins
  • assignee: vlatombe
  • status: Closed
  • priority: Minor
  • component(s): core
  • resolution: Fixed
  • resolved: 2020-01-04T22:44:06+00:00
  • votes: 0
  • watchers: 2
  • imported: 2025-11-24
Raw content of original issue

If you have an optional extension (using the variant plugin) that is defining a private static method which has in its signature a type from its optional dependency, then Guice will blow up when attempting to load it, causing every subsequent extensions to fail loading.

Upon loading a new extension, the ExtensionFinder scans for potential classloading problems but doesn't catch all cases.

Additionally, I have found that when you load a plugin dynamically, extensions are refreshed before classloader of existing plugins have been updated which lead to having Guice trying to load classes without having the right classloading.

Activity

  1. jenkins-infra-bot commented on Dec 11, 2019

    @jenkins-infra-bot
    Author
  2. removed
    bugFor changelog: Minor bug. Will be listed after features
    on Nov 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions