Github user tillrohrmann commented on a diff in the pull request: https://github.com/apache/flink/pull/6071#discussion_r194660815 --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/io/network/buffer/ReadOnlySlicedNetworkBuffer.java --- @@ -75,12 +75,12 @@ private ReadOnlySlicedNetworkBuffer(ByteBuf buffer, int index, int length, int m @Override public ByteBuf unwrap() { - return super.unwrap().unwrap(); + return super.unwrap(); --- End diff -- But isn't it a bit counter-intuitive that you instantiate a `ReadOnlySlicedNetworkBuffer` with a `NetworkBuffer` and when you call `ReadOnlySlicedNetworkBuffer.unwrap` you don't get a `NetworkBuffer` back but a `SlicedByteBuf`? Thus, you need to know the internals of this class to know that you have to call twice `unwrap` to obtain the `NetworkBuffer`. This shows for example in the `NetworkBufferTest` where we always call `slice.unwrap().unwrap()`. What exactly did change with the structure of nested classes that this change is necessary?
---