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

JSONException saving periodicreincarnation.JobLocalConfiguration

    Details

    • Similar Issues:

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

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

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

            Show
            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.
            Hide
            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

            Show
            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
            Hide
            boev Yordan Boev added a comment -

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

            Show
            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 -
            Status Open [ 1 ] Resolved [ 5 ]
            Fix Version/s current [ 10162 ]
            Resolution Fixed [ 1 ]
            rtyler R. Tyler Croy made changes -
            Workflow JNJira [ 151727 ] JNJira + In-Review [ 194068 ]

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: