NegativeArraySizeException with awaitCompleted()

FrameReader:

    /**
     * @return A frame, or null if no more frames.
     */
    public Frame readFrame() throws IOException {

        if (rawStreamDetected) { // true

            int read = inputStream.read(rawBuffer); // -1

            return new Frame(StreamType.RAW, Arrays.copyOf(rawBuffer, read)); //  Exception!

        } else {

Stacktrace:

java.lang.NegativeArraySizeException
    at java.util.Arrays.copyOf(Arrays.java:2271)
    at com.github.dockerjava.core.command.FrameReader.readFrame(FrameReader.java:51)
    at com.github.dockerjava.core.async.FrameStreamProcessor.processResponseStream(FrameStreamProcessor.java:35)
    at com.github.dockerjava.jaxrs.async.AbstractCallbackNotifier.call(AbstractCallbackNotifier.java:62)
    at com.github.dockerjava.jaxrs.async.AbstractCallbackNotifier.call(AbstractCallbackNotifier.java:22)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

Code example:

     StringBuilder stringBuilder = new StringBuilder();
        final StringBuilderLogReader callback = new StringBuilderLogReader(stringBuilder);
        dockerClient.logContainerCmd(containerId)
                .withStdErr(true)
                .withStdOut(true)
                .withTailAll()
                .exec(callback)
                .awaitCompletion();


    private static class StringBuilderLogReader extends LogContainerResultCallback {
        public StringBuilder builder;

        public StringBuilderLogReader(StringBuilder builder) {
            this.builder = builder;
        }

        @Override
        public void onNext(Frame item) {
            builder.append(new String(item.getPayload()).trim());
            super.onNext(item);
        }
    }