You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ri...@apache.org on 2008/07/15 19:06:18 UTC

svn commit: r676978 [3/3] - in /incubator/qpid/trunk/qpid/java: ./ client/src/main/java/org/apache/qpid/client/ client/src/main/java/org/apache/qpid/client/failover/ client/src/main/java/org/apache/qpid/client/handler/ client/src/main/java/org/apache/q...

Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java?rev=676978&r1=676977&r2=676978&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java Tue Jul 15 10:06:16 2008
@@ -29,13 +29,16 @@
 import org.apache.qpid.client.transport.TransportConnection;
 import org.apache.qpid.url.AMQBindingURL;
 import org.apache.qpid.url.BindingURL;
+import org.apache.qpid.url.URLSyntaxException;
 import org.apache.qpid.exchange.ExchangeDefaults;
 import org.apache.qpid.framing.FieldTable;
+import org.apache.qpid.AMQException;
 
 import javax.jms.*;
 import java.util.List;
 import java.util.Collections;
 import java.util.ArrayList;
+import java.net.URISyntaxException;
 
 public class ReturnUnroutableMandatoryMessageTest extends TestCase implements ExceptionListener
 {
@@ -75,78 +78,90 @@
      *
      * @throws Exception
      */
-    public void testReturnUnroutableMandatoryMessage_HEADERS() throws Exception
+    public void testReturnUnroutableMandatoryMessage_HEADERS() throws URISyntaxException, AMQException, JMSException
     {
         _bouncedMessageList.clear();
-        Connection con = new AMQConnection(BROKER, "guest", "guest", "consumer1", VIRTUALHOST);
-
-
-        AMQSession consumerSession = (AMQSession) con.createSession(false, Session.CLIENT_ACKNOWLEDGE);
-
-        AMQHeadersExchange queue = new AMQHeadersExchange(new AMQBindingURL(ExchangeDefaults.HEADERS_EXCHANGE_CLASS + "://" + ExchangeDefaults.HEADERS_EXCHANGE_NAME + "/test/queue1?" + BindingURL.OPTION_ROUTING_KEY + "='F0000=1'"));
-        FieldTable ft = new FieldTable();
-        ft.setString("F1000", "1");
-        MessageConsumer consumer = consumerSession.createConsumer(queue, AMQSession.DEFAULT_PREFETCH_LOW_MARK, AMQSession.DEFAULT_PREFETCH_HIGH_MARK, false, false, (String) null, ft);
-
-        //force synch to ensure the consumer has resulted in a bound queue
-        //((AMQSession) consumerSession).declareExchangeSynch(ExchangeDefaults.HEADERS_EXCHANGE_NAME, ExchangeDefaults.HEADERS_EXCHANGE_CLASS);
-        // This is the default now
-
-        Connection con2 = new AMQConnection(BROKER, "guest", "guest", "producer1", VIRTUALHOST);
-
-        con2.setExceptionListener(this);
-        AMQSession producerSession = (AMQSession) con2.createSession(false, Session.CLIENT_ACKNOWLEDGE);
-
-        // Need to start the "producer" connection in order to receive bounced messages
-        _logger.info("Starting producer connection");
-        con2.start();
-
-
-        MessageProducer nonMandatoryProducer = producerSession.createProducer(queue, false, false);
-        MessageProducer mandatoryProducer = producerSession.createProducer(queue);
-
-        // First test - should neither be bounced nor routed
-        _logger.info("Sending non-routable non-mandatory message");
-        TextMessage msg1 = producerSession.createTextMessage("msg1");
-        nonMandatoryProducer.send(msg1);
+        MessageConsumer consumer = null;
+        AMQSession producerSession = null;
+        AMQHeadersExchange queue = null;
+        Connection con=null, con2 = null;
+        try
+        {
+            con = new AMQConnection(BROKER, "guest", "guest", "consumer1", VIRTUALHOST);
 
-        // Second test - should be bounced
-        _logger.info("Sending non-routable mandatory message");
-        TextMessage msg2 = producerSession.createTextMessage("msg2");
-        mandatoryProducer.send(msg2);
+            AMQSession consumerSession = (AMQSession) con.createSession(false, Session.CLIENT_ACKNOWLEDGE);
 
-        // Third test - should be routed
-        _logger.info("Sending routable message");
-        TextMessage msg3 = producerSession.createTextMessage("msg3");
-        msg3.setStringProperty("F1000", "1");
-        mandatoryProducer.send(msg3);
+            queue = new AMQHeadersExchange(new AMQBindingURL(ExchangeDefaults.HEADERS_EXCHANGE_CLASS + "://" + ExchangeDefaults.HEADERS_EXCHANGE_NAME + "/test/queue1?" + BindingURL.OPTION_ROUTING_KEY + "='F0000=1'"));
+            FieldTable ft = new FieldTable();
+            ft.setString("F1000", "1");
+            consumer = consumerSession.createConsumer(queue, AMQSession.DEFAULT_PREFETCH_LOW_MARK, AMQSession.DEFAULT_PREFETCH_HIGH_MARK, false, false, (String) null, ft);
 
+            //force synch to ensure the consumer has resulted in a bound queue
+            //((AMQSession) consumerSession).declareExchangeSynch(ExchangeDefaults.HEADERS_EXCHANGE_NAME, ExchangeDefaults.HEADERS_EXCHANGE_CLASS);
+            // This is the default now
 
-        _logger.info("Starting consumer connection");
-        con.start();
-        TextMessage tm = (TextMessage) consumer.receive(1000L);
+            con2 = new AMQConnection(BROKER, "guest", "guest", "producer1", VIRTUALHOST);
 
-        assertTrue("No message routed to receiver", tm != null);
-        assertTrue("Wrong message routed to receiver: " + tm.getText(), "msg3".equals(tm.getText()));
+            con2.setExceptionListener(this);
+            producerSession = (AMQSession) con2.createSession(false, Session.CLIENT_ACKNOWLEDGE);
 
-        try
-        {
-            Thread.sleep(1000L);
+            // Need to start the "producer" connection in order to receive bounced messages
+            _logger.info("Starting producer connection");
+            con2.start();
         }
-        catch (InterruptedException e)
+        catch (JMSException jmse)
         {
-            ;
+            fail(jmse.getMessage());
         }
 
-        assertTrue("Wrong number of messages bounced (expect 1): " + _bouncedMessageList.size(), _bouncedMessageList.size() == 1);
-        Message m = _bouncedMessageList.get(0);
-        assertTrue("Wrong message bounced: " + m.toString(), m.toString().contains("msg2"));
+        try
+        {
+            MessageProducer nonMandatoryProducer = producerSession.createProducer(queue, false, false);
+            MessageProducer mandatoryProducer = producerSession.createProducer(queue);
 
+            // First test - should neither be bounced nor routed
+            _logger.info("Sending non-routable non-mandatory message");
+            TextMessage msg1 = producerSession.createTextMessage("msg1");
+            nonMandatoryProducer.send(msg1);
+
+            // Second test - should be bounced
+            _logger.info("Sending non-routable mandatory message");
+            TextMessage msg2 = producerSession.createTextMessage("msg2");
+            mandatoryProducer.send(msg2);
+
+            // Third test - should be routed
+            _logger.info("Sending routable message");
+            TextMessage msg3 = producerSession.createTextMessage("msg3");
+            msg3.setStringProperty("F1000", "1");
+            mandatoryProducer.send(msg3);
+
+            _logger.info("Starting consumer connection");
+            con.start();
+            TextMessage tm = (TextMessage) consumer.receive(1000L);
+
+            assertTrue("No message routed to receiver", tm != null);
+            assertTrue("Wrong message routed to receiver: " + tm.getText(), "msg3".equals(tm.getText()));
+
+            try
+            {
+                Thread.sleep(1000L);
+            }
+            catch (InterruptedException e)
+            {
+                ;
+            }
+
+            assertTrue("Wrong number of messages bounced (expect 1): " + _bouncedMessageList.size(), _bouncedMessageList.size() == 1);
+            Message m = _bouncedMessageList.get(0);
+            assertTrue("Wrong message bounced: " + m.toString(), m.toString().contains("msg2"));
+        }
+        catch (JMSException jmse)
+        {
 
+        }
         con.close();
         con2.close();
 
-
     }
 
     public void testReturnUnroutableMandatoryMessage_QUEUE() throws Exception
@@ -154,7 +169,6 @@
         _bouncedMessageList.clear();
         Connection con = new AMQConnection(BROKER, "guest", "guest", "consumer1", VIRTUALHOST);
 
-
         AMQSession consumerSession = (AMQSession) con.createSession(false, Session.CLIENT_ACKNOWLEDGE);
 
         AMQQueue valid_queue = new AMQQueue(ExchangeDefaults.DIRECT_EXCHANGE_CLASS, "testReturnUnroutableMandatoryMessage_QUEUE");
@@ -174,7 +188,6 @@
         _logger.info("Starting producer connection");
         con2.start();
 
-
         MessageProducer nonMandatoryProducer = producerSession.createProducer(valid_queue, false, false);
         MessageProducer mandatoryProducer = producerSession.createProducer(invalid_queue);
 
@@ -188,7 +201,6 @@
         TextMessage msg2 = producerSession.createTextMessage("msg2");
         mandatoryProducer.send(msg2);
 
-
         _logger.info("Starting consumer connection");
         con.start();
         TextMessage tm = (TextMessage) consumer.receive(1000L);
@@ -209,18 +221,15 @@
         Message m = _bouncedMessageList.get(0);
         assertTrue("Wrong message bounced: " + m.toString(), m.toString().contains("msg2"));
 
-
         con.close();
         con2.close();
     }
 
-
     public void testReturnUnroutableMandatoryMessage_TOPIC() throws Exception
     {
         _bouncedMessageList.clear();
         Connection con = new AMQConnection(BROKER, "guest", "guest", "consumer1", VIRTUALHOST);
 
-
         AMQSession consumerSession = (AMQSession) con.createSession(false, Session.CLIENT_ACKNOWLEDGE);
 
         AMQTopic valid_topic = new AMQTopic(ExchangeDefaults.TOPIC_EXCHANGE_CLASS, "test.Return.Unroutable.Mandatory.Message.TOPIC");
@@ -240,7 +249,6 @@
         _logger.info("Starting producer connection");
         con2.start();
 
-
         MessageProducer nonMandatoryProducer = producerSession.createProducer(valid_topic, false, false);
         MessageProducer mandatoryProducer = producerSession.createProducer(invalid_topic);
 
@@ -254,7 +262,6 @@
         TextMessage msg2 = producerSession.createTextMessage("msg2");
         mandatoryProducer.send(msg2);
 
-
         _logger.info("Starting consumer connection");
         con.start();
         TextMessage tm = (TextMessage) consumer.receive(1000L);
@@ -275,12 +282,10 @@
         Message m = _bouncedMessageList.get(0);
         assertTrue("Wrong message bounced: " + m.toString(), m.toString().contains("msg2"));
 
-
         con.close();
         con2.close();
     }
 
-
     public static junit.framework.Test suite()
     {
         return new junit.framework.TestSuite(ReturnUnroutableMandatoryMessageTest.class);
@@ -293,7 +298,8 @@
         try
         {
             linkedException = jmsException.getLinkedException();
-        } catch (Exception e)
+        }
+        catch (Exception e)
         {
             e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
         }

Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/SimpleACLTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/SimpleACLTest.java?rev=676978&r1=676977&r2=676978&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/SimpleACLTest.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/SimpleACLTest.java Tue Jul 15 10:06:16 2008
@@ -35,7 +35,6 @@
 import javax.jms.IllegalStateException;
 import java.io.File;
 
-
 public class SimpleACLTest extends TestCase implements ConnectionListener
 {
     private String BROKER = "vm://:1";//"tcp://localhost:5672";
@@ -52,7 +51,7 @@
             fail("Configuration file not found:" + defaultaclConfigFile);
         }
 
-        if (System.getProperty("QPID_HOME") == null)
+        if (System.getProperty("QPID_HOME") == null)                                                                                            
         {
             fail("QPID_HOME not set");
         }
@@ -73,7 +72,7 @@
     public String createConnectionString(String username, String password, String broker)
     {
 
-        return "amqp://" + username + ":" + password + "@clientid/test?brokerlist='" + broker + "'";
+        return "amqp://" + username + ":" + password + "@clientid/test?brokerlist='" + broker + "?retries='0''";
     }
 
     public void testAccessAuthorized() throws AMQException, URLSyntaxException
@@ -113,15 +112,9 @@
         }
         catch (AMQException amqe)
         {
-            if (amqe.getCause().getClass() == Exception.class)
-            {
-                System.err.println("QPID-594 : WARNING RACE CONDITION. Unable to determine cause of Connection Failure.");
-                return;
-            }
-            assertEquals("Linked Exception Incorrect", JMSException.class, amqe.getCause().getClass());
-            Exception linked = ((JMSException) amqe.getCause()).getLinkedException();
-            assertEquals("Exception was wrong type", AMQAuthenticationException.class, linked.getClass());
-            assertEquals("Incorrect error code thrown", 403, ((AMQAuthenticationException) linked).getErrorCode().getCode());
+            Throwable cause = amqe.getCause();
+            assertEquals("Exception was wrong type", AMQAuthenticationException.class, cause.getClass());
+            assertEquals("Incorrect error code thrown", 403, ((AMQAuthenticationException) cause).getErrorCode().getCode());
         }
     }
 
