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 2013/05/10 18:59:06 UTC
svn commit: r1481097 - in /activemq/activemq-cpp/trunk/activemq-cpp/src:
main/activemq/commands/ main/activemq/core/kernels/
test-integration/activemq/test/ test-integration/activemq/test/openwire/
Author: tabish
Date: Fri May 10 16:59:06 2013
New Revision: 1481097
URL: http://svn.apache.org/r1481097
Log:
fix and test for: https://issues.apache.org/jira/browse/AMQCPP-482
Modified:
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQMessageTemplate.h
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/kernels/ActiveMQSessionKernel.cpp
activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/SimpleTest.cpp
activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireSimpleTest.cpp
activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireSimpleTest.h
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQMessageTemplate.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQMessageTemplate.h?rev=1481097&r1=1481096&r2=1481097&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQMessageTemplate.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQMessageTemplate.h Fri May 10 16:59:06 2013
@@ -387,7 +387,17 @@ namespace commands {
AMQ_CATCH_ALL_THROW_CMSEXCEPTION()
}
- virtual void setCMSMessageID(const std::string& id AMQCPP_UNUSED ) {
+ virtual void setCMSMessageID(const std::string& value) {
+ try {
+ Pointer<MessageId> id(new MessageId(value));
+ this->setMessageId(id);
+ } catch (decaf::lang::exceptions::NumberFormatException& e) {
+ // we must be some foreign JMS provider or strange user-supplied
+ // String so lets set the IDs to be 1
+ Pointer<MessageId> id(new MessageId);
+ id->setTextView(value);
+ this->setMessageId(messageId);
+ }
}
virtual int getCMSPriority() const {
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/kernels/ActiveMQSessionKernel.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/kernels/ActiveMQSessionKernel.cpp?rev=1481097&r1=1481096&r2=1481097&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/kernels/ActiveMQSessionKernel.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/kernels/ActiveMQSessionKernel.cpp Fri May 10 16:59:06 2013
@@ -963,12 +963,14 @@ void ActiveMQSessionKernel::send(kernels
// to clone it.
if (ActiveMQMessageTransformation::transformMessage(message, connection, &transformed)) {
amqMessage.reset(transformed);
- // Sets the Message ID on the original message per spec.
- message->setCMSMessageID(id->toString());
} else {
amqMessage.reset(transformed->cloneDataStructure());
}
+ // Sets the Message ID on the original message per spec.
+ message->setCMSMessageID(id->toString());
+ message->setCMSDestination(destination.dynamicCast<cms::Destination>().get());
+
amqMessage->setMessageId(id);
amqMessage->getBrokerPath().clear();
amqMessage->setTransactionId(txId);
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/SimpleTest.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/SimpleTest.cpp?rev=1481097&r1=1481096&r2=1481097&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/SimpleTest.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/SimpleTest.cpp Fri May 10 16:59:06 2013
@@ -388,7 +388,7 @@ void SimpleTest::testBytesMessageSendRec
unsigned char* result = bytesMessage2->getBodyBytes();
CPPUNIT_ASSERT( result != NULL );
- delete result;
+ delete [] result;
bytesMessage2->reset();
@@ -432,7 +432,7 @@ namespace {
unsigned char* result = bytesMessage->getBodyBytes();
CPPUNIT_ASSERT( result != NULL );
- delete result;
+ delete [] result;
passed = true;
} catch(...) {
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireSimpleTest.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireSimpleTest.cpp?rev=1481097&r1=1481096&r2=1481097&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireSimpleTest.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireSimpleTest.cpp Fri May 10 16:59:06 2013
@@ -367,3 +367,19 @@ void OpenwireSimpleTest::tesstStreamMess
CPPUNIT_ASSERT( rcvStreamMessage->readDouble() == doubleValue );
CPPUNIT_ASSERT( rcvStreamMessage->readBytes( readBytes ) == (int)bytes.size() );
}
+
+////////////////////////////////////////////////////////////////////////////////
+void OpenwireSimpleTest::testMessageIdSetOnSend() {
+
+ // Create CMS Object for Comms
+ cms::Session* session(cmsProvider->getSession());
+ cms::MessageConsumer* consumer = cmsProvider->getConsumer();
+ cms::MessageProducer* producer = cmsProvider->getProducer();
+ producer->setDeliveryMode(DeliveryMode::NON_PERSISTENT);
+
+ auto_ptr<cms::Message> message(session->createMessage());
+ producer->send(message.get());
+
+ CPPUNIT_ASSERT(message->getCMSMessageID() != "");
+ CPPUNIT_ASSERT(message->getCMSDestination() != NULL);
+}
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireSimpleTest.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireSimpleTest.h?rev=1481097&r1=1481096&r2=1481097&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireSimpleTest.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireSimpleTest.h Fri May 10 16:59:06 2013
@@ -49,6 +49,7 @@ namespace openwire{
CPPUNIT_TEST( tesstStreamMessage );
CPPUNIT_TEST( testLibraryInitShutdownInit );
CPPUNIT_TEST( testBytesMessageSendRecvAsync );
+ CPPUNIT_TEST( testMessageIdSetOnSend );
CPPUNIT_TEST_SUITE_END();
public:
@@ -68,6 +69,7 @@ namespace openwire{
void testMapMessageSendToTopic();
void tesstStreamMessage();
void testDestroyDestination();
+ void testMessageIdSetOnSend();
};