Apache Commons Daemon Release Notes
Release History
Version |
Date |
Description |
1.4.1 |
2025-01-13 |
Bug fix release |
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.1 – 2025-01-13
Type |
Changes |
By |
 |
Fix several issues around Java OS and header files location detection. |
michaelo |
 |
Correct several log messages where an incorrect placeholder led to
truncation of the inserted values. |
markt |
 |
Add protection to avoid high CPU usage for applications running in JVM
mode that do not wait for the stop method to be called before the start
method returns. Fixes DAEMON-460. |
markt |
 |
Bump org.apache.commons:commons-parent from 71 to 78 #189, #196, #198, #204, #207, #210, #216. Thanks to Dependabot. |
ggregory |
 |
Remove autogenerated files and rely on autoreconf only. |
michaelo |
Release 1.4.0 – 2024-05-24
Type |
Changes |
By |
 |
[StepSecurity] ci: Harden GitHub Actions #95. Thanks to step-security-bot, Gary Gregory. |
ggregory |
 |
Procrun. Enable Control Flow Guard for Windows binaries. Fixes DAEMON-429. |
markt |
 |
Procrun. Better label for command used to start service shown in
Prunmgr.exe. Fixes DAEMON-461. |
markt |
 |
jsvc. Fix warnings when running support/buildconf.sh |
markt |
 |
jsvc. Fix compilation issue with newer compilers. Fixes DAEMON-463. Thanks to michaelo. |
markt |
 |
Procrun. Refactor UAC support so that elevation is only requested for
actions that require administrator privileges. |
markt |
 |
Procrun. Add support for hybrid CRT builds. |
markt |
 |
jsvc. Add support for LoongArch64 support #92. Thanks to huajingyun. |
markt |
 |
Bump commons-parent from 57 to 69 #155. Thanks to Dependabot. |
ggregory |
 |
The minimum support Java version has been upgraded from Java 7 to Java
8. |
markt |
 |
Procrun. The minimum Windows versions supported are now Windows 10 and
Windows Server 2016. |
markt |
 |
Bump commons-parent from 69 to 70. |
markt |
Release 1.3.4 – 2023-05-12
Type |
Changes |
By |
 |
Procrun. Configured stack size now applies to the main thread when
running in JVM mode. Fixes DAEMON-451. Thanks to kkolinko. |
markt |
 |
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 |
 |
Procrun. Allow Windows service dependencies to be managed by Procrun or
by 'sc config ...'. Fixes DAEMON-458. |
markt |
 |
jsvc. Fix DaemonController.reload() only working the first time it is
called. Fixes DAEMON-459. Thanks to Klaus Malorny. |
markt |
 |
jsvc. Remove incorrent definition 'supported_os' which defined in
psupport.m4 file to fix jsvc build error on riscv64. Thanks to Eastdong. |
markt |
 |
Bump commons-parent from 54 to 57 #71, #91. Thanks to Dependabot. |
ggregory |
Release 1.3.3 – 2022-11-29
Type |
Changes |
By |
 |
Procrun. Fix creation of duplicate ACL entries on some Windows platforms. Fixes DAEMON-450. Thanks to Norimasa Yamamoto. |
markt |
 |
Procrun. Follow-up to ensure all child processes are cleaned up if the
service does not stop cleanly. #64 Thanks to jfclere. |
markt |
 |
Bump actions/cache from 3.0.8 to 3.0.11 #60. Thanks to Dependabot. |
ggregory |
 |
Bump actions/checkout from 3.0.2 to 3.1.0 #59. Thanks to Dependabot. |
ggregory |
 |
Bump actions/setup-java from 3.5.1 to 3.6.0 #63. Thanks to Dependabot. |
ggregory |
 |
Bump spotbugs-maven-plugin from 4.7.2.0 to 4.7.3.0 #61, #66. Thanks to Dependabot. |
ggregory |
 |
Bump commons-parent from 55 to 56 #76 Thanks to Dependabot. |
ggregory |
Release 1.3.2 – 2022-10-10
Type |
Changes |
By |
 |
Procrun. Remove noisy INFO log message that triggered logging once per
minute while the service was running. |
markt |
 |
