NIFI-602: Ensure we read all data from socket after sending 'SHUTDOWN' command

This commit is contained in:
Mark Payne 2015-06-04 14:10:43 -04:00
parent efc862eac8
commit 66f3b7e30f
1 changed files with 20 additions and 14 deletions

View File

@ -229,7 +229,10 @@ public class RunNiFi {
props.load(fis); props.load(fis);
} }
logger.log(Level.FINE, "Properties: {0}", props); final Map<Object, Object> modified = new HashMap<>(props);
modified.remove("secret.key");
logger.log(Level.FINE, "Properties: {0}", modified);
return props; return props;
} }
@ -488,12 +491,15 @@ public class RunNiFi {
final OutputStream out = socket.getOutputStream(); final OutputStream out = socket.getOutputStream();
out.write((SHUTDOWN_CMD + " " + secretKey + "\n").getBytes(StandardCharsets.UTF_8)); out.write((SHUTDOWN_CMD + " " + secretKey + "\n").getBytes(StandardCharsets.UTF_8));
out.flush(); out.flush();
out.close(); socket.shutdownOutput();
final InputStream in = socket.getInputStream(); final InputStream in = socket.getInputStream();
final BufferedReader reader = new BufferedReader(new InputStreamReader(in)); int lastChar;
final String response = reader.readLine(); final StringBuilder sb = new StringBuilder();
reader.close(); while ((lastChar = in.read()) > -1) {
sb.append((char) lastChar);
}
final String response = sb.toString().trim();
logger.log(Level.FINE, "Received response to SHUTDOWN command: {0}", response); logger.log(Level.FINE, "Received response to SHUTDOWN command: {0}", response);