Repository navigation
[JENKINS-10113] Having a whitespace at the end of a job name causes issues. #24749
Copy link
Copy link
Closed
Description
I accidentally created a job with a whitespace at the end of the project name. I was unable to rename or delete the job afterwards. The error below is the error I received while trying to delete the job:
java.io.IOException: Unable to delete C:\Hudson\home\jobs\Monitor - BCBSA Prod - files in dir: [C:\Hudson\home\jobs\Monitor - BCBSA Prod \builds, C:\Hudson\home\jobs\Monitor - BCBSA Prod \config.xml, C:\Hudson\home\jobs\Monitor - BCBSA Prod \nextBuildNumber]
at hudson.Util.deleteFile(Util.java:262)
at hudson.Util.deleteRecursive(Util.java:305)
at hudson.model.AbstractItem.performDelete(AbstractItem.java:439)
at hudson.model.Job.performDelete(Job.java:209)
at hudson.model.AbstractProject.performDelete(AbstractProject.java:276)
at hudson.model.AbstractItem.delete(AbstractItem.java:415)
at hudson.model.AbstractItem.doDoDelete(AbstractItem.java:396)
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.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:282)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:149)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:88)
at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:103)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:561)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:646)
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:233)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:561)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:646)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:477)
at org.kohsuke.stapler.Stapler.service(Stapler.java:159)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
at winstone.ServletConfiguration.execute(ServletConfiguration.java:249)
at winstone.RequestDispatcher.forward(RequestDispatcher.java:335)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:378)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:94)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:86)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
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:166)
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:173)
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 winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:244)
at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
at java.lang.Thread.run(Unknown Source)
Originally reported by barrycotter, imported from: Having a whitespace at the end of a job name causes issues.
- status: Resolved
- priority: Major
- component(s): other
- resolution: Fixed
- resolved: 2011-06-29T05:19:14+00:00
- votes: 0
- watchers: 0
- imported: 2025-12-08
Raw content of original issue
I accidentally created a job with a whitespace at the end of the project name. I was unable to rename or delete the job afterwards. The error below is the error I received while trying to delete the job:
java.io.IOException: Unable to delete C:\Hudson\home\jobs\Monitor - BCBSA Prod - files in dir: [C:\Hudson\home\jobs\Monitor - BCBSA Prod \builds, C:\Hudson\home\jobs\Monitor - BCBSA Prod \config.xml, C:\Hudson\home\jobs\Monitor - BCBSA Prod \nextBuildNumber] at hudson.Util.deleteFile(Util.java:262) at hudson.Util.deleteRecursive(Util.java:305) at hudson.model.AbstractItem.performDelete(AbstractItem.java:439) at hudson.model.Job.performDelete(Job.java:209) at hudson.model.AbstractProject.performDelete(AbstractProject.java:276) at hudson.model.AbstractItem.delete(AbstractItem.java:415) at hudson.model.AbstractItem.doDoDelete(AbstractItem.java:396) 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.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:282) at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:149) at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:88) at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:103) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:561) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:646) at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:233) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:561) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:646) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:477) at org.kohsuke.stapler.Stapler.service(Stapler.java:159) at javax.servlet.http.HttpServlet.service(HttpServlet.java:45) at winstone.ServletConfiguration.execute(ServletConfiguration.java:249) at winstone.RequestDispatcher.forward(RequestDispatcher.java:335) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:378) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:94) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:86) at winstone.FilterConfiguration.execute(FilterConfiguration.java:195) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47) at winstone.FilterConfiguration.execute(FilterConfiguration.java:195) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368) 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:166) 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:173) 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 winstone.FilterConfiguration.execute(FilterConfiguration.java:195) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368) at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) at winstone.FilterConfiguration.execute(FilterConfiguration.java:195) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368) at winstone.RequestDispatcher.forward(RequestDispatcher.java:333) at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:244) at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150) at java.lang.Thread.run(Unknown Source)
environment
Jenkins ver. 1.409<br/>
Windows Vista
Reactions are currently unavailable
Activity
jenkins-infra-bot commentedon Jun 29, 2011
Raw content of original comment:
I don't think these issues are related to whitespace in the job name. I was able to create such a job and delete it on Windows just fine.
I think the problem is more to do with the build (and possibly other) activities that's going on in parallel. We delete a directory by first deleting everything in it, and this error indicates that those files have been created again while we did that.
jenkins-infra-bot commentedon Jun 29, 2011
Raw content of original comment:
Code changed in jenkins
User: Kohsuke Kawaguchi
Path:
core/src/main/java/hudson/Util.java
http://jenkins-ci.org/commit/jenkins/2c4516dcf2db59727eec9180886fa39cc9f78a1a
Log:
[FIXED JENKINS-10113] try to work extra hard before giving up the file deletion.
jenkins-infra-bot commentedon Jun 29, 2011
Raw content of original comment:
Integrated in
jenkins_main_trunk #924
[FIXED JENKINS-10113] try to work extra hard before giving up the file deletion.
Kohsuke Kawaguchi : 2c4516dcf2db59727eec9180886fa39cc9f78a1a
Files :
jenkins-infra-bot commentedon Sep 12, 2011
Raw content of original comment:
Code changed in jenkins
User: Kohsuke Kawaguchi
Path:
core/src/main/java/hudson/Util.java
http://jenkins-ci.org/commit/jenkins/2c4516dcf2db59727eec9180886fa39cc9f78a1a
Log:
[FIXED JENKINS-10113] try to work extra hard before giving up the file deletion.
jenkins-infra-bot commentedon Oct 20, 2011
Raw content of original comment:
Code changed in jenkins
User: Kohsuke Kawaguchi
Path:
core/src/main/java/hudson/Util.java
http://jenkins-ci.org/commit/jenkins/2c4516dcf2db59727eec9180886fa39cc9f78a1a
Log:
[FIXED JENKINS-10113] try to work extra hard before giving up the file deletion.