Fix typos in Javadoc and comments #50, #51. Thanks to Marc Wrobel. |
ggregory |
 |
Procrun. The DependsOn parameter is no longer ignored when updating the
service configuration. Fixes DAEMOM-446. |
markt |
 |
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 |
 |
Bump actions/cache from 3.0.3 to 3.0.8. Thanks to Gary Gregory. |
ggregory |
 |
Bump actions/checkout from 3 to 3.0.2. Thanks to Gary Gregory. |
ggregory |
 |
Bump commons-parent from 53 to 54 #55. Thanks to Dependabot. |
ggregory |
 |
Bump spotbugs-maven-plugin from 4.6.0.0 to 4.7.2.0 #48, #52, #53. Thanks to Gary Gregory. |
ggregory |
 |
Bump jacoco-maven-plugin from 0.8.7 to 0.8.8. Thanks to Gary Gregory. |
ggregory |
 |
Bump japicmp-maven-plugin from 0.15.4 to 0.16.0. Thanks to Gary Gregory. |
ggregory |
 |
Bump JUnit 4 to 5 vintage. Thanks to Gary Gregory. |
ggregory |
Release 1.3.1 – 2022-05-09
Type |
Changes |
By |
 |
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 |
 |
Procrun. Clear expected errors when checking for environment variables
to prevent the expected errors from polluting subsequent log messages. Fixes DAEMON-441. |
markt |
 |
Procrun. Only configure the logging to be written to a file when
running as a service. Fixes DAEMON-441. |
markt |
 |
Procrun. Clear logged error on service installation failure to prevent
the error polluting subsequent log messages. Fixes DAEMON-441. |
markt |
 |
Procrun. When configuring permissions for the logging path, use the
default path if no explicit logging path is specified. Fixes DAEMON-441. |
markt |
 |
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 |
 |
Procrun. Increase the size limit on the message component of log entries
to 4096 characters. Fixes DAEMON-442. |
markt |
 |
Procrun. Ensure child processes are cleaned up if the service does not
stop cleanly. #39 Thanks to jfclere. |
markt |
 |
Refactor multiple if statements to use switch. #45 Thanks to Arturo Bernal. |
markt |
 |
Bump actions/cache from 2.1.7 to 3.0.3 #41. Thanks to Dependabot, Gary Gregory. |
ggregory |
 |
Bump actions/setup-java from 2 to 3.5.1 #43. Thanks to Dependabot. |
ggregory |
 |
Bump spotbugs-maven-plugin from 4.5.3.0 to 4.6.0.0 #42. Thanks to Dependabot. |
ggregory |
 |
Bump commons-parent from 52 to 53 #44. Thanks to Dependabot. |
ggregory |
Release 1.3.0 – 2022-03-18
Type |
Changes |
By |
 |
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 |
 |
Minor improvements to Java code #22, #31. Thanks to Arturo Bernal. |
ggregory |
 |
Procrun. Minor improvement that allows to have WINVER nmake variable
directly defined at compile time as ABI version in hexadecimal format. |
mturk |
 |
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 |
 |
Procrun. Miscellaneous logging improvements. Thanks to Gary Gregory. |
ggregory |
 |
Procrun. Log the prunsrv function names at the Trace level. Thanks to Gary Gregory. |
ggregory |
 |
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 |
 |
Procrun. Ensure that the user configured to run the service is also
granted access to the log file directory. Fixes DAEMON-437. |
markt |
 |
Procrun. Ensure Trace is included in the logging levels exposed in the
GUI. |
markt |
 |
Procrun. Support --Startup=delayed for service installation as well as
service update. Fixes DAEMON-439. |
markt |
 |
Enable Dependabot #20. Thanks to John Patrick. |
ggregory |
 |
Procrun. reportServiceStatusE() shows scale of dwWaitHint as millisecond in logging. Thanks to Gary Gregory. |
ggregory |
 |
Procrun. reportServiceStatusE() shows a short description for dwCurrentState in logging. Thanks to Gary Gregory. |
ggregory |
 |
Procrun. Add support for a new log level called Trace, lower-level than Debug. Thanks to Gary Gregory. |
ggregory |
 |
