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