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

Failed to instantiate class hudson.plugins.emailext.ExtendedEmailPublisher

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved (View Workflow)
    • Blocker
    • Resolution: Fixed
    • email-ext-plugin
    • None
    • Jenkins ver. 1.611+, Email-Ext plugin 2.40

    Description

      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

      Attachments

        Issue Links

          Activity

            slide_o_mix 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?

            slide_o_mix 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?
            jglick Jesse Glick added a comment -

            Ah, apparently unrelated to JENKINS-26781.

            jglick 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_issue_link 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.
            slide_o_mix Alex Earl added a comment -

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

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

            Thanks for your excellent and quick response on this.

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

            People

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

              Dates

                Created:
                Updated:
                Resolved: