You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2007/01/29 12:07:28 UTC

svn commit: r501007 - in /incubator/qpid/trunk/qpid/java/client/src: old_test/java/org/apache/qpid/codec/ old_test/java/org/apache/qpid/headers/ old_test/java/org/apache/qpid/test/unit/jndi/referenceabletest/ test/java/org/apache/qpid/client/ test/java...

Author: rgreig
Date: Mon Jan 29 03:07:25 2007
New Revision: 501007

URL: http://svn.apache.org/viewvc?view=rev&rev=501007
Log:
QPID-322 : Patch supplied by Rob Godfrey - Tests may hang instead of fail if message does not get through



Modified:
    incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/codec/BasicDeliverTest.java
    incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/codec/Client.java
    incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/headers/Listener.java
    incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/headers/Publisher.java
    incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/test/unit/jndi/referenceabletest/JNDIReferenceableTest.java
    incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/client/MessageListenerTest.java
    incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/ack/RecoverTest.java
    incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/basic/MapMessageTest.java
    incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java
    incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/forwardall/Client.java
    incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/message/ObjectMessageTest.java
    incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/topic/TopicSessionTest.java
    incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/transacted/TransactedTest.java

Modified: incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/codec/BasicDeliverTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/codec/BasicDeliverTest.java?view=diff&rev=501007&r1=501006&r2=501007
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/codec/BasicDeliverTest.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/codec/BasicDeliverTest.java Mon Jan 29 03:07:25 2007
@@ -240,10 +240,7 @@
 
     static AMQFrame wrapBody(AMQBody body)
     {
-        AMQFrame frame = new AMQFrame();
-        frame.bodyFrame = body;
-        frame.channel = 1;
-
+        AMQFrame frame = new AMQFrame(1, body);
         return frame;
     }
 
