HI folks Just a heads-up that I'm aware of and am working on this: https://issues.apache.org/jira/browse/DAEMON-401
This affects Windows users using a 32bit JVM and service on newer OSes. This particular change syncs up the environment between MSVCRT and UCRTBASE. Put simply, a call to set an environment variable with SetEnvironmentVariableW won't necessarily be reflected in a call to _wgetenv in a DLL (for example a JNI DLL loaded by the JVM) that is linked to ucrtbase (built with recent versions of MSVC). To try and line the environments up so everything is visible across all DLLs, commons-daemon tries to dynamically load ucrtbase.dll and call _wputenv() in it. For some reason, on X86, this is corrupting some memory and causing the service to crash. I'm trying to figure out what's going on. Workarounds are to use a 64 bit JVM, or an old TomEE.x86.exe. Setting environment variables in the system itself as opposed to adding the variables to the service should enable them to be visible to everything without this _wputenv call in ucrtbase.dll. I'll keep you posted. Jon
