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

java.lang.NumberFormatException: For input string: "<various stuff>" in PeepholePermalink::resolve()

      This error is appearing below Jobname on certain project pages

      Status Code: 500

      Exception: org.apache.commons.jelly.JellyTagException: jar:file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%207.0/webapps/jenkins/WEB-INF/lib/jenkins-core-1.509.2.jar!/hudson/model/AbstractProject/main.jelly:78:66: <st:include> For input string: "!<symlink>��-1"
      Stacktrace:
      javax.servlet.ServletException: org.apache.commons.jelly.JellyTagException: jar:file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%207.0/webapps/jenkins/WEB-INF/lib/jenkins-core-1.509.2.jar!/hudson/model/AbstractProject/main.jelly:78:66: <st:include> For input string: "!<symlink>��-1"
      at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:117)
      at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:127)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:666)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770)
      at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:677)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:583)
      at org.kohsuke.stapler.Stapler.service(Stapler.java:214)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)
      at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
      at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      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 org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
      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:66)
      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.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
      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: org.apache.commons.jelly.JellyTagException: jar:file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%207.0/webapps/jenkins/WEB-INF/lib/jenkins-core-1.509.2.jar!/hudson/model/AbstractProject/main.jelly:78:66: <st:include> For input string: "!<symlink>��-1"
      at org.apache.commons.jelly.impl.TagScript.handleException(TagScript.java:726)
      at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:281)
      at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
      at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:150)
      at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
      at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
      at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:146)
      at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
      at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
      at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
      at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
      at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
      at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
      at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
      at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
      at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
      at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
      at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
      at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
      at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
      at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112)
      ... 63 more
      Caused by: java.lang.NumberFormatException: For input string: "!<symlink>��-1"
      at java.lang.NumberFormatException.forInputString(Unknown Source)
      at java.lang.Integer.parseInt(Unknown Source)
      at java.lang.Integer.parseInt(Unknown Source)
      at jenkins.model.PeepholePermalink.resolve(PeepholePermalink.java:91)
      at hudson.model.Job.getLastSuccessfulBuild(Job.java:802)
      at hudson.plugins.parameterizedtrigger.BuildTriggerConfig.iterateBuilds(BuildTriggerConfig.java:215)
      at hudson.plugins.parameterizedtrigger.BuildTriggerConfig.getProjectInfo(BuildTriggerConfig.java:151)
      at hudson.plugins.parameterizedtrigger.BuildTriggerConfig$getProjectInfo.call(Unknown Source)
      at hudson.plugins.parameterizedtrigger.SubProjectsAction.jobMain$_run_closure1_closure2_closure3.doCall(jobMain.groovy:15)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
      at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
      at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
      at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)
      at groovy.lang.Closure.call(Closure.java:412)
      at groovy.lang.Closure.call(Closure.java:425)
      at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1377)
      at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1349)
      at org.codehaus.groovy.runtime.dgm$149.invoke(Unknown Source)
      at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:271)
      at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
      at hudson.plugins.parameterizedtrigger.SubProjectsAction.jobMain$_run_closure1_closure2.doCall(jobMain.groovy:14)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
      at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
      at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
      at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)
      at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
      at hudson.plugins.parameterizedtrigger.SubProjectsAction.jobMain$_run_closure1_closure2.doCall(jobMain.groovy)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
      at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
      at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
      at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)
      at groovy.lang.Closure.call(Closure.java:412)
      at groovy.lang.Closure.call(Closure.java:406)
      at org.kohsuke.stapler.jelly.groovy.JellyBuilder.doInvokeMethod(JellyBuilder.java:296)
      at org.kohsuke.stapler.jelly.groovy.JellyBuilder.methodMissing(JellyBuilder.java:173)
      at sun.reflect.GeneratedMethodAccessor194.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
      at groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:811)
      at groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1103)
      at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1056)
      at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)
      at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:704)
      at groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:44)
      at org.kohsuke.stapler.jelly.groovy.GroovyClosureScript.invokeMethod(GroovyClosureScript.java:88)
      at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeOnDelegationObjects(ClosureMetaClass.java:407)
      at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:346)
      at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)
      at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:145)
      at hudson.plugins.parameterizedtrigger.SubProjectsAction.jobMain$_run_closure1.doCall(jobMain.groovy:13)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
      at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
      at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
      at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)
      at groovy.lang.Closure.call(Closure.java:412)
      at groovy.lang.Closure.call(Closure.java:425)
      at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1377)
      at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1349)
      at org.codehaus.groovy.runtime.dgm$149.invoke(Unknown Source)
      at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:271)
      at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
      at hudson.plugins.parameterizedtrigger.SubProjectsAction.jobMain.run(jobMain.groovy:12)
      at org.kohsuke.stapler.jelly.groovy.GroovierJellyScript.run(GroovierJellyScript.java:69)
      at org.kohsuke.stapler.jelly.groovy.GroovierJellyScript.run(GroovierJellyScript.java:62)
      at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:146)
      at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)

          [JENKINS-21631] java.lang.NumberFormatException: For input string: "<various stuff>" in PeepholePermalink::resolve()

          Code changed in jenkins
          User: Oleg Nenashev
          Path:
          core/src/main/java/jenkins/model/PeepholePermalink.java
          http://jenkins-ci.org/commit/jenkins/5df3f74b4e7700d5f51243ced4c97fdc209c6fb2
          Log:
          JENKINS-21631 - Don't fail with NPE if the PeepholePermalink cache contains the non-numeric value.

          Actually, the change just prevents symptoms. There should be an error somewhere else.

          Signed-off-by: Oleg Nenashev <o.v.nenashev@gmail.com>

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Oleg Nenashev Path: core/src/main/java/jenkins/model/PeepholePermalink.java http://jenkins-ci.org/commit/jenkins/5df3f74b4e7700d5f51243ced4c97fdc209c6fb2 Log: JENKINS-21631 - Don't fail with NPE if the PeepholePermalink cache contains the non-numeric value. Actually, the change just prevents symptoms. There should be an error somewhere else. Signed-off-by: Oleg Nenashev <o.v.nenashev@gmail.com>

          Code changed in jenkins
          User: Jesse Glick
          Path:
          core/src/main/java/jenkins/model/PeepholePermalink.java
          http://jenkins-ci.org/commit/jenkins/74680ca2213255e937df833f956afa821b82a90b
          Log:
          Merge branch 'JENKINS-21631' of github.com:synopsys-arc-oss/jenkins

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: core/src/main/java/jenkins/model/PeepholePermalink.java http://jenkins-ci.org/commit/jenkins/74680ca2213255e937df833f956afa821b82a90b Log: Merge branch ' JENKINS-21631 ' of github.com:synopsys-arc-oss/jenkins

          Code changed in jenkins
          User: Jesse Glick
          Path:
          changelog.html
          http://jenkins-ci.org/commit/jenkins/2b89f9d09e3426de8d2d311e059f24cb1c0b0b10
          Log:
          [FIXED JENKINS-21631] Noting #1275.

          Compare: https://github.com/jenkinsci/jenkins/compare/fad3f7db48e4...2b89f9d09e34

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: changelog.html http://jenkins-ci.org/commit/jenkins/2b89f9d09e3426de8d2d311e059f24cb1c0b0b10 Log: [FIXED JENKINS-21631] Noting #1275. Compare: https://github.com/jenkinsci/jenkins/compare/fad3f7db48e4...2b89f9d09e34

          Oleg Nenashev added a comment - - edited

          @Jesse
          I suppose we should create additional issues for glitches in permalink contents. I'm almost sure that users do not inject garbage (this issue) or empty (JENKINS-21459) strings manually. These cases may decrease the performance of Jenkins core.

          Oleg Nenashev added a comment - - edited @Jesse I suppose we should create additional issues for glitches in permalink contents. I'm almost sure that users do not inject garbage (this issue) or empty ( JENKINS-21459 ) strings manually. These cases may decrease the performance of Jenkins core.

          Jesse Glick added a comment -

          @oleg_nenashev: yes I imagine something on Windows caused the bogus contents to appear, and we would like to find what.

          Also it would be nice if after catching NumberFormatException we deleted the problematic file so the warning only appears once per file. And it would be better to print a one-line warning, since the full stack trace is not really interesting: lots of code can (indirectly) call the resolve method without being at fault, and in the other direction the actual thrower of NumberFormatException is irrelevant if you have the message.

          Jesse Glick added a comment - @oleg_nenashev: yes I imagine something on Windows caused the bogus contents to appear, and we would like to find what. Also it would be nice if after catching NumberFormatException we deleted the problematic file so the warning only appears once per file. And it would be better to print a one-line warning, since the full stack trace is not really interesting: lots of code can (indirectly) call the resolve method without being at fault, and in the other direction the actual thrower of NumberFormatException is irrelevant if you have the message .

          Oleg Nenashev added a comment -

          Ok. Lets reopen the issue and use it as a master one.

          Oleg Nenashev added a comment - Ok. Lets reopen the issue and use it as a master one.

          Jesse Glick added a comment -

          I think this issue—that various innocent operations can fail when there is a malformed symlink, causing serious problems—should be closed as fixed, and be immediately eligible for backport. But we should somehow track the root issue, that the malformed symlinks are being produced by something; given this fix, that is much less serious.

          Jesse Glick added a comment - I think this issue—that various innocent operations can fail when there is a malformed symlink, causing serious problems—should be closed as fixed, and be immediately eligible for backport. But we should somehow track the root issue, that the malformed symlinks are being produced by something; given this fix, that is much less serious.

          Jesse Glick added a comment -

          (Of course any follow-up improvements to the current fix, such as deleting the problematic file, would fall under the scope of this issue.)

          Jesse Glick added a comment - (Of course any follow-up improvements to the current fix, such as deleting the problematic file, would fall under the scope of this issue.)

          dogfood added a comment -

          Integrated in jenkins_main_trunk #3464
          JENKINS-21631 - Don't fail with NPE if the PeepholePermalink cache contains the non-numeric value. (Revision 5df3f74b4e7700d5f51243ced4c97fdc209c6fb2)
          [FIXED JENKINS-21631] Noting #1275. (Revision 2b89f9d09e3426de8d2d311e059f24cb1c0b0b10)

          Result = SUCCESS
          o.v.nenashev : 5df3f74b4e7700d5f51243ced4c97fdc209c6fb2
          Files :

          • core/src/main/java/jenkins/model/PeepholePermalink.java

          Jesse Glick : 2b89f9d09e3426de8d2d311e059f24cb1c0b0b10
          Files :

          • changelog.html

          dogfood added a comment - Integrated in jenkins_main_trunk #3464 JENKINS-21631 - Don't fail with NPE if the PeepholePermalink cache contains the non-numeric value. (Revision 5df3f74b4e7700d5f51243ced4c97fdc209c6fb2) [FIXED JENKINS-21631] Noting #1275. (Revision 2b89f9d09e3426de8d2d311e059f24cb1c0b0b10) Result = SUCCESS o.v.nenashev : 5df3f74b4e7700d5f51243ced4c97fdc209c6fb2 Files : core/src/main/java/jenkins/model/PeepholePermalink.java Jesse Glick : 2b89f9d09e3426de8d2d311e059f24cb1c0b0b10 Files : changelog.html

          Code changed in jenkins
          User: Oleg Nenashev
          Path:
          core/src/main/java/jenkins/model/PeepholePermalink.java
          http://jenkins-ci.org/commit/jenkins/e79f66b4a1e993823629cbe7f4b22333170bda00
          Log:
          JENKINS-21631 - Don't fail with NPE if the PeepholePermalink cache contains the non-numeric value.

          Actually, the change just prevents symptoms. There should be an error somewhere else.

          Signed-off-by: Oleg Nenashev <o.v.nenashev@gmail.com>
          (cherry picked from commit 5df3f74b4e7700d5f51243ced4c97fdc209c6fb2)

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Oleg Nenashev Path: core/src/main/java/jenkins/model/PeepholePermalink.java http://jenkins-ci.org/commit/jenkins/e79f66b4a1e993823629cbe7f4b22333170bda00 Log: JENKINS-21631 - Don't fail with NPE if the PeepholePermalink cache contains the non-numeric value. Actually, the change just prevents symptoms. There should be an error somewhere else. Signed-off-by: Oleg Nenashev <o.v.nenashev@gmail.com> (cherry picked from commit 5df3f74b4e7700d5f51243ced4c97fdc209c6fb2)

            oleg_nenashev Oleg Nenashev
            gpkirk01 Geoff Kirk
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: