Skip to content

[JENKINS-10113] Having a whitespace at the end of a job name causes issues. #24749

Closed

Description

@jenkins-infra-bot

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

Activity

  1. jenkins-infra-bot commented on Jun 29, 2011

    @jenkins-infra-bot
    Author
    kohsuke:
    • Original comment link
    • 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.

    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.

  2. jenkins-infra-bot commented on Jun 29, 2011

    @jenkins-infra-bot
    Author
    scm_issue_link:

    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.

  3. jenkins-infra-bot commented on Jun 29, 2011

    @jenkins-infra-bot
    Author
    dogfood:

    Integrated in jenkins_main_trunk #924
    [FIXED JENKINS-10113] try to work extra hard before giving up the file deletion.

    Kohsuke Kawaguchi : 2c4516dcf2db59727eec9180886fa39cc9f78a1a
    Files :

    • core/src/main/java/hudson/Util.java
  4. jenkins-infra-bot commented on Sep 12, 2011

    @jenkins-infra-bot
    Author
    scm_issue_link:

    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.

  5. jenkins-infra-bot commented on Oct 20, 2011

    @jenkins-infra-bot
    Author
    scm_issue_link:

    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.

  6. removed
    bugFor changelog: Minor bug. Will be listed after features
    on Dec 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions