You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2007/01/31 15:25:21 UTC
svn commit: r501852 -
/incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQSession.cpp
Author: tabish
Date: Wed Jan 31 06:25:20 2007
New Revision: 501852
URL: http://svn.apache.org/viewvc?view=rev&rev=501852
Log:
http://issues.apache.org/activemq/browse/AMQCPP-63
Update Session to clone sent messages and destroy the clones once the message is sent. This is to allow the user to delete their message pointers after a send. We may want to change to CMS API at some point so that we control object lifetime after a send.
Modified:
incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQSession.cpp
Modified: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQSession.cpp
URL: http://svn.apache.org/viewvc/incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQSession.cpp?view=diff&rev=501852&r1=501851&r2=501852
==============================================================================
--- incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQSession.cpp (original)
+++ incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQSession.cpp Wed Jan 31 06:25:20 2007
@@ -572,9 +572,11 @@
if( useAsyncSend == true ) {
- // Put it in the send queue, thread will dispatch it.
+ // Put it in the send queue, thread will dispatch it. We clone it
+ // in case the client deletes their copy before we get a chance to
+ // send it.
synchronized( &msgQueue ) {
- msgQueue.push( make_pair( message, producer ) );
+ msgQueue.push( make_pair( message->clone(), producer ) );
msgQueue.notifyAll();
}
@@ -686,6 +688,8 @@
messagePair.first,
messagePair.second->getProducerInfo() );
+ // Destroy Our copy of the message
+ delete messagePair.first;
}
}
catch(...)