diff --git a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/remoting/impl/netty/Epoll.java b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/remoting/impl/netty/Epoll.java index 96af01722d..40612d40f6 100644 --- a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/remoting/impl/netty/Epoll.java +++ b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/remoting/impl/netty/Epoll.java @@ -18,20 +18,28 @@ package org.apache.activemq.artemis.core.remoting.impl.netty; import org.apache.activemq.artemis.utils.Env; +import org.jboss.logging.Logger; /** * Tells if {@code netty-transport-native-epoll} is supported. */ public final class Epoll { - private static final boolean IS_AVAILABLE_EPOLL; + private static final Logger logger = Logger.getLogger(Epoll.class); + private static final boolean IS_AVAILABLE_EPOLL = isIsAvailableEpoll(); - static { - if (Env.is64BitJvm() && Env.isLinuxOs()) { - IS_AVAILABLE_EPOLL = io.netty.channel.epoll.Epoll.isAvailable(); - } else { - IS_AVAILABLE_EPOLL = false; + private static boolean isIsAvailableEpoll() { + try { + if (Env.is64BitJvm() && Env.isLinuxOs()) { + return io.netty.channel.epoll.Epoll.isAvailable(); + } else { + return false; + } + } catch (Throwable e) { + logger.warn(e.getMessage(), e); + return false; } + } private Epoll() { diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/JournalCrashTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/JournalCrashTest.java index 88bfd7a7ce..49453d3d37 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/JournalCrashTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/JournalCrashTest.java @@ -164,7 +164,7 @@ public class JournalCrashTest extends ActiveMQTestBase { */ private void runExternalProcess(final String tempDir, final int start, final int end) throws Exception { System.err.println("running external process..."); - Process process = SpawnedVMSupport.spawnVM(this.getClass().getCanonicalName(), "-Xms128m", "-Xmx128m", new String[]{}, true, true, tempDir, Integer.toString(start), Integer.toString(end)); + Process process = SpawnedVMSupport.spawnVM(this.getClass().getCanonicalName(), "-Xms128m", "-Xmx128m", new String[]{}, true, true, true, tempDir, Integer.toString(start), Integer.toString(end)); Assert.assertEquals(100, process.waitFor()); } diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/RealNodeManagerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/RealNodeManagerTest.java index 34849321d7..1a49f94fcf 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/RealNodeManagerTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/RealNodeManagerTest.java @@ -45,7 +45,7 @@ public class RealNodeManagerTest extends NodeManagerTest { public void performWork(NodeManagerAction... actions) throws Exception { List processes = new ArrayList<>(); for (NodeManagerAction action : actions) { - Process p = SpawnedVMSupport.spawnVM(NodeManagerAction.class.getName(), "-Xms512m", "-Xmx512m", new String[0], true, true, action.getWork()); + Process p = SpawnedVMSupport.spawnVM(NodeManagerAction.class.getName(), "-Xms512m", "-Xmx512m", new String[0], true, true, true, action.getWork()); processes.add(p); } for (Process process : processes) { diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/security/NettySecurityClientTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/security/NettySecurityClientTest.java index 8c876b23a9..a908f79a58 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/security/NettySecurityClientTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/security/NettySecurityClientTest.java @@ -66,14 +66,13 @@ public class NettySecurityClientTest extends ActiveMQTestBase { // spawn a JVM that creates a client with a security manager which sends and receives a // test message - Process p = SpawnedVMSupport.spawnVM(SimpleClient.class.getName(), "-Xms512m", "-Xmx512m", vmargs, false, true, new String[]{NETTY_CONNECTOR_FACTORY}); + Process p = SpawnedVMSupport.spawnVM(SimpleClient.class.getName(), "-Xms512m", "-Xmx512m", vmargs, true, true, false, new String[]{NETTY_CONNECTOR_FACTORY}); InputStreamReader isr = new InputStreamReader(p.getInputStream()); BufferedReader br = new BufferedReader(isr); String line = null; while ((line = br.readLine()) != null) { - //System.out.println(line); line = line.replace('|', '\n'); if (line.startsWith("Listening")) { continue; diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/security/SimpleClient.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/security/SimpleClient.java index 0dd9eb6d35..65c980b534 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/security/SimpleClient.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/security/SimpleClient.java @@ -37,12 +37,14 @@ final class SimpleClient { if (args.length != 1) { throw new Exception("require 1 argument: connector factory class name"); } + + System.out.println("I'm here"); String connectorFactoryClassName = args[0]; String queueName = RandomUtil.randomString(); String messageText = RandomUtil.randomString(); - ServerLocator locator = ActiveMQClient.createServerLocatorWithoutHA(new TransportConfiguration(connectorFactoryClassName)); + ServerLocator locator = ActiveMQClient.createServerLocatorWithoutHA(new TransportConfiguration(connectorFactoryClassName)).setReconnectAttempts(1).setInitialConnectAttempts(1); try { ClientSessionFactory sf = locator.createSessionFactory(); ClientSession session = sf.createSession(false, true, true); @@ -77,6 +79,7 @@ final class SimpleClient { locator.close(); } } catch (Throwable t) { + t.printStackTrace(System.out); String allStack = t.getMessage() + "|"; StackTraceElement[] stackTrace = t.getStackTrace(); diff --git a/tests/integration-tests/src/test/resources/restricted-security-client.policy b/tests/integration-tests/src/test/resources/restricted-security-client.policy index ecd4081c39..4b5d5d753c 100644 --- a/tests/integration-tests/src/test/resources/restricted-security-client.policy +++ b/tests/integration-tests/src/test/resources/restricted-security-client.policy @@ -29,6 +29,9 @@ grant { permission java.util.PropertyPermission "activemq.artemis.client.global.thread.pool.max.size", "read"; permission java.util.PropertyPermission "activemq.artemis.client.global.scheduled.thread.pool.core.size", "read"; permission java.util.PropertyPermission "io.netty.eventLoopThreads", "read"; + permission java.util.PropertyPermission "io.netty.maxThreadLocalCharBufferSize", "read"; + permission java.util.PropertyPermission "io.netty.batch.bytes", "read"; + permission java.util.PropertyPermission "com.ibm.vm.bitmode", "read"; permission java.util.PropertyPermission "io.netty.noUnsafe", "read"; permission java.util.PropertyPermission "io.netty.tryUnsafe", "read"; permission java.util.PropertyPermission "org.jboss.netty.tryUnsafe", "read"; diff --git a/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/util/SpawnedVMSupport.java b/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/util/SpawnedVMSupport.java index 1ed0e73f4c..c1153bc25f 100644 --- a/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/util/SpawnedVMSupport.java +++ b/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/util/SpawnedVMSupport.java @@ -57,7 +57,7 @@ public final class SpawnedVMSupport { final String[] vmargs, final boolean logOutput, final String... args) throws Exception { - return SpawnedVMSupport.spawnVM(className, "-Xms512m", "-Xmx512m", vmargs, logOutput, true, args); + return SpawnedVMSupport.spawnVM(className, "-Xms512m", "-Xmx512m", vmargs, logOutput, true, true, args); } public static Process spawnVMWithLogMacher(String wordMatch, @@ -66,7 +66,7 @@ public final class SpawnedVMSupport { final String[] vmargs, final boolean logOutput, final String... args) throws Exception { - return SpawnedVMSupport.spawnVM(wordMatch, runnable, className, "-Xms512m", "-Xmx512m", vmargs, logOutput, true, args); + return SpawnedVMSupport.spawnVM(wordMatch, runnable, className, "-Xms512m", "-Xmx512m", vmargs, logOutput, true, true, args); } public static Process spawnVM(final String className, @@ -75,8 +75,9 @@ public final class SpawnedVMSupport { final String[] vmargs, final boolean logOutput, final boolean logErrorOutput, + final boolean useLogging, final String... args) throws Exception { - return spawnVM(null, null, className, memoryArg1, memoryArg2, vmargs, logOutput, logErrorOutput, args); + return spawnVM(null, null, className, memoryArg1, memoryArg2, vmargs, logOutput, logErrorOutput, useLogging, args); } public static Process spawnVM(final String wordMatch, @@ -87,6 +88,7 @@ public final class SpawnedVMSupport { final String[] vmargs, final boolean logOutput, final boolean logErrorOutput, + final boolean useLogging, final String... args) throws Exception { ProcessBuilder builder = new ProcessBuilder(); final String javaPath = Paths.get(System.getProperty("java.home"), "bin", "java").toAbsolutePath().toString(); @@ -102,8 +104,10 @@ public final class SpawnedVMSupport { } // The logs will be huge if you don't set this - commandList.add("-Djava.util.logging.manager=org.jboss.logmanager.LogManager"); - commandList.add("-Dlogging.configuration=file:../config/logging.properties"); + if (useLogging) { + commandList.add("-Djava.util.logging.manager=org.jboss.logmanager.LogManager"); + commandList.add("-Dlogging.configuration=file:../config/logging.properties"); + } commandList.add("-Djava.io.tmpdir=" + System.getProperty("java.io.tmpdir", "./tmp")); commandList.add("-Djava.library.path=" + System.getProperty("java.library.path", "./native/bin"));