From d5f8186f0597dc2d89a3067352f9c7810d54cc4d Mon Sep 17 00:00:00 2001 From: Piotr Jarzemski Date: Mon, 15 Feb 2016 10:05:36 +0100 Subject: [PATCH] =str #19775 FilePublisher should not report EOF multiple times --- .../src/main/scala/akka/stream/impl/io/FilePublisher.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/akka-stream/src/main/scala/akka/stream/impl/io/FilePublisher.scala b/akka-stream/src/main/scala/akka/stream/impl/io/FilePublisher.scala index 54c54da084..1fa33ab7fe 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/io/FilePublisher.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/io/FilePublisher.scala @@ -83,7 +83,7 @@ private[akka] final class FilePublisher(f: File, completionPromise: Promise[IORe /** BLOCKING I/O READ */ @tailrec def readAhead(maxChunks: Int, chunks: Vector[ByteString]): Vector[ByteString] = - if (chunks.size <= maxChunks && isActive) { + if (chunks.size <= maxChunks && isActive && !eofEncountered) { (try chan.read(buf) catch { case NonFatal(ex) ⇒ onErrorThenStop(ex); Int.MinValue }) match { case -1 ⇒ // EOF eofReachedAtOffset = chan.position