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..9e0fdce9b78 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 @@ -43,13 +43,16 @@ import org.apache.logging.log4j.util.Strings; import org.junit.jupiter.api.BeforeAll; +import static java.util.concurrent.TimeUnit.MILLISECONDS; +import static org.awaitility.Awaitility.await; + @UsingStatusListener abstract class SyslogAppenderTestBase { protected static final String line1 = "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 = 500; protected MockSyslogServer syslogServer; protected SyslogAppender appender; protected Logger root = ctx.getLogger("SyslogAppenderTest"); @@ -61,7 +64,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 +72,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 +83,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 +91,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 +111,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 +149,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(); }