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 2007/01/25 14:08:06 UTC

svn commit: r499781 - in /incubator/qpid/trunk/qpid/java/perftests/src: main/java/org/apache/qpid/requestreply/PingPongProducer.java test/java/org/apache/qpid/ping/PingAsyncTestPerf.java

Author: ritchiem
Date: Thu Jan 25 05:08:05 2007
New Revision: 499781

URL: http://svn.apache.org/viewvc?view=rev&rev=499781
Log:
Fixed race condition that would cause duplicate batch data to be logged.

Modified:
    incubator/qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/requestreply/PingPongProducer.java
    incubator/qpid/trunk/qpid/java/perftests/src/test/java/org/apache/qpid/ping/PingAsyncTestPerf.java

Modified: incubator/qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/requestreply/PingPongProducer.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/requestreply/PingPongProducer.java?view=diff&rev=499781&r1=499780&r2=499781
==============================================================================
--- incubator/qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/requestreply/PingPongProducer.java (original)
+++ incubator/qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/requestreply/PingPongProducer.java Thu Jan 25 05:08:05 2007
@@ -505,8 +505,10 @@
      */
     public void onMessage(Message message)
     {
+
         try
         {
+
             // Store the reply, if it has a correlation id that is expected.
             String correlationID = message.getJMSCorrelationID();
 
@@ -523,11 +525,18 @@
             {
                 if (_messageListener != null)
                 {
-                    _messageListener.onMessage(message);
+                    synchronized (trafficLight)
+                    {
+                        _messageListener.onMessage(message);
+                        trafficLight.countDown();
+                    }
+                }
+                else
+                {
+                    trafficLight.countDown();
                 }
 
                 _logger.trace("Reply was expected, decrementing the latch for the id.");
-                trafficLight.countDown();
 
                 long remainingCount = trafficLight.getCount();
 

Modified: incubator/qpid/trunk/qpid/java/perftests/src/test/java/org/apache/qpid/ping/PingAsyncTestPerf.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/perftests/src/test/java/org/apache/qpid/ping/PingAsyncTestPerf.java?view=diff&rev=499781&r1=499780&r2=499781
==============================================================================
--- incubator/qpid/trunk/qpid/java/perftests/src/test/java/org/apache/qpid/ping/PingAsyncTestPerf.java (original)
+++ incubator/qpid/trunk/qpid/java/perftests/src/test/java/org/apache/qpid/ping/PingAsyncTestPerf.java Thu Jan 25 05:08:05 2007
@@ -168,7 +168,7 @@
 //        catch (JMSException e)
 //        {
 //            e.printStackTrace();
-//            Assert.fail("JMS Exception Recevied" + e);
+//            Assert.fail("JMS Exception Received" + e);
 //        }
 //        catch (InterruptedException e)
 //        {
@@ -207,11 +207,15 @@
 //            }
 //            catch (JMSException e)
 //            {
-//                _logger.error("Error commiting recevied messages", e);
+//                _logger.error("Error commiting received messages", e);
 //            }
 //            try
 //            {
-//                _timingController.completeTest(false, numPings - numReplies);
+//                if (_timingController != null)
+//                {
+//                    _logger.trace("Logging missing message count");
+//                    _timingController.completeTest(false, numPings - numReplies);
+//                }
 //            }
 //            catch (InterruptedException e)
 //            {
@@ -259,35 +263,22 @@
 //        {
 //            try
 //            {
-//                _logger.trace("Message Recevied");
+//                _logger.trace("Message Received");
 //
 //                CountDownLatch count = _perThreadSetup._pingItselfClient.getEndLock(message.getJMSCorrelationID());
 //
-//                int messagesLeft = (int) count.getCount();
+//                int messagesLeft = (int) count.getCount() - 1;// minus one as we haven't yet counted the current message
 //
-//                int messagesReceived = _totalMessages - messagesLeft;
-//
-//                try
+//                if ((messagesLeft % _batchSize) == 0)
 //                {
-//                    if (messagesReceived % _batchSize == 0)
-//                    {
-//                        if (_timingController != null)
-//                        {
-//                            _timingController.completeTest(true, _batchSize);
-//                        }
-//                    }
-//                    else if (messagesReceived == _totalMessages)
-//                    {
-//                        _logger.info("Test Completed.. signalling");
-//                        doDone(messagesReceived);
-//                    }
-//
+//                    doDone(_batchSize);
 //                }
-//                catch (InterruptedException e)
+//                else if (messagesLeft == 0)
 //                {
-//                    _logger.error("Interupted Test");
-////                doDone(messagesReceived);
+//                    doDone(_totalMessages % _batchSize);
 //                }
+//
+//
 //            }
 //            catch (JMSException e)
 //            {
@@ -303,7 +294,10 @@
 //
 //            try
 //            {
-//                _timingController.completeTest(true, messageCount);
+//                if (_timingController != null)
+//                {
+//                    _timingController.completeTest(true, messageCount);
+//                }
 //            }
 //            catch (InterruptedException e)
 //            {