[ https://issues.apache.org/jira/browse/HADOOP-2344?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12549312 ]
Amar Kamat commented on HADOOP-2344: ------------------------------------ This patch now merges the functionalities of {{ShellCommand}} and {{ShellUtil}}. I have deprecated {{ShellUtil}}. Now one can use {{ShellCommand}} in the following ways * use {{ShellCommand.ShellCommandExecutor}} to simply execute a command * extend {{ShellCommand}} to do some advance level output parsing Basically use {{ShellCommandExecutor}} * if the expected output is small and the requirement is to simply execute the command Extending {{ShellCommand}} might be useful in cases where there is a need to control * input directories * command * shell environment Regarding the "Process.waitFor() hangs" issue, this patch clears the error stream using a separate thread while the input stream is read in the current thread (so that they happen in parallel). Once the streams are cleared, {{ShellCommand}} waits for the process to terminate and come out of {{waitFor()}}. Finally the process is destroyed closing the input/error streams. As done in {{ShellUtil}}, the process is made accessible outside {{ShellCommand}} so that the process can be externally terminated. > Free up the buffers (input and error) while executing a shell command before > waiting for it to finish. > ------------------------------------------------------------------------------------------------------ > > Key: HADOOP-2344 > URL: https://issues.apache.org/jira/browse/HADOOP-2344 > Project: Hadoop > Issue Type: Bug > Affects Versions: 0.15.2 > Reporter: Amar Kamat > Assignee: Amar Kamat > Fix For: 0.15.2 > > Attachments: HADOOP-2231.patch, HADOOP-2344.patch > > > Process.waitFor() should be invoked after freeing up the input and error > stream. While fixing https://issues.apache.org/jira/browse/HADOOP-2231 we > found that this might be a possible cause. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.