Author: lryan
Date: Tue Jul 29 18:02:31 2008
New Revision: 680893

URL: http://svn.apache.org/viewvc?rev=680893&view=rev
Log:
Suppress writing all headers in the Concat servlet and explicitly set the 
expiration and content disposition instead of delegating to ProxyHandler. The 
prevents writing headers for each concatenated part which can upset some 
servlet engines once the response headers are committed.

Modified:
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java?rev=680893&r1=680892&r2=680893&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java
 Tue Jul 29 18:02:31 2008
@@ -28,6 +28,7 @@
 import java.util.logging.Logger;
 
 import javax.servlet.ServletOutputStream;
+import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequestWrapper;
 import javax.servlet.http.HttpServletResponse;
@@ -57,6 +58,15 @@
       response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
       return;
     }
+    if (request.getParameter(ProxyBase.REWRITE_MIME_TYPE_PARAM) != null) {
+      response.setHeader("Content-Type",
+          request.getParameter(ProxyBase.REWRITE_MIME_TYPE_PARAM));
+    }
+    if (request.getParameter(ProxyBase.REFRESH_PARAM) != null) {
+      HttpUtil.setCachingHeaders(response,
+          Integer.valueOf(request.getParameter(ProxyBase.REFRESH_PARAM)));
+    }
+    response.setHeader("Content-Disposition", "attachment;filename=p.txt");
     ResponseWrapper wrapper = new ResponseWrapper(response);
     for (int i = 1; i < Integer.MAX_VALUE; i++) {
       String url = request.getParameter(Integer.toString(i));
@@ -94,7 +104,9 @@
     resp.sendError(HttpServletResponse.SC_BAD_REQUEST, err.toString());
   }
 
-  /** Simple request wrapper to make repeated calls to ProxyHandler */
+  /**
+   * Simple request wrapper to make repeated calls to ProxyHandler
+   */
   private static class RequestWrapper extends HttpServletRequestWrapper {
 
     private final String url;
@@ -114,8 +126,8 @@
   }
 
   /**
-   * Wrap the response to prevent writing through of the status code and
-   * to hold a reference to the stream across multiple proxied parts
+   * Wrap the response to prevent writing through of the status code and to 
hold a reference to the
+   * stream across multiple proxied parts
    */
   private static class ResponseWrapper extends HttpServletResponseWrapper {
 
@@ -133,6 +145,28 @@
       return outputStream;
     }
 
+    public void addCookie(Cookie cookie) {
+    }
+
+    // Suppress headers
+    public void setDateHeader(String s, long l) {
+    }
+
+    public void addDateHeader(String s, long l) {
+    }
+
+    public void setHeader(String s, String s1) {
+    }
+
+    public void addHeader(String s, String s1) {
+    }
+
+    public void setIntHeader(String s, int i) {
+    }
+
+    public void addIntHeader(String s, int i) {
+    }
+
     public void setStatus(int i) {
     }
   }


Reply via email to