diff --git a/lang/java/reef-webserver/src/main/java/org/apache/reef/webserver/HttpServerReefEventHandler.java b/lang/java/reef-webserver/src/main/java/org/apache/reef/webserver/HttpServerReefEventHandler.java index ad6f9b0214..dfa3362a3a 100644 --- a/lang/java/reef-webserver/src/main/java/org/apache/reef/webserver/HttpServerReefEventHandler.java +++ b/lang/java/reef-webserver/src/main/java/org/apache/reef/webserver/HttpServerReefEventHandler.java @@ -29,6 +29,7 @@ import org.apache.reef.util.logging.LoggingScopeFactory; import org.apache.reef.util.logging.LoggingScopeImpl; import org.apache.reef.wake.EventHandler; + import javax.inject.Inject; import javax.servlet.ServletException; import javax.servlet.http.HttpServletResponse; @@ -38,6 +39,7 @@ import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; +import java.util.Arrays; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -169,20 +171,22 @@ public void onHttpRequest( writeLines(response, result, "Current Stages..."); break; case "logfile": - final List names = parsedHttpRequest.getQueryMap().get("filename"); + final List names = parsedHttpRequest.getQueryMap().get("filename"); + final PrintWriter writer = response.getWriter(); if (names == null || names.size() == 0) { - response.getWriter().println(String.format("File name is not provided")); - } - - final String fileName = (String)names.get(0); - if (!fileName.equals(driverStdoutFile) && !fileName.equals(driverStderrFile)) { - response.getWriter().println(String.format("Unsupported file names: [%s] ", fileName)); - } - try { - final byte[] outputBody = readFile((String) names.get(0)).getBytes(StandardCharsets.UTF_8); - response.getOutputStream().write(outputBody); - } catch(final IOException e) { - response.getWriter().println(String.format("Cannot find the log file: [%s].", fileName)); + writer.println("File name is not provided"); + } else { + final String fileName = names.get(0); + if (!fileName.equals(driverStdoutFile) && !fileName.equals(driverStderrFile)) { + writer.println(String.format("Unsupported file names: [%s] ", fileName)); + } else { + try { + final byte[] outputBody = readFile(fileName).getBytes(StandardCharsets.UTF_8); + writer.print(Arrays.toString(outputBody)); + } catch (final IOException e) { + writer.println(String.format("Cannot find the log file: [%s].", fileName)); + } + } } break; // TODO[JIRA REEF-798] Use this provider in the HTTP @@ -280,7 +284,7 @@ private void writeEvaluatorInfoWebOutput( * Get all evaluator ids and send it back to response as JSON. */ private void writeEvaluatorsJsonOutput(final HttpServletResponse response) throws IOException { - LOG.log(Level.INFO, "HttpServerReefEventHandler getEvaluators is called"); + LOG.log(Level.INFO, "HttpServerReefEventHandler writeEvaluatorsJsonOutput is called"); try { final EvaluatorListSerializer serializer = Tang.Factory.getTang().newInjector().getInstance(EvaluatorListSerializer.class); @@ -302,7 +306,7 @@ private void writeEvaluatorsJsonOutput(final HttpServletResponse response) throw */ private void writeEvaluatorsWebOutput(final HttpServletResponse response) throws IOException { - LOG.log(Level.INFO, "HttpServerReefEventHandler getEvaluators is called"); + LOG.log(Level.INFO, "HttpServerReefEventHandler writeEvaluatorsWebOutput is called"); final PrintWriter writer = response.getWriter(); @@ -329,6 +333,9 @@ private void writeEvaluatorsWebOutput(final HttpServletResponse response) throws * Write Driver Info as JSON string to Response. */ private void writeDriverJsonInformation(final HttpServletResponse response) throws IOException { + + LOG.log(Level.INFO, "HttpServerReefEventHandler writeDriverJsonInformation invoked."); + try { final DriverInfoSerializer serializer = Tang.Factory.getTang().newInjector().getInstance(DriverInfoSerializer.class); @@ -355,7 +362,7 @@ private void writeResponse(final HttpServletResponse response, final String data */ private void writeDriverWebInformation(final HttpServletResponse response) throws IOException { - LOG.log(Level.INFO, "HttpServerReefEventHandler writeDriverInformation invoked."); + LOG.log(Level.INFO, "HttpServerReefEventHandler writeDriverWebInformation invoked."); final PrintWriter writer = response.getWriter();