[
https://issues.apache.org/activemq/browse/AMQCPP-166?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=41241#action_41241
]
Thomas Johnson commented on AMQCPP-166:
---------------------------------------
Interesting. Wonder if something is wrong with my PC or build. I found
that the PrimitiveMap was not being copied when the message was being copied
and added this quick workaround in ActiveMQMapMessage.h:
virtual ActiveMQMapMessage* cloneDataStructure() const {
ActiveMQMapMessage* message = new ActiveMQMapMessage();
message->copyDataStructure( this );
if (map!=NULL && message->map==NULL) {
message->map=new util::PrimitiveMap(*map);
}
return message;
}
> MapMessage does not send mapped fields
> --------------------------------------
>
> Key: AMQCPP-166
> URL: https://issues.apache.org/activemq/browse/AMQCPP-166
> Project: ActiveMQ C++ Client
> Issue Type: Bug
> Components: Openwire
> Affects Versions: 2.1.3
> Environment: 32-bit XP client with client compiled under VS 2005,
> ActiveMQ v5.0 is running on a 32-bit Windows 2003 server.
> Reporter: Thomas Johnson
> Assignee: Timothy Bish
>
> Modified the vs2005-activemq-example's HelloWorldProducer to use a map
> message:
> MapMessage *message=session->createMapMessage();
> message->setInt("MsgNum",ix);
>
> message->setString("Thread",threadIdStr.c_str());
> producer->send( message );
> and the HelloWorldConsumer to receive it:
> const MapMessage * mapMessage=
> dynamic_cast<const MapMessage *>(message);
> if (mapMessage!=NULL) {
> int num=mapMessage->getInt("MsgNum");
> printf("Msg #%d from thread
> %s\n",num,mapMessage->getString("Thread").c_str());
> } else {
> printf("Not a map message\n");
> }
> The getInt with Msgnum throw a field not in map exception. After closer
> inspection, the map was empty. Also, while not an expert in the code, but I
> tried tracing it through the producer->send and as far as I could tell, the
> map was never marshalled.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.