Author: tabish Date: Fri Sep 23 13:13:33 2011 New Revision: 1174734 URL: http://svn.apache.org/viewvc?rev=1174734&view=rev Log: Remove the dependency on the fixed 61616 port number Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/AMQ2021Test.java Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/AMQ2021Test.java URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/AMQ2021Test.java?rev=1174734&r1=1174733&r2=1174734&view=diff ============================================================================== --- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/AMQ2021Test.java (original) +++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/AMQ2021Test.java Fri Sep 23 13:13:33 2011 @@ -43,7 +43,7 @@ import org.slf4j.LoggerFactory; /** * This is a test case for the issue reported at: - * https://issues.apache.org/activemq/browse/AMQ-2021 + * https://issues.apache.org/activemq/browse/AMQ-2021 * Bug is modification of inflight message properties so the failure can manifest itself in a bunch * or ways, from message receipt with null properties to marshall errors */ @@ -53,25 +53,26 @@ public class AMQ2021Test extends TestCas BrokerService brokerService; ArrayList threads = new ArrayList(); Vector exceptions; - + AMQ2021Test testCase; - - String ACTIVEMQ_BROKER_BIND = "tcp://localhost:61616"; - String ACTIVEMQ_BROKER_URL = ACTIVEMQ_BROKER_BIND + "?jms.redeliveryPolicy.maximumRedeliveries=1&jms.redeliveryPolicy.initialRedeliveryDelay=0"; - - private int numMessages = 1000; - private int numConsumers = 2; - private int dlqMessages = numMessages/2; - - CountDownLatch receivedLatch; + + private final String ACTIVEMQ_BROKER_BIND = "tcp://localhost:0"; + private String CONSUMER_BROKER_URL = "?jms.redeliveryPolicy.maximumRedeliveries=1&jms.redeliveryPolicy.initialRedeliveryDelay=0"; + private String PRODUCER_BROKER_URL; + + private final int numMessages = 1000; + private final int numConsumers = 2; + private final int dlqMessages = numMessages/2; + + private CountDownLatch receivedLatch; private ActiveMQTopic destination; - public CountDownLatch started; + private CountDownLatch started; @Override protected void setUp() throws Exception { Thread.setDefaultUncaughtExceptionHandler(this); testCase = this; - + // Start an embedded broker up. brokerService = new BrokerService(); brokerService.setDeleteAllMessagesOnStartup(true); @@ -79,18 +80,21 @@ public class AMQ2021Test extends TestCas brokerService.start(); destination = new ActiveMQTopic(getName()); exceptions = new Vector(); - - receivedLatch = + + CONSUMER_BROKER_URL = brokerService.getTransportConnectors().get(0).getPublishableConnectString() + CONSUMER_BROKER_URL; + PRODUCER_BROKER_URL = brokerService.getTransportConnectors().get(0).getPublishableConnectString(); + + receivedLatch = new CountDownLatch(numConsumers * (numMessages + dlqMessages)); started = new CountDownLatch(1); } - + @Override protected void tearDown() throws Exception { for (Thread t : threads) { t.interrupt(); t.join(); - } + } brokerService.stop(); } @@ -101,9 +105,9 @@ public class AMQ2021Test extends TestCas threads.add(c1); c1.start(); } - + assertTrue(started.await(10, TimeUnit.SECONDS)); - + Thread producer = new Thread() { @Override public void run() { @@ -115,34 +119,34 @@ public class AMQ2021Test extends TestCas }; threads.add(producer); producer.start(); - - boolean allGood = receivedLatch.await(30, TimeUnit.SECONDS); + + boolean allGood = receivedLatch.await(90, TimeUnit.SECONDS); for (Throwable t: exceptions) { log.error("failing test with first exception", t); fail("exception during test : " + t); - } + } assertTrue("excepted messages received within time limit", allGood); - + assertEquals(0, exceptions.size()); - + for (int i=0; i