You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2008/10/10 15:33:23 UTC
svn commit: r703451 -
/incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/SlingRequestDispatcher.java
Author: fmeschbe
Date: Fri Oct 10 06:33:23 2008
New Revision: 703451
URL: http://svn.apache.org/viewvc?rev=703451&view=rev
Log:
SLING-692 Implement forward in terms of a simple include
Modified:
incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/SlingRequestDispatcher.java
Modified: incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/SlingRequestDispatcher.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/SlingRequestDispatcher.java?rev=703451&r1=703450&r2=703451&view=diff
==============================================================================
--- incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/SlingRequestDispatcher.java (original)
+++ incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/SlingRequestDispatcher.java Fri Oct 10 06:33:23 2008
@@ -119,15 +119,32 @@
}
}
- cRequest.getRequestProgressTracker().log("Including resource {0} ({1})", resource, info);
+ cRequest.getRequestProgressTracker().log(
+ "Including resource {0} ({1})", resource, info);
rd.getSlingMainServlet().includeContent(request, response, resource,
info);
}
public void forward(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
- // TODO Auto-generated method stub
- // TODO, use servlet container dispatcher !!
+
+ // fail forwarding if the response has already been committed
+ if (response.isCommitted()) {
+ throw new IllegalStateException("Response already committed");
+ }
+
+ // reset the response, will throw an IllegalStateException
+ // if already committed, which will not be the case because
+ // we already tested for this condition
+ response.reset();
+
+ // now just include as normal
+ include(request, response);
+
+ // finally, we would have to ensure the response is committed
+ // and closed. Let's just flush the buffer and thus commit the
+ // response for now
+ response.flushBuffer();
}
private String getAbsolutePath(SlingHttpServletRequest request, String path) {
@@ -167,9 +184,9 @@
}
/**
- * Overwrite this here because the wrapped resource will return a
- * super type based on the resource type of the wrapped resource
- * instead of the resource type overwritten here
+ * Overwrite this here because the wrapped resource will return a super
+ * type based on the resource type of the wrapped resource instead of
+ * the resource type overwritten here
*/
@Override
public String getResourceSuperType() {