Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimone Bordet2015-09-25 09:16:38 +0000
committerSimone Bordet2015-09-25 17:31:40 +0000
commit3201d0acd24efea32532b0d35c1b8ca74b4ee766 (patch)
tree325b5f97fdc071334bd7045bf695bc1179148f69 /jetty-http2/http2-http-client-transport
parent6544af8ce7245ffe5c46192b00aa313da8ad56db (diff)
downloadorg.eclipse.jetty.project-3201d0acd24efea32532b0d35c1b8ca74b4ee766.tar.gz
org.eclipse.jetty.project-3201d0acd24efea32532b0d35c1b8ca74b4ee766.tar.xz
org.eclipse.jetty.project-3201d0acd24efea32532b0d35c1b8ca74b4ee766.zip
477878 - HttpClient over HTTP/2 doesn't close upload stream.
Clarified the difference between last and consumed in HttpContent. Fixed HTTP/2 transport to behave correctly in case of last content.
Diffstat (limited to 'jetty-http2/http2-http-client-transport')
-rw-r--r--jetty-http2/http2-http-client-transport/src/main/java/org/eclipse/jetty/http2/client/http/HttpSenderOverHTTP2.java7
1 files changed, 5 insertions, 2 deletions
diff --git a/jetty-http2/http2-http-client-transport/src/main/java/org/eclipse/jetty/http2/client/http/HttpSenderOverHTTP2.java b/jetty-http2/http2-http-client-transport/src/main/java/org/eclipse/jetty/http2/client/http/HttpSenderOverHTTP2.java
index 1506f37f2c..a4cfaae397 100644
--- a/jetty-http2/http2-http-client-transport/src/main/java/org/eclipse/jetty/http2/client/http/HttpSenderOverHTTP2.java
+++ b/jetty-http2/http2-http-client-transport/src/main/java/org/eclipse/jetty/http2/client/http/HttpSenderOverHTTP2.java
@@ -64,9 +64,11 @@ public class HttpSenderOverHTTP2 extends HttpSender
if (content.hasContent() && !expects100Continue(request))
{
- if (content.advance())
+ boolean advanced = content.advance();
+ boolean lastContent = content.isLast();
+ if (advanced || lastContent)
{
- DataFrame dataFrame = new DataFrame(stream.getId(), content.getByteBuffer(), content.isLast());
+ DataFrame dataFrame = new DataFrame(stream.getId(), content.getByteBuffer(), lastContent);
stream.data(dataFrame, callback);
return;
}
@@ -80,6 +82,7 @@ public class HttpSenderOverHTTP2 extends HttpSender
callback.failed(failure);
}
};
+ // TODO optimize the send of HEADERS and DATA frames.
channel.getSession().newStream(headersFrame, promise, channel.getStreamListener());
}

Back to the top