Apache Commons logo Apache Commons Daemon

Apache Commons Daemon Release Notes

Release History

Version Date Description
1.4.0 2024-05-24 Bug fix release
1.3.4 2023-05-12 Bug fix release
1.3.3 2022-11-29 Bug fix release
1.3.2 2022-10-10 Bug fix release
1.3.1 2022-05-09 Bug fix release
1.3.0 2022-03-18 Feature and bug fix release
1.2.4 2021-01-21 Bug fix release
1.2.3 2020-09-01 Bug fix release
1.2.2 2019-10-04 Bug fix release
1.2.1 2019-09-09 Bug fix release
1.2.0 2019-07-02 Feature and bug fix release
1.1.0 2017-11-15 Feature and bug fix release

Release 1.4.0 – 2024-05-24

Type Changes By
Fix [StepSecurity] ci: Harden GitHub Actions #95. Thanks to step-security-bot, Gary Gregory. ggregory
Fix Procrun. Enable Control Flow Guard for Windows binaries. Fixes DAEMON-429. markt
Fix Procrun. Better label for command used to start service shown in Prunmgr.exe. Fixes DAEMON-461. markt
Fix jsvc. Fix warnings when running support/buildconf.sh markt
Fix jsvc. Fix compilation issue with newer compilers. Fixes DAEMON-463. Thanks to michaelo. markt
Fix Procrun. Refactor UAC support so that elevation is only requested for actions that require administrator privileges. markt
Add Procrun. Add support for hybrid CRT builds. markt
Add jsvc. Add support for LoongArch64 support #92. Thanks to huajingyun. markt
Update Bump commons-parent from 57 to 69 #155. Thanks to Dependabot. ggregory
Update The minimum support Java version has been upgraded from Java 7 to Java 8. markt
Update Procrun. The minimum Windows versions supported are now Windows 10 and Windows Server 2016. markt
Update Bump commons-parent from 69 to 70. markt

Release 1.3.4 – 2023-05-12

Type Changes By
Fix Procrun. Configured stack size now applies to the main thread when running in JVM mode. Fixes DAEMON-451. Thanks to kkolinko. markt
Fix Procrun. If the specified log directory does not exist, attempt to create any missing parent directories, as well as the specified directory, when the service starts. Fixes DAEMON-452. markt
Fix Procrun. Allow Windows service dependencies to be managed by Procrun or by 'sc config ...'. Fixes DAEMON-458. markt
Fix jsvc. Fix DaemonController.reload() only working the first time it is called. Fixes DAEMON-459. Thanks to Klaus Malorny. markt
Fix jsvc. Remove incorrent definition 'supported_os' which defined in psupport.m4 file to fix jsvc build error on riscv64. Thanks to Eastdong. markt
Update Bump commons-parent from 54 to 57 #71, #91. Thanks to Dependabot. ggregory

Release 1.3.3 – 2022-11-29

Type Changes By
Fix Procrun. Fix creation of duplicate ACL entries on some Windows platforms. Fixes DAEMON-450. Thanks to Norimasa Yamamoto. markt
Fix Procrun. Follow-up to ensure all child processes are cleaned up if the service does not stop cleanly. #64 Thanks to jfclere. markt
Update Bump actions/cache from 3.0.8 to 3.0.11 #60. Thanks to Dependabot. ggregory
Update Bump actions/checkout from 3.0.2 to 3.1.0 #59. Thanks to Dependabot. ggregory
Update Bump actions/setup-java from 3.5.1 to 3.6.0 #63. Thanks to Dependabot. ggregory
Update Bump spotbugs-maven-plugin from 4.7.2.0 to 4.7.3.0 #61, #66. Thanks to Dependabot. ggregory
Update Bump commons-parent from 55 to 56 #76 Thanks to Dependabot. ggregory

Release 1.3.2 – 2022-10-10

Type Changes By
Fix Procrun. Remove noisy INFO log message that triggered logging once per minute while the service was running. markt
Fix Fix typos in Javadoc and comments #50, #51. Thanks to Marc Wrobel. ggregory
Fix Procrun. The DependsOn parameter is no longer ignored when updating the service configuration. Fixes DAEMOM-446. markt
Fix Procrun. Fix crash and provide an error level log message when the user attempts to start the service without configuring a JVM and none is available via the registry. Fixes DAEMOM-448. markt
Update Bump actions/cache from 3.0.3 to 3.0.8. Thanks to Gary Gregory. ggregory
Update Bump actions/checkout from 3 to 3.0.2. Thanks to Gary Gregory. ggregory
Update Bump commons-parent from 53 to 54 #55. Thanks to Dependabot. ggregory
Update Bump spotbugs-maven-plugin from 4.6.0.0 to 4.7.2.0 #48, #52, #53. Thanks to Gary Gregory. ggregory
Update Bump jacoco-maven-plugin from 0.8.7 to 0.8.8. Thanks to Gary Gregory. ggregory
Update Bump japicmp-maven-plugin from 0.15.4 to 0.16.0. Thanks to Gary Gregory. ggregory
Update Bump JUnit 4 to 5 vintage. Thanks to Gary Gregory. ggregory

Release 1.3.1 – 2022-05-09

Type Changes By
Fix Procrun. Take account of LogLevel setting when logging to standard error so the user can opt to see messages at Info level and below. Fixes DAEMON-441. markt
Fix Procrun. Clear expected errors when checking for environment variables to prevent the expected errors from polluting subsequent log messages. Fixes DAEMON-441. markt
Fix Procrun. Only configure the logging to be written to a file when running as a service. Fixes DAEMON-441. markt
Fix Procrun. Clear logged error on service installation failure to prevent the error polluting subsequent log messages. Fixes DAEMON-441. markt
Fix Procrun. When configuring permissions for the logging path, use the default path if no explicit logging path is specified. Fixes DAEMON-441. markt
Fix Procrun. When logging issues configuring permissions for the logging path, explicitly state when default values are being used rather than logging blank values. Fixes DAEMON-441. markt
Fix Procrun. Increase the size limit on the message component of log entries to 4096 characters. Fixes DAEMON-442. markt
Fix Procrun. Ensure child processes are cleaned up if the service does not stop cleanly. #39 Thanks to jfclere. markt
Fix Refactor multiple if statements to use switch. #45 Thanks to Arturo Bernal. markt
Update Bump actions/cache from 2.1.7 to 3.0.3 #41. Thanks to Dependabot, Gary Gregory. ggregory
Update Bump actions/setup-java from 2 to 3.5.1 #43. Thanks to Dependabot. ggregory
Update Bump spotbugs-maven-plugin from 4.5.3.0 to 4.6.0.0 #42. Thanks to Dependabot. ggregory
Update Bump commons-parent from 52 to 53 #44. Thanks to Dependabot. ggregory

Release 1.3.0 – 2022-03-18

Type Changes By
Fix Procrun. --StopTimeout can be used to define the time that procrun waits for service to exit, but INFINITE timeout was using instead. Fixes DAEMON-430. jfclere
Fix Minor improvements to Java code #22, #31. Thanks to Arturo Bernal. ggregory
Fix Procrun. Minor improvement that allows to have WINVER nmake variable directly defined at compile time as ABI version in hexadecimal format. mturk
Fix Procrun. Log at Trace instead of Debug when a service reports its state from the prunsrv app. This avoids the Debug log filling up as it adds two events per minute. You can then stay in Debug logging to capture register, start, stop, and unregister Debug events. Thanks to Gary Gregory. ggregory
Fix Procrun. Miscellaneous logging improvements. Thanks to Gary Gregory. ggregory
Fix Procrun. Log the prunsrv function names at the Trace level. Thanks to Gary Gregory. ggregory
Fix Procrun. Only redirect stderr and stdout to files for the running service. Output from commands executed on the command line will not be redirected. Fixes DAEMON-437. markt
Fix Procrun. Ensure that the user configured to run the service is also granted access to the log file directory. Fixes DAEMON-437. markt
Fix Procrun. Ensure Trace is included in the logging levels exposed in the GUI. markt
Fix Procrun. Support --Startup=delayed for service installation as well as service update. Fixes DAEMON-439. markt
Add Enable Dependabot #20. Thanks to John Patrick. ggregory
Add Procrun. reportServiceStatusE() shows scale of dwWaitHint as millisecond in logging. Thanks to Gary Gregory. ggregory
Add Procrun. reportServiceStatusE() shows a short description for dwCurrentState in logging. Thanks to Gary Gregory. ggregory
Add Procrun. Add support for a new log level called Trace, lower-level than Debug. Thanks to Gary Gregory. ggregory
Add Procrun. Add logging when failing to obtain a service's description from the registry. Thanks to Gary Gregory. ggregory
Add Procrun. Add logging when failing to set the options of a service. Thanks to Gary Gregory. ggregory
Update Bump actions/cache from v2 to v2.1.7 #24, #30, #36. Thanks to Dependabot. ggregory
Update Bump build actions/setup-java from v1.4.3 to v2. Thanks to Gary Gregory. ggregory
Update Bump commons.jacoco.version from 0.8.5 to 0.8.7. Thanks to Gary Gregory. ggregory
Update Bump commons.japicmp.version from 0.14.3 to 0.15.4. Thanks to Gary Gregory. ggregory
Update Bump junit from 4.13.1 to 4.13.2 #25. Thanks to Dependabot. ggregory
Update Bump commons.daemon.javaversion 1.6 -> 1.7. Thanks to Gary Gregory. ggregory
Update Bump spotbugs-maven-plugin from 4.4.2.2 to 4.5.2.0 #37. Thanks to Dependabot. ggregory
Update Update the release build instructions to use CMSC 15.0.44. markt
Update Bump actions/checkout from 2 to 3 #40. Thanks to Dependabot. ggregory

