summaryrefslogtreecommitdiff
path: root/qpid/java/systests/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/systests/src/main')
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/client/AMQQueueDeferredOrderingTest.java3
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/server/queue/QueueDepthWithSelectorTest.java2
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java50
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/BytesMessageTest.java3
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/LargeMessageTest.java9
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionCloseTest.java5
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java22
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/test/unit/topic/DurableSubscriptionTest.java19
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutTestCase.java11
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java45
10 files changed, 133 insertions, 36 deletions
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/client/AMQQueueDeferredOrderingTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/client/AMQQueueDeferredOrderingTest.java
index 8946548353..2dded57dd0 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/client/AMQQueueDeferredOrderingTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/client/AMQQueueDeferredOrderingTest.java
@@ -138,7 +138,8 @@ public class AMQQueueDeferredOrderingTest extends QpidBrokerTestCase
Message msg = _consumer.receive(3000);
assertNotNull("Message should not be null", msg);
assertTrue("Message should be a text message", msg instanceof TextMessage);
- assertEquals("Message content does not match expected", Integer.toString(i), ((TextMessage) msg).getText());
+ _logger.error("== " + Integer.toString(i) + " == " + ((TextMessage) msg).getText());
+ assertEquals("Message content does not match", Integer.toString(i), ((TextMessage) msg).getText());
}
}
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/QueueDepthWithSelectorTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/QueueDepthWithSelectorTest.java
index acb5d12e57..43a0f4dbec 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/QueueDepthWithSelectorTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/QueueDepthWithSelectorTest.java
@@ -169,7 +169,7 @@ public class QueueDepthWithSelectorTest extends QpidBrokerTestCase
for (int i = 0; i < MSG_COUNT; i++)
{
_messages[i] = _consumer.receive(1000);
- assertNotNull("should have received a message but didn't", _messages[i]);
+ assertNotNull("should have received a message but didn't " + i, _messages[i]);
}
// long queueDepth = ((AMQSession) _clientSession).getQueueDepth((AMQDestination) _queue);
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java
index af7c08ca65..1d1f4a53d5 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java
@@ -280,6 +280,10 @@ public class AddressBasedDestinationTest extends QpidBrokerTestCase
assertTrue("Queue not bound as expected",(
(AMQSession_0_10)jmsSession).isQueueBound("my-exchange",
dest.getQueueName(),"hello", Collections.<String, Object>emptyMap()));
+
+ // The client should be able to query and verify the existence of my-exchange (QPID-2774)
+ dest = new AMQAnyDestination("ADDR:my-exchange; {create: never}");
+ cons = jmsSession.createConsumer(dest);
}
public void testBindQueueWithArgs() throws Exception
@@ -684,9 +688,11 @@ public class AddressBasedDestinationTest extends QpidBrokerTestCase
}
/**
- * Test Goal : Verify that unique subscription queues are created when consumers are
- * created using the same destination except when the subscription queue
- * has a name.
+ * Test Goal : When the same destination is used when creating two consumers,
+ * If the type == topic, verify that unique subscription queues are created,
+ * unless subscription queue has a name.
+ *
+ * If the type == queue, same queue should be shared.
*/
public void testSubscriptionForSameDestination() throws Exception
{
@@ -715,6 +721,28 @@ public class AddressBasedDestinationTest extends QpidBrokerTestCase
catch(Exception e)
{
}
+ _connection.close();
+
+ _connection = getConnection() ;
+ _connection.start();
+ ssn = _connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
+ dest = ssn.createTopic("ADDR:my_queue; {create: always}");
+ consumer1 = ssn.createConsumer(dest);
+ consumer2 = ssn.createConsumer(dest);
+ prod = ssn.createProducer(dest);
+
+ prod.send(ssn.createTextMessage("A"));
+ Message m1 = consumer1.receive(1000);
+ Message m2 = consumer2.receive(1000);
+
+ if (m1 != null)
+ {
+ assertNull("Only one consumer should receive the message",m2);
+ }
+ else
+ {
+ assertNotNull("Only one consumer should receive the message",m2);
+ }
}
public void testXBindingsWithoutExchangeName() throws Exception
@@ -752,4 +780,20 @@ public class AddressBasedDestinationTest extends QpidBrokerTestCase
assertNotNull("consumer should receive a message",cons.receive(1000));
cons.close();
}
+
+ public void testXSubscribeOverrides() throws Exception
+ {
+ Session ssn = _connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
+ String str = "ADDR:my_queue; {create:always,link: {x-subscribes:{exclusive: true, arguments: {a:b,x:y}}}}";
+ Destination dest = ssn.createTopic(str);
+ MessageConsumer consumer1 = ssn.createConsumer(dest);
+ try
+ {
+ MessageConsumer consumer2 = ssn.createConsumer(dest);
+ fail("An exception should be thrown as 'my-queue' already have an exclusive subscriber");
+ }
+ catch(Exception e)
+ {
+ }
+ }
}
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/BytesMessageTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/BytesMessageTest.java
index 59ce64eb4f..8c5299e301 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/BytesMessageTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/BytesMessageTest.java
@@ -239,7 +239,8 @@ public class BytesMessageTest extends QpidBrokerTestCase implements MessageListe
{
if (expected[i] != actual[i])
{
- throw new RuntimeException("Failed on byte " + i + " of " + expected.length);
+ throw new RuntimeException("Failed on byte " + i + " of " + expected.length +
+ "(" + new String(expected) +", " + new String(actual) + ")");
}
}
}
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/LargeMessageTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/LargeMessageTest.java
index d97e22e024..e6f3ef7493 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/LargeMessageTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/LargeMessageTest.java
@@ -41,11 +41,18 @@ public class LargeMessageTest extends QpidBrokerTestCase
private static final Logger _logger = LoggerFactory.getLogger(LargeMessageTest.class);
private Destination _destination;
- private AMQSession _session;
+ private AMQSession<?, ?> _session;
private AMQConnection _connection;
protected void setUp() throws Exception
{
+ // Smaller packet size for UDP
+ if (Boolean.getBoolean("profile.udp"))
+ {
+ setConfigurationProperty("advanced.framesize", "20000");
+ setBrokerEnvironment("qpid.maxFrameSize", "20000");
+ }
+
super.setUp();
try
{
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionCloseTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionCloseTest.java
index 17ac0dfff2..50162449e5 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionCloseTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionCloseTest.java
@@ -46,7 +46,7 @@ public class ConnectionCloseTest extends QpidBrokerTestCase
public void testSendReceiveClose() throws Exception
{
Map<Thread,StackTraceElement[]> before = Thread.getAllStackTraces();
-
+
for (int i = 0; i < 500; i++)
{
if ((i % 10) == 0)
@@ -92,7 +92,7 @@ public class ConnectionCloseTest extends QpidBrokerTestCase
assertTrue("Spurious thread creation exceeded threshold, " +
delta.size() + " threads created.",
- delta.size() < 100);
+ delta.size() < 10);
}
private void dumpStacks(Map<Thread,StackTraceElement[]> map)
@@ -104,5 +104,4 @@ public class ConnectionCloseTest extends QpidBrokerTestCase
log.warn(t, entry.getKey().toString());
}
}
-
}
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java
index 6bf610ff90..68d774fce6 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java
@@ -272,6 +272,28 @@ public class ConnectionTest extends QpidBrokerTestCase
}
connection.close();
}
+
+ public void testUnsupportedSASLMechanism() throws Exception
+ {
+ BrokerDetails broker = getBroker();
+ broker.setProperty(BrokerDetails.OPTIONS_SASL_MECHS, "MY_MECH");
+
+ try
+ {
+ Connection connection = new AMQConnection(broker.toString(), "guest", "guest",
+ null, "test");
+ connection.close();
+ fail("The client should throw a ConnectionException stating the" +
+ " broker does not support the SASL mech specified by the client");
+ }
+ catch (Exception e)
+ {
+ assertTrue("Incorrect exception thrown",
+ e.getMessage().contains("The following SASL mechanisms " +
+ "[MY_MECH]" +
+ " specified by the client are not supported by the broker"));
+ }
+ }
public static junit.framework.Test suite()
{
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/topic/DurableSubscriptionTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/topic/DurableSubscriptionTest.java
index d73761d12a..d799b141c0 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/topic/DurableSubscriptionTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/topic/DurableSubscriptionTest.java
@@ -657,7 +657,14 @@ public class DurableSubscriptionTest extends QpidBrokerTestCase
session.commit();
// Check queue has no messages
- assertEquals("Queue should be empty", 0, ((AMQSession<?, ?>) session).getQueueDepth(queue));
+ if (isJavaBroker())
+ {
+ assertEquals("Queue should be empty", 0, ((AMQSession<?, ?>) session).getQueueDepth(queue));
+ }
+ else
+ {
+ assertTrue("At most the queue should have only 1 message", ((AMQSession<?, ?>) session).getQueueDepth(queue) <= 1);
+ }
// Unsubscribe
session.unsubscribe("sameMessageSelector");
@@ -671,7 +678,7 @@ public class DurableSubscriptionTest extends QpidBrokerTestCase
* <li>create another durable subscriber with a different selector and same name
* <li>check first subscriber is now closed
* <li>create a publisher and send messages
- * <li>check messages are recieved correctly
+ * <li>check messages are received correctly
* </ul>
* <p>
* QPID-2418
@@ -704,6 +711,8 @@ public class DurableSubscriptionTest extends QpidBrokerTestCase
e.printStackTrace();
}
+ conn.stop();
+
// Send 1 matching message and 1 non-matching message
MessageProducer producer = session.createProducer(topic);
TextMessage msg = session.createTextMessage("testResubscribeWithChangedSelectorAndRestart1");
@@ -718,6 +727,8 @@ public class DurableSubscriptionTest extends QpidBrokerTestCase
AMQQueue queue = new AMQQueue("amq.topic", "clientid" + ":" + "testResubscribeWithChangedSelectorNoClose");
assertEquals("Queue depth is wrong", isJavaBroker() ? 1 : 2, ((AMQSession<?, ?>) session).getQueueDepth(queue));
+ conn.start();
+
Message rMsg = subB.receive(1000);
assertNotNull(rMsg);
assertEquals("Content was wrong",
@@ -768,6 +779,8 @@ public class DurableSubscriptionTest extends QpidBrokerTestCase
e.printStackTrace();
}
+ conn.stop();
+
// Send 1 matching message and 1 non-matching message
MessageProducer producer = session.createProducer(topic);
TextMessage msg = session.createTextMessage("testResubscribeWithChangedSelectorAndRestart1");
@@ -782,6 +795,8 @@ public class DurableSubscriptionTest extends QpidBrokerTestCase
AMQQueue queue = new AMQQueue("amq.topic", "clientid" + ":" + "subscriptionName");
assertEquals("Queue depth is wrong", isJavaBroker() ? 1 : 2, ((AMQSession<?, ?>) session).getQueueDepth(queue));
+ conn.start();
+
Message rMsg = subTwo.receive(1000);
assertNotNull(rMsg);
assertEquals("Content was wrong",
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutTestCase.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutTestCase.java
index f631a9a4ba..074c2fa566 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutTestCase.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutTestCase.java
@@ -243,11 +243,14 @@ public class TransactionTimeoutTestCase extends QpidBrokerTestCase implements Ex
/** @see javax.jms.ExceptionListener#onException(javax.jms.JMSException) */
public void onException(JMSException jmse)
{
- _caught.countDown();
- _message = jmse.getLinkedException().getMessage();
- if (jmse.getLinkedException() instanceof AMQException)
+ if (_caught.getCount() > 0L)
{
- _code = ((AMQException) jmse.getLinkedException()).getErrorCode();
+ _caught.countDown();
+ _message = jmse.getLinkedException().getMessage();
+ if (jmse.getLinkedException() instanceof AMQException)
+ {
+ _code = ((AMQException) jmse.getLinkedException()).getErrorCode();
+ }
}
}
}
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
index 96fc865fb4..bf5d32d2e6 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
@@ -639,20 +639,23 @@ public class QpidBrokerTestCase extends QpidTestCase
public void stopBroker(int port) throws Exception
{
- port = getPort(port);
-
_logger.info("stopping broker: " + getBrokerCommand(port) + " on port " + port);
- Process process = _brokers.remove(port);
- if (process != null)
- {
- process.destroy();
- process.waitFor();
- _logger.info("broker exited: " + process.exitValue());
- }
- else if (_broker.equals(VM))
+ if (_broker.equals(VM))
{
VmBroker.killVMBroker();
}
+ else
+ {
+ port = getPort(port);
+
+ Process process = _brokers.remove(port);
+ if (process != null)
+ {
+ process.destroy();
+ process.waitFor();
+ _logger.info("broker exited: " + process.exitValue());
+ }
+ }
}
/**
@@ -973,20 +976,22 @@ public class QpidBrokerTestCase extends QpidTestCase
protected void tearDown() throws Exception
{
- try
+ // close all the connections used by this test.
+ for (Connection c : _connections)
{
- // close all the connections used by this test.
- for (Connection c : _connections)
- {
+ try
+ {
c.close();
}
+ catch (Exception e)
+ {
+ _logger.warn("Error closing connection", e);
+ }
}
- finally
- {
- // Ensure any problems with close does not interfer with property resets
- super.tearDown();
- revertLoggingLevels();
- }
+
+ // Ensure any problems with close does not interfer with property resets
+ super.tearDown();
+ revertLoggingLevels();
}
/**