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

Failed to instantiate class hudson.plugins.emailext.ExtendedEmailPublisher

      After updating to the latest jenkins version (v1.536) i get this error when saving a project which has the email-ext plugin enabled

      EDIT:

      It looks like it has to do with missing options in the config (the config hasn't changed for weeks now..) but with a litle bit of guessing i found what options were required. So maybe a fix for this issue could be to have required fields and give the user feedback on what fields he has to fill instead of this raw error

      javax.servlet.ServletException: java.lang.RuntimeException: Failed to instantiate class hudson.plugins.emailext.ExtendedEmailPublisher from {"project_recipient_list":"$DEFAULT_RECIPIENTS, ***@mail.com","project_replyto":"$DEFAULT_REPLYTO","project_content_type":"default","project_default_subject":"$DEFAULT_SUBJECT","project_default_content":"$DEFAULT_CONTENT","project_attachments":"","project_attach_buildlog":"1","project_presend_script":"","project_save_output":false,"project_triggers":{"stapler-class<span class="code-quote">":"","kind":""},"stapler-class<span class="code-quote">":"hudson.plugins.emailext.ExtendedEmailPublisher","kind":"hudson.plugins.emailext.ExtendedEmailPublisher"}
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:777)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:841)
      	at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248)
      	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:727)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:841)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:630)
      	at org.kohsuke.stapler.Stapler.service(Stapler.java:224)
      	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:96)
      	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
      	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 org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:64)
      	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:164)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
      	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: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:240)
      	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:722)
      Caused by: java.lang.RuntimeException: Failed to instantiate class hudson.plugins.emailext.ExtendedEmailPublisher from {"project_recipient_list":"$DEFAULT_RECIPIENTS, ****@mail.com","project_replyto":"$DEFAULT_REPLYTO","project_content_type":"default","project_default_subject":"$DEFAULT_SUBJECT","project_default_content":"$DEFAULT_CONTENT","project_attachments":"","project_attach_buildlog":"1","project_presend_script":"","project_save_output":false,"project_triggers":{"stapler-class<span class="code-quote">":"","kind":""},"stapler-class<span class="code-quote">":"hudson.plugins.emailext.ExtendedEmailPublisher","kind":"hudson.plugins.emailext.ExtendedEmailPublisher"}
      	at hudson.model.Descriptor.newInstance(Descriptor.java:578)
      	at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:916)
      	at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:901)
      	at hudson.util.DescribableList.rebuildHetero(DescribableList.java:203)
      	at hudson.model.Project.submit(Project.java:208)
      	at hudson.model.Job.doConfigSubmit(Job.java:1136)
      	at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:787)
      	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:601)
      	at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:297)
      	at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:160)
      	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:95)
      	at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:120)
      	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:727)
      	... 63 more
      Caused by: java.lang.IllegalArgumentException: Failed to instantiate class hudson.plugins.emailext.ExtendedEmailPublisher from {"project_recipient_list":"$DEFAULT_RECIPIENTS, ****@mail.com","project_replyto":"$DEFAULT_REPLYTO","project_content_type":"default","project_default_subject":"$DEFAULT_SUBJECT","project_default_content":"$DEFAULT_CONTENT","project_attachments":"","project_attach_buildlog":"1","project_presend_script":"","project_save_output":false,"project_triggers":{"stapler-class<span class="code-quote">":"","kind":""},"stapler-class<span class="code-quote">":"hudson.plugins.emailext.ExtendedEmailPublisher","kind":"hudson.plugins.emailext.ExtendedEmailPublisher"}
      	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:589)
      	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:400)
      	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:396)
      	at hudson.model.Descriptor.newInstance(Descriptor.java:569)
      	... 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)
      	at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:686)
      	at org.kohsuke.stapler.RequestImpl.access$100(RequestImpl.java:81)
      	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:587)
      	... 82 more
      Caused by: java.lang.IllegalArgumentException: Failed to instantiate class hudson.plugins.emailext.plugins.EmailTrigger from {"stapler-class":"","kind":""}
      	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:589)
      	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:625)
      	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:400)
      	at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:684)
      	... 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:583)
      	... 87 more
      Caused by: java.lang.ClassNotFoundException: 
      	at hudson.PluginManager$UberClassLoader.findClass(PluginManager.java:985)
      	at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
      	at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
      	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:578)
      	... 87 more
      

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

          Jeroen Thora created issue -
          Jeroen Thora made changes -
          Description Original: After updating to the latest jenkins version (v1.536) i get this error when saving a project which has the email-ext plugin enabled

          {code}
          javax.servlet.ServletException: java.lang.RuntimeException: Failed to instantiate class hudson.plugins.emailext.ExtendedEmailPublisher from {"project_recipient_list":"$DEFAULT_RECIPIENTS, ***@mail.com","project_replyto":"$DEFAULT_REPLYTO","project_content_type":"default","project_default_subject":"$DEFAULT_SUBJECT","project_default_content":"$DEFAULT_CONTENT","project_attachments":"","project_attach_buildlog":"1","project_presend_script":"","project_save_output":false,"project_triggers":{"stapler-class":"","kind":""},"stapler-class":"hudson.plugins.emailext.ExtendedEmailPublisher","kind":"hudson.plugins.emailext.ExtendedEmailPublisher"}
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:777)
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:841)
          at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248)
          at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:727)
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:841)
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:630)
          at org.kohsuke.stapler.Stapler.service(Stapler.java:224)
          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:96)
          at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
          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 org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
          at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
          at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:64)
          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:164)
          at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
          at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
          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: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:240)
          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:722)
          Caused by: java.lang.RuntimeException: Failed to instantiate class hudson.plugins.emailext.ExtendedEmailPublisher from {"project_recipient_list":"$DEFAULT_RECIPIENTS, ****@mail.com","project_replyto":"$DEFAULT_REPLYTO","project_content_type":"default","project_default_subject":"$DEFAULT_SUBJECT","project_default_content":"$DEFAULT_CONTENT","project_attachments":"","project_attach_buildlog":"1","project_presend_script":"","project_save_output":false,"project_triggers":{"stapler-class":"","kind":""},"stapler-class":"hudson.plugins.emailext.ExtendedEmailPublisher","kind":"hudson.plugins.emailext.ExtendedEmailPublisher"}
          at hudson.model.Descriptor.newInstance(Descriptor.java:578)
          at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:916)
          at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:901)
          at hudson.util.DescribableList.rebuildHetero(DescribableList.java:203)
          at hudson.model.Project.submit(Project.java:208)
          at hudson.model.Job.doConfigSubmit(Job.java:1136)
          at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:787)
          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:601)
          at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:297)
          at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:160)
          at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:95)
          at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:120)
          at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:727)
          ... 63 more
          Caused by: java.lang.IllegalArgumentException: Failed to instantiate class hudson.plugins.emailext.ExtendedEmailPublisher from {"project_recipient_list":"$DEFAULT_RECIPIENTS, ****@mail.com","project_replyto":"$DEFAULT_REPLYTO","project_content_type":"default","project_default_subject":"$DEFAULT_SUBJECT","project_default_content":"$DEFAULT_CONTENT","project_attachments":"","project_attach_buildlog":"1","project_presend_script":"","project_save_output":false,"project_triggers":{"stapler-class":"","kind":""},"stapler-class":"hudson.plugins.emailext.ExtendedEmailPublisher","kind":"hudson.plugins.emailext.ExtendedEmailPublisher"}
          at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:589)
          at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:400)
          at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:396)
          at hudson.model.Descriptor.newInstance(Descriptor.java:569)
          ... 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)
          at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:686)
          at org.kohsuke.stapler.RequestImpl.access$100(RequestImpl.java:81)
          at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:587)
          ... 82 more
          Caused by: java.lang.IllegalArgumentException: Failed to instantiate class hudson.plugins.emailext.plugins.EmailTrigger from {"stapler-class":"","kind":""}
          at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:589)
          at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:625)
          at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:400)
          at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:684)
          ... 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:583)
          ... 87 more
          Caused by: java.lang.ClassNotFoundException:
          at hudson.PluginManager$UberClassLoader.findClass(PluginManager.java:985)
          at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
          at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
          at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:578)
          ... 87 more
          {code}
          New: After updating to the latest jenkins version (v1.536) i get this error when saving a project which has the email-ext plugin enabled

          EDIT:

          It looks like it has to do with missing options in the config (the config hasn't changed for weeks now..) but with a litle bit of guessing i found what options were required. So maybe a fix for this issue could be to have required fields and give the user feedback on what fields he has to fill instead of this raw error

          {code}
          javax.servlet.ServletException: java.lang.RuntimeException: Failed to instantiate class hudson.plugins.emailext.ExtendedEmailPublisher from {"project_recipient_list":"$DEFAULT_RECIPIENTS, ***@mail.com","project_replyto":"$DEFAULT_REPLYTO","project_content_type":"default","project_default_subject":"$DEFAULT_SUBJECT","project_default_content":"$DEFAULT_CONTENT","project_attachments":"","project_attach_buildlog":"1","project_presend_script":"","project_save_output":false,"project_triggers":{"stapler-class":"","kind":""},"stapler-class":"hudson.plugins.emailext.ExtendedEmailPublisher","kind":"hudson.plugins.emailext.ExtendedEmailPublisher"}
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:777)
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:841)
          at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248)
          at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:727)
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:841)
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:630)
          at org.kohsuke.stapler.Stapler.service(Stapler.java:224)
          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:96)
          at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
          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 org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
          at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
          at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:64)
          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:164)
          at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
          at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
          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: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:240)
          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:722)
          Caused by: java.lang.RuntimeException: Failed to instantiate class hudson.plugins.emailext.ExtendedEmailPublisher from {"project_recipient_list":"$DEFAULT_RECIPIENTS, ****@mail.com","project_replyto":"$DEFAULT_REPLYTO","project_content_type":"default","project_default_subject":"$DEFAULT_SUBJECT","project_default_content":"$DEFAULT_CONTENT","project_attachments":"","project_attach_buildlog":"1","project_presend_script":"","project_save_output":false,"project_triggers":{"stapler-class":"","kind":""},"stapler-class":"hudson.plugins.emailext.ExtendedEmailPublisher","kind":"hudson.plugins.emailext.ExtendedEmailPublisher"}
          at hudson.model.Descriptor.newInstance(Descriptor.java:578)
          at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:916)
          at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:901)
          at hudson.util.DescribableList.rebuildHetero(DescribableList.java:203)
          at hudson.model.Project.submit(Project.java:208)
          at hudson.model.Job.doConfigSubmit(Job.java:1136)
          at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:787)
          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:601)
          at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:297)
          at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:160)
          at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:95)
          at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:120)
          at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:727)
          ... 63 more
          Caused by: java.lang.IllegalArgumentException: Failed to instantiate class hudson.plugins.emailext.ExtendedEmailPublisher from {"project_recipient_list":"$DEFAULT_RECIPIENTS, ****@mail.com","project_replyto":"$DEFAULT_REPLYTO","project_content_type":"default","project_default_subject":"$DEFAULT_SUBJECT","project_default_content":"$DEFAULT_CONTENT","project_attachments":"","project_attach_buildlog":"1","project_presend_script":"","project_save_output":false,"project_triggers":{"stapler-class":"","kind":""},"stapler-class":"hudson.plugins.emailext.ExtendedEmailPublisher","kind":"hudson.plugins.emailext.ExtendedEmailPublisher"}
          at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:589)
          at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:400)
          at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:396)
          at hudson.model.Descriptor.newInstance(Descriptor.java:569)
          ... 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)
          at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:686)
          at org.kohsuke.stapler.RequestImpl.access$100(RequestImpl.java:81)
          at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:587)
          ... 82 more
          Caused by: java.lang.IllegalArgumentException: Failed to instantiate class hudson.plugins.emailext.plugins.EmailTrigger from {"stapler-class":"","kind":""}
          at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:589)
          at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:625)
          at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:400)
          at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:684)
          ... 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:583)
          ... 87 more
          Caused by: java.lang.ClassNotFoundException:
          at hudson.PluginManager$UberClassLoader.findClass(PluginManager.java:985)
          at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
          at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
          at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:578)
          ... 87 more
          {code}

          Alex Earl added a comment -

          Be aware that the plugin is only tested with the most recent LTS release, any releases after that have not received any testing and so there are possibly breaking issues in the core. Please post the config.xml that is "missing options".

          Alex Earl added a comment - Be aware that the plugin is only tested with the most recent LTS release, any releases after that have not received any testing and so there are possibly breaking issues in the core. Please post the config.xml that is "missing options".

          Jeroen Thora added a comment -

          I found that the problem is with the mail trigger, so i add a mail trigger and save (that works correctly) but when i open my config after that it show an empty line for the build trigger and it throws the error above when saving

          Before save: http://i.imgur.com/y4fVeMx.png

          After save: http://i.imgur.com/ciHCJBb.png

          Jeroen Thora added a comment - I found that the problem is with the mail trigger, so i add a mail trigger and save (that works correctly) but when i open my config after that it show an empty line for the build trigger and it throws the error above when saving Before save: http://i.imgur.com/y4fVeMx.png After save: http://i.imgur.com/ciHCJBb.png
          Alex Earl made changes -
          Link New: This issue is related to JENKINS-18629 [ JENKINS-18629 ]

          Pascal Welte added a comment - - edited

          We have the same problem. Sometimes save works and sometimes we got the above described error. I found out that config.xml has <null> in <configuredTriggers> and therefor is not able to run the job. If I put in the correct values manually and reload jenkins settings. Everything works fine. So I think its a problem of the job save mechanism.

          Environment:
          Ubuntu 12.04 LTS
          Jenkins 1.5.36
          Email-ext 2.35.1

          Pascal Welte added a comment - - edited We have the same problem. Sometimes save works and sometimes we got the above described error. I found out that config.xml has <null> in <configuredTriggers> and therefor is not able to run the job. If I put in the correct values manually and reload jenkins settings. Everything works fine. So I think its a problem of the job save mechanism. Environment: Ubuntu 12.04 LTS Jenkins 1.5.36 Email-ext 2.35.1

          Alex Earl added a comment -

          I linked this issue to one that looks similar that was related to some new Stapler stuff in core, it is supposedly fixed in 1.536, but there may still be some issues.

          Alex Earl added a comment - I linked this issue to one that looks similar that was related to some new Stapler stuff in core, it is supposedly fixed in 1.536, but there may still be some issues.

          Geoff Rowell added a comment -

          Got this after upgrading Jenkins from v1.535 to v1.536 (and EmailExt plugin from v2.34 to v2.35.1). Looks like the same thing as JIRA-20030. Job configuration files end up with <null/> tags, in place of the prior content of the <configuredTriggers> tag. Causes NPEs, when you try to run the job.

          OS: Windows 2008x64
          Jenkins: v1.536
          EmailExt: v2.35.1

          Geoff Rowell added a comment - Got this after upgrading Jenkins from v1.535 to v1.536 (and EmailExt plugin from v2.34 to v2.35.1). Looks like the same thing as JIRA-20030. Job configuration files end up with <null/> tags, in place of the prior content of the <configuredTriggers> tag. Causes NPEs, when you try to run the job. OS: Windows 2008x64 Jenkins: v1.536 EmailExt: v2.35.1
          Alex Earl made changes -
          Link New: This issue is related to JENKINS-20199 [ JENKINS-20199 ]

          Alex Earl added a comment -

          No, I don't think this is the same thing as JENKINS-20030 at all. That was a change in the way that parameters were parsed from the job config page, this is completely different. I believe it has to do with changes that were made in 1.536.

          Alex Earl added a comment - No, I don't think this is the same thing as JENKINS-20030 at all. That was a change in the way that parameters were parsed from the job config page, this is completely different. I believe it has to do with changes that were made in 1.536.

            slide_o_mix Alex Earl
            jeroenthora Jeroen Thora
            Votes:
            8 Vote for this issue
            Watchers:
            19 Start watching this issue

              Created:
              Updated:
              Resolved: