From 56750f13d1c156b8d72e7be869049911bebbddb5 Mon Sep 17 00:00:00 2001 From: Ulisses Lima Date: Mon, 10 Apr 2023 14:17:51 -0300 Subject: [PATCH] check client still readable --- .../src/main/java/com/baeldung/selector/EchoServer.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core-java-modules/core-java-nio-2/src/main/java/com/baeldung/selector/EchoServer.java b/core-java-modules/core-java-nio-2/src/main/java/com/baeldung/selector/EchoServer.java index 9e9edcd0ba..c8b638dc04 100644 --- a/core-java-modules/core-java-nio-2/src/main/java/com/baeldung/selector/EchoServer.java +++ b/core-java-modules/core-java-nio-2/src/main/java/com/baeldung/selector/EchoServer.java @@ -45,8 +45,9 @@ public class EchoServer { private static void answerWithEcho(ByteBuffer buffer, SelectionKey key) throws IOException { SocketChannel client = (SocketChannel) key.channel(); - client.read(buffer); - if (new String(buffer.array()).trim().equals(POISON_PILL)) { + int r = client.read(buffer); + if (r == -1 || new String(buffer.array()).trim() + .equals(POISON_PILL)) { client.close(); System.out.println("Not accepting client messages anymore"); } else {