Release 1.2.4 – 2021-01-21

Type Changes By
Fix Procrun. Ensure that log messages written to stdout and stderr are not lost during start-up. Fixes DAEMON-424. Thanks to Bernhard Scholz. markt
Fix Procrun. Correct a regression introduced in 1.2.3. Enable the service to start if the Options value is not present in the registry. Fixes DAEMON-425. markt
Fix jsvc. Don't fail if the CAP_DAC_READ_SEARCH capability is not available. Fall back to using argv[0] rather than /proc/self/exe to determine the path for the current binary. Fixes DAEMON-426. markt
Fix Procrun. Remove some unnecessary code. Fixes DAEMON-428. markt

Release 1.2.3 – 2020-09-01

Type Changes By
Fix Procrun. Correct multiple issues related to enabling a service to interact with the desktop. Provide a better error message if this option is used with an invalid user, install the service with the option enabled if requested and correctly save the setting if it is enabled in the GUI. Fixes DAEMON-411. markt
Fix jsvc. Update the list of paths searched for libjvm.so to include the path used by OpenJDK 11. Fixes DAEMON-410. Thanks to Richard Morrell. markt
Add Procrun. Add additional debug logging for Java start mode. markt
Fix jsvc. Remove incorrect definition 'supported_os' which defined in psupport.m4 file to fix jsvc build error on s390, arm, aarch64, mipsel and mips. Thanks to Ray Wang. markt
Add Procrun. More debug logging in prunsrv.c and javajni.c. ggregory
Add jsvc. Update arguments.c to support Java 11 --enable-preview #18. Fixes DAEMON-419. Thanks to mads1980. ggregory
Add jsvc and Procrun. Add support for Java native memory tracking. Fixes DAEMON-412. markt
Add Procrun. Add a new command, print, that outputs the command to (re-)configure the service with the current settings. This is intended to be used to save settings such as before an upgrade. Fixes DAEMON-422. markt

Release 1.2.2 – 2019-10-04

Type Changes By
Fix Procrun. Correct a regression in the fix for DAEMON-401 that prevented the service from starting unless support for the universal C runtime had been installed. Fixes DAEMON-408. markt
Update Update Commons-Parent to version 49. markt
Fix Procrun. Fix compiler warnings for unreferenced formal parameters. markt
Fix Procrun. Switch code to use more secure versions of Windows API calls to resolve warnings reported by newer versions of Visual Studio. markt
Fix Correct the source assembly definitions to add README.md, CONTRIBUTING.md and HOWTO-RELEASE.txt, remove references to the deleted Ant build files and exclude the working directories of Windows binary builds. markt
Add More startup on Windows logging in javajni.c. #14. ggregory

Release 1.2.1 – 2019-09-09

