| Type | Changes | By |
|---|
 | Watchdog kills process immediately if timeout is too large. Fixes EXEC-68. Thanks to Joel McCance. | ggregory |
 | Applied the patch from Nickolay Martinov but the timeout disguises the fact
that the process might be still runnung - therefore added a sanity check in
order to throw an exception if the the timeout for join() was exceeded. Fixes EXEC-57. Thanks to Nickolay Martinov. | sgoeschl |
 | Fixed dead lock by calling the timeout observers outside of the synchronized block thereby
removing on pre-requisite of a deadlock. Also added a test case to demonstrate that this
problem is fixed (which of course can not guarantee the absence of a dead lock). Fixes EXEC-60. Thanks to Peter Kofler. | sgoeschl |
 | Set names for started threads. Fixes EXEC-55. Thanks to Dominik Stadler. | sgoeschl |
 | Tests fail on HP-UX, because it uses a different syntax for the ping command. Fixes EXEC-52. Thanks to Nickolay Martinov. | sebb |
 | "Write dead end" IOException when using Piped streams w/PumpStreamHandler.
When encountering a PipedOutputStream we will automatically close it to avoid
the exception. Fixes EXEC-49. Thanks to Kevin Telford. | sgoeschl |
 | Race condition prevent watchdog working using ExecuteStreamHandler.
Patch submitted by Kristian Rosenvold. Fixes EXEC-34. Thanks to Marco Ferrante. | simonetripodi |
| Type | Changes | By |
|---|
 | OpenVMS now uses symbols instead of logicals for environment variables. | sebb |
 | Adding 'Argument' class and quote the arguments after expansion. | sgoeschl |
 | Reverting changes of [EXEC-41] because the patch does not fix the problem.
Also added test case for the broken patch. | sgoeschl |
 | Added TutorialTest as a playground for new user and removed
similar code from DefaultExecutorTest. | sgoeschl |
 | String substitution handles now java.io.File instances in order
to create a cross-platform file name. | sgoeschl |
 | The 'forever.bat' accidentally overwrite the 'forever.txt' instead of
appending. | sgoeschl |
 | DefaultExecutor() now sets the working directory with the current working
directory. | sgoeschl |
 | Added 'DefaultExecutorTest#testStdInHandling' to show how
commons-exec can feed the 'stdin' of a child process. | sgoeschl |
 | Improved the documentation. Fixes EXEC-42. Thanks to Konrad Windzus. | sgoeschl |
 | Added a PumpStreamHandler.setAlwaysWaitForStreamThreads() which allows to skip
joining with the pumper threads. Having said that - using that flag is for the
desperate because it could leave up to three worker threads behind but there
might be situations where this is the only escape. Fixes EXEC-41. Thanks to Ernest Mishkin. | sgoeschl |
 | Process.waitFor should clear interrupt status when throwing InterruptedException Fixes EXEC-46. Thanks to Zimmermann Nir. | sgoeschl |
 | Added 'DefaultExecuteResultHandler' | sgoeschl |
 | Added a new section to the tutorial to show working with asynchronous
processes. Thanks to Pablo for providing this documentation update. Fixes EXEC-42. Thanks to Pablo Hoertner. | sgoeschl |
 | Because the ExecuteWatchdog is the only way to destroy asynchronous processes,
it should be possible to set it to an infinite timeout, for processes which
should not timeout, but manually destroyed under some circumstances. Fixes EXEC-44. | sgoeschl |
| Type | Changes | By |
|---|
 | On a Mac, the unit tests never finish. Culprit is InputStreamPumper which
sets its stop member in the run method; however, run might really be executed
after the stopProcessing method is called if the process
thread completes before the InputStreamPumper starts. Fixes EXEC-33. | henrib |
 | Fixes NPE in DefaultExecutor.setExitValues(). Fixes EXEC-40. Thanks to Peter Henderson. | sgoeschl |
 | Copies all data from an System.input stream to an output stream of
the executed process. Fixes EXEC-33. Thanks to Milos Kleint. | sgoeschl |
| Type | Changes | By |
|---|
 | Removed useless synchronized statement in
