flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-7515) allow actual 0-length content in NettyMessage#allocateBuffer()
Date Wed, 01 Nov 2017 08:29:00 GMT

    [ https://issues.apache.org/jira/browse/FLINK-7515?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16233771#comment-16233771
] 

ASF GitHub Bot commented on FLINK-7515:
---------------------------------------

Github user pnowojski commented on a diff in the pull request:

    https://github.com/apache/flink/pull/4592#discussion_r148203203
  
    --- 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 --
    
    import static?


> 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)

Mime
View raw message