Commit 0b278afe authored by Robert Butora's avatar Robert Butora
Browse files

(quick hack:) makes response writing exclusive (from Servlet XOR from FormatFilter)

parent 3e6d0827
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -81,14 +81,12 @@ public class FormatResponseFilter implements Filter
   {
      LOGGER.info("trace");
      LOGGER.info("REQUEST START =============================================================================================");
      long startTime_msec = System.currentTimeMillis();

      FormatResponseWrapper responseWrapper = new FormatResponseWrapper((HttpServletResponse) response);

      chain.doFilter(request, responseWrapper);


      long startTime_msec = System.currentTimeMillis();

      String[] pubdidArr = responseWrapper.getPubdidArr();

      if ((pubdidArr != null) && (pubdidArr.length > 0))
@@ -100,7 +98,6 @@ public class FormatResponseFilter implements Filter
         SubsurveyId subsurveyId      = new SubsurveyId(params);
         // FIXME add invalid param excpetions -> params already parsed in servlet


         Dataset[] datasetArr = queryObsCore(
               pubdidArr,
               coord,// VLKB: calc ovelrap-codes
@@ -114,10 +111,11 @@ public class FormatResponseFilter implements Filter
               settings.serviceUrls.mergeUrl(),
               dbSubsurveyArr);

         response.setCharacterEncoding(RESPONSE_ENCODING);
         final String respFormat = settings.serviceUrls.responseFormat();
         LOGGER.info("responseFormat: " + respFormat);
         
         response.setCharacterEncoding(RESPONSE_ENCODING);

         if(respFormat.equals("application/x-vlkb+xml"))
         {
            response.setContentType("application/xml");
+7 −32
Original line number Diff line number Diff line
@@ -52,17 +52,11 @@ public class SearchServlet extends javax.servlet.http.HttpServlet
      throws ServletException, IOException, UnsupportedEncodingException
   {
      LOGGER.info("trace");

      PrintWriter writer = response.getWriter();

      long startTime_msec = System.currentTimeMillis();

      legacyLogEntry(request);

      Map<String, String[]> params = request.getParameterMap();

      try
      {
         Map<String, String[]> params = request.getParameterMap();
         Coord                  coord = new Coord(params);
         SubsurveyId      subsurveyId = new SubsurveyId(params);

@@ -75,8 +69,6 @@ public class SearchServlet extends javax.servlet.http.HttpServlet
         }
         String[] pubdidArr = dbps.queryOverlapingPubdid(coord, subsurveyId);



         final String RESPONSE_ENCODING = "UTF-8";

         /* if filters installed response will be wrapped */
@@ -100,6 +92,7 @@ public class SearchServlet extends javax.servlet.http.HttpServlet
            response.setContentType("text/plain");
            response.setCharacterEncoding(RESPONSE_ENCODING);

            PrintWriter writer = response.getWriter();
            for(String pubdid : pubdidArr)
            {
               writer.println(pubdid);
@@ -114,6 +107,7 @@ public class SearchServlet extends javax.servlet.http.HttpServlet
         response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
         response.setContentType("text/plain");

         PrintWriter writer = response.getWriter();
         doMultiValuedParamNotSupported(ex.getMessage(), writer);
         writer.close();
      }
@@ -124,6 +118,7 @@ public class SearchServlet extends javax.servlet.http.HttpServlet
         response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
         response.setContentType("text/plain");

         PrintWriter writer = response.getWriter();
         doUsageError(ex.getMessage(), writer);
         writer.close();
      }
@@ -135,31 +130,11 @@ public class SearchServlet extends javax.servlet.http.HttpServlet
         response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
         response.setContentType("text/plain");

         PrintWriter writer = response.getWriter();
         doError(ex.toString(), writer);
         writer.close();
      }
      finally
      {
         //writer.close();
      }





      /*
         catch (IllegalArgumentException illArg)
         {
         response.sendError(HttpServletResponse.SC_BAD_REQUEST,
         "Request with incorrect parameters: " + illArg.getMessage());
         return;
         }
         catch(Exception ex)
         {
         LOGGER.info("Exception: " + ex.getMessage());
         ex.printStackTrace();
         }
         */
      return;
   }