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

Failed to instantiate class hudson.plugins.emailext.ExtendedEmailPublisher

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Blocker Blocker
    • email-ext-plugin
    • None
    • Jenkins ver. 1.611+, Email-Ext plugin 2.40

      javax.servlet.ServletException: java.lang.RuntimeException: Failed to instantiate class hudson.plugins.emailext.ExtendedEmailPublisher from {"project_disabled":false,"project_recipient_list":"$DEFAULT_RECIPIENTS","project_replyto":"$DEFAULT_REPLYTO","project_content_type":"default","project_default_subject":"$DEFAULT_SUBJECT","project_default_content":"$DEFAULT_CONTENT","project_attachments":"","project_attach_buildlog":"0","project_presend_script":"$DEFAULT_PRESEND_SCRIPT","project_save_output":false,"project_triggers":

      {"stapler-class":"","$class":""}

      ,"stapler-class":"hudson.plugins.emailext.ExtendedEmailPublisher","$class":"hudson.plugins.emailext.ExtendedEmailPublisher"}
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:796)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:249)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
      at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
      at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:123)
      at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:114)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
      at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
      at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
      at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)
      at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
      at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
      at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
      at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
      at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
      at org.eclipse.jetty.server.Server.handle(Server.java:370)
      at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
      at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
      at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
      at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
      at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
      at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
      at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
      at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
      at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:745)
      Caused by: java.lang.RuntimeException: Failed to instantiate class hudson.plugins.emailext.ExtendedEmailPublisher from {"project_disabled":false,"project_recipient_list":"$DEFAULT_RECIPIENTS","project_replyto":"$DEFAULT_REPLYTO","project_content_type":"default","project_default_subject":"$DEFAULT_SUBJECT","project_default_content":"$DEFAULT_CONTENT","project_attachments":"","project_attach_buildlog":"0","project_presend_script":"$DEFAULT_PRESEND_SCRIPT","project_save_output":false,"project_triggers":

      {"stapler-class":"","$class":""}

      ,"stapler-class":"hudson.plugins.emailext.ExtendedEmailPublisher","$class":"hudson.plugins.emailext.ExtendedEmailPublisher"}
      at hudson.model.Descriptor.newInstance(Descriptor.java:579)
      at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:929)
      at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:903)
      at hudson.util.DescribableList.rebuildHetero(DescribableList.java:208)
      at hudson.maven.MavenModuleSet.submit(MavenModuleSet.java:1208)
      at hudson.model.Job.doConfigSubmit(Job.java:1206)
      at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:788)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:606)
      at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298)
      at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161)
      at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)
      at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:121)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      ... 63 more
      Caused by: java.lang.IllegalArgumentException: Failed to instantiate class hudson.plugins.emailext.ExtendedEmailPublisher from {"project_disabled":false,"project_recipient_list":"$DEFAULT_RECIPIENTS","project_replyto":"$DEFAULT_REPLYTO","project_content_type":"default","project_default_subject":"$DEFAULT_SUBJECT","project_default_content":"$DEFAULT_CONTENT","project_attachments":"","project_attach_buildlog":"0","project_presend_script":"$DEFAULT_PRESEND_SCRIPT","project_save_output":false,"project_triggers":

      {"stapler-class":"","$class":""}

      ,"stapler-class":"hudson.plugins.emailext.ExtendedEmailPublisher","$class":"hudson.plugins.emailext.ExtendedEmailPublisher"}
      at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:602)
      at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:404)
      at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:400)
      at hudson.model.Descriptor.newInstance(Descriptor.java:570)
      ... 79 more
      Caused by: java.lang.IllegalArgumentException: Failed to convert the project_triggers parameter of the constructor public hudson.plugins.emailext.ExtendedEmailPublisher(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,boolean,java.util.List,hudson.plugins.emailext.MatrixTriggerMode,boolean,java.util.List)
      at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:699)
      at org.kohsuke.stapler.RequestImpl.access$200(RequestImpl.java:81)
      at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:600)
      ... 82 more
      Caused by: java.lang.IllegalArgumentException: Failed to instantiate class hudson.plugins.emailext.plugins.EmailTrigger from

      {"stapler-class":"","$class":""}

      at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:602)
      at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:638)
      at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:404)
      at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:697)
      ... 84 more
      Caused by: java.lang.IllegalArgumentException: Class is specified in JSON, but no such class found in classLoader hudson.PluginManager$UberClassLoader
      at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:596)
      ... 87 more
      Caused by: java.lang.ClassNotFoundException: cached miss for
      at hudson.PluginManager$UberClassLoader.findClass(PluginManager.java:1105)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
      at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:591)
      ... 87 more

          [JENKINS-28212] Failed to instantiate class hudson.plugins.emailext.ExtendedEmailPublisher

          aristedes added a comment -
          1. uname -a
            FreeBSD delish.ish.com.au 10.1-RELEASE-p9 FreeBSD 10.1-RELEASE-p9 #0: Tue Apr 7 01:09:46 UTC 2015 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64

          Jenkins 1.612.

          I think a previous poster reported it in Linux though. I'm not the original poster... I just found this thread when I hit the same problem. For all I know this issue has been happening for a long time, since I don't often add new email messages to existing jobs. I have no clear idea when it might have started happening.

          aristedes added a comment - uname -a FreeBSD delish.ish.com.au 10.1-RELEASE-p9 FreeBSD 10.1-RELEASE-p9 #0: Tue Apr 7 01:09:46 UTC 2015 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64 Jenkins 1.612. I think a previous poster reported it in Linux though. I'm not the original poster... I just found this thread when I hit the same problem. For all I know this issue has been happening for a long time, since I don't often add new email messages to existing jobs. I have no clear idea when it might have started happening.

          Alex Earl added a comment -

          Are you using Oracle Java, or another Java implementation? I'm trying to figure out why the defaultTriggers is not getting serialized correctly, or why a comparison is not happening correctly.

          Alex Earl added a comment - Are you using Oracle Java, or another Java implementation? I'm trying to figure out why the defaultTriggers is not getting serialized correctly, or why a comparison is not happening correctly.

          aristedes added a comment -
          1. java -version
            openjdk version "1.7.0_80"
            OpenJDK Runtime Environment (build 1.7.0_80-b15)
            OpenJDK 64-Bit Server VM (build 24.80-b11, mixed mode)

          aristedes added a comment - java -version openjdk version "1.7.0_80" OpenJDK Runtime Environment (build 1.7.0_80-b15) OpenJDK 64-Bit Server VM (build 24.80-b11, mixed mode)

          Alex Earl added a comment -

          Ok, I finally recreated this. I am looking in to how to fix it.

          Alex Earl added a comment - Ok, I finally recreated this. I am looking in to how to fix it.

          Jesse Glick added a comment -

          slide_o_mix if it is indeed a core regression, it is probably my fault, so if you know how to reproduce feel free to assign to me—I was expecting to have to dig into it anyway.

          Jesse Glick added a comment - slide_o_mix if it is indeed a core regression, it is probably my fault, so if you know how to reproduce feel free to assign to me—I was expecting to have to dig into it anyway.

          Alex Earl added a comment -

          I don't think it is a core regression, I think its the change I made for default triggers. Currently, it is serializing the descriptor information for what triggers to setup as default for new jobs. When the descriptor is deserialized, it is missing some of the internal values (clazz is null for instance), which causes a problem elsewhere in my code. Is deserialization of descriptors supposed to work, or should I be just putting the descriptor.getId() out there and calling getDescriptor?

          Alex Earl added a comment - I don't think it is a core regression, I think its the change I made for default triggers. Currently, it is serializing the descriptor information for what triggers to setup as default for new jobs. When the descriptor is deserialized, it is missing some of the internal values (clazz is null for instance), which causes a problem elsewhere in my code. Is deserialization of descriptors supposed to work, or should I be just putting the descriptor.getId() out there and calling getDescriptor?

          Jesse Glick added a comment -

          Ah, apparently unrelated to JENKINS-26781.

          Jesse Glick added a comment - Ah, apparently unrelated to JENKINS-26781 .

          Code changed in jenkins
          User: Alex Earl
          Path:
          src/main/java/hudson/plugins/emailext/EmailRecipientUtils.java
          src/main/java/hudson/plugins/emailext/ExtendedEmailPublisherDescriptor.java
          src/main/resources/hudson/plugins/emailext/ExtendedEmailPublisher/config.groovy
          src/main/resources/hudson/plugins/emailext/ExtendedEmailPublisher/global.groovy
          http://jenkins-ci.org/commit/email-ext-plugin/faac7b4b7da32c1c45748629631a76989628a3cb
          Log:
          Fix JENKINS-28212

          Serialize the descriptor id's instead of the descriptors themselves.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Alex Earl Path: src/main/java/hudson/plugins/emailext/EmailRecipientUtils.java src/main/java/hudson/plugins/emailext/ExtendedEmailPublisherDescriptor.java src/main/resources/hudson/plugins/emailext/ExtendedEmailPublisher/config.groovy src/main/resources/hudson/plugins/emailext/ExtendedEmailPublisher/global.groovy http://jenkins-ci.org/commit/email-ext-plugin/faac7b4b7da32c1c45748629631a76989628a3cb Log: Fix JENKINS-28212 Serialize the descriptor id's instead of the descriptors themselves.

          Alex Earl added a comment -

          Should be fixed in the next release, which I will do later today.

          Alex Earl added a comment - Should be fixed in the next release, which I will do later today.

          aristedes added a comment -

          Thanks for your excellent and quick response on this.

          aristedes added a comment - Thanks for your excellent and quick response on this.

            slide_o_mix Alex Earl
            vignesh_ravi Vigneshwaran Ravimurugan
            Votes:
            2 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: