From 6a5cc13f37bc6119329802ce8a7b560e8d34023c Mon Sep 17 00:00:00 2001 From: Haroon Khan Date: Sun, 21 Nov 2021 21:18:55 +0000 Subject: [PATCH 1/3] [JAVA-8353] Update the test to wait for assertion with timeout --- .../illegalmonitorstate/SynchronizedReceiver.java | 8 +++++--- .../illegalmonitorstate/SynchronizedSender.java | 8 +++++--- .../illegalmonitorstate/UnsynchronizedReceiver.java | 7 ++++--- .../illegalmonitorstate/UnsynchronizedSender.java | 7 ++++--- .../IllegalMonitorStateExceptionUnitTest.java | 8 +++++--- 5 files changed, 23 insertions(+), 15 deletions(-) diff --git a/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/illegalmonitorstate/SynchronizedReceiver.java b/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/illegalmonitorstate/SynchronizedReceiver.java index ff6b926cdc..8b0aa95153 100644 --- a/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/illegalmonitorstate/SynchronizedReceiver.java +++ b/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/illegalmonitorstate/SynchronizedReceiver.java @@ -4,7 +4,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class SynchronizedReceiver implements Runnable { - private static Logger log = LoggerFactory.getLogger(SynchronizedReceiver.class); + + private static final Logger LOG = LoggerFactory.getLogger(SynchronizedReceiver.class); + private final Data data; private String message; private boolean illegalMonitorStateExceptionOccurred; @@ -20,10 +22,10 @@ public class SynchronizedReceiver implements Runnable { data.wait(); this.message = data.receive(); } catch (InterruptedException e) { - log.error("thread was interrupted", e); + LOG.error("thread was interrupted", e); Thread.currentThread().interrupt(); } catch (IllegalMonitorStateException e) { - log.error("illegal monitor state exception occurred", e); + LOG.error("illegal monitor state exception occurred", e); illegalMonitorStateExceptionOccurred = true; } } diff --git a/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/illegalmonitorstate/SynchronizedSender.java b/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/illegalmonitorstate/SynchronizedSender.java index 1618bc8efa..8317b5ade7 100644 --- a/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/illegalmonitorstate/SynchronizedSender.java +++ b/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/illegalmonitorstate/SynchronizedSender.java @@ -4,7 +4,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class SynchronizedSender implements Runnable { - private static Logger log = LoggerFactory.getLogger(SynchronizedSender.class); + + private static final Logger LOG = LoggerFactory.getLogger(SynchronizedSender.class); + private final Data data; private boolean illegalMonitorStateExceptionOccurred; @@ -22,10 +24,10 @@ public class SynchronizedSender implements Runnable { data.notifyAll(); } catch (InterruptedException e) { - log.error("thread was interrupted", e); + LOG.error("thread was interrupted", e); Thread.currentThread().interrupt(); } catch (IllegalMonitorStateException e) { - log.error("illegal monitor state exception occurred", e); + LOG.error("illegal monitor state exception occurred", e); illegalMonitorStateExceptionOccurred = true; } } diff --git a/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/illegalmonitorstate/UnsynchronizedReceiver.java b/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/illegalmonitorstate/UnsynchronizedReceiver.java index 3a0b72e6cd..69fb363731 100644 --- a/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/illegalmonitorstate/UnsynchronizedReceiver.java +++ b/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/illegalmonitorstate/UnsynchronizedReceiver.java @@ -4,7 +4,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class UnsynchronizedReceiver implements Runnable { - private static Logger log = LoggerFactory.getLogger(UnsynchronizedReceiver.class); + private static final Logger LOG = LoggerFactory.getLogger(UnsynchronizedReceiver.class); + private final Data data; private String message; private boolean illegalMonitorStateExceptionOccurred; @@ -19,10 +20,10 @@ public class UnsynchronizedReceiver implements Runnable { data.wait(); this.message = data.receive(); } catch (InterruptedException e) { - log.error("thread was interrupted", e); + LOG.error("thread was interrupted", e); Thread.currentThread().interrupt(); } catch (IllegalMonitorStateException e) { - log.error("illegal monitor state exception occurred", e); + LOG.error("illegal monitor state exception occurred", e); illegalMonitorStateExceptionOccurred = true; } } diff --git a/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/illegalmonitorstate/UnsynchronizedSender.java b/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/illegalmonitorstate/UnsynchronizedSender.java index 7f15418bfa..b97453f655 100644 --- a/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/illegalmonitorstate/UnsynchronizedSender.java +++ b/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/illegalmonitorstate/UnsynchronizedSender.java @@ -4,7 +4,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class UnsynchronizedSender implements Runnable { - private static Logger log = LoggerFactory.getLogger(UnsynchronizedSender.class); + private static final Logger LOG = LoggerFactory.getLogger(UnsynchronizedSender.class); + private final Data data; private boolean illegalMonitorStateExceptionOccurred; @@ -21,10 +22,10 @@ public class UnsynchronizedSender implements Runnable { data.notifyAll(); } catch (InterruptedException e) { - log.error("thread was interrupted", e); + LOG.error("thread was interrupted", e); Thread.currentThread().interrupt(); } catch (IllegalMonitorStateException e) { - log.error("illegal monitor state exception occurred", e); + LOG.error("illegal monitor state exception occurred", e); illegalMonitorStateExceptionOccurred = true; } } diff --git a/core-java-modules/core-java-exceptions-3/src/test/java/com/baeldung/exceptions/illegalmonitorstate/IllegalMonitorStateExceptionUnitTest.java b/core-java-modules/core-java-exceptions-3/src/test/java/com/baeldung/exceptions/illegalmonitorstate/IllegalMonitorStateExceptionUnitTest.java index 82c00bc72f..d19c75b2fa 100644 --- a/core-java-modules/core-java-exceptions-3/src/test/java/com/baeldung/exceptions/illegalmonitorstate/IllegalMonitorStateExceptionUnitTest.java +++ b/core-java-modules/core-java-exceptions-3/src/test/java/com/baeldung/exceptions/illegalmonitorstate/IllegalMonitorStateExceptionUnitTest.java @@ -1,7 +1,10 @@ package com.baeldung.exceptions.illegalmonitorstate; +import com.google.common.util.concurrent.Uninterruptibles; import org.junit.jupiter.api.Test; +import java.time.Duration; + import static org.junit.jupiter.api.Assertions.*; public class IllegalMonitorStateExceptionUnitTest { @@ -20,10 +23,9 @@ public class IllegalMonitorStateExceptionUnitTest { senderThread.join(1000); receiverThread.join(1000); - - Thread.sleep(2000); - assertEquals("test", receiver.getMessage()); + // we need to wait for enough time so that sender has had a chance to send the data + assertTimeout(Duration.ofSeconds(5), () -> assertEquals("test", receiver.getMessage())); assertFalse(sender.hasIllegalMonitorStateExceptionOccurred()); assertFalse(receiver.hasIllegalMonitorStateExceptionOccurred()); } From af26a72a955fd1a0a5ed10c1bee2fc7b764b25de Mon Sep 17 00:00:00 2001 From: Haroon Khan Date: Sun, 21 Nov 2021 21:24:02 +0000 Subject: [PATCH 2/3] [JAVA-8353] Increase timeout to 10s --- .../IllegalMonitorStateExceptionUnitTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-java-modules/core-java-exceptions-3/src/test/java/com/baeldung/exceptions/illegalmonitorstate/IllegalMonitorStateExceptionUnitTest.java b/core-java-modules/core-java-exceptions-3/src/test/java/com/baeldung/exceptions/illegalmonitorstate/IllegalMonitorStateExceptionUnitTest.java index d19c75b2fa..28c317a1c9 100644 --- a/core-java-modules/core-java-exceptions-3/src/test/java/com/baeldung/exceptions/illegalmonitorstate/IllegalMonitorStateExceptionUnitTest.java +++ b/core-java-modules/core-java-exceptions-3/src/test/java/com/baeldung/exceptions/illegalmonitorstate/IllegalMonitorStateExceptionUnitTest.java @@ -25,7 +25,7 @@ public class IllegalMonitorStateExceptionUnitTest { receiverThread.join(1000); // we need to wait for enough time so that sender has had a chance to send the data - assertTimeout(Duration.ofSeconds(5), () -> assertEquals("test", receiver.getMessage())); + assertTimeout(Duration.ofSeconds(10), () -> assertEquals("test", receiver.getMessage())); assertFalse(sender.hasIllegalMonitorStateExceptionOccurred()); assertFalse(receiver.hasIllegalMonitorStateExceptionOccurred()); } From 6964f93f4efd276f31d8d3907eed4046967a86b6 Mon Sep 17 00:00:00 2001 From: Haroon Khan Date: Mon, 22 Nov 2021 08:05:55 +0000 Subject: [PATCH 3/3] [JAVA-8353] Code clean up --- .../IllegalMonitorStateExceptionUnitTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/core-java-modules/core-java-exceptions-3/src/test/java/com/baeldung/exceptions/illegalmonitorstate/IllegalMonitorStateExceptionUnitTest.java b/core-java-modules/core-java-exceptions-3/src/test/java/com/baeldung/exceptions/illegalmonitorstate/IllegalMonitorStateExceptionUnitTest.java index 28c317a1c9..bef90e671f 100644 --- a/core-java-modules/core-java-exceptions-3/src/test/java/com/baeldung/exceptions/illegalmonitorstate/IllegalMonitorStateExceptionUnitTest.java +++ b/core-java-modules/core-java-exceptions-3/src/test/java/com/baeldung/exceptions/illegalmonitorstate/IllegalMonitorStateExceptionUnitTest.java @@ -1,6 +1,5 @@ package com.baeldung.exceptions.illegalmonitorstate; -import com.google.common.util.concurrent.Uninterruptibles; import org.junit.jupiter.api.Test; import java.time.Duration;