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()); }