diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/http/HttpServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/http/HttpServer.java index c0bf6f9..610c3f7 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/http/HttpServer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/http/HttpServer.java @@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.http; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InterruptedIOException; +import java.io.OutputStream; import java.io.PrintStream; import java.io.PrintWriter; import java.net.BindException; @@ -1213,11 +1214,12 @@ public class HttpServer implements FilterContainer { return; } response.setContentType("text/plain; charset=UTF-8"); - PrintWriter out = response.getWriter(); - PrintStream ps = new PrintStream(response.getOutputStream(), false, "UTF-8"); - Threads.printThreadInfo(ps, ""); - ps.flush(); - out.close(); + OutputStream os = response.getOutputStream(); + try (PrintStream out = new PrintStream( + response.getOutputStream(), false, "UTF-8")) { + Threads.printThreadInfo(out, ""); + out.flush(); + } ReflectionUtils.logThreadInfo(LOG, "jsp requested", 1); } } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSDumpServlet.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSDumpServlet.java index a38ad0e..77b68ec 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSDumpServlet.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSDumpServlet.java @@ -102,14 +102,18 @@ public class RSDumpServlet extends StateDumpServlet { public static void dumpQueue(HRegionServer hrs, PrintWriter out) throws IOException { - // 1. Print out Compaction/Split Queue - out.println("Compaction/Split Queue summary: " - + hrs.compactSplitThread.toString() ); - out.println(hrs.compactSplitThread.dumpQueue()); - - // 2. Print out flush Queue - out.println("\nFlush Queue summary: " - + hrs.cacheFlusher.toString()); - out.println(hrs.cacheFlusher.dumpQueue()); + if (hrs.compactSplitThread != null) { + // 1. Print out Compaction/Split Queue + out.println("Compaction/Split Queue summary: " + + hrs.compactSplitThread.toString() ); + out.println(hrs.compactSplitThread.dumpQueue()); + } + + if (hrs.cacheFlusher != null) { + // 2. Print out flush Queue + out.println("\nFlush Queue summary: " + + hrs.cacheFlusher.toString()); + out.println(hrs.cacheFlusher.dumpQueue()); + } } }