Procrun. Add logging when failing to obtain a service's description from the registry. Thanks to Gary Gregory. |
ggregory |
 |
Procrun. Add logging when failing to set the options of a service. Thanks to Gary Gregory. |
ggregory |
 |
Bump actions/cache from v2 to v2.1.7 #24, #30, #36. Thanks to Dependabot. |
ggregory |
 |
Bump build actions/setup-java from v1.4.3 to v2. Thanks to Gary Gregory. |
ggregory |
 |
Bump commons.jacoco.version from 0.8.5 to 0.8.7. Thanks to Gary Gregory. |
ggregory |
 |
Bump commons.japicmp.version from 0.14.3 to 0.15.4. Thanks to Gary Gregory. |
ggregory |
 |
Bump junit from 4.13.1 to 4.13.2 #25. Thanks to Dependabot. |
ggregory |
 |
Bump commons.daemon.javaversion 1.6 -> 1.7. Thanks to Gary Gregory. |
ggregory |
 |
Bump spotbugs-maven-plugin from 4.4.2.2 to 4.5.2.0 #37. Thanks to Dependabot. |
ggregory |
 |
Update the release build instructions to use CMSC 15.0.44. |
markt |
 |
Bump actions/checkout from 2 to 3 #40. Thanks to Dependabot. |
ggregory |
Release 1.2.4 – 2021-01-21
Type |
Changes |
By |
 |
Procrun. Ensure that log messages written to stdout and stderr are not
lost during start-up. Fixes DAEMON-424. Thanks to Bernhard Scholz. |
markt |
 |
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 |
 |
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 |
 |
Procrun. Remove some unnecessary code. Fixes DAEMON-428. |
markt |
Release 1.2.3 – 2020-09-01
Type |
Changes |
By |
 |
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 |
 |
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 |
 |
Procrun. Add additional debug logging for Java start mode. |
markt |
 |
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 |
 |
Procrun. More debug logging in prunsrv.c and javajni.c. |
ggregory |
 |
jsvc. Update arguments.c to support Java 11 --enable-preview #18. Fixes DAEMON-419. Thanks to mads1980. |
ggregory |
 |
jsvc and Procrun. Add support for Java native memory tracking. Fixes DAEMON-412. |
markt |
 |
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 |
 |
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 Commons-Parent to version 49. |
markt |
 |
Procrun. Fix compiler warnings for unreferenced formal parameters. |
markt |
 |
Procrun. Switch code to use more secure versions of Windows API calls to
resolve warnings reported by newer versions of Visual Studio. |
markt |
 |
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 |
 |
More startup on Windows logging in javajni.c. #14. |
ggregory |
Release 1.2.1 – 2019-09-09
Type |
Changes |
By |
 |
jsvc. Correct debug log message that reports change in umask. Fixes DAEMON-403. Thanks to Charles. |
markt |
 |
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 |
 |
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 |
 |
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 |
 |
Procrun. Add to OPT_LFLAGS rather than overwrite OPT_LFLAGS when setting
/OPT:REF in the make file for Windows. Thanks to mturk. |
markt |
 |
Procrun. Only set the global shutdown event if the event is created. Thanks to mturk. |
markt |
 |
Unable to build with Java 9 using ant; dropped Ant build files. Fixes DAEMON-379. |
sebb |
 |
Procrun. prunsrv stopping with error due to hard-coded timeout. Fixes DAEMON-384. Thanks to blassmegod. |
ggregory |
 |
Update config.guess and config.sub. Fixes DAEMON-385. |
markt |
 |
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 |
 |
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 |
 |
Procrun. Correct reversed code comments for JRE and JDK locations in the
registry. Fixes DAEMON-393. Thanks to Daniel Hofmann. |
ggregory |
 |
Procrun. Undefined behavior in registry.c dwRegKey = dwRegKey++. Fixes DAEMON-392. Thanks to Daniel Hofmann. |
ggregory |
 |
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 |
 |
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 |
 |
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 |
 |
Procrun. Log the error code returned if JVM creation fails to aid
debugging. |
markt |
 |
Harden the Windows binaries against DLL hijacking in the directory where
the binaries are located. |
markt |
 |
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 |
 |
Procrun. Add 'NT Authority\LocalService' and
'NT Authority\NetworkService' as options to the Log On user interface. |
markt |
 |
Procrun. Change the default service user from LocalSystem to
'NT Authority\LocalService'. |
markt |
 |
Procrun. Avoid a crash on shutdown if multiple WM_CLOSE messages are
received. Fixes DAEMON-402. Thanks to Iode Leroy. |
markt |
 |
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 |
 |
Procrun. Remove the code that removed quotes from configured Java and
Java 9 Options. Fixes DAEMON-399. |
markt |
 |
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 |
 |
Procrun. Add an option to configure the service to use the 'Automatic
(Delayed Start)' startup mode. Fixes DAEMON-303. |
markt |
 |
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 |
 |
jsvc. Include the full path to the jsvc executable in the debug log. Fixes DAEMON-297. |
markt |
 |
jsvc. Improve search for libjli.dylib on macOS when using custom-built
OpenJDK binaries. Fixes DAEMON-397. Thanks to Petr Hadraba. |
markt |
 |
Procrun. Improve log messages for interactions with the Windows service. Thanks to ggregory. |
markt |
 |
jsvc. Improve mips detection. Thanks to YunQiang Su. |
markt |
Release 1.1.0 – 2017-11-15
Type |
Changes |
By |
 |
Add DEBUG and ERROR logging to help diagnose problems when starting a Windows Service. Fixes DAEMON-368. |
ggregory |
 |
Update the minimum Java requirement from version 5 to 6. Fixes DAEMON-371. |
ggregory |
 |
Increase minimum Java version to Java 5. |
markt |
 |
Add AArch64 support to src/native/unix/support/apsupport.m4. Fixes DAEMON-347. Thanks to Ganesh Raju. |
ggregory |
 |
Compile the Windows binaries with the /DYNAMICBASE and /NXCOMPAT
switches. Fixes DAEMON-346. |
markt |
 |
Remove calls to explicit garbage collection during daemon start and
stop. Fixes DAEMON-333. |
markt |
 |
Update config.guess and config.sub to add support, amongst others, for
the 64-bit PowerPC Little-Endian architecture. Fixes DAEMON-343. |
markt |
 |
Ensure that the PID file on Windows, if used, is readable by other
processes. Fixes DAEMON-332. |
markt |
 |
Update Commons-Parent to version 41. |
markt |
 |
Update apsupport.m4 add support for 64-bit PowerPC architectures. Fixes DAEMON-358. Thanks to Gustavo Romero. |
markt |
 |
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 |
 |
Move attributions from @author in Javadocs to POM. Fixes DAEMON-370. Thanks to Amey Jadiye. |
ggregory |
 |
Enable jsvc to start when running on Java 9. Fixes DAEMON-373. |
markt |
 |
Fix a resource leak opening the JVM configuration file. Fixes DAEMON-324. |
markt |
 |
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 |
 |
Ensure that the child process is started with the correct umask. Fixes DAEMON-318. Thanks to Markus Schneider. |
markt |
 |
Correct conflicting information for the behavior of Procrun when using
jvm mode. Fixes DAEMON-309. |
markt |
 |
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 |
 |
Enable jsvc to find the jvm when running on AIX. Fixes DAEMON-310. Thanks to John Wehle. |
markt |
 |
Ensure that Procrun treats JVM crashes as service failures so the
recovery options will apply. Fixes DAEMON-302. |
markt |
 |
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 |
 |
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 |
 |
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 |
 |
Add support for Java 9 command line arguments to jsvc. Fixes DAEMON-374. Thanks to Rashmi Ranjan Mohanty. |
markt |
 |
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 support for building Procrun for the Itanium platform. |
markt |
 |
Make Windows XP the minimum support target platform. |
markt |
 |
Add support to Procrun for separate JVM options for use when running on
Java 9 and above. |
markt |
 |
Fix race conditions in PID file handling in jsvc. Fixes DAEMON-377. Thanks to Rustam Abdullaev. |
markt |
|