Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoristvansajtos2016-03-29 10:25:16 +0000
committerRaymond Auge2016-05-13 15:27:20 +0000
commit1593ffc5311c0257888cb9272ffb05f075eee717 (patch)
treede6bf4f9be2c18b4b16e42f54e2d64e930445455 /bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/context/DispatchTargets.java
parent364fa1fcdf3a202e7df3209024249e461af0183f (diff)
downloadrt.equinox.bundles-1593ffc5311c0257888cb9272ffb05f075eee717.tar.gz
rt.equinox.bundles-1593ffc5311c0257888cb9272ffb05f075eee717.tar.xz
rt.equinox.bundles-1593ffc5311c0257888cb9272ffb05f075eee717.zip
Bug 490608 - [http servlet] Ignore status code and header change attempts for include dispatch
Signed-off-by: Istvan Sajtos <istvan.sajtos@liferay.com>
Diffstat (limited to 'bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/context/DispatchTargets.java')
-rw-r--r--bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/context/DispatchTargets.java18
1 files changed, 16 insertions, 2 deletions
diff --git a/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/context/DispatchTargets.java b/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/context/DispatchTargets.java
index 3fc8e1ec3..f98512250 100644
--- a/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/context/DispatchTargets.java
+++ b/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/context/DispatchTargets.java
@@ -7,6 +7,7 @@
*
* Contributors:
* Raymond Augé <raymond.auge@liferay.com> - Bug 436698
+ * Istvan Sajtos <istvan.sajtos@liferay.com> - Bug 490608
******************************************************************************/
package org.eclipse.equinox.http.servlet.internal.context;
@@ -15,8 +16,7 @@ import java.io.*;
import java.net.URLDecoder;
import java.util.*;
import javax.servlet.*;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.*;
import org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration;
import org.eclipse.equinox.http.servlet.internal.registration.FilterRegistration;
import org.eclipse.equinox.http.servlet.internal.servlet.*;
@@ -119,6 +119,20 @@ public class DispatchTargets {
requestWrapper.push(this);
+ if (dispatcherType == DispatcherType.INCLUDE) {
+ HttpServletResponse previous = null;
+ HttpServletResponse next = response;
+
+ while (next instanceof HttpServletResponseWrapper) {
+ previous = next;
+ next = (HttpServletResponse) ((HttpServletResponseWrapper) next).getResponse();
+ }
+
+ IncludeDispatchResponseWrapper includeResponse = new IncludeDispatchResponseWrapper(next);
+
+ ((HttpServletResponseWrapper) previous).setResponse(includeResponse);
+ }
+
ResponseStateHandler responseStateHandler = new ResponseStateHandler(request, response, this);
responseStateHandler.processRequest();

Back to the top