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

Mail watcher logs a stack trace if job config history plugin is not installed

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • mail-watcher-plugin
    • None

      If the Job Configuration History plugin is not installed and mail watcher plugin is installed, then the Jenkins log includes the following message during startup:

      2025-07-24 23:53:45.475+0000 [id=137]   WARNING h.ExtensionFinder$GuiceFinder$FaultTolerantScope$1#error: Failed to instantiate Key[type=org.jenkinsci.plugins.mailwatcher.WatcherComputerListener, annotation=[none]]; skipping this component
      java.lang.ClassNotFoundException: hudson.plugins.jobConfigHistory.JobConfigHistory
              at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
              at jenkins.util.URLClassLoader2.findClass(URLClassLoader2.java:64)
              at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593)
              at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
      Caused: java.lang.NoClassDefFoundError: hudson/plugins/jobConfigHistory/JobConfigHistory
              at PluginClassLoader for mail-watcher-plugin//org.jenkinsci.plugins.mailwatcher.MailWatcherMailer.<init>(MailWatcherMailer.java:67)
              at PluginClassLoader for mail-watcher-plugin//org.jenkinsci.plugins.mailwatcher.WatcherComputerListener.<init>(WatcherComputerListener.java:57)
              at PluginClassLoader for mail-watcher-plugin//org.jenkinsci.plugins.mailwatcher.WatcherComputerListener$$FastClassByGuice$$272e0ab8.GUICE$TRAMPOLINE(<generated>)
              at PluginClassLoader for mail-watcher-plugin//org.jenkinsci.plugins.mailwatcher.WatcherComputerListener$$FastClassByGuice$$272e0ab8.apply(<generated>)
              at com.google.inject.internal.DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:82)
              at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:114)
              at com.google.inject.internal.ConstructorInjector.access$000(ConstructorInjector.java:33)
              at com.google.inject.internal.ConstructorInjector$1.call(ConstructorInjector.java:98)
              at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:109)
              at hudson.ExtensionFinder$GuiceFinder$SezpozModule.onProvision(ExtensionFinder.java:613)
              at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:117)
              at hudson.ExtensionFinder$GuiceFinder$SezpozModule.onProvision(ExtensionFinder.java:613)
              at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:117)
              at hudson.ExtensionFinder$GuiceFinder$SezpozModule.onProvision(ExtensionFinder.java:613)
              at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:117)
              at hudson.ExtensionFinder$GuiceFinder$SezpozModule.onProvision(ExtensionFinder.java:613)
              at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:117)
              at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:66)
              at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:93)
              at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
              at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
      Caused: com.google.inject.ProvisionException: Unable to provision, see the following errors:
      
      1) [Guice/ErrorInjectingConstructor]: NoClassDefFoundError: hudson/plugins/jobConfigHistory/JobConfigHistory
        at WatcherComputerListener.<init>(WatcherComputerListener.java:56)
      
      Learn more:
        https://github.com/google/guice/wiki/ERROR_INJECTING_CONSTRUCTOR
      
      1 error
      
      ======================
      Full classname legend:
      ======================
      WatcherComputerListener: "org.jenkinsci.plugins.mailwatcher.WatcherComputerListener"
      ========================
      End of classname legend:
      ========================
      
              at com.google.inject.internal.InternalProvisionException.toProvisionException(InternalProvisionException.java:251)
              at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:43)
              at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:169)
              at hudson.ExtensionFinder$GuiceFinder$FaultTolerantScope$1.get(ExtensionFinder.java:448)
              at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
              at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1148)
              at hudson.ExtensionFinder$GuiceFinder._find(ExtensionFinder.java:406)
              at hudson.ExtensionFinder$GuiceFinder$3.find(ExtensionFinder.java:360)
              at jenkins.ExtensionComponentSet$3.find(ExtensionComponentSet.java:98)
              at jenkins.ExtensionComponentSet$1.find(ExtensionComponentSet.java:70)
              at jenkins.ExtensionComponentSet$3.find(ExtensionComponentSet.java:98)
              at jenkins.ExtensionComponentSet$3.find(ExtensionComponentSet.java:98)
              at hudson.ExtensionList.load(ExtensionList.java:412)
              at hudson.ExtensionList.refresh(ExtensionList.java:350)
              at jenkins.model.Jenkins.refreshExtensions(Jenkins.java:2897)
              at hudson.PluginManager.start(PluginManager.java:1030)
              at hudson.model.UpdateCenter$CompleteBatchJob.run(UpdateCenter.java:2576)
              at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
              at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
              at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:121)
              at java.base/java.lang.Thread.run(Thread.java:1583)
      2025-07-24 23:53:45.503+0000 [id=137]   WARNING h.ExtensionFinder$GuiceFinder$FaultTolerantScope$1#error: Failed to instantiate Key[type=org.jenkinsci.plugins.mailwatcher.WatcherItemListener, annotation=[none]]; skipping this component
      java.lang.ClassNotFoundException: hudson.plugins.jobConfigHistory.JobConfigHistory
      Caused: java.lang.NoClassDefFoundError: hudson/plugins/jobConfigHistory/JobConfigHistory
              at PluginClassLoader for mail-watcher-plugin//org.jenkinsci.plugins.mailwatcher.MailWatcherMailer.<init>(MailWatcherMailer.java:67)
              at PluginClassLoader for mail-watcher-plugin//org.jenkinsci.plugins.mailwatcher.WatcherItemListener.<init>(WatcherItemListener.java:57)
              at PluginClassLoader for mail-watcher-plugin//org.jenkinsci.plugins.mailwatcher.WatcherItemListener$$FastClassByGuice$$2736a16a.GUICE$TRAMPOLINE(<generated>)
              at PluginClassLoader for mail-watcher-plugin//org.jenkinsci.plugins.mailwatcher.WatcherItemListener$$FastClassByGuice$$2736a16a.apply(<generated>)
              at com.google.inject.internal.DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:82)
              at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:114)
              at com.google.inject.internal.ConstructorInjector.access$000(ConstructorInjector.java:33)
              at com.google.inject.internal.ConstructorInjector$1.call(ConstructorInjector.java:98)
              at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:109)
              at hudson.ExtensionFinder$GuiceFinder$SezpozModule.onProvision(ExtensionFinder.java:613)
              at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:117)
              at hudson.ExtensionFinder$GuiceFinder$SezpozModule.onProvision(ExtensionFinder.java:613)
              at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:117)
              at hudson.ExtensionFinder$GuiceFinder$SezpozModule.onProvision(ExtensionFinder.java:613)
              at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:117)
              at hudson.ExtensionFinder$GuiceFinder$SezpozModule.onProvision(ExtensionFinder.java:613)
      

            markewaite Mark Waite
            markewaite Mark Waite
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: