mcardle 2006/01/04 23:57:30 CET
Modified files:
src/net/sf/j2ep/responsehandlers ResponseHandlerBase.java
Log:
* safely closes connection in case of Socket error
Revision Changes Path
1.20 +25 -18
esi_server/src/net/sf/j2ep/responsehandlers/ResponseHandlerBase.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/esi_server/src/net/sf/j2ep/responsehandlers/ResponseHandlerBase.java.diff?r1=1.19&r2=1.20&f=h
Index: ResponseHandlerBase.java
===================================================================
RCS file:
/home/cvs/repository/esi_server/src/net/sf/j2ep/responsehandlers/ResponseHandlerBase.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- ResponseHandlerBase.java 4 Jan 2006 16:02:34 -0000 1.19
+++ ResponseHandlerBase.java 4 Jan 2006 22:57:29 -0000 1.20
@@ -158,19 +158,23 @@
public void sendStreamToClientPassthrough(ServletResponse
clientResponse) throws IOException {
InputStream streamFromServer =
methodToServer.getResponseBodyAsStream();
OutputStream clientResponseStream = clientResponse.getOutputStream();
-
- if (streamFromServer != null) {
- byte[] buffer = new byte[1024];
- int read = streamFromServer.read(buffer);
- while (read > 0) {
- clientResponseStream.write(buffer, 0, read);
- //log.debug(".");
- read = streamFromServer.read(buffer);
+ try {
+ if (streamFromServer != null) {
+ byte[] buffer = new byte[1024];
+ int read = streamFromServer.read(buffer);
+ while (read > 0) {
+ clientResponseStream.write(buffer, 0, read);
+ //log.debug(".");
+ read = streamFromServer.read(buffer);
+ }
+ streamFromServer.close();
}
- streamFromServer.close();
+ clientResponseStream.flush();
+ }
+ finally {
+
+ clientResponseStream.close();
}
- clientResponseStream.flush();
- clientResponseStream.close();
}
@@ -216,14 +220,17 @@
//reset content-length header previously set by
copyHeadersFromServerResponseToClientResponse()
clientResponse.setContentLength(cachedByteContent.length);
- if (cachedByteContent==null) {
- log.error("sendStreamToClientFromCache : cachedByteContent is
NULL. so not sending anything");
+ try {
+ if (cachedByteContent==null) {
+ log.error("sendStreamToClientFromCache : cachedByteContent
is NULL. so not sending anything");
+ }
+ else
+ clientResponseStream.write(cachedByteContent, 0,
cachedByteContent.length);
+ clientResponseStream.flush();
+ }
+ finally {
+ clientResponseStream.close();
}
- else
- clientResponseStream.write(cachedByteContent, 0,
cachedByteContent.length);
-
- clientResponseStream.flush();
- clientResponseStream.close();
}