clean up Process instance after we are done with the sub process

Per java doc of java.lang.Process, #destroy() should be called
after the parent process is done with the sub process.

Bug: 20435160
Change-Id: I254982388c5b46c93c214b37a1e8563f21805e82
This commit is contained in:
Guang Zhu
2015-06-07 16:16:15 -07:00
parent 683e3cfef1
commit 843b992b51

View File

@@ -239,9 +239,10 @@ public final class UiAutomationConnection extends IUiAutomationConnection.Stub {
public void run() {
InputStream in = null;
OutputStream out = null;
java.lang.Process process = null;
try {
java.lang.Process process = Runtime.getRuntime().exec(command);
process = Runtime.getRuntime().exec(command);
in = process.getInputStream();
out = new FileOutputStream(sink.getFileDescriptor());
@@ -257,7 +258,9 @@ public final class UiAutomationConnection extends IUiAutomationConnection.Stub {
} catch (IOException ioe) {
throw new RuntimeException("Error running shell command", ioe);
} finally {
IoUtils.closeQuietly(in);
if (process != null) {
process.destroy();
}
IoUtils.closeQuietly(out);
IoUtils.closeQuietly(sink);
}