When loading the Bitbucket Server Integration plugin from a clean install of Jenkins version 2.213 and above, several entries in the stack trace are appearing. I'm looking to find a fix for the problem for the plugin, but it appears the root of the issue is in Jenkins Extension Finder: ``` hudson.ExtensionFinder$GuiceFinder$SezpozModule configure WARNING: Failed to load com.atlassian.bitbucket.jenkins.internal.config.BitbucketServerConfiguration$DescriptorImpl java.lang.LinkageError: Failed to resolve interface com.atlassian.bitbucket.jenkins.internal.credentials.JenkinsToBitbucketCredentials at hudson.ExtensionFinder$GuiceFinder$SezpozModule.resolve(ExtensionFinder.java:516) at hudson.ExtensionFinder$GuiceFinder$SezpozModule.resolve(ExtensionFinder.java:510) at hudson.ExtensionFinder$GuiceFinder$SezpozModule.resolve(ExtensionFinder.java:487) at hudson.ExtensionFinder$GuiceFinder$SezpozModule.configure(ExtensionFinder.java:536) at com.google.inject.AbstractModule.configure(AbstractModule.java:62) at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340) at com.google.inject.spi.Elements.getElements(Elements.java:110) at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:138) at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104) at com.google.inject.Guice.createInjector(Guice.java:96) at com.google.inject.Guice.createInjector(Guice.java:73) at hudson.ExtensionFinder$GuiceFinder.<init>(ExtensionFinder.java:285) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at java.lang.Class.newInstance(Class.java:442) at net.java.sezpoz.IndexItem.instance(IndexItem.java:181) at hudson.ExtensionFinder$Sezpoz._find(ExtensionFinder.java:714) at hudson.ExtensionFinder$Sezpoz.find(ExtensionFinder.java:700) at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:344) at hudson.ExtensionList.load(ExtensionList.java:381) at hudson.ExtensionList.ensureLoaded(ExtensionList.java:317) at hudson.ExtensionList.getComponents(ExtensionList.java:183) at jenkins.model.Jenkins$6.onInitMilestoneAttained(Jenkins.java:1172) at jenkins.InitReactorRunner$1.onAttained(InitReactorRunner.java:83) at org.jvnet.hudson.reactor.ReactorListener$Aggregator.lambda$onAttained$3(ReactorListener.java:102) at org.jvnet.hudson.reactor.ReactorListener$Aggregator.run(ReactorListener.java:109) at org.jvnet.hudson.reactor.ReactorListener$Aggregator.onAttained(ReactorListener.java:102) at org.jvnet.hudson.reactor.Reactor$1.run(Reactor.java:177) at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NullPointerException at hudson.ExtensionFinder$GuiceFinder$SezpozModule.resolve(ExtensionFinder.java:504) ... 33 more ``` The errors are being caused by a `NullPointerException` being thrown in `hudson.ExtensionFinder`. It occurs when resolving descriptors that have a field describing an interface annotated with `@Inject`- resolve is being called on these interfaces, causing the NPE. The offending interfaces use `@ImplementedBy` for injection. |