Repository: logging-log4j2 Updated Branches: refs/heads/master 74979df69 -> 0c3288d83
Make Syslog tests more reliable Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/0c3288d8 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/0c3288d8 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/0c3288d8 Branch: refs/heads/master Commit: 0c3288d837fdbde38b702cb8d98cb7f7d1171512 Parents: 74979df Author: Mikael Ståldal <mik...@staldal.nu> Authored: Sun Nov 19 17:07:06 2017 +0100 Committer: Mikael Ståldal <mik...@staldal.nu> Committed: Sun Nov 19 17:07:06 2017 +0100 ---------------------------------------------------------------------- .../log4j/core/net/mock/MockSyslogServer.java | 2 +- .../core/net/mock/MockTcpSyslogServer.java | 4 ++-- .../core/net/mock/MockTlsSyslogServer.java | 22 ++++++++++++++++---- .../core/net/mock/MockUdpSyslogServer.java | 6 +++--- 4 files changed, 24 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0c3288d8/log4j-core/src/test/java/org/apache/logging/log4j/core/net/mock/MockSyslogServer.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/net/mock/MockSyslogServer.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/net/mock/MockSyslogServer.java index caecab9..843f7df 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/net/mock/MockSyslogServer.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/net/mock/MockSyslogServer.java @@ -19,7 +19,7 @@ package org.apache.logging.log4j.core.net.mock; import java.util.ArrayList; import java.util.List; -public class MockSyslogServer extends Thread { +public abstract class MockSyslogServer extends Thread { protected List<String> messageList; protected int port; private final int numberOfMessagesToReceive; http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0c3288d8/log4j-core/src/test/java/org/apache/logging/log4j/core/net/mock/MockTcpSyslogServer.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/net/mock/MockTcpSyslogServer.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/net/mock/MockTcpSyslogServer.java index f68abf4..be79192 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/net/mock/MockTcpSyslogServer.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/net/mock/MockTcpSyslogServer.java @@ -24,7 +24,7 @@ import java.net.Socket; public class MockTcpSyslogServer extends MockSyslogServer { private final ServerSocket sock; - private boolean shutdown = false; + private volatile boolean shutdown = false; private Thread thread; public MockTcpSyslogServer(final int numberOfMessagesToReceive, final int port) throws IOException { @@ -44,7 +44,7 @@ public class MockTcpSyslogServer extends MockSyslogServer { try { thread.join(100); } catch (InterruptedException ie) { - System.out.println("Shutdown of server thread failed."); + System.out.println("Shutdown of TCP server thread failed."); } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0c3288d8/log4j-core/src/test/java/org/apache/logging/log4j/core/net/mock/MockTlsSyslogServer.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/net/mock/MockTlsSyslogServer.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/net/mock/MockTlsSyslogServer.java index 7bcad56..b96b4f5 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/net/mock/MockTlsSyslogServer.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/net/mock/MockTlsSyslogServer.java @@ -36,6 +36,9 @@ public class MockTlsSyslogServer extends MockSyslogServer { private final List<String> messageList = new ArrayList<>(); private TlsSyslogInputStreamReaderBase syslogReader; + private volatile boolean shutdown = false; + private Thread thread; + private TlsSyslogMessageFormat messageFormat = TlsSyslogMessageFormat.SYSLOG; private final int loopLen; @@ -48,21 +51,29 @@ public class MockTlsSyslogServer extends MockSyslogServer { @Override public void shutdown() { + this.shutdown = true; try { try { this.serverSocket.close(); } catch (final Exception e) { - + e.printStackTrace(); } this.interrupt(); } catch (final Exception e) { e.printStackTrace(); } + try { + thread.join(100); + } catch (InterruptedException ie) { + System.out.println("Shutdown of TLS server thread failed."); + } } @Override public void run() { + System.out.println("TLS Server Started"); + this.thread = Thread.currentThread(); try { waitForConnection(); processFrames(); @@ -71,6 +82,7 @@ public class MockTlsSyslogServer extends MockSyslogServer { } finally { closeSockets(); } + System.out.println("TLS Server stopped"); } private void waitForConnection() throws IOException { @@ -95,12 +107,15 @@ public class MockTlsSyslogServer extends MockSyslogServer { try { clientSocket.close(); } - catch(final Exception e) {} + catch(final Exception e) { + e.printStackTrace(); + } } if (serverSocket != null) { try { serverSocket.close(); } catch (final Exception e) { + e.printStackTrace(); } } } @@ -108,7 +123,7 @@ public class MockTlsSyslogServer extends MockSyslogServer { private synchronized void processFrames() throws IOException { try { int count = 0; - while (true) { + while (!shutdown) { String message = Strings.EMPTY; message = syslogReader.read(); messageList.add(message); @@ -123,7 +138,6 @@ public class MockTlsSyslogServer extends MockSyslogServer { this.notify(); throw new IOException(e); } - return; } private boolean isEndOfMessages(final int count) { http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0c3288d8/log4j-core/src/test/java/org/apache/logging/log4j/core/net/mock/MockUdpSyslogServer.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/net/mock/MockUdpSyslogServer.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/net/mock/MockUdpSyslogServer.java index af38cf6..fb6090f 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/net/mock/MockUdpSyslogServer.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/net/mock/MockUdpSyslogServer.java @@ -24,7 +24,7 @@ import org.apache.logging.log4j.core.util.Throwables; public class MockUdpSyslogServer extends MockSyslogServer { private final DatagramSocket socket; - private boolean shutdown = false; + private volatile boolean shutdown = false; private Thread thread; public MockUdpSyslogServer(final int numberOfMessagesToReceive, final int port) throws SocketException { @@ -35,12 +35,12 @@ public class MockUdpSyslogServer extends MockSyslogServer { @Override public void shutdown() { this.shutdown = true; - thread.interrupt(); socket.close(); + thread.interrupt(); try { thread.join(100); } catch (InterruptedException ie) { - System.out.println("Unable to shutdown server"); + System.out.println("Shutdown of UDP server thread failed."); } }