[
https://issues.apache.org/jira/browse/FLINK-7515?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16233816#comment-16233816
]
ASF GitHub Bot commented on FLINK-7515:
---------------------------------------
Github user NicoK commented on a diff in the pull request:
https://github.com/apache/flink/pull/4592#discussion_r148212023
--- Diff:
flink-runtime/src/main/java/org/apache/flink/runtime/io/network/netty/NettyMessage.java
---
@@ -64,12 +65,53 @@
//
------------------------------------------------------------------------
+ /**
+ * Allocates a new (header and contents) buffer and adds some header
information for the frame
+ * decoder.
+ *
+ * <p>Before sending the buffer, you must write the actual length after
adding the contents as
+ * an integer to position <tt>0</tt>!
+ *
+ * @param allocator
+ * byte buffer allocator to use
+ * @param id
+ * {@link NettyMessage} subclass ID
+ *
+ * @return a newly allocated direct buffer with header data written for
{@link
+ * NettyMessageDecoder}
+ */
private static ByteBuf allocateBuffer(ByteBufAllocator allocator, byte
id) {
- return allocateBuffer(allocator, id, 0);
+ return allocateBuffer(allocator, id, -1);
}
+ /**
+ * Allocates a new (header and contents) buffer and adds some header
information for the frame
+ * decoder.
+ *
+ * <p>If the <tt>length</tt> is unknown, you must write the actual
length after adding the
+ * contents as an integer to position <tt>0</tt>!
+ *
+ * @param allocator
+ * byte buffer allocator to use
+ * @param id
+ * {@link NettyMessage} subclass ID
+ * @param length
+ * content length (or <tt>-1</tt> if unknown)
+ *
+ * @return a newly allocated direct buffer with header data written for
{@link
+ * NettyMessageDecoder}
+ */
private static ByteBuf allocateBuffer(ByteBufAllocator allocator, byte
id, int length) {
- final ByteBuf buffer = length != 0 ?
allocator.directBuffer(HEADER_LENGTH + length) : allocator.directBuffer();
+ Preconditions.checkArgument(length <= Integer.MAX_VALUE -
HEADER_LENGTH);
--- End diff --
why not...
> allow actual 0-length content in NettyMessage#allocateBuffer()
> --------------------------------------------------------------
>
> Key: FLINK-7515
> URL: https://issues.apache.org/jira/browse/FLINK-7515
> Project: Flink
> Issue Type: Sub-task
> Components: Network
> Affects Versions: 1.4.0
> Reporter: Nico Kruber
> Assignee: Nico Kruber
> Priority: Minor
>
> Previously, length {{0}} meant "unknown content length" but there are cases
> where the actual length is 0 and we do not need a larger buffer. Let's use
> {{-1}} for tagging the special case instead.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)