You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2017/11/30 10:20:51 UTC
svn commit: r1816704 - in /tomcat/trunk/java/org/apache/coyote/http2:
Http2OutputBuffer.java Stream.java
Author: markt
Date: Thu Nov 30 10:20:50 2017
New Revision: 1816704
URL: http://svn.apache.org/viewvc?rev=1816704&view=rev
Log:
Trigger sending the headers from the Http2OutputBuffer as the
StreamOutputBuffer is too late if a filter (e.g. GZip) needs to
be added.
Modified:
tomcat/trunk/java/org/apache/coyote/http2/Http2OutputBuffer.java
tomcat/trunk/java/org/apache/coyote/http2/Stream.java
Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2OutputBuffer.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2OutputBuffer.java?rev=1816704&r1=1816703&r2=1816704&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Http2OutputBuffer.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2OutputBuffer.java Thu Nov 30 10:20:50 2017
@@ -19,12 +19,14 @@ package org.apache.coyote.http2;
import java.io.IOException;
import java.nio.ByteBuffer;
+import org.apache.coyote.Response;
import org.apache.coyote.http.HttpOutputBuffer;
import org.apache.coyote.http11.OutputFilter;
import org.apache.coyote.http2.Stream.StreamOutputBuffer;
public class Http2OutputBuffer implements HttpOutputBuffer {
+ private final Response coyoteResponse;
private HttpOutputBuffer next;
@@ -43,13 +45,17 @@ public class Http2OutputBuffer implement
}
- public Http2OutputBuffer(StreamOutputBuffer streamOutputBuffer) {
+ public Http2OutputBuffer(Response coyoteResponse, StreamOutputBuffer streamOutputBuffer) {
+ this.coyoteResponse = coyoteResponse;
this.next = streamOutputBuffer;
}
@Override
public int doWrite(ByteBuffer chunk) throws IOException {
+ if (!coyoteResponse.isCommitted()) {
+ coyoteResponse.sendHeaders();
+ }
return next.doWrite(chunk);
}
Modified: tomcat/trunk/java/org/apache/coyote/http2/Stream.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Stream.java?rev=1816704&r1=1816703&r2=1816704&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Stream.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Stream.java Thu Nov 30 10:20:50 2017
@@ -77,7 +77,8 @@ class Stream extends AbstractStream impl
private final Response coyoteResponse = new Response();
private final StreamInputBuffer inputBuffer;
private final StreamOutputBuffer streamOutputBuffer = new StreamOutputBuffer();
- private final Http2OutputBuffer http2OutputBuffer = new Http2OutputBuffer(streamOutputBuffer);
+ private final Http2OutputBuffer http2OutputBuffer =
+ new Http2OutputBuffer(coyoteResponse, streamOutputBuffer);
Stream(Integer identifier, Http2UpgradeHandler handler) {
@@ -712,9 +713,6 @@ class Stream extends AbstractStream impl
throw new IllegalStateException(
sm.getString("stream.closed", getConnectionId(), getIdentifier()));
}
- if (!coyoteResponse.isCommitted()) {
- coyoteResponse.sendHeaders();
- }
int chunkLimit = chunk.limit();
int offset = 0;
while (chunk.remaining() > 0) {
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org