From b2e852c42311847040e38da1df8e12b016a02f8c Mon Sep 17 00:00:00 2001 From: Kanstantsin Shautsou Date: Tue, 1 Mar 2016 01:24:08 +0300 Subject: [PATCH] Fix NegativeArraySizeException in awaitCompletion() Signed-off-by: Kanstantsin Shautsou --- .../com/github/dockerjava/core/command/FrameReader.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/github/dockerjava/core/command/FrameReader.java b/src/main/java/com/github/dockerjava/core/command/FrameReader.java index 1e8ac0930..9c9c31e74 100644 --- a/src/main/java/com/github/dockerjava/core/command/FrameReader.java +++ b/src/main/java/com/github/dockerjava/core/command/FrameReader.java @@ -7,6 +7,8 @@ import com.github.dockerjava.api.model.Frame; import com.github.dockerjava.api.model.StreamType; +import javax.annotation.CheckForNull; + /** * Breaks the input into frame. Similar to how a buffered reader would readLies. *

@@ -42,14 +44,16 @@ private static StreamType streamType(byte streamType) { /** * @return A frame, or null if no more frames. */ + @CheckForNull public Frame readFrame() throws IOException { if (rawStreamDetected) { - int read = inputStream.read(rawBuffer); + if (read == -1) { + return null; + } return new Frame(StreamType.RAW, Arrays.copyOf(rawBuffer, read)); - } else { byte[] header = new byte[HEADER_SIZE];