[Mulgara-svn] r1901 - trunk/src/jar/querylang/java/org/mulgara/protocol/http

pag at mulgara.org pag at mulgara.org
Thu Jan 28 20:57:47 UTC 2010


Author: pag
Date: 2010-01-28 12:57:46 -0800 (Thu, 28 Jan 2010)
New Revision: 1901

Modified:
   trunk/src/jar/querylang/java/org/mulgara/protocol/http/ProtocolServlet.java
Log:
Moved closing of an Answer until after the try/catch for streaming the answer to output. This means that irrelevant errors will not interfere with the HTTP result

Modified: trunk/src/jar/querylang/java/org/mulgara/protocol/http/ProtocolServlet.java
===================================================================
--- trunk/src/jar/querylang/java/org/mulgara/protocol/http/ProtocolServlet.java	2010-01-28 20:56:20 UTC (rev 1900)
+++ trunk/src/jar/querylang/java/org/mulgara/protocol/http/ProtocolServlet.java	2010-01-28 20:57:46 UTC (rev 1901)
@@ -187,6 +187,7 @@
    * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    */
   protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+    Answer result = null;
     try {
       RestParams params = new RestParams(req);
       RestParams.ResourceType type = params.getType();
@@ -201,19 +202,19 @@
         query = getQuery(createAskQuery(params.getTriple()), req);
       }
 
-      Answer result = executeQuery(query, req);
+      result = executeQuery(query, req);
       
       Output outputType = getOutputType(req, query);
       sendAnswer(result, outputType, resp);
 
+    } catch (ServletException e) {
+      e.sendResponseTo(resp);
+    } finally {
       try {
-        result.close();
+        if (result != null) result.close();
       } catch (TuplesException e) {
-        throw new InternalErrorException("Error closing: " + e.getMessage());
+        logger.warn("Error closing: " + e.getMessage(), e);
       }
-
-    } catch (ServletException e) {
-      e.sendResponseTo(resp);
     }
   }
 




More information about the Mulgara-svn mailing list