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

Failed to instantiate class hudson.plugins.emailext.ExtendedEmailPublisher

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Blocker
    • Resolution: Fixed
    • Component/s: email-ext-plugin
    • Labels:
      None
    • Environment:
      Jenkins ver. 1.611+, Email-Ext plugin 2.40
    • Similar Issues:

      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

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

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

            Ah, apparently unrelated to JENKINS-26781.

            Show
            jglick Jesse Glick added a comment - Ah, apparently unrelated to JENKINS-26781 .
            Hide
            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.

            Show
            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.
            Hide
            slide_o_mix Alex Earl added a comment -

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

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

            Thanks for your excellent and quick response on this.

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

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: