diff --git a/java/edu/ucar/metviewer/MVServlet.java b/java/edu/ucar/metviewer/MVServlet.java
index e91f8a58..c7f6e503 100644
--- a/java/edu/ucar/metviewer/MVServlet.java
+++ b/java/edu/ucar/metviewer/MVServlet.java
@@ -954,105 +954,105 @@ public void init() {
* @param request Contains request information, including parameters
* @param response Used to send information back to the requester
*/
+
@Override
- @Override
-public void doGet(HttpServletRequest request, HttpServletResponse response) {
- try {
- String strPath = request.getRequestURL().toString();
- Matcher matDownload = patDownload.matcher(strPath);
-
- if (matDownload.matches()) {
- handleFileDownload(request, response);
- } else {
- sendDebugInfo(response);
- }
- } catch (FileNotFoundException e) {
- logger.error("File not found in doGet: " + e.getMessage(), e);
- response.setStatus(HttpServletResponse.SC_NOT_FOUND);
- response.setContentType("application/xml;charset=UTF-8");
- try (PrintWriter writer = response.getWriter()) {
- writer.write("Requested file not found");
- } catch (IOException ioException) {
- logger.error("Error writing response for FileNotFoundException: " + ioException.getMessage(), ioException);
- }
- } catch (IOException e) {
- logger.error("I/O error in doGet: " + e.getMessage(), e);
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- response.setContentType("application/xml;charset=UTF-8");
- try (PrintWriter writer = response.getWriter()) {
- writer.write("Server I/O error");
- } catch (IOException ioException) {
- logger.error("Error writing response for IOException: " + ioException.getMessage(), ioException);
- }
- } catch (Exception e) {
- logger.error("Unexpected error in doGet: " + e.getMessage(), e);
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- response.setContentType("application/xml;charset=UTF-8");
- try (PrintWriter writer = response.getWriter()) {
- writer.write("Unexpected server error");
- } catch (IOException ioException) {
- logger.error("Error writing response for unexpected error: " + ioException.getMessage(), ioException);
- }
- }
-}
+ public void doGet(HttpServletRequest request, HttpServletResponse response) {
+ try {
+ String strPath = request.getRequestURL().toString();
+ Matcher matDownload = patDownload.matcher(strPath);
+
+ if (matDownload.matches()) {
+ handleFileDownload(request, response);
+ } else {
+ sendDebugInfo(response);
+ }
+ } catch (FileNotFoundException e) {
+ logger.error("File not found in doGet: " + e.getMessage(), e);
+ response.setStatus(HttpServletResponse.SC_NOT_FOUND);
+ response.setContentType("application/xml;charset=UTF-8");
+ try (PrintWriter writer = response.getWriter()) {
+ writer.write("Requested file not found");
+ } catch (IOException ioException) {
+ logger.error("Error writing response for FileNotFoundException: " + ioException.getMessage(), ioException);
+ }
+ } catch (IOException e) {
+ logger.error("I/O error in doGet: " + e.getMessage(), e);
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ response.setContentType("application/xml;charset=UTF-8");
+ try (PrintWriter writer = response.getWriter()) {
+ writer.write("Server I/O error");
+ } catch (IOException ioException) {
+ logger.error("Error writing response for IOException: " + ioException.getMessage(), ioException);
+ }
+ } catch (Exception e) {
+ logger.error("Unexpected error in doGet: " + e.getMessage(), e);
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ response.setContentType("application/xml;charset=UTF-8");
+ try (PrintWriter writer = response.getWriter()) {
+ writer.write("Unexpected server error");
+ } catch (IOException ioException) {
+ logger.error("Error writing response for unexpected error: " + ioException.getMessage(), ioException);
+ }
+ }
+ }
-private void handleFileDownload(HttpServletRequest request, HttpServletResponse response) throws IOException {
- String plot = MVUtil.cleanString(request.getParameter("plot"));
- String type = request.getParameter("type");
- String filePath = resolveFilePath(plot, type);
- File file = new File(filePath);
+ private void handleFileDownload(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ String plot = MVUtil.cleanString(request.getParameter("plot"));
+ String type = request.getParameter("type");
+ String filePath = resolveFilePath(plot, type);
+ File file = new File(filePath);
- if (!file.exists()) {
- throw new FileNotFoundException("File not found: " + filePath);
- }
+ if (!file.exists()) {
+ throw new FileNotFoundException("File not found: " + filePath);
+ }
- // Set response headers and content type
- ServletContext context = getServletConfig().getServletContext();
- String mimeType = context.getMimeType(filePath);
- response.setContentType(mimeType != null ? mimeType : "application/octet-stream");
- response.setContentLength((int) file.length());
- response.setHeader("Content-Disposition", "attachment; filename=\"" + file.getName() + "\"");
-
- // Stream the file to the client
- try (ServletOutputStream outStream = response.getOutputStream();
- FileInputStream fileInputStream = new FileInputStream(file)) {
- byte[] buffer = new byte[4096];
- int bytesRead;
- while ((bytesRead = fileInputStream.read(buffer)) != -1) {
- outStream.write(buffer, 0, bytesRead);
- }
- }
-}
-
-private String resolveFilePath(String plot, String type) {
- switch (type) {
- case "plot_xml_url":
- return plotXml + DELIMITER + plot + ".xml";
- case "plot_sql_url":
- return plotXml + DELIMITER + plot + ".sql";
- case "r_script_url":
- return scripts + DELIMITER + plot + ".R";
- case "r_data_url":
- return data + DELIMITER + plot + ".data";
- case "plot_log_url":
- return plotXml + DELIMITER + plot + ".log";
- case "plot_image_url":
- return plots + DELIMITER + plot + ".png";
- case "y1_points_url":
- return data + DELIMITER + plot + ".points1";
- case "y2_points_url":
- return data + DELIMITER + plot + ".points2";
- default:
- return plotXml + DELIMITER + plot + ".xml";
- }
-}
+ // Set response headers and content type
+ ServletContext context = getServletConfig().getServletContext();
+ String mimeType = context.getMimeType(filePath);
+ response.setContentType(mimeType != null ? mimeType : "application/octet-stream");
+ response.setContentLength((int) file.length());
+ response.setHeader("Content-Disposition", "attachment; filename=\"" + file.getName() + "\"");
+
+ // Stream the file to the client
+ try (ServletOutputStream outStream = response.getOutputStream();
+ FileInputStream fileInputStream = new FileInputStream(file)) {
+ byte[] buffer = new byte[4096];
+ int bytesRead;
+ while ((bytesRead = fileInputStream.read(buffer)) != -1) {
+ outStream.write(buffer, 0, bytesRead);
+ }
+ }
+ }
-private void sendDebugInfo(HttpServletResponse response) throws IOException {
- response.setContentType("text/plain");
- try (PrintWriter writer = response.getWriter()) {
- writer.println("howdy from MVServlet");
- }
-}
+ private String resolveFilePath(String plot, String type) {
+ switch (type) {
+ case "plot_xml_url":
+ return plotXml + DELIMITER + plot + ".xml";
+ case "plot_sql_url":
+ return plotXml + DELIMITER + plot + ".sql";
+ case "r_script_url":
+ return scripts + DELIMITER + plot + ".R";
+ case "r_data_url":
+ return data + DELIMITER + plot + ".data";
+ case "plot_log_url":
+ return plotXml + DELIMITER + plot + ".log";
+ case "plot_image_url":
+ return plots + DELIMITER + plot + ".png";
+ case "y1_points_url":
+ return data + DELIMITER + plot + ".points1";
+ case "y2_points_url":
+ return data + DELIMITER + plot + ".points2";
+ default:
+ return plotXml + DELIMITER + plot + ".xml";
+ }
+ }
+
+ private void sendDebugInfo(HttpServletResponse response) throws IOException {
+ response.setContentType("text/plain");
+ try (PrintWriter writer = response.getWriter()) {
+ writer.println("howdy from MVServlet");
+ }
+ }
/**
* Override the parent's doPost() method with an implementation that reads XML from the body of