[Yanel-commits] rev 38110 -
public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet
michi at wyona.com
michi at wyona.com
Tue Aug 19 14:10:02 CEST 2008
Author: michi
Date: 2008-08-19 14:10:01 +0200 (Tue, 19 Aug 2008)
New Revision: 38110
Modified:
public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
thanks to Simon Litwan size of an empty response and execption handling fixed
Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java 2008-08-19 10:06:44 UTC (rev 38109)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java 2008-08-19 12:10:01 UTC (rev 38110)
@@ -2053,23 +2053,13 @@
}
- // Set actual content
- byte buffer[] = new byte[8192];
- int bytesRead;
InputStream is = view.getInputStream();
if (is != null) {
+ // Write actual content into response
+ byte buffer[] = new byte[8192];
+ int bytesRead;
bytesRead = is.read(buffer);
- // Check if InputStream is empty
- if (bytesRead == -1) {
- String message = "InputStream of view does not seem to contain any data!";
- Element exceptionElement = (Element) doc.getDocumentElement().appendChild(doc.createElementNS(NAMESPACE, "exception"));
- exceptionElement.appendChild(doc.createTextNode(message));
- response.setStatus(javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- setYanelOutput(request, response, doc);
- return response;
- }
-
// TODO: Compare If-Modified-Since with lastModified and return 304 without content resp. check on ETag
String ifModifiedSince = request.getHeader("If-Modified-Since");
if (ifModifiedSince != null) {
@@ -2084,19 +2074,28 @@
if (log.isDebugEnabled()) log.debug("No size for " + request.getRequestURI() + ": " + size);
}
- java.io.OutputStream os = response.getOutputStream();
- os.write(buffer, 0, bytesRead);
- while ((bytesRead = is.read(buffer)) != -1) {
+ // Check if InputStream is empty
+ if (bytesRead != -1) {
+ java.io.OutputStream os = response.getOutputStream();
os.write(buffer, 0, bytesRead);
+ while ((bytesRead = is.read(buffer)) != -1) {
+ os.write(buffer, 0, bytesRead);
+ }
+ os.close();
+ } else {
+ log.warn("Returned content size of request '" + request.getRequestURI() + "' is 0");
}
+
is.close();
return response;
} else {
- String message = "InputStream of view is null!";
+ String message = "Returned InputStream of request '" + request.getRequestURI() + "' is null!";
Element exceptionElement = (Element) doc.getDocumentElement().appendChild(doc.createElementNS(NAMESPACE, "exception"));
exceptionElement.appendChild(doc.createTextNode(message));
response.setStatus(javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
setYanelOutput(request, response, doc);
+
+ is.close();
return response;
}
}
More information about the Yanel-commits
mailing list