From 804397b12f44f0a1681050f9f773fa8284a5f1b6 Mon Sep 17 00:00:00 2001 From: Scott Kidder Date: Wed, 1 Mar 2017 15:51:35 -0800 Subject: [PATCH] Wrap process.waitFor() in a try-finally that calls shutdown on process output reader threads --- .../services/kinesis/producer/Daemon.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/java/amazon-kinesis-producer/src/main/java/com/amazonaws/services/kinesis/producer/Daemon.java b/java/amazon-kinesis-producer/src/main/java/com/amazonaws/services/kinesis/producer/Daemon.java index 9f320b72..f07e6c88 100644 --- a/java/amazon-kinesis-producer/src/main/java/com/amazonaws/services/kinesis/producer/Daemon.java +++ b/java/amazon-kinesis-producer/src/main/java/com/amazonaws/services/kinesis/producer/Daemon.java @@ -467,12 +467,14 @@ public void apply(Logger logger, String message) { executor.submit(stdOutReader); executor.submit(stdErrReader); - int code = process.waitFor(); - - stdOutReader.shutdown(); - stdErrReader.shutdown(); - deletePipes(); - fatalError("Child process exited with code " + code, code != 1); + try { + int code = process.waitFor(); + fatalError("Child process exited with code " + code, code != 1); + } finally { + stdOutReader.shutdown(); + stdErrReader.shutdown(); + deletePipes(); + } } private void updateCredentials() throws InterruptedException {