[FLINK-8584] handle read-only buffers in deserializer
Project: http://git-wip-us.apache.org/repos/asf/flink/repo Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/329f0961 Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/329f0961 Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/329f0961 Branch: refs/heads/master Commit: 329f096149a83e73b38a4efef607199673e429ca Parents: eb96d5d Author: Piotr Nowojski <piotr.nowoj...@gmail.com> Authored: Wed Jan 24 15:41:22 2018 +0100 Committer: Piotr Nowojski <piotr.nowoj...@gmail.com> Committed: Mon Feb 19 12:21:26 2018 +0100 ---------------------------------------------------------------------- .../java/org/apache/flink/core/memory/DataInputDeserializer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flink/blob/329f0961/flink-core/src/main/java/org/apache/flink/core/memory/DataInputDeserializer.java ---------------------------------------------------------------------- diff --git a/flink-core/src/main/java/org/apache/flink/core/memory/DataInputDeserializer.java b/flink-core/src/main/java/org/apache/flink/core/memory/DataInputDeserializer.java index 088f9d2..11973e8 100644 --- a/flink-core/src/main/java/org/apache/flink/core/memory/DataInputDeserializer.java +++ b/flink-core/src/main/java/org/apache/flink/core/memory/DataInputDeserializer.java @@ -64,7 +64,8 @@ public class DataInputDeserializer implements DataInputView, java.io.Serializabl this.buffer = buffer.array(); this.position = buffer.arrayOffset() + buffer.position(); this.end = this.position + buffer.remaining(); - } else if (buffer.isDirect()) { + } else if (buffer.isDirect() || buffer.isReadOnly()) { + // TODO: FLINK-8585 handle readonly and other non array based buffers more efficiently without data copy this.buffer = new byte[buffer.remaining()]; this.position = 0; this.end = this.buffer.length;