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 2014/01/31 13:25:33 UTC

svn commit: r1563122 - /qpid/trunk/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp

Author: gsim
Date: Fri Jan 31 12:25:32 2014
New Revision: 1563122

URL: http://svn.apache.org/r1563122
Log:
QPID-5529: remove failed send from delivery buffer

Modified:
    qpid/trunk/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp?rev=1563122&r1=1563121&r2=1563122&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp Fri Jan 31 12:25:32 2014
@@ -95,11 +95,17 @@ bool SenderContext::send(const qpid::mes
             return true;
         } else {
             deliveries.push_back(Delivery(nextId++));
-            Delivery& delivery = deliveries.back();
-            delivery.encode(MessageImplAccess::get(message), address, setToOnSend);
-            delivery.send(sender, unreliable);
-            *out = &delivery;
-            return true;
+            try {
+                Delivery& delivery = deliveries.back();
+                delivery.encode(MessageImplAccess::get(message), address, setToOnSend);
+                delivery.send(sender, unreliable);
+                *out = &delivery;
+                return true;
+            } catch (const std::exception& e) {
+                deliveries.pop_back();
+                --nextId;
+                throw SendError(e.what());
+            }
         }
     } else {
         return false;



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org