OpenVmsProcessingEnvironment.createProcEnvironment Fixes EXEC-37. Thanks to Sebastien Bazley. | sgoeschl |
 | Using System.in for child process will actually hang your application -
see JIRA for more details. Since there is no easy fix an
IllegalRuntimeException is thrown when System.in is passed. Fixes EXEC-33. | sgoeschl |
 | Fixing a few findbugs issues. Fixes EXEC-35. Thanks to Luc Maisonobe. | sgoeschl |
 | Handle null streams consistently. Fixes EXEC-32. Thanks to Marco Ferrante. | sgoeschl |
 | After a long discussion we decided to stick to following groupId
"org.apache.commons" instead of "commons-exec". | sgoeschl |
 | The Ant build now works even when junit is not on the classpath Thanks to Kevin Jackson. | sgoeschl |
 | Fixed broken "groupId" from "org.apache.commons" to "commons-exec" | sgoeschl |
 | Renamed EnvironmentUtil to EnvironmentUtils to align with other classes
in this project and commons in general. Please note that this change
could break existing clients (but would be rather unlikely). Fixes EXEC-27. Thanks to Benjamin Bentmann. | sgoeschl |
 | Make environment variables respect casing rules of platforms. Under Windows
"PATH", "Path" and "path" would access the same environment variable whereas
the real name is "Path". Fixes EXEC-30. Thanks to Benjamin Bentmann. | sgoeschl |
 | Invoking DefaultExecutor.execute(CommandLine command, Map environment) using
a 'null' Map results in inheriting all environment variables of the current
process while passing an empty map implies starting the new process with no
environment variables. In short 'null' is not the same as an empty map. Fixes EXEC-31. Thanks to Benjamin Bentmann. | sgoeschl |
 | Added one additional test : DefaultExecutorTest.testExecuteWithFancyArg Fixes EXEC-26. Thanks to Benjamin Bentmann. | sgoeschl |
 | Using variable substitution within CommandLine broke the regression tests
under Windows. Found also another bug when calling CommandLine.getExecutable()
the result was not substituted at all. As a general rule we do variable
substitution and file separator fixing on the command line executable and
variable substitution but NO file separator fixing for the command line
arguments. Fixes EXEC-25. | sgoeschl |
 | Added convinience method to add two parameters to the CommandLine
using one method invocation. | sgoeschl |
 | Implemented better regression test for OpenVMS affecting also
the Executor and CommandLauncher interface. | sgoeschl |
 | Added test scripts for OpenVMS - he seems to be the last human
having access to an OpenVMS box ... :-) | sebb |
 | With the help of the Apache Commons community I added the first results
of cross-OS testing. Thanks to Simone Gianni,Bindul Bhowmik,Niall Pemberton,Sebastian Bazley. | sgoeschl |
 | The regression tests now also works on Windows - so it should
work now on Linux, Windows and Mac OS X | sgoeschl |
 | Added DebugUtils to improve cross-platform testing. | sgoeschl |
 | Removed commons-logging integration | sgoeschl |
 | Made DefaultExecutor.launch() protected to enable mocking. Fixes SANDBOX-62. Thanks to Jeremy Lacoste. | sgoeschl |
 | Made ProcessDestroyer optional and pluggable when using Executor. Fixes SANDBOX-107. Thanks to Niklas Gustavsson. | sgoeschl |
 | CommandLine can now expand the given command line by a user-suppied
map. This allows to execute something like "${JAVA_HOME}/bin/java -jar ${myapp}" | sgoeschl |
 | Added methods to provide pre-quoted arguments. Fixes SANDBOX-192. Thanks to Reinhold Fuereder. | sgoeschl |
 | Exposing a ExecuteWatchdog.destroy() to kill an asynchrounous process
manually. This formalizes a workaround described in the JIRA Fixes SANDBOX-193. Thanks to Reinhold Fuereder. | sgoeschl |
 | Extending exit value handling to support applications returning an error
code. Fixes SANDBOX-203. | sgoeschl |
 | Cleaned up the source code to get rid of javadoc errors and
unused imports. Fixes SANDBOX-204. | sgoeschl |
 | Added a few regression tests for the watchdog since they were missing. Fixes SANDBOX-204. | sgoeschl |