From ba4ebe65190a02e5d55dce15794623620577426c Mon Sep 17 00:00:00 2001 From: Tobias Gesellchen Date: Tue, 14 Dec 2021 23:04:23 +0100 Subject: [PATCH 1/2] When reading frames: handle EOF silently, log other errors --- .../de/gesellix/docker/rawstream/FrameReader.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/engine/src/main/java/de/gesellix/docker/rawstream/FrameReader.java b/engine/src/main/java/de/gesellix/docker/rawstream/FrameReader.java index ee9b3f0e..79395c63 100644 --- a/engine/src/main/java/de/gesellix/docker/rawstream/FrameReader.java +++ b/engine/src/main/java/de/gesellix/docker/rawstream/FrameReader.java @@ -5,11 +5,16 @@ import okio.BufferedSource; import okio.Okio; import okio.Source; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import java.io.EOFException; import java.io.IOException; public class FrameReader implements Reader { + private final static Logger log = LoggerFactory.getLogger(FrameReader.class); + private final BufferedSource bufferedSource; private boolean expectMultiplexedResponse; @@ -25,7 +30,7 @@ public FrameReader(Source source, boolean expectMultiplexedResponse) { } @Override - public Frame readNext(Class type) throws IOException { + public Frame readNext(Class type) { if (expectMultiplexedResponse) { // See https://docs.docker.com/engine/api/v1.41/#operation/ContainerAttach for the stream format documentation. // header := [8]byte{STREAM_TYPE, 0, 0, 0, SIZE1, SIZE2, SIZE3, SIZE4} @@ -37,7 +42,11 @@ public Frame readNext(Class type) throws IOException { return new Frame(streamType, bufferedSource.readByteArray(frameSize)); } + catch (EOFException e) { + return null; + } catch (IOException e) { + log.error("error reading multiplexed frames", e); return null; } } From abcaff4405c072007d8ef253ff998ca65f179362 Mon Sep 17 00:00:00 2001 From: Tobias Gesellchen Date: Tue, 14 Dec 2021 23:05:25 +0100 Subject: [PATCH 2/2] Bump preferred OkHttp dependency to 4.9.3 --- engine/build.gradle.kts | 2 +- integrationtest/build.gradle.kts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/engine/build.gradle.kts b/engine/build.gradle.kts index 26575df1..7adcfa3b 100644 --- a/engine/build.gradle.kts +++ b/engine/build.gradle.kts @@ -29,7 +29,7 @@ dependencies { implementation(it) { version { strictly("[4,5)") - prefer("4.9.2") + prefer("4.9.3") } } } diff --git a/integrationtest/build.gradle.kts b/integrationtest/build.gradle.kts index 6e0461e2..df72ddec 100644 --- a/integrationtest/build.gradle.kts +++ b/integrationtest/build.gradle.kts @@ -28,7 +28,7 @@ dependencies { implementation(it) { version { strictly("[4,5)") - prefer("4.9.2") + prefer("4.9.3") } } }