Robbie,

If there is to be a new RC for 0.8, would you be happy including the fix below in it? The issue is not critical as there is a workaround. However its annoying, the fix is small and low risk and it would be nicer to avoid having users hit the issue until the following release.

--Gordon.

On 11/12/2010 01:22 PM, [email protected] wrote:
Author: gsim
Date: Fri Nov 12 13:22:31 2010
New Revision: 1034393

URL: http://svn.apache.org/viewvc?rev=1034393&view=rev
Log:
QPID-2940: always request completions from broker on Session::acknowledge(), 
and always clean up any pending accept records at that time

Modified:
     qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp
     qpid/trunk/qpid/cpp/src/qpid/messaging/Session.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp?rev=1034393&r1=1034392&r2=1034393&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp Fri Nov 12 
13:22:31 2010
@@ -97,7 +97,7 @@ void SessionImpl::acknowledge(bool sync_
      //message may be redelivered; i.e. the application cannot delete
      //any state necessary for preventing reprocessing of the message
      execute<Acknowledge>();
-    if (sync_) sync(true);
+    sync(sync_);
  }

  void SessionImpl::reject(qpid::messaging::Message&  m)
@@ -433,6 +433,8 @@ void SessionImpl::syncImpl(bool block)
  {
      if (block) session.sync();
      else session.flush();
+    //cleanup unconfirmed accept records:
+    incoming.pendingAccept();
  }

  void SessionImpl::commitImpl()

Modified: qpid/trunk/qpid/cpp/src/qpid/messaging/Session.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/messaging/Session.cpp?rev=1034393&r1=1034392&r2=1034393&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/messaging/Session.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/messaging/Session.cpp Fri Nov 12 13:22:31 2010
@@ -39,7 +39,7 @@ Session&  Session::operator=(const Sessio
  void Session::commit() { impl->commit(); }
  void Session::rollback() { impl->rollback(); }
  void Session::acknowledge(bool sync) { impl->acknowledge(sync); }
-void Session::acknowledge(Message&  m, bool s) { impl->acknowledge(m); if (s) 
sync(true); }
+void Session::acknowledge(Message&  m, bool s) { impl->acknowledge(m); 
sync(s); }
  void Session::reject(Message&  m) { impl->reject(m); }
  void Session::release(Message&  m) { impl->release(m); }
  void Session::close() { impl->close(); }



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]




---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to