"java.io.IOException: Failed to write timestamp" when accessing REST API

This issue is archived. You can view it, but you can't modify it. Learn more

XMLWordPrintable

      For some builds, the REST API returns an exception when trying to access the build details. The error seems to be related to timestamp parsing/formatting, but I have not been able to find what is different between working builds and non-working builds.

      Jenkins version 1.551
      Git plugin 2.0.3
      Git client plugin 1.6.3

      One successful build (#41 for that job) contained this as its only change set:

      $ git show --pretty=raw origin/master
      commit f3a8d0dca13520cb85eef03293a0fd978bb27074
      tree 815ff1f5ab3731ff175fa4d1f48681c4114a7542
      parent 2d7dc47edb116e0616fc1ecd9764a49da03ac950
      author Henrik Gustafsson <henrik.gustafsson@proceranetworks.com> 1393606544 +0100
      committer Henrik Gustafsson <henrik.gustafsson@proceranetworks.com> 1393606581 +0100
      
          PRIVATE: Exclude org.cojen.* from common test coverage
      
      diff --git a/build.gradle b/build.gradle
      index faa3ed8..814df08 100644
      --- a/build.gradle
      +++ b/build.gradle
      @@ -72,6 +72,12 @@ project(':codemodel') {
       }
       
       project(':common') {
      +    test {
      +        jacoco {
      +            excludes << "org.cojen.*"
      +        }
      +    }
      +
           dependencies {
               compile project(':runtime')
               compile project(':inetradix')
      

      Accessing http://<jenkins>/job/XXX/41/api/json?pretty=true yields:

      java.io.IOException: Failed to write timestamp
      	at org.kohsuke.stapler.export.Property.writeTo(Property.java:120)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:187)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:182)
      	at org.kohsuke.stapler.export.Property.writeValue(Property.java:232)
      	at org.kohsuke.stapler.export.Property.writeValue(Property.java:169)
      	at org.kohsuke.stapler.export.Property.writeValue(Property.java:137)
      	at org.kohsuke.stapler.export.Property.writeTo(Property.java:114)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:187)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:182)
      	at org.kohsuke.stapler.export.Property.writeValue(Property.java:232)
      	at org.kohsuke.stapler.export.Property.writeValue(Property.java:137)
      	at org.kohsuke.stapler.export.Property.writeTo(Property.java:114)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:187)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:182)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:182)
      	at org.kohsuke.stapler.export.Model.writeTo(Model.java:154)
      	at org.kohsuke.stapler.ResponseImpl.serveExposedBean(ResponseImpl.java:267)
      	at hudson.model.Api.doJson(Api.java:195)
      	at sun.reflect.GeneratedMethodAccessor164.invoke(Unknown Source)
      	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:120)
      	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
      	at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:210)
      	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
      	at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:390)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
      	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:728)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631)
      	at org.kohsuke.stapler.Stapler.service(Stapler.java:225)
      	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 net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:203)
      	at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:181)
      	at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:86)
      	at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:90)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99)
      	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.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.headerComplete(AbstractHttpConnection.java:949)
      	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011)
      	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
      	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:724)
      Caused by: java.lang.reflect.InvocationTargetException
      	at sun.reflect.GeneratedMethodAccessor1475.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at org.kohsuke.stapler.export.MethodProperty.getValue(MethodProperty.java:66)
      	at org.kohsuke.stapler.export.Property.writeTo(Property.java:114)
      	... 84 more
      Caused by: java.lang.NumberFormatException: For input string: "1970-01-17T04:06:46+0100 +0100"
      	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
      	at java.lang.Long.parseLong(Long.java:441)
      	at java.lang.Long.parseLong(Long.java:483)
      	at hudson.plugins.git.GitChangeSet.getTimestamp(GitChangeSet.java:194)
      	... 89 more
      

      The git related lines in the build log were uninteresting:

      Started by an SCM change
      [EnvInject] - Loading node environment variables.
      Building on master in workspace /var/lib/jenkins/jobs/XXX/workspace
      Fetching changes from the remote Git repository
      Fetching upstream changes from ssh://build@YYY/git/ZZZ/XXX.git
      Checking out Revision f3a8d0dca13520cb85eef03293a0fd978bb27074 (origin/master)
      Cleaning workspace
      Resetting working tree
      

            Assignee:
            Nicolas De Loof
            Reporter:
            Henrik Gustafsson
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Resolved:
              Archived: