Author: germuska
Date: Fri Jan 26 12:56:58 2007
New Revision: 500341

URL: http://svn.apache.org/viewvc?view=rev&rev=500341
Log:
Fix TILES-28 - only use requestDispatcher.include() after the response has been 
committed

Modified:
    
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/servlet/ServletTilesRequestContext.java

Modified: 
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/servlet/ServletTilesRequestContext.java
URL: 
http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/servlet/ServletTilesRequestContext.java?view=diff&rev=500341&r1=500340&r2=500341
==============================================================================
--- 
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/servlet/ServletTilesRequestContext.java
 (original)
+++ 
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/servlet/ServletTilesRequestContext.java
 Fri Jan 26 12:56:58 2007
@@ -157,10 +157,25 @@
     }
 
     public void dispatch(String path) throws IOException {
-        include(path);
+       if (response.isCommitted()) {
+               include(path);
+       } else {
+               forward(path);
+       }
     }
 
-    public void include(String path) throws IOException{
+    private void forward( String path ) throws IOException {
+        RequestDispatcher rd = request.getRequestDispatcher(path);
+        try {
+            rd.forward(request, response);
+        } catch (ServletException ex) {
+            LOG.error("Servlet Exception while including path", ex);
+            throw new IOException("Error including path '"+path+"'. " + 
ex.getMessage());
+        }
+       }
+
+
+       public void include(String path) throws IOException{
         RequestDispatcher rd = request.getRequestDispatcher(path);
         try {
             rd.include(request, response);


Reply via email to