[prev in list] [next in list] [prev in thread] [next in thread]
List: xml-cocoon-cvs
Subject: svn commit: r531498 -
From: gkossakowski () apache ! org
Date: 2007-04-23 15:24:58
Message-ID: 20070423152500.0BEE31A9838 () eris ! apache ! org
[Download RAW message or body]
Author: gkossakowski
Date: Mon Apr 23 08:24:55 2007
New Revision: 531498
URL: http://svn.apache.org/viewvc?view=rev&rev=531498
Log:
If getInputStream() is called despite the fact cached content for the source is still \
valid return data by perform second request.
Modified:
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-components/src/main/java/org/apache/cocoon/servletservice/components/ServletSource.java
Modified: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-components/src/main/java/org/apache/cocoon/servletservice/components/ServletSource.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-serv \
let-service-components/src/main/java/org/apache/cocoon/servletservice/components/ServletSource.java?view=diff&rev=531498&r1=531497&r2=531498
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-components/src/main/java/org/apache/cocoon/servletservice/components/ServletSource.java \
(original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-components/src/main/java/org/apache/cocoon/servletservice/components/ServletSource.java \
Mon Apr 23 08:24:55 2007 @@ -44,7 +44,8 @@
private transient Log logger = LogFactory.getLog(getClass());
private ServletConnection servletConnection;
-
+ private String location;
+
/**
* The store is used to store values of Last-Modified header (if it exists). This \
store is required because in
* {@link #getValidity()} we need value of Last-Modified header of previous \
response in order to perform conditional @@ -63,6 +64,7 @@
// whithin the current block, not globally
this.store = store;
setSystemId(location);
+ this.location = location;
this.servletConnection = new ServletConnection(location);
connected = false;
}
@@ -75,6 +77,12 @@
public InputStream getInputStream() throws IOException, SourceException {
try {
connect();
+ //FIXME: This is not the most elegant solution
+ if (servletConnection.getResponseCode() != HttpServletResponse.SC_OK) {
+ //most probably, servlet returned 304 (not modified) and we need to perform \
second request to get data + servletConnection = new ServletConnection(location);
+ servletConnection.connect();
+ }
return this.servletConnection.getInputStream();
} catch (ServletException e) {
throw new CascadingIOException(e.getMessage(), e);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic