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.");
         }
     }
 

Reply via email to