flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From NicoK <...@git.apache.org>
Subject [GitHub] flink pull request #4592: [FLINK-7515][network] allow actual 0-length conten...
Date Wed, 01 Nov 2017 09:15:12 GMT
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...


---

Mime
View raw message