I filed a Jira ticket <https://issues.jenkins-ci.org/browse/JENKINS-17409>for this, committed a fix, and submitted <https://github.com/jerrymaloney/mercurial-plugin/commit/c12bfbfd24eb53760764a20a35558ef7bfcadd29>a pull request <https://github.com/jenkinsci/mercurial-plugin/pull/35>.
On Monday, March 25, 2013 12:06:50 PM UTC-4, Jerry wrote: > > Hi, all. I have the Mercurial > plugin<https://wiki.jenkins-ci.org/display/JENKINS/Mercurial+Plugin>installed > and have been using it successfully for a long time. Recently, I > began to notice that on-demand polling was not working correctly. That is, > on my Mercurial central repo, I have a hook set up as follows: > [hooks] > changegroup.jenkins=curl > http://server:port/mercurial/notifyCommit?url=ssh://scm//path/to/repo > > This was suggested on the plugin's home page and mostly works pretty well. > However, sometimes it would fail to trigger polling, and a build would not > be started when it was supposed to be. I upgraded to version 1.44 of the > plugin, since it looked like this version and version 1.43 had some changes > that would fix the issue. The issue was fixed, and polling is now triggered > correctly; however, I have a new problem. When a user pushes from the > command line interface, they may either get a stuck SSH process or the > following NullPointerException: > ----- > bash-4.1$ hg push > pushing to ssh://scm//path/to/repo > searching for changes > remote: adding changesets > remote: adding manifests > remote: adding file changes > remote: added 1 changesets with 1 changes to 1 files > remote: <html><head><title>Error 500</title></head> > remote: <body bgcolor=#fff><h1>Status Code: 500</h1>Exception: > java.lang.NullPointerException<br>Stacktrace: > <pre>javax.servlet.ServletException: java.lang.NullPointerException > remote: at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:615) > remote: at org.kohsuke.stapler.Stapler.invoke(Stapler.java:658) > remote: at > org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:384) > remote: at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:573) > remote: at org.kohsuke.stapler.Stapler.invoke(Stapler.java:658) > remote: at org.kohsuke.stapler.Stapler.invoke(Stapler.java:487) > remote: at org.kohsuke.stapler.Stapler.service(Stapler.java:164) > remote: at > javax.servlet.http.HttpServlet.service(HttpServlet.java:45) > remote: at > winstone.ServletConfiguration.execute(ServletConfiguration.java:248) > remote: at > winstone.RequestDispatcher.forward(RequestDispatcher.java:333) > remote: at > winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376) > remote: at > hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95) > remote: at net.bull.javamelody.MonitoringFilter.doFilte % > Total % Received % Xferd Average Speed Time Time Time Current > remote: Dload Upload Total Spent > Left Speed > 22 6122 22 1448 0 0 55549 0 --:--:-- --:--:-- --:--:-- > 55549r(MonitoringFilter.java:202) > remote: at > net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:175) > remote: at > net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:86) > remote: at > org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:84) > remote: at > hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98) > remote: at > hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87) > remote: at > winstone.FilterConfiguration.execute(FilterConfiguration.java:194) > remote: at > winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) > remote: at > hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47) > remote: at > winstone.FilterConfiguration.execute(FilterConfiguration.java:194) > remote: at > winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) > remote: at > hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) > remote: at > hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) > remote: at > hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) > remote: at > org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166) > remote: at > hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) > remote: at > org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) > remote: at > hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) > remote: at > org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:135) > remote: at > hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) > remote: at > org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) > remote: at > hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) > remote: at > org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173) > remote: at > hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) > remote: at > jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:63) > remote: at > hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) > remote: at > org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) > remote: at > hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:66) > remote: at > hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) > remote: at > hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) > remote: at > hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164) > remote: at > winstone.FilterConfiguration.execute(FilterConfiguration.java:194) > remote: at > winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) > remote: at > org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50) > remote: at > winstone.FilterConfiguration.execute(FilterConfiguration.java:194) > remote: at > winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) > remote: at > hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) > remote: at > winstone.FilterConfiguration.execute(FilterConfiguration.java:194) > remote: at > winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) > remote: at > winstone.RequestDispatcher.forward(RequestDispatcher.java:331) > remote: at > winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:215) > remote: at > winstone.RequestHandlerThread.run(RequestHandlerThread.java:138) > remote: at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > remote: at > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) > remote: at java.util.concurrent.FutureTask.run(FutureTask.java:166) > remote: at > winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77) > remote: at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > remote: at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > remote: at java.lang.Thread.run(Thread.java:722) > remote: Caused by: java.lang.NullPointerException > remote: at java.net.URI$Parser.parse(URI.java:3023) > remote: at java.net.URI.<init>(URI.java:595) > remote: at > hudson.plugins.mercurial.MercurialStatus.looselyMatches(Mercu100 6122 > 100 6122 0 0 226k 0 --:--:-- --:--:-- --:--:-- 4564k > remote: :70) > remote: at > hudson.plugins.mercurial.MercurialStatus.handleNotifyCommit(MercurialStatus.java:106) > remote: at > hudson.plugins.mercurial.MercurialStatus.doNotifyCommit(MercurialStatus.java:87) > remote: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > remote: at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > remote: at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > remote: at java.lang.reflect.Method.invoke(Method.java:601) > remote: at > org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:288) > remote: at > org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151) > remote: at > org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90) > remote: at > org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111) > remote: at > org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) > remote: at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:573) > remote: ... 60 more > remote: </pre><br><hr> > remote: <i>Generated by Stapler at Fri Mar 08 15:09:29 UTC > 2013</i></body></html> > ----- > > The error message is not so bad, but it's alarming for many users; and the > hung command line is especially nerve-wracking. > > Anyone else seen this? I couldn't find anything about it in Jira. > > Thanks, > -- Jerry > > -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.