@@ -304,11 +297,6 @@
 
             fail("Close is not expected to succeed.");
         }
-        catch (IllegalStateException ise)
-        {
-            System.err.println("QPID-826 : WARNING : Unable to determine cause of failure due to closure as we don't " +
-                               "record it for reporting after connection closed asynchronously");
-        }
         catch (JMSException e)
         {
             Throwable cause = e.getLinkedException();
@@ -567,15 +555,10 @@
 
             fail("Close is not expected to succeed.");
         }
-        catch (IllegalStateException ise)
-        {
-            System.err.println("QPID-826 : WARNING : Unable to determine cause of failure due to closure as we don't " +
-                               "record it for reporting after connection closed asynchronously");
-        }
         catch (JMSException e)
         {
             Throwable cause = e.getLinkedException();
-            cause.printStackTrace();
+
             assertEquals("Incorrect exception", AMQAuthenticationException.class, cause.getClass());
             assertEquals("Incorrect error code thrown", 403, ((AMQAuthenticationException) cause).getErrorCode().getCode());
         }

Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java?rev=676978&r1=676977&r2=676978&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java Tue Jul 15 10:06:16 2008
@@ -159,6 +159,8 @@
 
         assertEquals("Session reports Queue depth not as expected", depth, queueDepth);
 
+
+
         // Browse the queue to get a second opinion
         int msgCount = 0;
         Enumeration msgs = queueBrowser.getEnumeration();
