diff --git a/gclc/src/main/java/net/bigeon/gclc/utils/ReadingRunnable.java b/gclc/src/main/java/net/bigeon/gclc/utils/ReadingRunnable.java index d7678fc..812205e 100644 --- a/gclc/src/main/java/net/bigeon/gclc/utils/ReadingRunnable.java +++ b/gclc/src/main/java/net/bigeon/gclc/utils/ReadingRunnable.java @@ -177,7 +177,7 @@ public final class ReadingRunnable implements Runnable { } } - public void waitForDelivery(String message) throws InterruptedException { + public void waitForDelivery(final String message) throws InterruptedException { Object mLock; synchronized (messageBlockerLock) { if (!messageBlocker.containsKey(message)) { @@ -196,10 +196,11 @@ public final class ReadingRunnable implements Runnable { * @throws IOException if the pipe is closed */ public boolean hasMessage() throws IOException { synchronized (lock) { - if (!running) { + final boolean empty = messages.isEmpty(); + if (!running && empty) { throw new IOException(CLOSED_PIPE); } - return !messages.isEmpty(); + return !empty; } }