Upgrading or installing CloudBees CI (CloudBees Core) version 2.204.1.3 fails on Windows environment

Article ID:360038634992
2 minute readKnowledge base

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.