activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Fred Crable <fredcra...@hotmail.com>
Subject C++ OpenwireStringSupport::readString aborts on empty property
Date Sun, 14 Oct 2007 20:05:48 GMT

I have a very simple consumer trying to read the properties from a
"TextMessage" and when its reading a particiular message the readString
function in the openwire utils aborts here (see backtrack below).  What I'm
guessing is the property set/get has an issue with properties and equal sign
in the property values.  I've got UUencoded data that looks like "ABC123="
for a property value and its getting set in the queue as two empty
properties.  For example "propertyX=ABC123=" yeilds two properties in the
message of propertyX=,ABC123= both appear to be empty.  The only way I can
retrieve the message now is via jconsole browser and the C++ code can not
marshal the values at all.  I've tried to read the code of the readString
function but its not quite clear why or where it is aborting because the
backtrace shows the 1st line of the function only :(  Anyway, if anyone has
any ideas on how to patch this or dealing with equal signs in the property
values please reply.  My only solution at this point is to purge the queue
to get past the error.

Thanks  in advance,
Fred

#0  0x00fd3eff in raise () at std/XML.cpp:761
#1  0x00fd5705 in abort () at std/XML.cpp:761
#2  0x00667aa0 in __gnu_cxx::__verbose_terminate_handler () at
std/XML.cpp:761
#3  0x00665375 in __cxxabiv1::__terminate () at std/XML.cpp:761
#4  0x006653b2 in std::terminate () at std/XML.cpp:761
#5  0x006653d5 in __cxxabiv1::__unexpected () at std/XML.cpp:761
#6  0x00664e58 in __cxa_call_unexpected () at std/XML.cpp:761
#7  0x0836a7d8 in
activemq::connector::openwire::utils::OpenwireStringSupport::readString (
    dataIn=@0xb57de644) at
activemq/connector/openwire/utils/OpenwireStringSupport.cpp:32
#8  0x08344d93 in
activemq::connector::openwire::marshal::PrimitiveMapMarshaller::unmarshalPrimitive
(dataIn=@0xb57de644, key=@0xb57de694, map=@0x9bb4d18)
    at activemq/connector/openwire/marshal/PrimitiveMapMarshaller.cpp:272
#9  0x083450aa in
activemq::connector::openwire::marshal::PrimitiveMapMarshaller::unmarshal (
    map=0x9bb4d18, src=@0x9bb4cd4)
    at activemq/connector/openwire/marshal/PrimitiveMapMarshaller.cpp:124
#10 0x08306611 in
activemq::connector::openwire::commands::ActiveMQMessageBase<cms::TextMessage>::afterUnmarshal
(this=0x9bb4c70, wireFormat=0x994b200)
    at ./activemq/connector/openwire/commands/ActiveMQMessageBase.h:113
#11 0x0837cc4b in
activemq::connector::openwire::marshal::v2::ActiveMQTextMessageMarshaller::looseUnmarshal
(this=0x9b2cc78, wireFormat=0x994b200, dataStructure=0x9bb4c78,
dataIn=0x9af3bc0)
    at
activemq/connector/openwire/marshal/v2/ActiveMQTextMessageMarshaller.cpp:110
#12 0x083316c5 in
activemq::connector::openwire::OpenWireFormat::looseUnmarshalNestedObject (
    this=0x994b200, dis=0x9af3bc0) at
activemq/connector/openwire/OpenWireFormat.cpp:417
---Type <return> to continue, or q <return> to quit---
#13 0x0833b04c in
activemq::connector::openwire::marshal::BaseDataStreamMarshaller::looseUnmarshalNestedObject
(this=0x9af2820, wireFormat=0x994b200, dataIn=0x9af3bc0)
    at activemq/connector/openwire/marshal/BaseDataStreamMarshaller.cpp:171
#14 0x08352f0d in
activemq::connector::openwire::marshal::v2::MessageDispatchMarshaller::looseUnmarshal
(this=0x9af2820, wireFormat=0x994b200, dataStructure=0x9c69b4c,
dataIn=0x9af3bc0)
    at
activemq/connector/openwire/marshal/v2/MessageDispatchMarshaller.cpp:122
#15 0x08332fdc in activemq::connector::openwire::OpenWireFormat::doUnmarshal
(this=0x994b200,
    dis=0x9af3bc0) at activemq/connector/openwire/OpenWireFormat.cpp:246
#16 0x0833356a in activemq::connector::openwire::OpenWireFormat::unmarshal
(this=0x994b200,
    dis=0x9af3bc0) at activemq/connector/openwire/OpenWireFormat.cpp:185
#17 0x08336aae in
activemq::connector::openwire::OpenWireCommandReader::readCommand (
    this=0x9bad680) at
activemq/connector/openwire/OpenWireCommandReader.cpp:71
#18 0x082994ea in activemq::transport::IOTransport::run (this=0x9ba35f8)
    at activemq/transport/IOTransport.cpp:166
#19 0x082bef68 in activemq::concurrent::Thread::runCallback
(param=0x9b73bd8)
    at activemq/concurrent/Thread.cpp:152
#20 0x0046add8 in start_thread () at std/XML.cpp:761

-- 
View this message in context: http://www.nabble.com/C%2B%2B-OpenwireStringSupport%3A%3AreadString-aborts-on-empty-property-tf4623108s2354.html#a13202791
Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.


Mime
View raw message