6.2 Server Startup Failures Fail to Stop Gracefully

Description

When a server fails to start up and either the Java version used to start or the Servlet version is incorrect, it hangs the server. The server will not stop gracefully and the process must be force killed at the OS level. Stack trace below from attempting to start an ACF 2025 war file without the correct runwar version:

√ | Starting Server |------------------------------ | Site name - adobe@2025 | Webroot - /Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/ | Site config file - /Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/server-adobe@2025.json | Exploding WAR archive... | Server start command: | /Users/jonclausen/.CommandBox/serverJREs/openjdk21_jre_x64_mac_hotspot_jdk-21.0.6+7/bin/java | -Xmx2048m | -cp /Users/jonclausen/.CommandBox/lib/runwar-5.1.0-SNAPSHOT.jar runwar.Start /Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/serverInfo.json | The server for /Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/ is starting on http://127.0.0.1:57025 ... |------------------------------ | √ | Installing package [java:openjdk21_jre:lockVersion] | | Installing [openjdk21_jre] | | Java version: openjdk21 | | Java type: jre | | Java arch: x64 | | Java os: mac | | Java jvm-implementation: hotspot | | Java release: latest | | Hitting the Adoptium API to find your download. | | https://api.adoptium.net/v3/assets/version/%5B21%2C22%29?page_size=1000&release_type=ga&vendor=eclipse&project=jdk&heap_size=normal&jvm_impl=hotspot&os=mac&architecture=x64&image_type=jre | | Exact version is [openjdk21_jre_x64_mac_hotspot_jdk-21.0.6+7] | | Lucky you, we found this version of Java in local artifacts! | | The package openjdk21_jre_x64_mac_hotspot_jdk-21.0.6+7 is already installed at /Users/jonclausen/.CommandBox/serverJREs/openjdk21_jre_x64_mac_hotspot_jdk-21.0.6+7. Skipping installation. Use --force option to force install. | √ | Setting site [adobe@2025] Profile to [development] | |----------------------------------------------------------------- | | Profile set from server bound to localhost | | Block CF Admin disabled | | Block Sensitive Paths enabled | | Block Flash Remoting enabled | | Directory Browsing enabled | | File Caching disabled | |----------------------------------------------------------------- WARNING: package com.sun.java.swing.plaf.windows not in java.desktop Using Console logger layout: PatternLayout Console logger layout option: pattern=[%-5p] %c: %m%n [DEBUG] org.jboss.logging: Logging Provider: org.jboss.logging.Log4j2LoggerProvider [INFO ] Runwar: Enabling URL rewrite log level: TRACE [INFO ] Runwar: Enabling URL rewrite log: /Users/jonclausen/.CommandBox/server/BA2B2A6F9D63747C6BF7E37819C30CD6-adobe@2025/logs/rewrites.txt [TRACE] Runwar: Piping system streams to logger [INFO ] Runwar: ****************************************************************************** [INFO ] Runwar: Starting Runwar [INFO ] Runwar: - Runwar Version: 5.1.0-SNAPSHOT [INFO ] Runwar: - Java Version: 21.0.6+7-LTS (Eclipse Adoptium) [INFO ] Runwar: - Java Home: /Users/jonclausen/.CommandBox/serverJREs/openjdk21_jre_x64_mac_hotspot_jdk-21.0.6+7 [INFO ] Runwar: ****************************************************************************** [INFO ] Runwar: Listeners: [INFO ] Runwar: - Binding HTTP on 127.0.0.1:57025 [DEBUG] Runwar: Setting HTTP/2 enabled: true [DEBUG] Runwar: ****************************************************************************** [DEBUG] Runwar: Undertow Server: [TRACE] Runwar: Lib: /Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/lib/jcm.jar [TRACE] Runwar: Lib: /Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/lib/cfx.jar [TRACE] Runwar: Lib: /Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/lib/jcmFIPS.jar [TRACE] Runwar: Lib: /Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/lib/cryptojce.jar [TRACE] Runwar: Lib: /Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/lib/cryptojcommon.jar [TRACE] Runwar: Lib: /Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/lib/cfmx_bootstrap.jar [TRACE] Runwar: Lib: /Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/lib/stax2-api-3.0.1.jar [TRACE] Runwar: Lib: /Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/lib/woodstox-core-asl-4.4.1.jar [DEBUG] Runwar: Initializing classloader with 9 jar(s) [WARN ] Runwar: Error setting dock icon image java.lang.IllegalAccessException: class runwar.Server cannot access class com.apple.eawt.Application (in module java.desktop) because module java.desktop does not export com.apple.eawt to unnamed module @1a482e36 at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Unknown Source) ~[?:?] at java.base/java.lang.reflect.AccessibleObject.checkAccess(Unknown Source) ~[?:?] at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[?:?] at runwar.Server.startServer(Server.java:264) [runwar-5.1.0-SNAPSHOT.jar:5.1.0-SNAPSHOT] at runwar.Start.main(Start.java:44) [runwar-5.1.0-SNAPSHOT.jar:5.1.0-SNAPSHOT] [DEBUG] Runwar: WAR root:/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine [DEBUG] Runwar: Servlet Context: / [DEBUG] Runwar: Log Directory: /Users/jonclausen/.CommandBox/server/BA2B2A6F9D63747C6BF7E37819C30CD6-adobe@2025/logs [DEBUG] Runwar: Added shutdown hook [INFO ] Runwar: ****************************************************************************** [INFO ] Runwar: Configuring Servlet [DEBUG] Runwar: File cache is disabled [DEBUG] Runwar: Setting coldfusion.home: '/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion' [DEBUG] Runwar: Setting coldfusion.classpath: '/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/lib/updates,/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/lib/,/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/lib/axis2,/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/gateway/lib/,/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/../cfform/jars,/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/../flex/jars,/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/lib/oosdk/lib,/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/lib/oosdk/classes' [DEBUG] Runwar: Setting flex.dir (cfform): '/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfform' [TRACE] Runwar: Setting java.security.policy = '/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/lib/coldfusion.policy' [TRACE] Runwar: Setting java.library.path = '/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/lib' [TRACE] Runwar: Setting java.security.auth.policy = '/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/lib/neo_jaas.policy' [TRACE] Runwar: Setting coldfusion.rootDir = '/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion' [TRACE] Runwar: Setting coldfusion.jsafe.defaultalgo = 'FIPS186Random' [TRACE] Runwar: Setting flex.dir = '/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfform' [TRACE] Runwar: Setting java.nixlibrary.path = '/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/lib' [TRACE] Runwar: Setting coldfusion.libPath = '/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/lib' [TRACE] Runwar: Setting coldfusion.classPath = '/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/lib/updates,/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/lib/,/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/lib/axis2,/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/gateway/lib/,/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/../cfform/jars,/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/../flex/jars,/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/lib/oosdk/lib,/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion/lib/oosdk/classes' [TRACE] Runwar: Setting coldfusion.home = '/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/cfusion' [INFO ] Runwar: Found WEB-INF: '/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF' [DEBUG] Runwar: Parsing '/Users/jonclausen/Sites/ortus/dev-ops/commandbox-engines/workbench/ACF2025/Engine/WEB-INF/web.xml' [TRACE] Runwar: Total No. of context-params: 6 [TRACE] Runwar: context param: 'cftags' = '/WEB-INF/cftags' [TRACE] Runwar: context param: 'coldfusion.compiler.outputDir' = '/WEB-INF/cfclasses' [TRACE] Runwar: context param: 'cfx.registry.nativelibrary' = 'cfregistry' [TRACE] Runwar: context param: 'cfx.report.nativelibrary' = 'cfreport' [TRACE] Runwar: context param: 'cf.class.path' = '/WEB-INF/cfusion/lib/updates,/WEB-INF/cfusion/lib,/WEB-INF/cfusion/gateway/lib,/WEB-INF/flex/jars,/WEB-INF/cfform/jars,/WEB-INF/cfusion/lib/axis2' [TRACE] Runwar: context param: 'cf.lib.path' = '/WEB-INF/cfusion/lib' [TRACE] Runwar: Total No. of listeners: 0 [TRACE] Runwar: Total No. of servlets: 11 [TRACE] Runwar: servlet-name: CFForbiddenServlet, servlet-class: coldfusion.bootstrap.BootstrapServlet [ERROR] Exception in thread "main" [ERROR] java.lang.NoClassDefFoundError: jakarta/servlet/Servlet [ERROR] at java.base/java.lang.ClassLoader.defineClass1(Native Method) [ERROR] at java.base/java.lang.ClassLoader.defineClass(Unknown Source) [ERROR] at java.base/java.security.SecureClassLoader.defineClass(Unknown Source) [ERROR] at java.base/java.net.URLClassLoader.defineClass(Unknown Source) [ERROR] at java.base/java.net.URLClassLoader$1.run(Unknown Source) [ERROR] at java.base/java.net.URLClassLoader$1.run(Unknown Source) [ERROR] at java.base/java.security.AccessController.doPrivileged(Unknown Source) [ERROR] at java.base/java.net.URLClassLoader.findClass(Unknown Source) [ERROR] at java.base/java.lang.ClassLoader.loadClass(Unknown Source) [ERROR] at java.base/java.lang.ClassLoader.loadClass(Unknown Source) [ERROR] at runwar.undertow.WebXMLParser.lambda$parseWebXml$3(WebXMLParser.java:106) [ERROR] at org.joox.Impl.each(Impl.java:407) [ERROR] at org.joox.Impl.each(Impl.java:79) [ERROR] at runwar.undertow.WebXMLParser.parseWebXml(WebXMLParser.java:99) [ERROR] at runwar.RunwarConfigurer.configureServerWar(RunwarConfigurer.java:128) [ERROR] at runwar.RunwarConfigurer.configureServerResourceHandler(RunwarConfigurer.java:87) [ERROR] at runwar.Server.startServer(Server.java:333) [ERROR] at runwar.Start.main(Start.java:44) [ERROR] Caused by: java.lang.ClassNotFoundException: jakarta.servlet.Servlet [ERROR] at java.base/java.net.URLClassLoader.findClass(Unknown Source) [ERROR] at java.base/java.lang.ClassLoader.loadClass(Unknown Source) [ERROR] at java.base/java.lang.ClassLoader.loadClass(Unknown Source) [ERROR] ... 18 more 2025-03-06 11:13:06.012 java[93217:44655606] +[IMKClient subclass]: chose IMKClient_Modern 2025-03-06 11:13:06.012 java[93217:44655606] +[IMKInputSession subclass]: chose IMKInputSession_Modern [TRACE] Runwar: Running shutdown hook [INFO ] Runwar: Stopping server 'adobe@2025' [ERROR] java.lang.NullPointerException: Cannot invoke "runwar.undertow.SiteDeploymentManager.getDeployments()" because "runwar.Server.siteDeploymentManager" is null [ERROR] at runwar.Server.stopServer(Server.java:550) [ERROR] at runwar.Server$2.run(Server.java:511) [ERROR] Runwar: *** unknown server error java.lang.NullPointerException: Cannot invoke "runwar.undertow.SiteDeploymentManager.getDeployments()" because "runwar.Server.siteDeploymentManager" is null at runwar.Server.stopServer(Server.java:550) [runwar-5.1.0-SNAPSHOT.jar:5.1.0-SNAPSHOT] at runwar.Server$2.run(Server.java:511) [runwar-5.1.0-SNAPSHOT.jar:5.1.0-SNAPSHOT] [TRACE] Runwar: Unhooking system streams logger Stopping server...

Activity

Show:
Pinned fields
Click on the next to a field label to start pinning.

Details

Assignee

Reporter

Priority

Sentry

Created March 6, 2025 at 4:16 PM
Updated March 6, 2025 at 4:16 PM

Flag notifications