@@ -269,7 +266,10 @@
 
     static BasicDeliverBody createBasicDeliverBody()
     {
-        BasicDeliverBody body = new BasicDeliverBody((byte) 8, (byte) 0, new AMQShortString("myConsumerTag"), 1,
+        BasicDeliverBody body = new BasicDeliverBody((byte) 8, (byte) 0,
+                                                     BasicDeliverBody.getClazz((byte) 8, (byte) 0),
+                                                     BasicDeliverBody.getMethod((byte) 8, (byte) 0),                                                     
+                                                     new AMQShortString("myConsumerTag"), 1,
                                                      new AMQShortString("myExchange"), false,
                                                      new AMQShortString("myRoutingKey"));
         return body;

Modified: incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/codec/Client.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/codec/Client.java?view=diff&rev=501007&r1=501006&r2=501007
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/codec/Client.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/codec/Client.java Mon Jan 29 03:07:25 2007
@@ -106,12 +106,12 @@
 
     private static boolean isDeliver(Object o)
     {
-        return o instanceof AMQFrame && ((AMQFrame) o).bodyFrame instanceof BasicDeliverBody;
+        return o instanceof AMQFrame && ((AMQFrame) o).getBodyFrame() instanceof BasicDeliverBody;
     }
 
     private static boolean isContent(Object o)
     {
-        return o instanceof AMQFrame && ((AMQFrame) o).bodyFrame instanceof ContentBody;
+        return o instanceof AMQFrame && ((AMQFrame) o).getBodyFrame() instanceof ContentBody;
     }
 
     public static void main(String[] argv) throws Exception

Modified: incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/headers/Listener.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/headers/Listener.java?view=diff&rev=501007&r1=501006&r2=501007
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/headers/Listener.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/headers/Listener.java Mon Jan 29 03:07:25 2007
@@ -23,7 +23,7 @@
 import org.apache.qpid.client.AMQConnection;
 import org.apache.qpid.client.AMQSession;
 import org.apache.qpid.jms.Session;
-import org.apache.qpid.testutil.Config;
+//import org.apache.qpid.testutil.Config;
 
 import javax.jms.MessageListener;
 import javax.jms.Message;
@@ -31,9 +31,9 @@
 import javax.jms.MessageProducer;
 import javax.jms.JMSException;
 
-public class Listener implements MessageListener
+public class Listener //implements MessageListener
 {
-    private final AMQConnection _connection;
+/*    private final AMQConnection _connection;
     private final MessageProducer _controller;
     private final AMQSession _session;
     private final MessageFactory _factory;
@@ -113,5 +113,5 @@
         config.setName("test_headers_exchange");
         config.setOptions(argv);
         new Listener((AMQConnection) config.getConnection(), config.getDestination());
-    }
+    }*/
 }

Modified: incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/headers/Publisher.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/headers/Publisher.java?view=diff&rev=501007&r1=501006&r2=501007
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/headers/Publisher.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/headers/Publisher.java Mon Jan 29 03:07:25 2007
@@ -22,13 +22,13 @@
 
 import org.apache.qpid.client.AMQConnection;
 import org.apache.qpid.client.AMQSession;
-import org.apache.qpid.testutil.Config;
+//import org.apache.qpid.testutil.Config;
 
 import javax.jms.*;
 
-public class Publisher implements MessageListener
+public class Publisher // implements MessageListener
 {
-    private final Object _lock = new Object();
+/*   private final Object _lock = new Object();
     private final AMQConnection _connection;
     private final AMQSession _session;
     private final Destination _exchange;
@@ -129,5 +129,5 @@
             new Publisher(config).test(msgCount, consumerCount);
         }
 
-    }
+    }*/
 }

Modified: incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/test/unit/jndi/referenceabletest/JNDIReferenceableTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/test/unit/jndi/referenceabletest/JNDIReferenceableTest.java?view=diff&rev=501007&r1=501006&r2=501007
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/test/unit/jndi/referenceabletest/JNDIReferenceableTest.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/old_test/java/org/apache/qpid/test/unit/jndi/referenceabletest/JNDIReferenceableTest.java Mon Jan 29 03:07:25 2007
@@ -21,7 +21,7 @@
 package org.apache.qpid.test.unit.jndi.referenceabletest;
 
 import junit.framework.TestCase;
-import org.apache.qpid.testutil.VMBrokerSetup;
+//import org.apache.qpid.testutil.VMBrokerSetup;
 
 import javax.naming.NameAlreadyBoundException;
 import javax.naming.NoInitialContextException;
@@ -38,7 +38,7 @@
  */
 public class JNDIReferenceableTest extends TestCase
 {
-    // FIXME FSContext has been removed from repository. This needs redone with the PropertiesFileInitialContextFactory. QPID-84
+/*    // FIXME FSContext has been removed from repository. This needs redone with the PropertiesFileInitialContextFactory. QPID-84
     public void testReferenceable()
     {
         Bind b = null;
@@ -98,4 +98,5 @@
     {
         return new VMBrokerSetup(new junit.framework.TestSuite(JNDIReferenceableTest.class));
     }
+    */
 }

Modified: incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/client/MessageListenerTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/client/MessageListenerTest.java?view=diff&rev=501007&r1=501006&r2=501007
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/client/MessageListenerTest.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/client/MessageListenerTest.java Mon Jan 29 03:07:25 2007
@@ -126,7 +126,7 @@
 
         for (int msg = 0; msg < MSG_COUNT; msg++)
         {
-            assertTrue(_consumer.receive() != null);
+            assertTrue(_consumer.receive(2000) != null);
         }
     }
 

Modified: incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/ack/RecoverTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/ack/RecoverTest.java?view=diff&rev=501007&r1=501006&r2=501007
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/ack/RecoverTest.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/ack/RecoverTest.java Mon Jan 29 03:07:25 2007
@@ -29,21 +29,28 @@
 import org.apache.qpid.exchange.ExchangeDefaults;
 
 import javax.jms.*;
+import java.util.concurrent.atomic.AtomicInteger;
 
 public class RecoverTest extends TestCase
 {
     private static final Logger _logger = Logger.getLogger(RecoverTest.class);
 
+    private Exception _error;
+    private AtomicInteger count;
+
     protected void setUp() throws Exception
     {
         super.setUp();
         TransportConnection.createVMBroker(1);
+        _error = null;
+        count = new AtomicInteger();
     }
 
     protected void tearDown() throws Exception
     {
         super.tearDown();
         TransportConnection.killAllVMBrokers();
+        count = null;
     }
 
 
@@ -212,38 +219,93 @@
         Connection con = new AMQConnection("vm://:1", "guest", "guest", "consumer1", "test");
 
         final Session consumerSession = con.createSession(false, Session.AUTO_ACKNOWLEDGE);
-        Queue queue = new AMQQueue(new AMQShortString("Q1"), new AMQShortString("Q1"), false, true);
+        Queue queue = new AMQQueue(new AMQShortString("Q3"), new AMQShortString("Q3"), false, true);
+        MessageConsumer consumer = consumerSession.createConsumer(queue);
         MessageProducer producer = consumerSession.createProducer(queue);
         producer.send(consumerSession.createTextMessage("hello"));
-        MessageConsumer consumer = consumerSession.createConsumer(queue);
+
+
+        final Object lock = new Object();
+
         consumer.setMessageListener(new MessageListener()
         {
-            private int count = 0;
+
+
 
             public void onMessage(Message message)
             {
                 try
                 {
-                    if (count++ == 0)
+                    count.incrementAndGet();
+                    if (count.get() == 1)
                     {
-                        assertFalse(message.getJMSRedelivered());
+                        if(message.getJMSRedelivered())
+                        {
+                            setError(new Exception("Message marked as redilvered on what should be first delivery attempt"));
+                        }
                         consumerSession.recover();
                     }
-                    else if (count++ == 1)
+                    else if (count.get() == 2)
                     {
-                        assertTrue(message.getJMSRedelivered());
+                        if(!message.getJMSRedelivered())
+                        {
+                            setError(new Exception("Message not marked as redilvered on what should be second delivery attempt"));
+                        }
                     }
                     else
                     {
-                        fail("Message delivered too many times!");
+                        System.err.println(message);
+                        fail("Message delivered too many times!: " + count);
                     }
                 }
                 catch (JMSException e)
                 {
                     _logger.error("Error recovering session: " + e, e);
+                    setError(e);
+                }
+                synchronized(lock)
+                {
+                    lock.notify();
                 }
             }
         });
+
+        con.start();
+
+        long waitTime = 300000L;
+        long waitUntilTime = System.currentTimeMillis() + waitTime;
+
+        synchronized(lock)
+        {
+            while((count.get() <= 1) && (waitTime > 0))
+            {
+                lock.wait(waitTime);
+                if(count.get() <= 1)
+                {
+                    waitTime = waitUntilTime - System.currentTimeMillis();
+                }
+            }
+        }
+
+        Thread.sleep(1000);
+
+        if(count.get() != 2)
+        {
+            System.err.println("Count != 2 : " + count);
+        }
+            assertTrue(count.get() == 2);
+
+        con.close();
+
+        if(_error != null)
+        {
+            throw _error;
+        }
+    }
+
+    private void setError(Exception e)
+    {
+        _error = e;
     }
 
     public static junit.framework.Test suite()

Modified: incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/basic/MapMessageTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/basic/MapMessageTest.java?view=diff&rev=501007&r1=501006&r2=501007
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/basic/MapMessageTest.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/basic/MapMessageTest.java Mon Jan 29 03:07:25 2007
@@ -144,13 +144,29 @@
 
     }
 
