You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gs...@apache.org on 2008/09/30 20:46:31 UTC

svn commit: r700545 - /incubator/qpid/trunk/qpid/cpp/src/qpid/broker/QueuePolicy.cpp

Author: gsim
Date: Tue Sep 30 11:46:31 2008
New Revision: 700545

URL: http://svn.apache.org/viewvc?rev=700545&view=rev
Log:
Handle case where first message in 'ring queue' would exceed limit.


Modified:
    incubator/qpid/trunk/qpid/cpp/src/qpid/broker/QueuePolicy.cpp

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/QueuePolicy.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/QueuePolicy.cpp?rev=700545&r1=700544&r2=700545&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/QueuePolicy.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/QueuePolicy.cpp Tue Sep 30 11:46:31 2008
@@ -176,6 +176,13 @@
     QueuedMessage oldest;
     {
         qpid::sys::Mutex::ScopedLock l(lock);
+        if (queue.empty()) {
+            QPID_LOG(debug, "Message too large for ring queue " 
+                     << (m.queue ? m.queue->getName() : std::string("unknown queue")) 
+                     << " [" << *this  << "] "
+                     << ": message size = " << m.payload->contentSize() << " bytes");
+            return false;
+        }
         oldest = queue.front();
     }
     if (oldest.queue->acquire(oldest) || !strict) {