• Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • synergy-plugin
    • None
    • Jenkins and 1.572 and 1.570
      KVM Windows XP SP3
      2 GHz 1GB RAM

      When I try to use API for some jobs I get an exception.
      For example:
      job/NAME/1/api/xml - OK
      job/NAME/2/api/xml - OK
      job/NAME/2/api/json - OK
      job/NAME/3/api/json - FAIL
      job/NAME/3/api/xml - FAIL

      Stack trace:
      javax.servlet.ServletException: java.lang.IllegalArgumentException
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:778)
      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 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(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
      Caused by: java.lang.IllegalArgumentException
      at sun.reflect.GeneratedMethodAccessor230.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.kohsuke.stapler.export.MethodProperty.getValue(MethodProperty.java:66)
      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.Property.writeValue(Property.java:236)
      at org.kohsuke.stapler.export.Property.writeValue(Property.java:170)
      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:236)
      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.doXml(Api.java:97)
      at sun.reflect.GeneratedMethodAccessor333.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      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)
      ... 53 more

          [JENKINS-23900] API failing on some jobs

          Daniel Beck added a comment -

          Could you provide successful and failing build.xml files?

          Daniel Beck added a comment - Could you provide successful and failing build.xml files?

          Filip Ryborz added a comment - - edited

          I have added build xml files. I think the problem is with:
          <culprits class="com.google.common.collect.RegularImmutableSortedSet">
          <string>some_user_name</string>
          </culprits>
          When API works this line looks like:
          <culprits class="com.google.common.collect.EmptyImmutableSortedSet" />

          It looks like it happens for builds that have some changes.
          We poll Synergy and use Synergy plugin to track changes in SW.

          Filip Ryborz added a comment - - edited I have added build xml files. I think the problem is with: <culprits class="com.google.common.collect.RegularImmutableSortedSet"> <string>some_user_name</string> </culprits> When API works this line looks like: <culprits class="com.google.common.collect.EmptyImmutableSortedSet" /> It looks like it happens for builds that have some changes. We poll Synergy and use Synergy plugin to track changes in SW.

          Daniel Beck added a comment -

          To confirm, replace the relevant culprits element from the build whose API doesn't work with the working one's, and Manage Jenkins » Reload Configuration From Disk. Then try again.

          Daniel Beck added a comment - To confirm, replace the relevant culprits element from the build whose API doesn't work with the working one's, and Manage Jenkins » Reload Configuration From Disk. Then try again.

          Filip Ryborz added a comment -

          It looks like culprits is not the culprit in this case. It seems that API fails on changelog.xml.
          I have attached the file. When I leave it empty like:
          <?xml version="1.0" encoding="UTF-8"?>
          <log>
          </log>
          then API works fine.
          Interesting thing is that I have 7 builds triggered by SCM change and only 3 builds with changelog in them?
          I'm using synergy plugin 1.7.

          Filip Ryborz added a comment - It looks like culprits is not the culprit in this case. It seems that API fails on changelog.xml. I have attached the file. When I leave it empty like: <?xml version="1.0" encoding="UTF-8"?> <log> </log> then API works fine. Interesting thing is that I have 7 builds triggered by SCM change and only 3 builds with changelog in them? I'm using synergy plugin 1.7.

          Filip Ryborz added a comment -

          It looks like there is some kind of a problem with XML tags. Tags that are suggested by Jenkins wiki:
          <changelog>
          <changeset version=xxx>
          </changeset>
          </changelog>
          Format used by the plugin:
          <log>
          <logentry revision=xxx>
          </logentry>
          </log>
          When I change <logentry> to <changeset> everything is OK.
          Interesting is that SynergyChangeLogParser works OK and I can view changes on Jenkins web page.

          Filip Ryborz added a comment - It looks like there is some kind of a problem with XML tags. Tags that are suggested by Jenkins wiki: <changelog> <changeset version=xxx> </changeset> </changelog> Format used by the plugin: <log> <logentry revision=xxx> </logentry> </log> When I change <logentry> to <changeset> everything is OK. Interesting is that SynergyChangeLogParser works OK and I can view changes on Jenkins web page.

          Daniel Beck added a comment -

          Could you provide a link to the wiki page you mentioned?

          Daniel Beck added a comment - Could you provide a link to the wiki page you mentioned?

          Filip Ryborz added a comment - This is the wiki page: https://wiki.jenkins-ci.org/display/JENKINS/Change+log Here are tho sources of the plugin (method writeChangeLog ): https://github.com/jenkinsci/synergy_scm-plugin/blob/master/src/main/java/hudson/plugins/synergy/SynergySCM.java#L980 And the ChangeLogParser : https://github.com/jenkinsci/synergy_scm-plugin/blob/master/src/main/java/hudson/plugins/synergy/SynergyChangeLogParser.java

          Daniel Beck added a comment -

          This seems to be specific to Synergy.

          Daniel Beck added a comment - This seems to be specific to Synergy.

            Unassigned Unassigned
            fryborz Filip Ryborz
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: