Try to updated an installed plugin without restarting Jenkins. In my case Perforce threw the following exception (SubVersion behaved similar):
hudson.util.IOException2: Failed to dynamically deploy this plugin
at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:1137)
at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:955)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.io.IOException: Unable to delete C:\Jenkins\plugins\perforce\WEB-INF\lib\commons-codec-1.4.jar
at hudson.Util.deleteFile(Util.java:237)
at hudson.Util.deleteRecursive(Util.java:287)
at hudson.Util.deleteContentsRecursive(Util.java:198)
at hudson.Util.deleteRecursive(Util.java:278)
at hudson.Util.deleteContentsRecursive(Util.java:198)
at hudson.Util.deleteRecursive(Util.java:278)
at hudson.Util.deleteContentsRecursive(Util.java:198)
at hudson.ClassicPluginStrategy.explode(ClassicPluginStrategy.java:389)
at hudson.ClassicPluginStrategy.createPluginWrapper(ClassicPluginStrategy.java:113)
at hudson.PluginManager.dynamicLoad(PluginManager.java:340)
at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:1133)
... 7 more