You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jb...@apache.org on 2021/03/15 06:56:34 UTC

[activemq] branch activemq-5.16.x updated: AMQ-8184 - Re-enable NIO tests

This is an automated email from the ASF dual-hosted git repository.

jbonofre pushed a commit to branch activemq-5.16.x
in repository https://gitbox.apache.org/repos/asf/activemq.git


The following commit(s) were added to refs/heads/activemq-5.16.x by this push:
     new 34475db  AMQ-8184 - Re-enable NIO tests
34475db is described below

commit 34475dbde316d5d88f4cd754293a1640bb14bb98
Author: Christopher L. Shannon (cshannon) <ch...@gmail.com>
AuthorDate: Thu Mar 11 10:53:51 2021 -0500

    AMQ-8184 - Re-enable NIO tests
    
    Re-enable the nio transport tests in activemq-unit-tests by default to
    catch transport errors. Also fix broken tests
    
    (cherry picked from commit 2cf3decd8e59a52ba135d8194279b6a6117d0e9c)
---
 .../java/org/apache/activemq/broker/TransportConnector.java   |  2 +-
 .../transport/auto/nio/AutoNIOSSLTransportServer.java         | 11 +++++++++--
 activemq-unit-tests/pom.xml                                   |  2 --
 .../org/apache/activemq/transport/nio/NIOSSLBasicTest.java    |  2 +-
 .../apache/activemq/transport/nio/NIOSSLConcurrencyTest.java  |  2 +-
 5 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/activemq-broker/src/main/java/org/apache/activemq/broker/TransportConnector.java b/activemq-broker/src/main/java/org/apache/activemq/broker/TransportConnector.java
index 270d47d..3358eee 100644
--- a/activemq-broker/src/main/java/org/apache/activemq/broker/TransportConnector.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/broker/TransportConnector.java
@@ -266,7 +266,7 @@ public class TransportConnector implements Connector, BrokerServiceAware {
         LOG.info("Connector {} started", getName());
     }
 
-    static Throwable getRootCause(final Throwable throwable) {
+    public static Throwable getRootCause(final Throwable throwable) {
         final List<Throwable> list = getThrowableList(throwable);
         return list.isEmpty() ? null : list.get(list.size() - 1);
     }
diff --git a/activemq-broker/src/main/java/org/apache/activemq/transport/auto/nio/AutoNIOSSLTransportServer.java b/activemq-broker/src/main/java/org/apache/activemq/transport/auto/nio/AutoNIOSSLTransportServer.java
index 78d1de2..a74f881 100644
--- a/activemq-broker/src/main/java/org/apache/activemq/transport/auto/nio/AutoNIOSSLTransportServer.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/transport/auto/nio/AutoNIOSSLTransportServer.java
@@ -15,6 +15,7 @@ import javax.net.ssl.SSLEngine;
 
 import org.apache.activemq.broker.BrokerService;
 import org.apache.activemq.broker.BrokerServiceAware;
+import org.apache.activemq.broker.TransportConnector;
 import org.apache.activemq.transport.Transport;
 import org.apache.activemq.transport.auto.AutoTcpTransportServer;
 import org.apache.activemq.transport.nio.AutoInitNioSSLTransport;
@@ -25,6 +26,8 @@ import org.apache.activemq.transport.tcp.TcpTransportFactory;
 import org.apache.activemq.transport.tcp.TcpTransportServer;
 import org.apache.activemq.util.IntrospectionSupport;
 import org.apache.activemq.wireformat.WireFormat;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -44,6 +47,7 @@ import org.apache.activemq.wireformat.WireFormat;
  */
 public class AutoNIOSSLTransportServer extends AutoTcpTransportServer {
 
+    private static final Logger LOG = LoggerFactory.getLogger(AutoNIOSSLTransportServer.class);
     private SSLContext context;
 
     public AutoNIOSSLTransportServer(SSLContext context, TcpTransportFactory transportFactory, URI location, ServerSocketFactory serverSocketFactory,
@@ -118,8 +122,11 @@ public class AutoNIOSSLTransportServer extends AutoTcpTransportServer {
             public void run() {
                 try {
                     in.start();
-                } catch (Exception e) {
-                    throw new IllegalStateException("Could not complete Transport start", e);
+                } catch (Exception error) {
+                    LOG.warn("Could not accept connection {}: {} ({})",
+                            (in.getRemoteAddress() == null ? "" : "from " + in.getRemoteAddress()), error.getMessage(),
+                            TransportConnector.getRootCause(error).getMessage());
+                    throw new IllegalStateException("Could not complete Transport start", error);
                 }
 
                 int attempts = 0;
diff --git a/activemq-unit-tests/pom.xml b/activemq-unit-tests/pom.xml
index 680c3d4..1920f0d 100644
--- a/activemq-unit-tests/pom.xml
+++ b/activemq-unit-tests/pom.xml
@@ -654,8 +654,6 @@
                 <exclude>**/SSHTunnelNetworkReconnectTest.*</exclude>
                 <!-- http://issues.apache.org/activemq/browse/AMQ-1027 -->
                 <exclude>**/FailoverConsumerTest.*</exclude>
-                <!-- The NIO implemenation is not working properly on OS X.. -->
-                <exclude>**/nio/**</exclude>
                 <exclude>**/NioQueueSubscriptionTest.*/</exclude>
                 <!-- A test used for memory profiling only. -->
                 <exclude>**/NetworkConnectionsCleanedupTest.*/**</exclude>
diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/transport/nio/NIOSSLBasicTest.java b/activemq-unit-tests/src/test/java/org/apache/activemq/transport/nio/NIOSSLBasicTest.java
index 01c5e57..2c64eb3 100644
--- a/activemq-unit-tests/src/test/java/org/apache/activemq/transport/nio/NIOSSLBasicTest.java
+++ b/activemq-unit-tests/src/test/java/org/apache/activemq/transport/nio/NIOSSLBasicTest.java
@@ -117,7 +117,7 @@ public class NIOSSLBasicTest {
         final DefaultTestAppender appender = new DefaultTestAppender() {
             @Override
             public void doAppend(LoggingEvent event) {
-                if (event.getLevel().equals(Level.ERROR) && event.getRenderedMessage().contains("Could not accept connection")) {
+                if (event.getLevel().equals(Level.WARN) && event.getRenderedMessage().contains("Could not accept connection")) {
                     gotLogMessage.countDown();
                     if (event.getRenderedMessage().contains("tcp")) {
                         // got remote address
diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/transport/nio/NIOSSLConcurrencyTest.java b/activemq-unit-tests/src/test/java/org/apache/activemq/transport/nio/NIOSSLConcurrencyTest.java
index 1ade516..59abcd3 100644
--- a/activemq-unit-tests/src/test/java/org/apache/activemq/transport/nio/NIOSSLConcurrencyTest.java
+++ b/activemq-unit-tests/src/test/java/org/apache/activemq/transport/nio/NIOSSLConcurrencyTest.java
@@ -70,7 +70,7 @@ public class NIOSSLConcurrencyTest extends TestCase {
         broker = new BrokerService();
         broker.setPersistent(false);
         broker.setUseJmx(false);
-        TransportConnector connector = broker.addConnector("nio+ssl://localhost:0?transport.needClientAuth=true&transport.enabledCipherSuites=SSL_RSA_WITH_RC4_128_SHA,SSL_DH_anon_WITH_3DES_EDE_CBC_SHA");
+        TransportConnector connector = broker.addConnector("nio+ssl://localhost:0?socket.verifyHostName=false&transport.needClientAuth=true");
         broker.start();
         broker.waitUntilStarted();