-    void waitFor(int count) throws InterruptedException
+    void waitFor(int count) throws Exception
     {
+        long waitTime = 30000L;
+        long waitUntilTime = System.currentTimeMillis() + 30000L;
+
+
         synchronized(received)
         {
-            while (received.size() < count)
+            while(received.size() < count && waitTime>0)
             {
-                received.wait();
+                if (received.size() < count)
+                {
+                    received.wait(waitTime);
+                }
+
+                if (received.size() < count)
+                {
+                    waitTime = waitUntilTime - System.currentTimeMillis();
+                }
+            }
+            if (received.size() < count)
+            {
+                throw new Exception("Timed-out.  Waiting for " + count + " only got " + received.size());
             }
         }
     }

Modified: incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java?view=diff&rev=501007&r1=501006&r2=501007
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java Mon Jan 29 03:07:25 2007
@@ -48,14 +48,15 @@
 
     protected void tearDown() throws Exception
     {
-        TransportConnection.killAllVMBrokers();
+        TransportConnection.killVMBroker(1);
     }
 
     public void testSimpleConnection()
     {
         try
         {
-            new AMQConnection(_broker, "guest", "guest", "fred", "test");
+            AMQConnection conn  = new AMQConnection(_broker, "guest", "guest", "fred", "test");
+            conn.close();
         }
         catch (Exception e)
         {
@@ -94,6 +95,7 @@
                 fail("Correct exception not thrown. Excpected 'AMQConnectionException' got: " + amqe);
             }
         }
