* [JENKINS-43496] - Add handling of the null Node#createComputer() result.
it is a follow-up to https://github.com/jenkinsci/jenkins/pull/2836#discussion_r110604865
De-facto many Cloud plugins return `null` in `Node#createLauncher()`, but it has never been documented.
In order to prevent possible API misusages in the future, I have added annotations and fixed handling of the extension point in `AbstractCIBase#updateComputer()` which may fail in the case of `null` or `RuntimeException` in the Node implementation.
* [JENKINS-43496] - Use ProtectedExternally to protect Node#createComputer()
* [JENKINS-43496] - Remove the erroneous Nonnull annotation after the feedback from @jglick
* [JENKINS-43496] - Fix typos noticed by @daniel-beck
* Update Remoting in Jenkins core to 3.8
* JENKINS-39370 - Introduce support of Work Directories in remoting (opt-in).
* PR 129 - Allow configuring java.util.logging settings via a property file (-loggingConfig or JUL system property). See the Logging page for more details.
* JENKINS-37567 - Change of the code signing certificate
More info: https://github.com/jenkinsci/remoting/blob/master/CHANGELOG.md#38
* [JENKINS-39370] - Add direct tests for JNLP Launcher start with -workDir
* Pick Remoting 3.9
* Improve error message of LauncherTest#remoteKill()
* Update Remoting to 3.10
* [JENKINS-38527] - Prevent NullPointerException in Slave#createLauncher() and add cause diagnostics
The original issue comes from the isUnix() unboxing, but we can also get into an issue later if we pass a null Channel instance to the logic.
This change adds some diagnostics which discovers potential root causes of such potential NPEs due to the race conditions with Computer reconnection
* [JENKINS-38527] - Also handle cases when Channel#isClosingOrClosed() as @stephenc suggested
* Annotate and document methods of hudson.Launcher
* Fix newly introduced FindBugs issues in hudson.Launcher
* Remove brackets from FilePath#createLauncher() to avoid the merge conflict
* [FIXED JENKINS-44764, JENKINS-44894] - Update Extras Executable War from 1.34 to 1.35
* Pick version with a system property name fix, noticed by @daniel-beck
* [FIXED JENKINS-44898] Add findResource to PluginFirstClassLoader
This fixes GroovyClassLoader.loadClass for a .groovy file in a plugin
with a PluginFirstClassLoader, specifically by fixing fast-loading via
the UberClassLoader.
* Move common code to AntWithFindResourceClassLoader.
* Adding testing of new PluginFirstClassLoader behavior.
* Remove the description header. It is confusing because commit message body goes before it
* Explicitly require human-readable changelogs
* Explicitly require links to the external changelogs/diffs
Before:
Jun 15, 2017 8:29:06 AM hudson.ExpressionFactory2$JexlExpression evaluate
WARNING: Caught exception evaluating: h.filterDescriptors(it, no_descriptors_here).size() in /jenkins/jenkins40545/. Reason: java.lang.NullPointerException
java.lang.NullPointerException
at hudson.model.DescriptorVisibilityFilter.apply(DescriptorVisibilityFilter.java:72)
at hudson.Functions.filterDescriptors(Functions.java:1863)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.commons.jexl.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:258)
...
After:
Jun 15, 2017 12:10:43 PM hudson.ExpressionFactory2$JexlExpression evaluate
WARNING: Caught exception evaluating: h.filterDescriptors(it, no_descriptors_here).size() in /jenkins/jenkins40545/. Reason: java.lang.NullPointerException: Descriptor list is null for context 'class hudson.model.DescriptorVisibilityFilterTest$Jenkins40545' in thread 'Handling GET /jenkins/jenkins40545/ from 127.0.0.1 : Jetty Thread Pool DescriptorVisibilityFilterTest/Jenkins40545/index.jelly'
java.lang.NullPointerException: Descriptor list is null for context 'class hudson.model.DescriptorVisibilityFilterTest$Jenkins40545' in thread 'Handling GET /jenkins/jenkins40545/ from 127.0.0.1 : Jetty Thread Pool DescriptorVisibilityFilterTest/Jenkins40545/index.jelly'
at hudson.model.DescriptorVisibilityFilter.apply(DescriptorVisibilityFilter.java:73)
at hudson.Functions.filterDescriptors(Functions.java:1863)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.commons.jexl.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:258)
...