[FIXED JENKINS-5408] Quoting Issue with JDK Installer with Windows Slave
NotSerilizableSecurityContext -> NonSerializableSecurityContext
Convenience overload of impersonate taking a thunk.
[FIXED JENKINS-17084] Changelog should produce output even if some changelog annotator fails
[FIXED JENKINS-17128] Unquote labels before processing
File.setWritable should be the first, and if possible only, thing we try for makeWritable.
[FIXED JENKINS-17271] Util.deleteFile should give a concrete reason for failure.
Aligned Traditional Chinese translation with
f43cde68a8349cb62d3ea55da869a2b0e80d1d8c.
[FIXED JENKINS-3265] Hotfix for regression in matrix project loading from 25084f5.
Merge branch 'master' of github.com:jenkinsci/jenkins
This code was borked as SlaveComputer is not serializable and we are passing an implicit ref to the outer class.

- I suspect that nobody has ever used this method given the lack of conversion to static inner class required to make it work
Updated comment in POM.
'mvn -Dtest=hudson.maven.MavenProjectTest#testDeleteSetBuildDeletesModuleBuilds test' fails on empty local repo.
~/.m2/repository/org/jvnet/hudson/main/test/multimod/moduleA/1.0-SNAPSHOT/moduleA-1.0-SNAPSHOT.jar was missing; need install goal.
Better to set a local repo so we do not pollute the real repo, and to avoid interaction between tests.
Merge branch 'master' of github.com:jenkinsci/jenkins
Use TemporaryFolder to good effect.
Prevents us from leaving behind a temp dir with cyclic symlinks, which breaks JGit’s clean function.
That in turn can cause test builds to break:
https://jenkins.ci.cloudbees.com/job/core/job/jenkins_main_trunk/783/console
Cleaning workspace
FATAL: Could not delete file …/workspace/core/jenkins_main_trunk/core/target/hudson5309354136960541268tmp/c/symlink/c/symlink/c/symlink/…/c/foo.xml
org.eclipse.jgit.api.errors.JGitInternalException: Could not delete file …/workspace/core/jenkins_main_trunk/core/target/hudson5309354136960541268tmp/c/symlink/c/symlink/c/symlink/…/c/foo.xml
	at org.eclipse.jgit.api.CleanCommand.call(CleanCommand.java:137)
	at org.jenkinsci.plugins.gitclient.JGitAPIImpl.clean(JGitAPIImpl.java:305)
	at hudson.plugins.git.GitAPI.clean(GitAPI.java:248)
	at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:1213)
	at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:1196)
	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2236)
	at hudson.remoting.UserRequest.perform(UserRequest.java:118)
	at hudson.remoting.UserRequest.perform(UserRequest.java:48)
	at hudson.remoting.Request$2.run(Request.java:326)
	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:722)
Caused by: java.io.IOException: Could not delete file …/workspace/core/jenkins_main_trunk/core/target/hudson5309354136960541268tmp/c/symlink/c/symlink/c/symlink/…/c/foo.xml
	at org.eclipse.jgit.util.FileUtils.delete(FileUtils.java:142)
	at org.eclipse.jgit.util.FileUtils.delete(FileUtils.java:126)
	at org.eclipse.jgit.util.FileUtils.delete(FileUtils.java:126)
	…
	at org.eclipse.jgit.util.FileUtils.delete(FileUtils.java:126)
	at org.eclipse.jgit.util.FileUtils.delete(FileUtils.java:126)
	at org.eclipse.jgit.api.CleanCommand.call(CleanCommand.java:132)
	... 14 more
[FIXED JENKINS-7813]

Fixed the throughput problem between master/slave communication.
This fix contains two independent problems.

One was in the remoting. During a large sustained data transfer
(such as artifact archiving and large test reports), the way we
were doing flow control and ACK-ing were penalizing us badly.
I improved the flow control algorithm in remoting 1.23, and also
increased advertised window size so that the transfer can saturate
available bandwidth even when a latency is large. (And unless
the reader side is excessivesly slow, this shouldn't increase
any memory consumption.)

The other fix was in trilead-ssh2, which is our SSH client
implementation used by ssh-slaves plugin. The buffer size for flow
control was too small. I improved the way buffering is done to reduce
the memory footprint when the reader closely follows the writer, then I
increased the advertised window size. Again, this shouldn't increase
memory consumption (in fact it'll likely actually reduce them) unless
the reader end gets abandoned.

On my simulated latency-injected network, the sustained transfer rate is
now on par with scp. We win for smaller files because of the TCP slow
start penality that scp would incur, and we lose a bit as files get
larger due to additional framing overhead.

If you have manually extracted slave.jar and placed them on slaves, you
need to update them to 2.23 to see the performance benefits.
[FIXED JENKINS-13154] AnnotationMapper bug was causing massive lock contention when saving fingerprints.
Merge branch 'master' of github.com:jenkinsci/jenkins
ohtake’s 20249e4 accidentally suppressed all but one test case.
Avoiding printing anything unless there is actually a failure.
Also take advantage of JUnit’s ability to show the exact spot of a mismatch between two strings.