@@ -418,9 +420,14 @@
         validate(messages);
     }
 
+    /**
+     * Testing that a QueueBrowser doesn't actually consume messages from a broker when it fails over. 
+     * @throws JMSException
+     */
     public void testFailoverWithQueueBrowser() throws JMSException
     {
         int messages = 5;
+        
 
         sendMessages("connection1", messages);
         sendMessages("connection2", messages);
@@ -475,7 +482,9 @@
         //Close browser
         queueBrowser.close();
 
-        //Validate all messages still on Broker 1
+        _logger.info("Closed Queue Browser, validating messages on broker.");
+
+        //Validate all messages still on Broker
         validate(messages);
     }
 
@@ -495,21 +504,5 @@
         //Validate all messages still on Broker 1
         validate(messages);
     }
-
-    public void loop() throws JMSException
-    {
-        int run = 0;
-        try
-        {
-            while (true)
-            {
-                System.err.println(run++ + ":************************************************************************");
-                testQueueBrowserMsgsRemainOnQueue();
-            }
-        }
-        catch (Exception e)
-        {
-            _logger.error(e, e);
-        }
-    }
+        
 }

Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java?rev=676978&r1=676977&r2=676978&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java Tue Jul 15 10:06:16 2008
@@ -132,7 +132,7 @@
         AMQConnection conn = null;
         try
         {
-            conn = new AMQConnection("amqp://guest:rubbishpassword@clientid/test?brokerlist='" + getBroker() + "?retries='1''");
+            conn = new AMQConnection("amqp://guest:rubbishpassword@clientid/test?brokerlist='" + getBroker() + "?retries='0''");
             fail("Connection should not be established password is wrong.");
         }
         catch (AMQConnectionFailureException amqe)