I'm having an intermittent error in my builds because a war file the build generates seems to be in use by jenkins, exception shown below. When I navigate to the war file in the filesystem I can't delete it either. It seems that the Jenkins process has a lock on it, as I can only delete it after shutting down Jenkins.
Am I crazy?
Building in workspace D:\jenkins\jobs\Complete Build - Everything\workspace
Cleaning up D:\jenkins\jobs\Complete Build - Everything\workspace\build\scratch
Deleting D:\jenkins\jobs\Complete Build - Everything\workspace\build\scratch\lib
ERROR: Failed to update
http://svn/vlpro/vlproprojects/trunk
org.tmatesoft.svn.core.SVNException: svn: E204900: D:\jenkins\jobs\Complete Build - Everything\workspace\build\scratch\lib\Root.war: The process cannot access the file because it is being used by another process.
at hudson.scm.subversion.UpdateWithCleanUpdater$TaskImpl$1.handleStatus(UpdateWithCleanUpdater.java:78)
at org.tmatesoft.svn.core.wc.SVNStatusClient$1.receive(SVNStatusClient.java:356)
at org.tmatesoft.svn.core.wc.SVNStatusClient$1.receive(SVNStatusClient.java:353)
at org.tmatesoft.svn.core.wc2.SvnReceivingOperation.receive(SvnReceivingOperation.java:78)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgGetStatus.receive(SvnNgGetStatus.java:201)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgGetStatus.receive(SvnNgGetStatus.java:22)
at org.tmatesoft.svn.core.internal.wc17.SVNStatusEditor17.sendUnversionedItem(SVNStatusEditor17.java:208)
at org.tmatesoft.svn.core.internal.wc17.SVNStatusEditor17.getDirStatus(SVNStatusEditor17.java:679)
at org.tmatesoft.svn.core.internal.wc17.SVNStatusEditor17.walkStatus(SVNStatusEditor17.java:575)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgGetStatus.run(SvnNgGetStatus.java:123)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgGetStatus.run(SvnNgGetStatus.java:22)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20)
at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)
at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1235)
at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:291)
at org.tmatesoft.svn.core.wc.SVNStatusClient.doStatus(SVNStatusClient.java:360)
at hudson.scm.subversion.UpdateWithCleanUpdater$TaskImpl.preUpdate(UpdateWithCleanUpdater.java:66)
at hudson.scm.subversion.UpdateUpdater$TaskImpl.perform(UpdateUpdater.java:151)
at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:153)
at hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:903)
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:884)
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:867)
at hudson.FilePath.act(FilePath.java:905)
at hudson.FilePath.act(FilePath.java:878)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:843)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:781)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1369)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:676)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:581)
at hudson.model.Run.execute(Run.java:1593)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:242)
Caused by: svn: E204900: D:\jenkins\jobs\Complete Build - Everything\workspace\build\scratch\lib\Root.war: The process cannot access the file because it is being used by another process.
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:109)
... 34 more
Caused by: java.nio.file.FileSystemException: D:\jenkins\jobs\Complete Build - Everything\workspace\build\scratch\lib\Root.war: The process cannot access the file because it is being used by another process.
at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:268)
at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103)
at java.nio.file.Files.delete(Files.java:1077)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at hudson.Util.deleteFile(Util.java:237)
at hudson.Util.deleteRecursive(Util.java:305)
at hudson.Util.deleteContentsRecursive(Util.java:202)
at hudson.Util.deleteRecursive(Util.java:296)
at hudson.scm.subversion.UpdateWithCleanUpdater$TaskImpl$1.handleStatus(UpdateWithCleanUpdater.java:74)
... 33 more
ERROR: Subversion update failed
java.io.IOException
at hudson.scm.subversion.UpdateUpdater$TaskImpl.perform(UpdateUpdater.java:207)
at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:153)
at hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:903)
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:884)
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:867)
at hudson.FilePath.act(FilePath.java:905)
at hudson.FilePath.act(FilePath.java:878)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:843)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:781)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1369)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:676)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:581)
at hudson.model.Run.execute(Run.java:1593)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:242)
Caused by: hudson.scm.subversion.UpdaterException: failed to perform svn update
... 17 more
Caused by: org.tmatesoft.svn.core.SVNException: svn: E204900: D:\jenkins\jobs\Complete Build - Everything\workspace\build\scratch\lib\Root.war: The process cannot access the file because it is being used by another process.
at hudson.scm.subversion.UpdateWithCleanUpdater$TaskImpl$1.handleStatus(UpdateWithCleanUpdater.java:78)
at org.tmatesoft.svn.core.wc.SVNStatusClient$1.receive(SVNStatusClient.java:356)
at org.tmatesoft.svn.core.wc.SVNStatusClient$1.receive(SVNStatusClient.java:353)
at org.tmatesoft.svn.core.wc2.SvnReceivingOperation.receive(SvnReceivingOperation.java:78)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgGetStatus.receive(SvnNgGetStatus.java:201)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgGetStatus.receive(SvnNgGetStatus.java:22)
at org.tmatesoft.svn.core.internal.wc17.SVNStatusEditor17.sendUnversionedItem(SVNStatusEditor17.java:208)
at org.tmatesoft.svn.core.internal.wc17.SVNStatusEditor17.getDirStatus(SVNStatusEditor17.java:679)
at org.tmatesoft.svn.core.internal.wc17.SVNStatusEditor17.walkStatus(SVNStatusEditor17.java:575)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgGetStatus.run(SvnNgGetStatus.java:123)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgGetStatus.run(SvnNgGetStatus.java:22)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20)
at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)
at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1235)
at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:291)
at org.tmatesoft.svn.core.wc.SVNStatusClient.doStatus(SVNStatusClient.java:360)
at hudson.scm.subversion.UpdateWithCleanUpdater$TaskImpl.preUpdate(UpdateWithCleanUpdater.java:66)
at hudson.scm.subversion.UpdateUpdater$TaskImpl.perform(UpdateUpdater.java:151)
... 16 more
Caused by: svn: E204900: D:\jenkins\jobs\Complete Build - Everything\workspace\build\scratch\lib\Root.war: The process cannot access the file because it is being used by another process.
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:109)
... 34 more
Caused by: java.nio.file.FileSystemException: D:\jenkins\jobs\Complete Build - Everything\workspace\build\scratch\lib\Root.war: The process cannot access the file because it is being used by another process.
at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:268)
at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103)
at java.nio.file.Files.delete(Files.java:1077)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at hudson.Util.deleteFile(Util.java:237)
at hudson.Util.deleteRecursive(Util.java:305)
at hudson.Util.deleteContentsRecursive(Util.java:202)
at hudson.Util.deleteRecursive(Util.java:296)
at hudson.scm.subversion.UpdateWithCleanUpdater$TaskImpl$1.handleStatus(UpdateWithCleanUpdater.java:74)
... 33 more