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

JSONException saving periodicreincarnation.JobLocalConfiguration

    XMLWordPrintable

Details

    Description

      I originally reported this under JENKINS-20123 however @sogabe said:

      @Peter Mount
      Periodic-reincarnation-plugin causes your exception.
      You should create a new ticket.

      Here's the original report:

      I'm getting this as well, effectively causing me to be unable to save any job config. There's no GIT at all on this specific server (we use Mercurial) but again it's only occurred since 1.536 was installed.

      javax.servlet.ServletException: java.lang.RuntimeException: Failed to instantiate class org.jenkinsci.plugins.periodicreincarnation.JobLocalConfiguration from {"isEnabled":"false","maxDepth":"","isLocallyConfigured":"false"}
      	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.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$Worker.runTask(ThreadPoolExecutor.java:886)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      	at java.lang.Thread.run(Thread.java:662)
      Caused by: java.lang.RuntimeException: Failed to instantiate class org.jenkinsci.plugins.periodicreincarnation.JobLocalConfiguration from {"isEnabled":"false","maxDepth":"","isLocallyConfigured":"false"}
      	at hudson.model.Descriptor.newInstance(Descriptor.java:578)
      	at hudson.model.JobPropertyDescriptor.newInstance(JobPropertyDescriptor.java:71)
      	at org.jenkinsci.plugins.periodicreincarnation.JobLocalConfiguration$DescriptorImpl.newInstance(JobLocalConfiguration.java:135)
      	at org.jenkinsci.plugins.periodicreincarnation.JobLocalConfiguration$DescriptorImpl.newInstance(JobLocalConfiguration.java:89)
      	at hudson.util.DescribableList.rebuild(DescribableList.java:173)
      	at hudson.model.Job.doConfigSubmit(Job.java:1129)
      	at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:787)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      	at java.lang.reflect.Method.invoke(Method.java:597)
      	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)
      	... 67 more
      Caused by: net.sf.json.JSONException: JSONObject["isLocallyConfigured"] is not a JSONObject.
      	at net.sf.json.JSONObject.getJSONObject(JSONObject.java:2006)
      	at org.jenkinsci.plugins.periodicreincarnation.JobLocalConfiguration$DescriptorImpl.newInstance(JobLocalConfiguration.java:123)
      	at org.jenkinsci.plugins.periodicreincarnation.JobLocalConfiguration$DescriptorImpl.newInstance(JobLocalConfiguration.java:89)
      	at hudson.model.Descriptor$1.instantiate(Descriptor.java:1046)
      	at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:665)
      	at org.kohsuke.stapler.RequestImpl.access$100(RequestImpl.java:81)
      	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:587)
      	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)
      	... 83 more
      

      Attachments

        Issue Links

          Activity

            pmount Peter Mount created issue -
            drulli Ulli Hafner made changes -
            Field Original Value New Value
            Link This issue duplicates JENKINS-20016 [ JENKINS-20016 ]
            drulli Ulli Hafner made changes -
            Link This issue duplicates JENKINS-20016 [ JENKINS-20016 ]
            drulli Ulli Hafner made changes -
            Link This issue duplicates JENKINS-20199 [ JENKINS-20199 ]
            jglick Jesse Glick made changes -
            Link This issue is blocking JENKINS-18629 [ JENKINS-18629 ]
            jglick Jesse Glick made changes -
            Link This issue duplicates JENKINS-20199 [ JENKINS-20199 ]
            jglick Jesse Glick made changes -
            Summary Saving ANY job configuration causes JSONException to be thrown JSONException saving periodicreincarnation.JobLocalConfiguration
            boev Yordan Boev made changes -
            Assignee Yordan Boev [ boev ]
            jglick Jesse Glick made changes -
            Link This issue depends on JENKINS-20262 [ JENKINS-20262 ]
            jglick Jesse Glick made changes -
            Link This issue is blocking JENKINS-18629 [ JENKINS-18629 ]
            boev Yordan Boev added a comment -

            I removed the newInstance method and left just the @DataBoundConstructor but the problem is still there(version 1.538). Anything I have missed on the discussion? Is there a fix already?

            boev Yordan Boev added a comment - I removed the newInstance method and left just the @DataBoundConstructor but the problem is still there(version 1.538). Anything I have missed on the discussion? Is there a fix already?
            boev Yordan Boev added a comment -

            I am using an optionalBlock in my configuration which does not seem to work with the DataBoundConstructor that well. If I have the optional parameter in the DataBoundConstructor then error while saving the configuration, if i remove it then a proper Constructor is found but the values are not saved(possibly because of the optionalBlock). Any ideas?

            boev Yordan Boev added a comment - I am using an optionalBlock in my configuration which does not seem to work with the DataBoundConstructor that well. If I have the optional parameter in the DataBoundConstructor then error while saving the configuration, if i remove it then a proper Constructor is found but the values are not saved(possibly because of the optionalBlock). Any ideas?
            boev Yordan Boev added a comment -

            I don't seem to be able to create a DataBoundConstructor for this jelly file:
            https://github.com/jenkinsci/periodic-reincarnation-plugin/blob/master/src/main/resources/org/jenkinsci/plugins/periodicreincarnation/JobLocalConfiguration/config.jelly
            With the newInstance method I was passing a JSON object and looking what is in it(generally 1 value if the optional block is set to false and 3 values if the optional block is true). I cannot do that with the DataBoundConstructor or at least do not know how.

            boev Yordan Boev added a comment - I don't seem to be able to create a DataBoundConstructor for this jelly file: https://github.com/jenkinsci/periodic-reincarnation-plugin/blob/master/src/main/resources/org/jenkinsci/plugins/periodicreincarnation/JobLocalConfiguration/config.jelly With the newInstance method I was passing a JSON object and looking what is in it(generally 1 value if the optional block is set to false and 3 values if the optional block is true). I cannot do that with the DataBoundConstructor or at least do not know how.
            boev Yordan Boev added a comment -

            Fixed, will be included in the next version. This helped a lot to make the optionalBlock thing work: http://stackoverflow.com/questions/13024929/how-to-use-optionalblock-in-build-steps-config-jelly

            boev Yordan Boev added a comment - Fixed, will be included in the next version. This helped a lot to make the optionalBlock thing work: http://stackoverflow.com/questions/13024929/how-to-use-optionalblock-in-build-steps-config-jelly
            boev Yordan Boev added a comment -

            Local configuration was completely disabled in 1.7 as a workaround, now fixed and reenabled.

            boev Yordan Boev added a comment - Local configuration was completely disabled in 1.7 as a workaround, now fixed and reenabled.
            boev Yordan Boev made changes -
            Fix Version/s current [ 10162 ]
            Resolution Fixed [ 1 ]
            Status Open [ 1 ] Resolved [ 5 ]
            rtyler R. Tyler Croy made changes -
            Workflow JNJira [ 151727 ] JNJira + In-Review [ 194068 ]

            People

              boev Yordan Boev
              pmount Peter Mount
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: