diff --git a/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/JGroupsBroadcastEndpoint.java b/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/JGroupsBroadcastEndpoint.java index 33e9fdf8af..4989402624 100644 --- a/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/JGroupsBroadcastEndpoint.java +++ b/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/JGroupsBroadcastEndpoint.java @@ -91,7 +91,7 @@ public abstract class JGroupsBroadcastEndpoint implements BroadcastEndpoint } internalOpen(); receiver = new JGroupsReceiver(); - channel.setReceiver(receiver); + channel.addReceiver(receiver); clientOpened = true; } @@ -164,7 +164,7 @@ public abstract class JGroupsBroadcastEndpoint implements BroadcastEndpoint int refCount = 1; JChannel channel; String channelName; - List receivers = new ArrayList(); + final List receivers = new ArrayList(); public JChannelWrapper(String channelName, JChannel channel) throws Exception { @@ -211,7 +211,7 @@ public abstract class JGroupsBroadcastEndpoint implements BroadcastEndpoint channel.connect(channelName); } - public void setReceiver(JGroupsReceiver jGroupsReceiver) + public void addReceiver(JGroupsReceiver jGroupsReceiver) { synchronized (receivers) { diff --git a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ClientConsumerImpl.java b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ClientConsumerImpl.java index 4b380974a6..d88c911e41 100644 --- a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ClientConsumerImpl.java +++ b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ClientConsumerImpl.java @@ -110,13 +110,13 @@ public final class ClientConsumerImpl implements ClientConsumerInternal private volatile boolean closed; - private volatile int creditsToSend; + private int creditsToSend; private volatile boolean failedOver; private volatile Exception lastException; - private volatile int ackBytes; + private int ackBytes; private volatile ClientMessageInternal lastAckedMessage; diff --git a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ServerLocatorImpl.java b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ServerLocatorImpl.java index d2c12ab019..f64375e60e 100644 --- a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ServerLocatorImpl.java +++ b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ServerLocatorImpl.java @@ -16,8 +16,6 @@ */ package org.apache.activemq.artemis.core.client.impl; -import java.io.IOException; -import java.io.ObjectInputStream; import java.io.ObjectStreamException; import java.io.Serializable; import java.lang.reflect.Array; @@ -47,9 +45,9 @@ import org.apache.activemq.artemis.api.core.DiscoveryGroupConfiguration; import org.apache.activemq.artemis.api.core.Interceptor; import org.apache.activemq.artemis.api.core.Pair; import org.apache.activemq.artemis.api.core.TransportConfiguration; +import org.apache.activemq.artemis.api.core.client.ActiveMQClient; import org.apache.activemq.artemis.api.core.client.ClientSessionFactory; import org.apache.activemq.artemis.api.core.client.ClusterTopologyListener; -import org.apache.activemq.artemis.api.core.client.ActiveMQClient; import org.apache.activemq.artemis.api.core.client.TopologyMember; import org.apache.activemq.artemis.api.core.client.loadbalance.ConnectionLoadBalancingPolicy; import org.apache.activemq.artemis.core.client.ActiveMQClientLogger; @@ -62,8 +60,8 @@ import org.apache.activemq.artemis.core.remoting.FailureListener; import org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManager; import org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManagerFactory; import org.apache.activemq.artemis.spi.core.remoting.Connector; -import org.apache.activemq.artemis.utils.ClassloadingUtil; import org.apache.activemq.artemis.utils.ActiveMQThreadFactory; +import org.apache.activemq.artemis.utils.ClassloadingUtil; import org.apache.activemq.artemis.utils.UUIDGenerator; /** @@ -103,8 +101,7 @@ public final class ServerLocatorImpl implements ServerLocatorInternal, Discovery private final Topology topology; - //needs to be serializable and not final for retrocompatibility - private String topologyArrayGuard = new String(); + private final Object topologyArrayGuard = new Object(); private volatile Pair[] topologyArray; @@ -181,8 +178,7 @@ public final class ServerLocatorImpl implements ServerLocatorInternal, Discovery private int initialMessagePacketSize; - //needs to be serializable and not final for retrocompatibility - private String stateGuard = new String(); + private final Object stateGuard = new Object(); private transient STATE state; private transient CountDownLatch latch; @@ -1824,19 +1820,6 @@ public final class ServerLocatorImpl implements ServerLocatorInternal, Discovery } } - private void readObject(ObjectInputStream is) throws ClassNotFoundException, IOException - { - is.defaultReadObject(); - if (stateGuard == null) - { - stateGuard = new String(); - } - if (topologyArrayGuard == null) - { - topologyArrayGuard = new String(); - } - } - private final class StaticConnector implements Serializable { private static final long serialVersionUID = 6772279632415242634L; diff --git a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/ChannelImpl.java b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/ChannelImpl.java index 7ad87511f8..a5af25cb27 100644 --- a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/ChannelImpl.java +++ b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/ChannelImpl.java @@ -92,7 +92,7 @@ public final class ChannelImpl implements Channel private final java.util.Queue resendCache; - private volatile int firstStoredCommandID; + private int firstStoredCommandID; private final AtomicInteger lastConfirmedCommandID = new AtomicInteger(-1); diff --git a/artemis-core-client/src/main/java/org/apache/activemq/artemis/utils/TokenBucketLimiterImpl.java b/artemis-core-client/src/main/java/org/apache/activemq/artemis/utils/TokenBucketLimiterImpl.java index f080952bb2..ac3f76d5d8 100644 --- a/artemis-core-client/src/main/java/org/apache/activemq/artemis/utils/TokenBucketLimiterImpl.java +++ b/artemis-core-client/src/main/java/org/apache/activemq/artemis/utils/TokenBucketLimiterImpl.java @@ -36,7 +36,7 @@ public class TokenBucketLimiterImpl implements TokenBucketLimiter Even thought we don't use TokenBucket in multiThread the implementation should keep this volatile for correctness */ - private volatile int tokens; + private int tokens; public TokenBucketLimiterImpl(final int rate, final boolean spin) { diff --git a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/TransactionCallback.java b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/TransactionCallback.java index 6d6dcbf1e2..5931471f31 100644 --- a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/TransactionCallback.java +++ b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/TransactionCallback.java @@ -31,7 +31,7 @@ public class TransactionCallback implements IOAsyncTask private final AtomicInteger up = new AtomicInteger(); - private volatile int done = 0; + private int done = 0; private volatile IOAsyncTask delegateCompletion; diff --git a/artemis-maven-plugin/src/main/java/org/apache/activemq/artemis/maven/TestClusterManager.java b/artemis-maven-plugin/src/main/java/org/apache/activemq/artemis/maven/TestClusterManager.java index c86f1c056b..4944d0ca75 100644 --- a/artemis-maven-plugin/src/main/java/org/apache/activemq/artemis/maven/TestClusterManager.java +++ b/artemis-maven-plugin/src/main/java/org/apache/activemq/artemis/maven/TestClusterManager.java @@ -22,7 +22,7 @@ import java.util.List; public class TestClusterManager implements TestClusterManagerMBean { - private List testNodes = new ArrayList(); + private final List testNodes = new ArrayList(); @Override public int getNumNodes() diff --git a/artemis-ra/src/main/java/org/apache/activemq/artemis/ra/ActiveMQRaUtils.java b/artemis-ra/src/main/java/org/apache/activemq/artemis/ra/ActiveMQRaUtils.java index 843fec53ec..30b0ef821f 100644 --- a/artemis-ra/src/main/java/org/apache/activemq/artemis/ra/ActiveMQRaUtils.java +++ b/artemis-ra/src/main/java/org/apache/activemq/artemis/ra/ActiveMQRaUtils.java @@ -47,6 +47,7 @@ public final class ActiveMQRaUtils * @param you Second value * @return True if object equals else false. */ + @SuppressWarnings("StringEquality") public static boolean compare(final String me, final String you) { // If both null or intern equals diff --git a/artemis-selector/pom.xml b/artemis-selector/pom.xml index ca1114538e..bea1cc13bd 100644 --- a/artemis-selector/pom.xml +++ b/artemis-selector/pom.xml @@ -58,7 +58,7 @@ org.codehaus.mojo javacc-maven-plugin - 2.4.1 + 2.6 generate-sources diff --git a/artemis-selector/src/test/java/org/apache/activemq/artemis/selector/SelectorTest.java b/artemis-selector/src/test/java/org/apache/activemq/artemis/selector/SelectorTest.java index bc68f8142d..26663f7d65 100755 --- a/artemis-selector/src/test/java/org/apache/activemq/artemis/selector/SelectorTest.java +++ b/artemis-selector/src/test/java/org/apache/activemq/artemis/selector/SelectorTest.java @@ -28,7 +28,6 @@ import org.junit.Test; /** * @version $Revision: 1.7 $ */ -@SuppressWarnings("unchecked") public class SelectorTest { @@ -129,9 +128,9 @@ public class SelectorTest return properties.get(name); } - public T getDestination() + public Object getDestination() { - return (T) destination; + return destination; } public Object getLocalConnectionId() diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingStoreImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingStoreImpl.java index f2ddcf6d60..bcab10b113 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingStoreImpl.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingStoreImpl.java @@ -16,6 +16,25 @@ */ package org.apache.activemq.artemis.core.paging.impl; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Queue; +import java.util.Set; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.Executor; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.locks.ReadWriteLock; +import java.util.concurrent.locks.ReentrantReadWriteLock; +import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock; + import org.apache.activemq.artemis.api.core.SimpleString; import org.apache.activemq.artemis.core.journal.SequentialFile; import org.apache.activemq.artemis.core.journal.SequentialFileFactory; @@ -43,25 +62,6 @@ import org.apache.activemq.artemis.core.transaction.TransactionOperation; import org.apache.activemq.artemis.core.transaction.TransactionPropertyIndexes; import org.apache.activemq.artemis.utils.FutureLatch; -import java.text.DecimalFormat; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Queue; -import java.util.Set; -import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.concurrent.Executor; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicLong; -import java.util.concurrent.locks.ReadWriteLock; -import java.util.concurrent.locks.ReentrantReadWriteLock; -import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock; - /** * @see PagingStore */ @@ -100,9 +100,9 @@ public class PagingStoreImpl implements PagingStore // Bytes consumed by the queue on the memory private final AtomicLong sizeInBytes = new AtomicLong(); - private volatile int numberOfPages; + private int numberOfPages; - private volatile int firstPageId; + private int firstPageId; private volatile int currentPageId; diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ActiveMQTestBase.java b/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ActiveMQTestBase.java index ee47b105e5..1ea353b71d 100644 --- a/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ActiveMQTestBase.java +++ b/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ActiveMQTestBase.java @@ -16,6 +16,43 @@ */ package org.apache.activemq.artemis.tests.util; +import javax.naming.Context; +import javax.transaction.xa.XAException; +import javax.transaction.xa.Xid; +import java.beans.BeanInfo; +import java.beans.Introspector; +import java.beans.PropertyDescriptor; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.lang.management.ManagementFactory; +import java.lang.ref.Reference; +import java.lang.ref.WeakReference; +import java.net.ServerSocket; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + import org.apache.activemq.artemis.api.core.ActiveMQBuffer; import org.apache.activemq.artemis.api.core.ActiveMQException; import org.apache.activemq.artemis.api.core.ActiveMQExceptionType; @@ -93,43 +130,6 @@ import org.junit.rules.TestRule; import org.junit.rules.TestWatcher; import org.junit.runner.Description; -import javax.naming.Context; -import javax.transaction.xa.XAException; -import javax.transaction.xa.Xid; -import java.beans.BeanInfo; -import java.beans.Introspector; -import java.beans.PropertyDescriptor; -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.lang.management.ManagementFactory; -import java.lang.ref.Reference; -import java.lang.ref.WeakReference; -import java.net.ServerSocket; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Random; -import java.util.Set; -import java.util.UUID; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicInteger; - /** * Base class with basic utilities on starting up a basic server */ @@ -2387,6 +2387,8 @@ public abstract class ActiveMQTestBase extends Assert private void checkFilesUsage() { + + long timeout = System.currentTimeMillis() + 15000; while (AsynchronousFileImpl.getTotalMaxIO() != 0 && System.currentTimeMillis() > timeout) diff --git a/pom.xml b/pom.xml index f6083d117f..0c2fb0cd99 100644 --- a/pom.xml +++ b/pom.xml @@ -705,8 +705,11 @@ javac-with-errorprone true - - -Xep:DepAnn:WARN + -Xep:NonAtomicVolatileUpdate:ERROR + -Xep:SynchronizeOnNonFinalField:ERROR + -Xep:StaticAccessedFromInstance:ERROR + -Xep:SynchronizeOnNonFinalField:ERROR + -Xep:WaitNotInLoop:ERROR @@ -881,6 +884,8 @@ + org.apache.maven.plugins maven-javadoc-plugin diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/StompInternalStateTest.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/StompInternalStateTest.java index e5c9ae9f12..18f7957406 100644 --- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/StompInternalStateTest.java +++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/StompInternalStateTest.java @@ -16,6 +16,10 @@ */ package org.apache.activemq.artemis.tests.extras.byteman; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + import org.apache.activemq.artemis.api.core.TransportConfiguration; import org.apache.activemq.artemis.api.core.client.ClientSession; import org.apache.activemq.artemis.api.core.client.ClientSessionFactory; @@ -35,16 +39,12 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; - @RunWith(BMUnitRunner.class) public class StompInternalStateTest extends ActiveMQTestBase { private static final String STOMP_QUEUE_NAME = "jms.queue.StompTestQueue"; - private static volatile String resultTestStompProtocolManagerLeak = null; + private String resultTestStompProtocolManagerLeak = null; protected ActiveMQServer server = null; diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AutogroupIdTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AutogroupIdTest.java index 8e0b508058..5ed36a358e 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AutogroupIdTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AutogroupIdTest.java @@ -207,7 +207,7 @@ public class AutogroupIdTest extends ActiveMQTestBase private static class MyMessageHandler implements MessageHandler { - volatile int messagesReceived = 0; + int messagesReceived = 0; private final CountDownLatch latch; diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/FlowControlOnIgnoreLargeMessageBodyTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/FlowControlOnIgnoreLargeMessageBodyTest.java index 3a10791e54..efe5e48f50 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/FlowControlOnIgnoreLargeMessageBodyTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/FlowControlOnIgnoreLargeMessageBodyTest.java @@ -84,7 +84,7 @@ public class FlowControlOnIgnoreLargeMessageBodyTest extends JMSTestBase private volatile boolean stopped = false; - private volatile int sentMessages = 0; + private int sentMessages = 0; LoadProducer(final String name, final Topic topic, final ConnectionFactory cf, final int messagesCount) throws Exception { diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/OrderReattachTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/OrderReattachTest.java index 2679b8fc43..ca5698841f 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/OrderReattachTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/OrderReattachTest.java @@ -231,7 +231,7 @@ public class OrderReattachTest extends ActiveMQTestBase { final CountDownLatch latch = new CountDownLatch(1); - volatile int count; + int count; Exception failure; diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/RandomReattachTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/RandomReattachTest.java index f45398a231..e6f024dc54 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/RandomReattachTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/RandomReattachTest.java @@ -16,6 +16,14 @@ */ package org.apache.activemq.artemis.tests.integration.cluster.reattach; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Set; +import java.util.Timer; +import java.util.TimerTask; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; + import org.apache.activemq.artemis.api.core.ActiveMQException; import org.apache.activemq.artemis.api.core.ActiveMQNotConnectedException; import org.apache.activemq.artemis.api.core.SimpleString; @@ -39,14 +47,6 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Set; -import java.util.Timer; -import java.util.TimerTask; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.TimeUnit; - public class RandomReattachTest extends ActiveMQTestBase { private static final IntegrationTestLogger log = IntegrationTestLogger.LOGGER; @@ -318,7 +318,7 @@ public class RandomReattachTest extends ActiveMQTestBase { final CountDownLatch latch = new CountDownLatch(1); - volatile int count; + int count; @Override public void onMessageAssert(final ClientMessage message) @@ -440,7 +440,7 @@ public class RandomReattachTest extends ActiveMQTestBase { final CountDownLatch latch = new CountDownLatch(1); - volatile int count; + int count; @Override public void onMessageAssert(final ClientMessage message) @@ -567,7 +567,7 @@ public class RandomReattachTest extends ActiveMQTestBase { final CountDownLatch latch = new CountDownLatch(1); - volatile int count; + int count; @Override public void onMessageAssert(final ClientMessage message) @@ -736,7 +736,7 @@ public class RandomReattachTest extends ActiveMQTestBase { final CountDownLatch latch = new CountDownLatch(1); - volatile int count; + int count; @Override public void onMessageAssert(final ClientMessage message) diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/cluster/MultipleThreadsOpeningTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/cluster/MultipleThreadsOpeningTest.java index 893b747613..5957ef28e0 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/cluster/MultipleThreadsOpeningTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/cluster/MultipleThreadsOpeningTest.java @@ -44,7 +44,7 @@ public class MultipleThreadsOpeningTest extends JMSClusteredTestBase class ThreadOpen extends Thread { - volatile int errors = 0; + int errors = 0; public void run() { diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/journal/JournalPerfTuneTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/journal/JournalPerfTuneTest.java index 0a558a382e..6e61da95a0 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/journal/JournalPerfTuneTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/journal/JournalPerfTuneTest.java @@ -92,7 +92,7 @@ public class JournalPerfTuneTest extends ActiveMQTestBase final int bufferTimeout = (int)(1000000000d / 2000); final boolean logRates = true; - super.recreateDirectory(journalDir); + recreateDirectory(journalDir); SequentialFileFactory fileFactory = new AIOSequentialFileFactory(journalDir, bufferSize, bufferTimeout, logRates); diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/openwire/amq/JmsCreateConsumerInOnMessageTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/openwire/amq/JmsCreateConsumerInOnMessageTest.java index dce7bbc806..aceacdb190 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/openwire/amq/JmsCreateConsumerInOnMessageTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/openwire/amq/JmsCreateConsumerInOnMessageTest.java @@ -38,7 +38,7 @@ public class JmsCreateConsumerInOnMessageTest extends BasicOpenWireTest implemen private MessageConsumer testConsumer; private MessageProducer producer; private Topic topic; - private Object lock = new Object(); + private final Object lock = new Object(); /** * Tests if a consumer can be created asynchronusly @@ -63,11 +63,12 @@ public class JmsCreateConsumerInOnMessageTest extends BasicOpenWireTest implemen producer.send(msg); System.out.println("message sent: " + msg); - if (testConsumer == null) + synchronized (lock) { - synchronized (lock) + long timeout = System.currentTimeMillis() + 3000; + while (testConsumer == null && timeout > System.currentTimeMillis()) { - lock.wait(3000); + lock.wait(1000); } } assertTrue(testConsumer != null); @@ -83,10 +84,10 @@ public class JmsCreateConsumerInOnMessageTest extends BasicOpenWireTest implemen System.out.println("____________onmessage " + message); try { - testConsumer = consumerSession.createConsumer(topic); - consumerSession.createProducer(topic); synchronized (lock) { + testConsumer = consumerSession.createConsumer(topic); + consumerSession.createProducer(topic); lock.notify(); } } diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/paging/PagingWithFailoverAndCountersTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/paging/PagingWithFailoverAndCountersTest.java index c8c8ecbd83..912fce0ccb 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/paging/PagingWithFailoverAndCountersTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/paging/PagingWithFailoverAndCountersTest.java @@ -123,7 +123,7 @@ public class PagingWithFailoverAndCountersTest extends ActiveMQTestBase } boolean running = true; - Object waitNotify = new Object(); + final Object waitNotify = new Object(); private boolean failed = false; public void failed(String message) @@ -171,7 +171,11 @@ public class PagingWithFailoverAndCountersTest extends ActiveMQTestBase { if (timeWait > 0) { - waitNotify.wait(timeWait); + long timeout = System.currentTimeMillis() + timeWait; + while (running && timeout > System.currentTimeMillis()) + { + waitNotify.wait(timeWait); + } } } catch (InterruptedException e) diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/ssl/CoreClientOverOneWaySSLTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/ssl/CoreClientOverOneWaySSLTest.java index 3b7c3626ba..38bee68429 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/ssl/CoreClientOverOneWaySSLTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/ssl/CoreClientOverOneWaySSLTest.java @@ -82,10 +82,10 @@ public class CoreClientOverOneWaySSLTest extends ActiveMQTestBase * keytool -export -keystore server-side-keystore.jceks -file activemq-jceks.cer -storetype jceks -storepass secureexample * keytool -import -keystore client-side-truststore.jceks -storetype JCEKS -file activemq-jceks.cer -storepass secureexample -keypass secureexample -noprompt */ - private static String storeType; - private static String SERVER_SIDE_KEYSTORE; - private static String CLIENT_SIDE_TRUSTSTORE; - private static final String PASSWORD = "secureexample"; + private String storeType; + private String SERVER_SIDE_KEYSTORE; + private String CLIENT_SIDE_TRUSTSTORE; + private final String PASSWORD = "secureexample"; private ActiveMQServer server; @@ -427,7 +427,7 @@ public class CoreClientOverOneWaySSLTest extends ActiveMQTestBase Assert.assertEquals(text, m.getBodyBuffer().readString()); } - public static String getSuitableCipherSuite() throws Exception + public String getSuitableCipherSuite() throws Exception { String result = ""; @@ -460,7 +460,7 @@ public class CoreClientOverOneWaySSLTest extends ActiveMQTestBase return result; } - public static String[] getEnabledCipherSuites() throws Exception + public String[] getEnabledCipherSuites() throws Exception { SSLContext context = SSLSupport.createContext(storeType, SERVER_SIDE_KEYSTORE, PASSWORD, storeType, CLIENT_SIDE_TRUSTSTORE, PASSWORD); SSLEngine engine = context.createSSLEngine(); diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/ssl/CoreClientOverTwoWaySSLTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/ssl/CoreClientOverTwoWaySSLTest.java index ef2a1ed0e6..adaf3296d9 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/ssl/CoreClientOverTwoWaySSLTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/ssl/CoreClientOverTwoWaySSLTest.java @@ -87,12 +87,12 @@ public class CoreClientOverTwoWaySSLTest extends ActiveMQTestBase * keytool -import -keystore server-side-truststore.jceks -storetype JCEKS -file activemq-jceks.cer -storepass secureexample -keypass secureexample -noprompt */ - private static String storeType; - private static String SERVER_SIDE_KEYSTORE; - private static String SERVER_SIDE_TRUSTSTORE; - private static String CLIENT_SIDE_TRUSTSTORE; - private static String CLIENT_SIDE_KEYSTORE; - private static final String PASSWORD = "secureexample"; + private String storeType; + private String SERVER_SIDE_KEYSTORE; + private String SERVER_SIDE_TRUSTSTORE; + private String CLIENT_SIDE_TRUSTSTORE; + private String CLIENT_SIDE_KEYSTORE; + private final String PASSWORD = "secureexample"; private ActiveMQServer server; diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/stomp/util/AbstractStompClientConnection.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/stomp/util/AbstractStompClientConnection.java index 14bc16584d..9bf37280d4 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/stomp/util/AbstractStompClientConnection.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/stomp/util/AbstractStompClientConnection.java @@ -62,7 +62,7 @@ public abstract class AbstractStompClientConnection implements StompClientConnec protected BlockingQueue frameQueue = new LinkedBlockingQueue(); protected boolean connected = false; - private volatile int serverPingCounter; + private int serverPingCounter; public AbstractStompClientConnection(String version, String host, int port) throws IOException { diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/vertx/ActiveMQVertxUnitTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/vertx/ActiveMQVertxUnitTest.java index e7cba42ed0..82430a6ced 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/vertx/ActiveMQVertxUnitTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/vertx/ActiveMQVertxUnitTest.java @@ -16,6 +16,8 @@ */ package org.apache.activemq.artemis.tests.integration.vertx; +import java.util.HashMap; + import org.apache.activemq.artemis.api.core.ActiveMQBuffer; import org.apache.activemq.artemis.api.core.client.ClientConsumer; import org.apache.activemq.artemis.api.core.client.ClientMessage; @@ -43,8 +45,6 @@ import org.vertx.java.platform.PlatformLocator; import org.vertx.java.platform.PlatformManager; import org.vertx.java.spi.cluster.impl.hazelcast.HazelcastClusterManagerFactory; -import java.util.HashMap; - /** * This class tests the basics of ActiveMQ * vertx integration @@ -715,7 +715,7 @@ public class ActiveMQVertxUnitTest extends ActiveMQTestBase private class VertxTestHandler implements Handler> { private volatile BaseMessage vertxMsg = null; - private Object lock = new Object(); + private final Object lock = new Object(); @Override public void handle(BaseMessage arg0) @@ -833,11 +833,12 @@ public class ActiveMQVertxUnitTest extends ActiveMQTestBase BaseMessage msg = null; synchronized (lock) { - if (vertxMsg == null) + long timeout = System.currentTimeMillis() + 10000; + while (vertxMsg == null && timeout > System.currentTimeMillis()) { try { - lock.wait(10000); + lock.wait(1000); } catch (InterruptedException e) { diff --git a/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/ConnectionFactoryTest.java b/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/ConnectionFactoryTest.java index 6a69aa988a..734e7c26b4 100644 --- a/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/ConnectionFactoryTest.java +++ b/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/ConnectionFactoryTest.java @@ -16,9 +16,6 @@ */ package org.apache.activemq.artemis.jms.tests; -import java.util.ArrayList; -import java.util.Random; - import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Message; @@ -38,6 +35,8 @@ import javax.jms.XAQueueConnection; import javax.jms.XAQueueConnectionFactory; import javax.jms.XATopicConnection; import javax.jms.XATopicConnectionFactory; +import java.util.ArrayList; +import java.util.Random; import org.apache.activemq.artemis.api.jms.JMSFactoryType; import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory; @@ -224,7 +223,7 @@ public class ConnectionFactoryTest extends JMSTestCase class FastListener implements MessageListener { - volatile int processed; + int processed; public void onMessage(final Message msg) { @@ -244,7 +243,7 @@ public class ConnectionFactoryTest extends JMSTestCase class SlowListener implements MessageListener { - volatile int processed; + int processed; public void onMessage(final Message msg) { diff --git a/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/MessageConsumerTest.java b/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/MessageConsumerTest.java index 03ec3ba613..f1e6756d15 100644 --- a/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/MessageConsumerTest.java +++ b/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/MessageConsumerTest.java @@ -42,6 +42,7 @@ import java.util.Iterator; import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import org.apache.activemq.artemis.jms.tests.util.ProxyAssertSupport; @@ -2200,14 +2201,17 @@ public class MessageConsumerTest extends JMSTestCase private class ThreadCloser extends Thread { - Object waitMonitor; + final Object waitMonitor; long timeToSleep; MessageConsumer topicConsumer; - public ThreadCloser(final Object waitMonitor, final long timeToSleep, final MessageConsumer topicConsumer) + final AtomicBoolean running; + + public ThreadCloser(final AtomicBoolean running, final Object waitMonitor, final long timeToSleep, final MessageConsumer topicConsumer) { + this.running = running; this.waitMonitor = waitMonitor; this.timeToSleep = timeToSleep; this.topicConsumer = topicConsumer; @@ -2220,7 +2224,10 @@ public class MessageConsumerTest extends JMSTestCase { synchronized (waitMonitor) { - waitMonitor.wait(); + while (running.get()) + { + waitMonitor.wait(); + } } Thread.sleep(timeToSleep); @@ -2242,7 +2249,7 @@ public class MessageConsumerTest extends JMSTestCase long timeToWait; - Object waitMonitor; + final Object waitMonitor; long t1; @@ -2252,8 +2259,11 @@ public class MessageConsumerTest extends JMSTestCase MessageConsumer topicConsumer; - public ThreadReceiver(final Object waitMonitor, final long timeToWait, final MessageConsumer topicConsumer) + final AtomicBoolean running; + + public ThreadReceiver(final AtomicBoolean running, final Object waitMonitor, final long timeToWait, final MessageConsumer topicConsumer) { + this.running = running; this.waitMonitor = waitMonitor; this.timeToWait = timeToWait; this.topicConsumer = topicConsumer; @@ -2266,7 +2276,10 @@ public class MessageConsumerTest extends JMSTestCase { synchronized (waitMonitor) { - waitMonitor.wait(); + while (running.get()) + { + waitMonitor.wait(); + } } t1 = System.currentTimeMillis(); receivedObject = topicConsumer.receive(timeToWait); @@ -2306,13 +2319,16 @@ public class MessageConsumerTest extends JMSTestCase ThreadCloser closer = null; ThreadReceiver receiver = null; - closer = new ThreadCloser(monitor, 1000, topicConsumer); - receiver = new ThreadReceiver(monitor, 2000, topicConsumer); + AtomicBoolean running = new AtomicBoolean(true); + + closer = new ThreadCloser(running, monitor, 1000, topicConsumer); + receiver = new ThreadReceiver(running, monitor, 2000, topicConsumer); closer.start(); receiver.start(); Thread.sleep(2000); synchronized (monitor) { + running.set(false); monitor.notifyAll(); } closer.join(); diff --git a/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/tools/container/LocalTestServer.java b/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/tools/container/LocalTestServer.java index c19cbd104d..01377b2342 100644 --- a/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/tools/container/LocalTestServer.java +++ b/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/tools/container/LocalTestServer.java @@ -16,6 +16,9 @@ */ package org.apache.activemq.artemis.jms.tests.tools.container; +import javax.management.MBeanServerInvocationHandler; +import javax.management.ObjectName; +import javax.naming.InitialContext; import java.io.File; import java.lang.management.ManagementFactory; import java.util.ArrayList; @@ -25,10 +28,6 @@ import java.util.List; import java.util.Properties; import java.util.Set; -import javax.management.MBeanServerInvocationHandler; -import javax.management.ObjectName; -import javax.naming.InitialContext; - import org.apache.activemq.artemis.api.core.TransportConfiguration; import org.apache.activemq.artemis.api.core.client.ActiveMQClient; import org.apache.activemq.artemis.api.core.management.ObjectNameBuilder; @@ -393,20 +392,6 @@ public class LocalTestServer implements Server, Runnable // bootstrap.run(); started = true; - - synchronized (this) - { - notify(); - try - { - wait(); - } - catch (InterruptedException e) - { - // e.printStackTrace(); - } - } - } @Override diff --git a/tests/joram-tests/src/test/java/org/objectweb/jtests/jms/conform/connection/ConnectionTest.java b/tests/joram-tests/src/test/java/org/objectweb/jtests/jms/conform/connection/ConnectionTest.java index 142aa2a041..b5443d38cd 100644 --- a/tests/joram-tests/src/test/java/org/objectweb/jtests/jms/conform/connection/ConnectionTest.java +++ b/tests/joram-tests/src/test/java/org/objectweb/jtests/jms/conform/connection/ConnectionTest.java @@ -214,7 +214,7 @@ public class ConnectionTest extends PTPTestCase { try { - wait(1000); + Thread.sleep(1000); } catch (Exception e) { diff --git a/tests/joram-tests/src/test/java/org/objectweb/jtests/jms/conform/message/headers/MessageHeaderTest.java b/tests/joram-tests/src/test/java/org/objectweb/jtests/jms/conform/message/headers/MessageHeaderTest.java index e6b7d5e404..9aba08a57b 100644 --- a/tests/joram-tests/src/test/java/org/objectweb/jtests/jms/conform/message/headers/MessageHeaderTest.java +++ b/tests/joram-tests/src/test/java/org/objectweb/jtests/jms/conform/message/headers/MessageHeaderTest.java @@ -154,7 +154,7 @@ public class MessageHeaderTest extends PTPTestCase message.setJMSMessageID("ID:foo"); sender.send(message); Assert.assertTrue("sec. 3.4.3 When a message is sent this value is ignored.\n", - message.getJMSMessageID() != "ID:foo"); + !message.getJMSMessageID().equals("ID:foo")); receiver.receive(TestConfig.TIMEOUT); } catch (JMSException e) diff --git a/tests/joram-tests/src/test/java/org/objectweb/jtests/jms/framework/JMSTestCase.java b/tests/joram-tests/src/test/java/org/objectweb/jtests/jms/framework/JMSTestCase.java index 9ec8c0c369..5c8e407f63 100644 --- a/tests/joram-tests/src/test/java/org/objectweb/jtests/jms/framework/JMSTestCase.java +++ b/tests/joram-tests/src/test/java/org/objectweb/jtests/jms/framework/JMSTestCase.java @@ -15,11 +15,10 @@ * limitations under the License. */ package org.objectweb.jtests.jms.framework; +import javax.jms.JMSException; import java.io.IOException; import java.util.Properties; -import javax.jms.JMSException; - import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -59,11 +58,11 @@ public abstract class JMSTestCase extends Assert { message += " [linked exception: " + linkedException + "]"; } - super.fail(message); + Assert.fail(message); } else { - super.fail(e.getMessage()); + Assert.fail(e.getMessage()); } } diff --git a/tests/soak-tests/src/test/java/org/apache/activemq/artemis/tests/soak/client/ClientAbstract.java b/tests/soak-tests/src/test/java/org/apache/activemq/artemis/tests/soak/client/ClientAbstract.java index c0af164785..77865143ef 100644 --- a/tests/soak-tests/src/test/java/org/apache/activemq/artemis/tests/soak/client/ClientAbstract.java +++ b/tests/soak-tests/src/test/java/org/apache/activemq/artemis/tests/soak/client/ClientAbstract.java @@ -50,7 +50,7 @@ public abstract class ClientAbstract extends Thread protected volatile boolean running = true; - protected volatile int errors = 0; + protected int errors = 0; /** * A commit was called diff --git a/tests/timing-tests/src/test/java/org/apache/activemq/artemis/tests/timing/core/server/impl/QueueConcurrentTest.java b/tests/timing-tests/src/test/java/org/apache/activemq/artemis/tests/timing/core/server/impl/QueueConcurrentTest.java index 777a122e33..e61a456488 100644 --- a/tests/timing-tests/src/test/java/org/apache/activemq/artemis/tests/timing/core/server/impl/QueueConcurrentTest.java +++ b/tests/timing-tests/src/test/java/org/apache/activemq/artemis/tests/timing/core/server/impl/QueueConcurrentTest.java @@ -15,13 +15,6 @@ * limitations under the License. */ package org.apache.activemq.artemis.tests.timing.core.server.impl; -import org.apache.activemq.artemis.tests.unit.core.server.impl.fakes.FakeQueueFactory; -import org.apache.activemq.artemis.tests.util.ActiveMQTestBase; -import org.junit.Before; -import org.junit.After; - -import org.junit.Test; - import java.util.ArrayList; import java.util.List; @@ -33,6 +26,11 @@ import org.apache.activemq.artemis.core.server.ServerMessage; import org.apache.activemq.artemis.core.server.impl.QueueImpl; import org.apache.activemq.artemis.tests.unit.UnitTestLogger; import org.apache.activemq.artemis.tests.unit.core.server.impl.fakes.FakeConsumer; +import org.apache.activemq.artemis.tests.unit.core.server.impl.fakes.FakeQueueFactory; +import org.apache.activemq.artemis.tests.util.ActiveMQTestBase; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; /** * @@ -128,7 +126,7 @@ public class QueueConcurrentTest extends ActiveMQTestBase private final long testTime; - private volatile int i; + private int i; public Exception getException() { @@ -181,7 +179,7 @@ public class QueueConcurrentTest extends ActiveMQTestBase private boolean toggle; - private volatile int numToggles; + private int numToggles; public int getNumToggles() { diff --git a/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/asyncio/AIOTestBase.java b/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/asyncio/AIOTestBase.java index e89ee23666..5e329d7365 100644 --- a/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/asyncio/AIOTestBase.java +++ b/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/asyncio/AIOTestBase.java @@ -104,7 +104,7 @@ public abstract class AIOTestBase extends ActiveMQTestBase volatile boolean doneCalled = false; - volatile int errorCalled = 0; + int errorCalled = 0; final AtomicInteger timesDoneCalled = new AtomicInteger(0); diff --git a/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/remoting/impl/ssl/SSLSupportTest.java b/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/remoting/impl/ssl/SSLSupportTest.java index 7fcb9efd35..ae07e00d09 100644 --- a/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/remoting/impl/ssl/SSLSupportTest.java +++ b/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/remoting/impl/ssl/SSLSupportTest.java @@ -48,7 +48,7 @@ public class SSLSupportTest extends ActiveMQTestBase trustStorePath = "server-side-truststore." + storeType.toLowerCase(); } - private static String storeType; + private String storeType; private String keyStorePath;