Type Changes By
Fix jsvc. Correct debug log message that reports change in umask. Fixes DAEMON-403. Thanks to Charles. markt
Fix Procrun. Correct a regression in the previous fix for this issue that caused 32-bit services to crash on start-up. Fixes DAEMON-401. Thanks to Norimasa Yamamoto. markt
Fix Procrun. Correct a regression in the fix for DAEMON-391 that caused the GUI to mix up the WARN and INFO logging levels. Fixes DAEMON-407. markt
Fix Procrun. Expand the search for a valid Java runtime library to include the current JDK home defined in the Windows registry. Fully document the search algorithm used to find the Java runtime library. Fixes DAEMON-404. markt

Release 1.2.0 – 2019-07-02

Type Changes By
Fix Procrun. Add to OPT_LFLAGS rather than overwrite OPT_LFLAGS when setting /OPT:REF in the make file for Windows. Thanks to mturk. markt
Fix Procrun. Only set the global shutdown event if the event is created. Thanks to mturk. markt
Fix Unable to build with Java 9 using ant; dropped Ant build files. Fixes DAEMON-379. sebb
Fix Procrun. prunsrv stopping with error due to hard-coded timeout. Fixes DAEMON-384. Thanks to blassmegod. ggregory
Fix Update config.guess and config.sub. Fixes DAEMON-385. markt
Fix Jsvc. Set the sun.java.command system property when starting via jsvc so that tools like jconsole show something meaningful for the process name. Fixes DAEMON-388. markt
Fix Procrun. Correct the level name used in the GUI for WARN so that changes made via the GUI are recognised. Order the log levels in the drop-down from ERROR to DEBUG. Fixes DAEMON-391. Thanks to Thorsten Schöning. markt
Fix Procrun. Correct reversed code comments for JRE and JDK locations in the registry. Fixes DAEMON-393. Thanks to Daniel Hofmann. ggregory
Fix Procrun. Undefined behavior in registry.c dwRegKey = dwRegKey++. Fixes DAEMON-392. Thanks to Daniel Hofmann. ggregory
Fix Procrun. Fix a bug that meant a value provided for LibraryPath replaced the value of the PATH environment variable rather than prepended to it. Fixes DAEMON-396. Thanks to Gerwin. markt
Fix Procrun. Ensure that JAVA_HOME/bin is on the path when running in jvm mode so that additional DLLs, such as awt.dll, can be found if required. Fixes DAEMON-396. Thanks to Gerwin. markt
Fix Procrun. Ensure that the java.library.path environment variable is correctly configured when running on a JRE that depends on the Universal CRT. Fixes DAEMON-396. markt
Add Procrun. Log the error code returned if JVM creation fails to aid debugging. markt
Add Harden the Windows binaries against DLL hijacking in the directory where the binaries are located. markt
Fix Procrun. Ensure that environment variables set via prunsrv are visible to native libraries that depend on the Universal CRT. Fixes DAEMON-401. Thanks to Jonathan Gallimore. markt
Add Procrun. Add 'NT Authority\LocalService' and 'NT Authority\NetworkService' as options to the Log On user interface. markt
Update Procrun. Change the default service user from LocalSystem to 'NT Authority\LocalService'. markt
Fix Procrun. Avoid a crash on shutdown if multiple WM_CLOSE messages are received. Fixes DAEMON-402. Thanks to Iode Leroy. markt
Fix Procrun. Ignore blank lines inserted into the Java Options and/or Java 9 Options text areas. This prevents settings after the first blank line from being lost when saved to the registry. Fixes DAEMON-394. markt
Fix Procrun. Remove the code that removed quotes from configured Java and Java 9 Options. Fixes DAEMON-399. markt
Fix Procrun. Ensure that vfprintf is the first parameter passed when using JNI to create the JVM as a workaround for startup error messages not being visible on stdout or stderr. Fixes DAEMON-398. markt
Add Procrun. Add an option to configure the service to use the 'Automatic (Delayed Start)' startup mode. Fixes DAEMON-303. markt
Add Procrun. When running in jre mode, if the standard Java registry entries for JavaHome and RuntimeLib are not present, attempt to use the Procrun JavaHome key to find the runtime library. Fixes DAEMON-329. markt
Add jsvc. Include the full path to the jsvc executable in the debug log. Fixes DAEMON-297. markt
Add jsvc. Improve search for libjli.dylib on macOS when using custom-built OpenJDK binaries. Fixes DAEMON-397. Thanks to Petr Hadraba. markt
Fix Procrun. Improve log messages for interactions with the Windows service. Thanks to ggregory. markt
Fix jsvc. Improve mips detection. Thanks to YunQiang Su. markt

