[ https://issues.apache.org/jira/browse/AMQCPP-481?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Lichtin resolved AMQCPP-481. ----------------------------------- Resolution: Fixed Fix Version/s: 3.6.0 Yes, that's right. I can no longer reproduce this issue with 3.6.0 > NullPointerException while handling broker exception > ---------------------------------------------------- > > Key: AMQCPP-481 > URL: https://issues.apache.org/jira/browse/AMQCPP-481 > Project: ActiveMQ C++ Client > Issue Type: Bug > Affects Versions: 3.5.0 > Reporter: Martin Lichtin > Assignee: Timothy Bish > Fix For: 3.6.0 > > > (Running with a modified library that aborts in case of a > NullPointerException.) > (gdb) bt > #0 0x000000397b030265 in raise () from /lib64/libc.so.6 > #1 0x000000397b031d10 in abort () from /lib64/libc.so.6 > #2 0x00002aebc6308b48 in decaf::lang::Pointer<decaf::lang::Exception, > decaf::util::concurrent::atomic::AtomicRefCounter>::operator-> > (this=0x15b32da8) at ./decaf/lang/Pointer.h:264 > #3 0x00002aebc63065ad in > activemq::commands::BrokerError::createExceptionObject (this=0x15b32d50) at > activemq/commands/BrokerError.cpp:128 > #4 0x00002aebc634956e in activemq::core::ActiveMQConnection::syncRequest > (this=0x2aaaac037600, command=..., timeout=0) at > activemq/core/ActiveMQConnection.cpp:1251 > #5 0x00002aebc634b55b in activemq::core::ActiveMQConnection::asyncRequest > (this=0x2aaaac037600, command=..., onComplete=0x0) at > activemq/core/ActiveMQConnection.cpp:1275 > #6 0x00002aebc6431de4 in > activemq::core::kernels::ActiveMQSessionKernel::send (this=0x2aaaac03daa0, > producer=0x2aaaac040800, destination=..., message=0x2aaaac0574b0, > deliveryMode=0, priority=4, timeToLive=0, producerWindow=0x0, > sendTimeout=0, onComplete=0x0) at > activemq/core/kernels/ActiveMQSessionKernel.cpp:985 > #7 0x00002aebc64254e8 in > activemq::core::kernels::ActiveMQProducerKernel::send (this=0x2aaaac040800, > destination=0x2aaaac040068, message=0x2aaaac0574b0, deliveryMode=0, > priority=4, timeToLive=0, onComplete=0x0) > at activemq/core/kernels/ActiveMQProducerKernel.cpp:269 > #8 0x00002aebc6423c99 in > activemq::core::kernels::ActiveMQProducerKernel::send (this=0x2aaaac040800, > message=0x2aaaac0574b0) at > activemq/core/kernels/ActiveMQProducerKernel.cpp:139 > #9 0x00002aebc63cc270 in activemq::core::ActiveMQProducer::send > (this=0x2aaaac040de0, message=0x2aaaac0574b0) at > activemq/core/ActiveMQProducer.cpp:62 > etc... > (gdb) frame 3 > #3 0x00002aebc63065ad in > activemq::commands::BrokerError::createExceptionObject (this=0x15b32d50) at > activemq/commands/BrokerError.cpp:128 > 128 cause = new > cms::CMSException(this->exCause->getMessage()); > (gdb) p *this > $10 = {<activemq::commands::BaseCommand> = {<activemq::commands::Command> = > {<activemq::commands::BaseDataStructure> = > {<activemq::commands::DataStructure> = {<activemq::wireformat::MarshalAware> > = { > _vptr.MarshalAware = 0x2aebc6c88230}, <No data fields>}, <No data > fields>}, <No data fields>}, responseRequired = false, commandId = 0}, > message = {static npos = 18446744073709551615, > _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> > = {<No data fields>}, <No data fields>}, _M_p = 0x15b2f528 "malformed input > around byte 0"}}, exceptionClass = {static npos = 18446744073709551615, > _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> > = {<No data fields>}, <No data fields>}, _M_p = 0x15b2f4e8 > "java.io.UTFDataFormatException"}}, > stackTraceElements = > {<std::_Vector_base<decaf::lang::Pointer<activemq::commands::BrokerError::StackTraceElement, > decaf::util::concurrent::atomic::AtomicRefCounter>, > std::allocator<decaf::lang::Pointer<activemq::commands::BrokerError::StackTraceElement, > decaf::util::concurrent::atomic::AtomicRefCounter> > >> = { > _M_impl = > {<std::allocator<decaf::lang::Pointer<activemq::commands::BrokerError::StackTraceElement, > decaf::util::concurrent::atomic::AtomicRefCounter> >> = > {<__gnu_cxx::new_allocator<decaf::lang::Pointer<activemq::commands::BrokerError::StackTraceElement, > decaf::util::concurrent::atomic::AtomicRefCounter> >> = {<No data fields>}, > <No data fields>}, _M_start = 0x15b33dc0, _M_finish = 0x15b34120, > _M_end_of_storage = 0x15b34120}}, <No data fields>}, > cause = {<decaf::util::concurrent::atomic::AtomicRefCounter> = > {_vptr.AtomicRefCounter = 0x2aebc6c88490, counter = 0x15b33cd0}, value = 0x0, > onDelete = 0x2aebc6307434 > <decaf::lang::Pointer<activemq::commands::BrokerError, > decaf::util::concurrent::atomic::AtomicRefCounter>::onDeleteFunc(activemq::commands::BrokerError*)>}, > exCause = {<decaf::util::concurrent::atomic::AtomicRefCounter> = > {_vptr.AtomicRefCounter = 0x2aebc6c884d0, counter = 0x15a9ec70}, value = 0x0, > onDelete = 0x2aebc6307348 <decaf::lang::Pointer<decaf::lang::Exception, > decaf::util::concurrent::atomic::AtomicRefCounter>::onDeleteFunc(decaf::lang::Exception*)>}} > (gdb) l > 123 cause = new cms::UnsupportedOperationException(this->message); > 124 } else { > 125 if (exCause != NULL) { > 126 cause = new cms::CMSException(this->message); > 127 } else { > 128 cause = new > cms::CMSException(this->exCause->getMessage()); > 129 } > 130 } > 131 > 132 // Wrap in a Decaf exception to carry the pointer until it can be > The check on line 125 seems wrong. It should be ==, not? -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira