Details
Description
The Procrun Monitor application does not prevent a user from accidentally inserting blank lines into the Java Options or Java 9 Options text areas. If a blank line is introduced into either text area and the changes are applied (by hitting the Apply or OK button), the changes are committed to the associating multi-string value in the Windows registry.
If a user were to relaunch the Monitor application and view the Java or Java 9 Options again, they would see that the content has been truncated. Individual options above the blank line remain; any below are not present. If the Windows Registry editor were used to view the associating multi-string value, the user would see all of the content including the blank line.
Changing the options again from within the Monitor application will succeed but when the options are committed to the registry multi-string value, any options that existed below the blank line will be removed.
Note that the Windows registry editor will display an error dialog if a user attempts to save a multi-string value with an empty line present. The message is: "Data of type REG_MULTI_SZ cannot contain empty strings. Registry Editor will remove all empty strings found."
Steps to Reproduce:
- Download latest Commons Daemon distribution for windows (1.1.0).
- Run prunsrv.exe to install a test service (TestService).
- Run prunmgr.exe //ES/TestService to start the monitor application to edit the same TestService.
- Switch to the Java tab and edit either the Java Options or Java 9 Options. Insert a bunch of options and then Insert a blank line somewhere in-between those options. Click OK
- Run prunmgr again. Look at the Java Options or Java 9 Options where the blank line was inserted. Notice that all options below the blank line are not visible.
- Open up the registry editor and navigate to the multi-string value associated with the Java Options text area: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\TestService\Parameters\Java
- Notice that all content is present (including the blank line) in the registry value.