diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/SyslogAppenderTestBase.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/SyslogAppenderTestBase.java index 5af62582bf2..ff2e85ea7ca 100644 --- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/SyslogAppenderTestBase.java +++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/SyslogAppenderTestBase.java @@ -16,6 +16,8 @@ */ package org.apache.logging.log4j.core.appender; +import static java.util.concurrent.TimeUnit.MILLISECONDS; +import static org.awaitility.Awaitility.await; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -49,7 +51,7 @@ abstract class SyslogAppenderTestBase { "TestApp - Audit [Transfer@18060 Amount=\"200.00\" FromAccount=\"123457\" ToAccount=\"123456\"]" + "[RequestContext@18060 ipAddress=\"192.168.0.120\" loginId=\"JohnDoe\"] Transfer Complete"; protected LoggerContext ctx = LoggerContext.getContext(); - protected static final int DEFAULT_TIMEOUT_IN_MS = 100; + protected static final int DEFAULT_TIMEOUT_IN_MS = 3000; protected MockSyslogServer syslogServer; protected SyslogAppender appender; protected Logger root = ctx.getLogger("SyslogAppenderTest"); @@ -61,7 +63,7 @@ public static void setupClass() { LoggerContext.getContext().reconfigure(); } - protected void sendAndCheckLegacyBsdMessages(final List messagesToSend) throws InterruptedException { + protected void sendAndCheckLegacyBsdMessages(final List messagesToSend) { for (final String message : messagesToSend) { sendDebugLegacyBsdMessage(message); } @@ -69,7 +71,7 @@ protected void sendAndCheckLegacyBsdMessages(final List messagesToSend) checkTheEqualityOfSentAndReceivedMessages(Level.DEBUG); } - protected void sendAndCheckLegacyBsdMessage(final String message) throws InterruptedException { + protected void sendAndCheckLegacyBsdMessage(final String message) { sendDebugLegacyBsdMessage(message); checkTheNumberOfSentAndReceivedMessages(); checkTheEqualityOfSentAndReceivedMessages(Level.DEBUG); @@ -80,7 +82,7 @@ protected void sendDebugLegacyBsdMessage(final String message) { root.debug(message); } - protected void sendAndCheckStructuredMessages(final int numberOfMessages) throws InterruptedException { + protected void sendAndCheckStructuredMessages(final int numberOfMessages) { for (int i = 0; i < numberOfMessages; i++) { sendInfoStructuredMessage(); } @@ -88,7 +90,7 @@ protected void sendAndCheckStructuredMessages(final int numberOfMessages) throws checkTheEqualityOfSentAndReceivedMessages(Level.INFO); } - protected void sendAndCheckStructuredMessage() throws InterruptedException { + protected void sendAndCheckStructuredMessage() { sendInfoStructuredMessage(); checkTheNumberOfSentAndReceivedMessages(); checkTheEqualityOfSentAndReceivedMessages(Level.INFO); @@ -108,15 +110,13 @@ protected void sendInfoStructuredMessage() { root.info(MarkerManager.getMarker("EVENT"), msg); } - protected void checkTheNumberOfSentAndReceivedMessages() throws InterruptedException { - assertEquals( - sentMessages.size(), - getReceivedMessages(DEFAULT_TIMEOUT_IN_MS).size(), - "The number of received messages should be equal with the number of sent messages"); + protected void checkTheNumberOfSentAndReceivedMessages() { + await().atMost(DEFAULT_TIMEOUT_IN_MS, MILLISECONDS) + .until(() -> syslogServer.getMessageList().size() == sentMessages.size()); } - protected void checkTheEqualityOfSentAndReceivedMessages(final Level expectedLevel) throws InterruptedException { - final List receivedMessages = getReceivedMessages(DEFAULT_TIMEOUT_IN_MS); + protected void checkTheEqualityOfSentAndReceivedMessages(final Level expectedLevel) { + final List receivedMessages = getReceivedMessages(); assertNotNull(receivedMessages, "No messages received"); for (int i = 0; i < receivedMessages.size(); i++) { @@ -148,10 +148,7 @@ protected void initRootLogger(final Appender appender) { root.setLevel(Level.DEBUG); } - protected List getReceivedMessages(final int timeOutInMs) throws InterruptedException { - synchronized (syslogServer) { - syslogServer.wait(timeOutInMs); - } + protected List getReceivedMessages() { return syslogServer.getMessageList(); }