Release 1.1.0 – 2017-11-15

Type Changes By
Add Add DEBUG and ERROR logging to help diagnose problems when starting a Windows Service. Fixes DAEMON-368. ggregory
Update Update the minimum Java requirement from version 5 to 6. Fixes DAEMON-371. ggregory
Update Increase minimum Java version to Java 5. markt
Update Add AArch64 support to src/native/unix/support/apsupport.m4. Fixes DAEMON-347. Thanks to Ganesh Raju. ggregory
Fix Compile the Windows binaries with the /DYNAMICBASE and /NXCOMPAT switches. Fixes DAEMON-346. markt
Fix Remove calls to explicit garbage collection during daemon start and stop. Fixes DAEMON-333. markt
Fix Update config.guess and config.sub to add support, amongst others, for the 64-bit PowerPC Little-Endian architecture. Fixes DAEMON-343. markt
Fix Ensure that the PID file on Windows, if used, is readable by other processes. Fixes DAEMON-332. markt
Update Update Commons-Parent to version 41. markt
Fix Update apsupport.m4 add support for 64-bit PowerPC architectures. Fixes DAEMON-358. Thanks to Gustavo Romero. markt
Fix Suppress spurious "The data area passed to a system call is too small" error message in the log when Procrun fails to stop the service. Fixes DAEMON-282. markt
Update Move attributions from @author in Javadocs to POM. Fixes DAEMON-370. Thanks to Amey Jadiye. ggregory
Fix Enable jsvc to start when running on Java 9. Fixes DAEMON-373. markt
Fix Fix a resource leak opening the JVM configuration file. Fixes DAEMON-324. markt
Fix Improve the jsvc code that restarts the process if the JVM crashes so that if the JVM crashes after a signal has been received to shut down jsvc does not attempt to restart the JVM. Fixes DAEMON-339. Thanks to John Wehle. markt
Fix Ensure that the child process is started with the correct umask. Fixes DAEMON-318. Thanks to Markus Schneider. markt
Fix Correct conflicting information for the behavior of Procrun when using jvm mode. Fixes DAEMON-309. markt
Fix Ensure that, when using Procrun in java or exe mode, the service process waits for the stop process to complete before starting clean-up to avoid a crash in the stop process. Fixes DAEMON-372. Thanks to Sérgio Ozaki. markt
Fix Enable jsvc to find the jvm when running on AIX. Fixes DAEMON-310. Thanks to John Wehle. markt
Fix Ensure that Procrun treats JVM crashes as service failures so the recovery options will apply. Fixes DAEMON-302. markt
Fix Ensure that the //MQ command closes the prunmgr process even if the configuration dialog is open when the //MQ command is used. Fixes DAEMON-312. markt
Fix When looking in the Windows registry for JRE and JDK installation locations, additionally check the registry keys used by IBM provided JREs and JDKs. Do this after checking the keys used by Oracle provided JREs and JDKs. Fixes DAEMON-311. markt
Fix When looking in the Windows registry for JRE and JDK installation locations, additionally check the registry keys used by Oracle provided Java 9 and later JREs and JDKs. Do this after checking the keys used by Oracle provided Java 8 and earlier JREs and JDKs. Fixes DAEMON-376. markt
Fix Add support for Java 9 command line arguments to jsvc. Fixes DAEMON-374. Thanks to Rashmi Ranjan Mohanty. markt
Add Add a restarts options to jsvc to control the number of permitted restarts after a system crash. Fixes DAEMON-334. Thanks to Brett Delle Grazie. markt
Remove Remove support for building Procrun for the Itanium platform. markt
Update Make Windows XP the minimum support target platform. markt
Add Add support to Procrun for separate JVM options for use when running on Java 9 and above. markt
Fix Fix race conditions in PID file handling in jsvc. Fixes DAEMON-377. Thanks to Rustam Abdullaev. markt