Browse Source

Use API for setting content length on responses (#15504)

Change-Id: Ic8f29163442a1476406a1f2b617a4ecaf577ba93
tags/7.4.0.beta2
Artur Signell 9 years ago
parent
commit
5360e23a1a

+ 8
- 0
server/src/com/vaadin/server/VaadinPortletResponse.java View File

@@ -96,6 +96,14 @@ public class VaadinPortletResponse implements VaadinResponse {
}
}

@Override
public void setContentLength(int len) {
if (response instanceof ResourceResponse) {
((ResourceResponse) response).setContentLength(len);
}

}

@Override
public PrintWriter getWriter() throws IOException {
if (response instanceof MimeResponse) {

+ 13
- 0
server/src/com/vaadin/server/VaadinResponse.java View File

@@ -169,4 +169,17 @@ public interface VaadinResponse extends Serializable {
* @see PortletResponse#addProperty(Cookie)
*/
public void addCookie(Cookie cookie);

/**
* Sets the length of the content body in the response In HTTP servlets,
* this method sets the HTTP Content-Length header. For some portlet
* responses, this method sets the content-length header, for others this
* method does nothing.
*
* @param len
* an integer specifying the length of the content being returned
* to the client
* @since 7.3.8
*/
public void setContentLength(int len);
}

+ 1
- 1
server/src/com/vaadin/server/communication/UIInitHandler.java View File

@@ -112,7 +112,7 @@ public abstract class UIInitHandler extends SynchronizedRequestHandler {
response.setHeader("Cache-Control", "no-cache");

byte[] b = json.getBytes("UTF-8");
response.setHeader("Content-Length", String.valueOf(b.length));
response.setContentLength(b.length);

OutputStream outputStream = response.getOutputStream();
outputStream.write(b);

Loading…
Cancel
Save