Skip to content

NegativeArraySizeException with awaitCompleted() #476

Description

@KostyaSha

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);
        }
    }

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions