Github user zentol commented on a diff in the pull request:
https://github.com/apache/flink/pull/6189#discussion_r197142993
--- Diff:
flink-runtime/src/main/java/org/apache/flink/runtime/rest/FileUploadHandler.java
---
@@ -106,7 +106,7 @@ protected void channelRead0(final ChannelHandlerContext
ctx, final HttpObject ms
final HttpContent httpContent = (HttpContent)
msg;
currentHttpPostRequestDecoder.offer(httpContent);
- while (currentHttpPostRequestDecoder.hasNext())
{
+ while (httpContent !=
LastHttpContent.EMPTY_LAST_CONTENT && currentHttpPostRequestDecoder.hasNext()) {
--- End diff --
As far as i can tell we are using the encoder correctly, but the decoder
usage wasn't written against the encoder, but (i guess) only against `curl` or
the web UI that never send an empty LAST_HTTP_CONTENT, but a
`DefaultLastHttpContent` instead.
Interestingly enough, if you use anything but the netty encoder, without an
`instanceof LastHttpContent` check it isn't possible to know whether the
decoder is done or not.
---