title: Why C:\Windows\addins\FXSEXT.ecf accessed by Jenkins git plugin
body: <p>The issue possibly is Jenkins-specific, but I suspect it might be a more general Java on Windows issue. </p>
  
  <p>I configured a Windows Jenkins slave via JNLP agent on a new machine. When I tried to run a job, that is known to run fine on Windows slaves before I got the exception below. I could see in ProcMon that java.exe process tries to obtain Delete permissions to C:\Windows\addins\FXSEXT.ecf. </p>
  
  <p>Why does it need that? </p>
  
  <pre><code>Building remotely on ccnet-2013 (6.3 windows-6.3 windows amd64-windows-6.3 amd64-windows amd64) in workspace /windows
  Cloning the remote Git repository
  Cloning repository &lt;my repo path&gt;
  ERROR: Failed to clean the workspace
  java.nio.file.AccessDeniedException: \windows\addins\FXSEXT.ecf
      at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
      at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
      at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
      at sun.nio.fs.WindowsFileSystemProvider.implDelete(Unknown Source)
      at sun.nio.fs.AbstractFileSystemProvider.delete(Unknown Source)
      at java.nio.file.Files.delete(Unknown Source)
      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 hudson.Util.deleteFile(Util.java:247)
      at hudson.Util.deleteRecursive(Util.java:310)
      at hudson.Util.deleteContentsRecursive(Util.java:212)
      at hudson.Util.deleteRecursive(Util.java:301)
      at hudson.Util.deleteContentsRecursive(Util.java:212)
      at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$2.execute(CliGitAPIImpl.java:458)
      at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:152)
      at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:145)
      at hudson.remoting.UserRequest.perform(UserRequest.java:121)
      at hudson.remoting.UserRequest.perform(UserRequest.java:49)
      at hudson.remoting.Request$2.run(Request.java:325)
      at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
      at java.util.concurrent.FutureTask.run(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at hudson.remoting.Engine$1$1.run(Engine.java:69)
      at java.lang.Thread.run(Unknown Source)
  ERROR: Error cloning remote repo 'origin'
  ERROR: Error cloning remote repo 'origin'{code}
  </code></pre>