Issue
You tried to upgrade or to install CloudBees Core version 2.204.1.3 on a Windows environment, however it is failing with a stacktrace similar to the one below.
2020-01-10 21:32:30.341+0000 [id=1] INFO org.eclipse.jetty.util.log.Log#initialized: Logging initialized @4748ms to org.eclipse.jetty.util.log.JavaUtilLog 2020-01-10 21:32:31.184+0000 [id=1] INFO winstone.Logger#logInternal: Beginning extraction from war file 2020-01-10 21:32:31.948+0000 [id=1] INFO winstone.Logger#logInternal: Jetty shutdown successfully java.io.FileNotFoundException: C:\Program Files (x86)\JenkinsOC\war\licenses\org.jvnet.com4j.typelibs.active-directory_bsd_2-clause_"simplified"_license.txt (The filename, directory name, or volume label syntax is incorrect) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(FileOutputStream.java:270) at java.io.FileOutputStream.<init>(FileOutputStream.java:213) at java.io.FileOutputStream.<init>(FileOutputStream.java:162) at winstone.HostConfiguration.getWebRoot(HostConfiguration.java:278) at winstone.HostConfiguration.<init>(HostConfiguration.java:81) at winstone.HostGroup.initHost(HostGroup.java:66) at winstone.HostGroup.<init>(HostGroup.java:45) at winstone.Launcher.<init>(Launcher.java:172) at winstone.Launcher.main(Launcher.java:362) 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 Main._main(Main.java:375) at Main.main(Main.java:151) 2020-01-10 21:32:31.979+0000 [id=1] SEVERE winstone.Logger#logInternal: Container startup failed java.io.FileNotFoundException: C:\Program Files (x86)\JenkinsOC\war\licenses\org.jvnet.com4j.typelibs.active-directory_bsd_2-clause_"simplified"_license.txt (The filename, directory name, or volume label syntax is incorrect) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(FileOutputStream.java:270) at java.io.FileOutputStream.<init>(FileOutputStream.java:213) at java.io.FileOutputStream.<init>(FileOutputStream.java:162) at winstone.HostConfiguration.getWebRoot(HostConfiguration.java:278) at winstone.HostConfiguration.<init>(HostConfiguration.java:81) at winstone.HostGroup.initHost(HostGroup.java:66) at winstone.HostGroup.<init>(HostGroup.java:45) at winstone.Launcher.<init>(Launcher.java:172) at winstone.Launcher.main(Launcher.java:362) 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 Main._main(Main.java:375) at Main.main(Main.java:151)
Resolution
Version 2.204.1.3 cannot start on Windows: this release contains some filenames with (
or ,
… which prevents from uncompressing the WAR file. As workaround just remove the licenses folder from the extracted folder created by the extraction of the WAR file. The extraction of the WAR file is automatically performed inside the $JENKINS_HOME
under a directory called war
. Removing the content of $JENKINS_HOME/war/license
should be enough to workaround the issue. Note that the extraction of the WAR file can happen in a different directory in case you are using the property --webroot
to change the default extraction directory.