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 2010/06/24 13:22:28 UTC
svn commit: r957511 - in /qpid/trunk/qpid/cpp/src: qpid/broker/Message.cpp
qpid/broker/Queue.cpp qpid/broker/Queue.h tests/federation.py
Author: gsim
Date: Thu Jun 24 11:22:28 2010
New Revision: 957511
URL: http://svn.apache.org/viewvc?rev=957511&view=rev
Log:
QPID-2691: ensure ttl adjustment uses correct expiration on cloned message
Modified:
qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp
qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp
qpid/trunk/qpid/cpp/src/qpid/broker/Queue.h
qpid/trunk/qpid/cpp/src/tests/federation.py
Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp?rev=957511&r1=957510&r2=957511&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp Thu Jun 24 11:22:28 2010
@@ -55,8 +55,11 @@ Message::Message(const framing::Sequence
Message::Message(const Message& original) :
PersistableMessage(), frames(original.frames), persistenceId(0), redelivered(false), loaded(false),
staged(false), forcePersistentPolicy(false), publisher(0), adapter(0),
- expiration(FAR_FUTURE), enqueueCallback(0), dequeueCallback(0),
- inCallback(false), requiredCredit(0) {}
+ expiration(original.expiration), enqueueCallback(0), dequeueCallback(0),
+ inCallback(false), requiredCredit(0)
+{
+ setExpiryPolicy(original.expiryPolicy);
+}
Message::~Message()
{
Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp?rev=957511&r1=957510&r2=957511&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp Thu Jun 24 11:22:28 2010
@@ -141,7 +141,7 @@ bool Queue::isExcluded(boost::intrusive_
return traceExclude.size() && msg->isExcluded(traceExclude);
}
-void Queue::deliver(boost::intrusive_ptr<Message>& msg){
+void Queue::deliver(boost::intrusive_ptr<Message> msg){
if (msg->isImmediate() && getConsumerCount() == 0) {
if (alternateExchange) {
DeliverableMessage deliverable(msg);
Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Queue.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.h?rev=957511&r1=957510&r2=957511&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Queue.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Queue.h Thu Jun 24 11:22:28 2010
@@ -211,7 +211,7 @@ namespace qpid {
* Delivers a message to the queue. Will record it as
* enqueued if persistent then process it.
*/
- QPID_BROKER_EXTERN void deliver(boost::intrusive_ptr<Message>& msg);
+ QPID_BROKER_EXTERN void deliver(boost::intrusive_ptr<Message> msg);
/**
* Dispatches the messages immediately to a consumer if
* one is available or stores it for later if not.
Modified: qpid/trunk/qpid/cpp/src/tests/federation.py
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/federation.py?rev=957511&r1=957510&r2=957511&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/federation.py (original)
+++ qpid/trunk/qpid/cpp/src/tests/federation.py Thu Jun 24 11:22:28 2010
@@ -358,7 +358,7 @@ class FederationTests(TestBase010):
for b, t in zip(body, trace):
headers = {}
if (t): headers["x-qpid.trace"]=t
- dp = r_session.delivery_properties(routing_key="my-key")
+ dp = r_session.delivery_properties(routing_key="my-key", ttl=1000*60*5)
mp = r_session.message_properties(application_headers=headers)
r_session.message_transfer(destination="amq.direct", message=Message(dp, mp, b))
@@ -366,6 +366,8 @@ class FederationTests(TestBase010):
msg = queue.get(timeout=5)
self.assertEqual("yes", msg.body)
self.assertEqual(e, self.getAppHeader(msg, "x-qpid.trace"))
+ assert(msg.get("delivery_properties").ttl > 0)
+ assert(msg.get("delivery_properties").ttl < 1000*60*50)
try:
extra = queue.get(timeout=1)
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org