+
     }
 
     public void testUnresolvedHostFailure() throws Exception

Modified: incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/forwardall/Client.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/forwardall/Client.java?view=diff&rev=501007&r1=501006&r2=501007
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/forwardall/Client.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/forwardall/Client.java Mon Jan 29 03:07:25 2007
@@ -65,23 +65,29 @@
         _connection.close();
     }
 
-    public void onMessage(Message response)
+    public synchronized void onMessage(Message response)
     {
+       
         System.out.println("Received " + (++_count) + " of " + _expected  + " responses.");
         if(_count == _expected)
         {
-            synchronized(this)
-            {
-                notifyAll();
-            }
+
+            notifyAll();
         }
+
+
     }
 
-    synchronized void waitUntilComplete() throws InterruptedException
+    synchronized void waitUntilComplete() throws Exception
     {
-        while(_count < _expected)
+
+        if(_count < _expected)
+        {
+            wait(10000L);
+        }
+        if(_count < _expected)
         {
-            wait();
+            throw new Exception("Didn't receive all messages... got " + _count + " expected " + _expected);    
         }
     }
 

Modified: incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/message/ObjectMessageTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/message/ObjectMessageTest.java?view=diff&rev=501007&r1=501006&r2=501007
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/message/ObjectMessageTest.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/message/ObjectMessageTest.java Mon Jan 29 03:07:25 2007
@@ -101,6 +101,7 @@
         }
         catch (Exception e)
         {
+            e.printStackTrace();
             fail("This Test should succeed but failed due to: " + e);
         }
         finally
@@ -236,7 +237,7 @@
 
     public void onMessage(Message message)
     {
-        received++;
+
         try
         {
             if (message instanceof ObjectMessage)
@@ -255,13 +256,11 @@
             items.add(e);
         }
 
-        if (waiting)
-        {
             synchronized(this)
             {
+                received++;
                 notify();
             }
-        }
     }
 
 

Modified: incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/topic/TopicSessionTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/topic/TopicSessionTest.java?view=diff&rev=501007&r1=501006&r2=501007
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/topic/TopicSessionTest.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/topic/TopicSessionTest.java Mon Jan 29 03:07:25 2007
@@ -219,6 +219,7 @@
         assertNotNull(receivedMessage);
         assertEquals(sentMessage.getText(),receivedMessage.getText());
 
+        conn.close();
 
     }
 

Modified: incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/transacted/TransactedTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/transacted/TransactedTest.java?view=diff&rev=501007&r1=501006&r2=501007
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/transacted/TransactedTest.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/transacted/TransactedTest.java Mon Jan 29 03:07:25 2007
@@ -84,7 +84,7 @@
         testCon = new AMQConnection("vm://:1", "guest", "guest", "TestConnection", "test");
         testSession = testCon.createSession(false, AMQSession.NO_ACKNOWLEDGE);
         testConsumer2 = testSession.createConsumer(queue2);
-        testCon.start();
+
     }
 
     protected void tearDown() throws Exception
@@ -108,7 +108,7 @@
 
         //commit
         session.commit();
-
+        testCon.start();
         //ensure sent messages can be received and received messages are gone
         expect("X", testConsumer2.receive(1000));
         expect("Y", testConsumer2.receive(1000));
@@ -135,7 +135,7 @@
         expect("A", consumer1.receive(1000));
         expect("B", consumer1.receive(1000));
         expect("C", consumer1.receive(1000));
-
+        testCon.start();
         testConsumer1 = testSession.createConsumer(queue1);
         assertTrue(null == testConsumer1.receive(1000));
         assertTrue(null == testConsumer2.receive(1000));