You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Timothy Bish (JIRA)" <ji...@apache.org> on 2009/05/08 12:36:20 UTC

[jira] Resolved: (AMQCPP-242) Segfault when destroying auto pointer managed objects

     [ https://issues.apache.org/activemq/browse/AMQCPP-242?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Timothy Bish resolved AMQCPP-242.
---------------------------------

    Resolution: Fixed

Patch applied to trunk and 2.x

> Segfault when destroying auto pointer managed objects
> -----------------------------------------------------
>
>                 Key: AMQCPP-242
>                 URL: https://issues.apache.org/activemq/browse/AMQCPP-242
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>          Components: Integration Tests
>    Affects Versions: 2.2.6, 3.0
>         Environment: CentOS 5.2, RHEL 5.2, apr-1.3.3, apr-util-1.3.4
>            Reporter: Alexander Martens
>            Assignee: Timothy Bish
>             Fix For: 2.2.6, 3.0
>
>         Attachments: AtomicInteger.patch
>
>
> Looks like integration tests may cause occasionally segmentation faults (3 chances in 165 tries), specially when releasing aut_ptr managed objects. The following three gdb sessions show similar crashes.
> TestRegistry.cpp was modified to run only OpenwireSimpleTest by commenting all other tests out in order to narrow the problem.
> Hope this helps,
>   Alex
> {noformat}
> Program terminated with signal 11, Segmentation fault.
> #0  0x00000011 in ?? ()
> (gdb) info threads
>   2 process 18477  0x007ad402 in __kernel_vsyscall ()
> * 1 process 18572  0x00000011 in ?? ()
> (gdb) bt full
> #0  0x00000011 in ?? ()
> No symbol table info available.
> #1  0x00a4ad98 in decaf::lang::Thread::runCallback (self=0x8742e08, param=0x878fb80) at decaf/lang/Thread.cpp:125
> No locals.
> #2  0x0050ea4c in dummy_worker (opaque=0x8742e08) at threadproc/unix/thread.c:142
>         thread = (apr_thread_t *) 0x8742e08
> #3  0x0062145b in start_thread () from /lib/libpthread.so.0
> No symbol table info available.
> #4  0x003a3c4e in clone () from /lib/libc.so.6
> No symbol table info available.
> (gdb) thread apply all bt full
> Thread 2 (process 18477):
> #0  0x007ad402 in __kernel_vsyscall ()
> No symbol table info available.
> #1  0x0039ca31 in select () from /lib/libc.so.6
> No symbol table info available.
> #2  0x0050fb8c in apr_sleep (t=50000) at time/unix/time.c:246
>         tv = {tv_sec = 0, tv_usec = 49000}
> #3  0x00a4aa9a in decaf::lang::Thread::sleep (millisecs=50) at decaf/lang/Thread.cpp:104
> No locals.
> #4  0x080566c6 in activemq::test::CMSTestFixture::tearDown (this=0x874c308) at ./activemq/test/CMSTestFixture.h:58
> No locals.
> #5  0x08052b44 in CppUnit::TestCaller<activemq::test::openwire::OpenwireSimpleTest>::tearDown (this=0x874c390)
>     at /usr/local/include/cppunit/TestCaller.h:182
> No locals.
> #6  0x00155bd7 in CppUnit::TestCaseMethodFunctor::operator() (this=0xbf978b74) at TestCase.cpp:32
> No locals.
> #7  0x001475ee in CppUnit::DefaultProtector::protect (this=0x874bf40, functor=@0xbf978b74, context=@0xbf978b0c) at DefaultProtector.cpp:15
> No locals.
> #8  0x001517a3 in CppUnit::ProtectorChain::ProtectFunctor::operator() (this=0x874c130) at ProtectorChain.cpp:20
> No locals.
> #9  0x001514f5 in CppUnit::ProtectorChain::protect (this=0x874bce0, functor=@0xbf978b74, context=@0xbf978b0c) at ProtectorChain.cpp:77
>         __node_offset = <value optimized out>
>         functors = {<std::_Deque_base<CppUnit::Functor*,std::allocator<CppUnit::Functor*> >> = {
>     _M_impl = {<std::allocator<CppUnit::Functor*>> = {<__gnu_cxx::new_allocator<CppUnit::Functor*>> = {<No data fields>}, <No data fields>}, 
>       _M_map = 0x874fc58, _M_map_size = 8, _M_start = {_M_cur = 0x874cb10, _M_first = 0x874cb10, _M_last = 0x874cd10, _M_node = 0x874fc64}, _M_finish = {
>         _M_cur = 0x874cb14, _M_first = 0x874cb10, _M_last = 0x874cd10, _M_node = 0x874fc64}}}, <No data fields>}
>         outermostFunctor = (const class CppUnit::Functor &) @0xfffffdfe: Cannot access memory at address 0xfffffdfe
> Thread 1 (process 18572):
> #0  0x00000011 in ?? ()
> No symbol table info available.
> #1  0x00a4ad98 in decaf::lang::Thread::runCallback (self=0x8742e08, param=0x878fb80) at decaf/lang/Thread.cpp:125
> No locals.
> #2  0x0050ea4c in dummy_worker (opaque=0x8742e08) at threadproc/unix/thread.c:142
>         thread = (apr_thread_t *) 0x8742e08
> #3  0x0062145b in start_thread () from /lib/libpthread.so.0
> No symbol table info available.
> #4  0x003a3c4e in clone () from /lib/libc.so.6
> No symbol table info available.
> (gdb) q
> {noformat}
> {noformat}
> Program terminated with signal 11, Segmentation fault.
> #0  0x00855fb6 in activemq::transport::IOTransport::run (this=0x80d2588) at ./decaf/lang/Pointer.h:68
> 68                      delete this->counter;
> (gdb) info threads
>   3 process 24403  0x00bce402 in __kernel_vsyscall ()
>   2 process 24537  0x00bce402 in __kernel_vsyscall ()
> * 1 process 24769  0x00855fb6 in activemq::transport::IOTransport::run (this=0x80d2588) at ./decaf/lang/Pointer.h:68
> (gdb) thread apply all bt
> Thread 3 (process 24403):
> #0  0x00bce402 in __kernel_vsyscall ()
> #1  0x006254dc in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
> #2  0x00124f3e in apr_thread_cond_timedwait (cond=0x8118020, mutex=0x8116018, timeout=15000000) at locks/unix/thread_cond.c:89
> #3  0x007af72a in decaf::util::concurrent::Mutex::wait (this=0x80d3d9c, millisecs=15000) at decaf/util/concurrent/Mutex.cpp:116
> #4  0x007b48df in decaf::util::concurrent::CountDownLatch::await (this=0x80d3d94, timeOut=15000) at decaf/util/concurrent/CountDownLatch.cpp:69
> #5  0x0085538c in activemq::transport::correlator::FutureResponse::getResponse (this=0x80d3d90, timeout=15000)
>     at ./activemq/transport/correlator/FutureResponse.h:76
> #6  0x00854264 in activemq::transport::correlator::ResponseCorrelator::request (this=0x80d3488, command=@0xbfa9ef60, timeout=15000)
>     at activemq/transport/correlator/ResponseCorrelator.cpp:142
> #7  0x00a01fd0 in activemq::core::ActiveMQConnection::syncRequest (this=0x80d3590, command=
>       {<decaf::lang::AtomicRefCounter> = {counter = 0x3a98}, _vptr.Pointer = 0xbfa9ef60, value = 0x1}, timeout=15000)
>     at activemq/core/ActiveMQConnection.cpp:568
> #8  0x00a024c9 in activemq::core::ActiveMQConnection::disposeOf (this=0x80d3590, objectId=@0xbfa9efc4, timeout=15000)
>     at activemq/core/ActiveMQConnection.cpp:612
> #9  0x00a0285a in activemq::core::ActiveMQConnection::disconnect (this=0x80d3590) at activemq/core/ActiveMQConnection.cpp:335
> #10 0x00a06328 in activemq::core::ActiveMQConnection::close (this=0x80d3590) at activemq/core/ActiveMQConnection.cpp:246
> #11 0x0808327b in activemq::util::CMSProvider::close (this=0xbfa9f184) at activemq/util/CMSProvider.cpp:108
> #12 0x0808504a in ~CMSProvider (this=0xbfa9f184) at activemq/util/CMSProvider.cpp:56
> #13 0x08066d78 in activemq::test::SimpleTest::testQuickCreateAndDestroy (this=0x80ce468) at activemq/test/SimpleTest.cpp:335
> #14 0x08052ac7 in CppUnit::TestCaller<activemq::test::openwire::OpenwireSimpleTest>::runTest (this=0x80ce478) at /usr/local/include/cppunit/TestCaller.h:166
> #15 0x00ef3bd7 in CppUnit::TestCaseMethodFunctor::operator() (this=0xbfa9f494) at TestCase.cpp:32
> #16 0x00ee55ee in CppUnit::DefaultProtector::protect (this=0x80cdf40, functor=@0xbfa9f494, context=@0xbfa9f43c) at DefaultProtector.cpp:15
> #17 0x00eef7a3 in CppUnit::ProtectorChain::ProtectFunctor::operator() (this=0x8110a70) at ProtectorChain.cpp:20
> #18 0x00eef4f5 in CppUnit::ProtectorChain::protect (this=0x80cdce0, functor=@0xbfa9f494, context=@0xbfa9f43c) at ProtectorChain.cpp:77
> #19 0x00efbe81 in CppUnit::TestResult::protect (this=0x80cda60, functor=@0xbfa9f494, test=0x80ce478, shortDescription=@0xbfa9f4b8) at TestResult.cpp:178
> #20 0x00ef38dd in CppUnit::TestCase::run (this=0x80ce478, result=0x80cda60) at TestCase.cpp:92
> #21 0x00ef423f in CppUnit::TestComposite::doRunChildTests (this=0x80ce010, controller=0x80cda60) at TestComposite.cpp:64
> #22 0x00ef417a in CppUnit::TestComposite::run (this=0x80ce010, result=0x80cda60) at TestComposite.cpp:23
> #23 0x00ef423f in CppUnit::TestComposite::doRunChildTests (this=0x80cdf80, controller=0x80cda60) at TestComposite.cpp:64
> #24 0x00ef417a in CppUnit::TestComposite::run (this=0x80cdf80, result=0x80cda60) at TestComposite.cpp:23
> #25 0x00efe440 in CppUnit::TestRunner::WrappingSuite::run (this=0x80cd570, result=0x80cda60) at TestRunner.cpp:47
> #26 0x00efbc1a in CppUnit::TestResult::runTest (this=0x80cda60, test=0x80cd570) at TestResult.cpp:145
> #27 0x00efe280 in CppUnit::TestRunner::run (this=0xbfa9f8e4, controller=@0x80cda60, testPath=@0xbfa9f904) at TestRunner.cpp:96
> #28 0x00f019db in CppUnit::TextTestRunner::run (this=0xbfa9f8e4, controller=@0x80cda60, testPath=@0xbfa9f904) at TextTestRunner.cpp:140
> #29 0x00f01a55 in CppUnit::TextTestRunner::run (this=0xbfa9f8e4, testName=
>         {static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xbfa9f904 "��$"}}, doWait=false, doPrintResult=true, doPrintProgress=true) at TextTestRunner.cpp:64
> #30 0x0804ffc5 in main (argc=1, argv=0xbfa9f9c4) at main.cpp:77
> Thread 2 (process 24537):
> #0  0x00bce402 in __kernel_vsyscall ()
> #1  0x00627e1b in read () from /lib/libpthread.so.0
> #2  0x0012bdd6 in apr_socket_recv (sock=0x80f5b98, buf=0x80fbaa0 "", len=0xb7fc5120) at network_io/unix/sendrecv.c:81
> #3  0x00800f89 in decaf::net::SocketInputStream::read (this=0x80d1890, buffer=0x80fbaa0 "", offset=0, bufferSize=1) at decaf/net/SocketInputStream.cpp:179
> #4  0x00817e91 in decaf::io::BufferedInputStream::bufferData (this=0x80d1a10) at decaf/io/BufferedInputStream.cpp:260
> #5  0x00818491 in decaf::io::BufferedInputStream::read (this=0x80d1a10, targetBuffer=0x80d180e "", offset=0, targetBufferSize=4)
>     at decaf/io/BufferedInputStream.cpp:181
> #6  0x00825d07 in decaf::io::DataInputStream::readInt (this=0x80d17e0) at ./decaf/io/DataInputStream.h:375
> #7  0x00861528 in activemq::wireformat::openwire::OpenWireFormat::unmarshal (this=0x80d0ee8, transport=0x80d16d0, dis=0x80d17e0)
>     at activemq/wireformat/openwire/OpenWireFormat.cpp:250
> #8  0x00855f80 in activemq::transport::IOTransport::run (this=0x80d16d0) at activemq/transport/IOTransport.cpp:223
> #9  0x007acd98 in decaf::lang::Thread::runCallback (self=0x80c4f08, param=0x80d1790) at decaf/lang/Thread.cpp:125
> #10 0x00134a4c in dummy_worker (opaque=0x80c4f08) at threadproc/unix/thread.c:142
> #11 0x0062145b in start_thread () from /lib/libpthread.so.0
> #12 0x00578c4e in clone () from /lib/libc.so.6
> Thread 1 (process 24769):
> #0  0x00855fb6 in activemq::transport::IOTransport::run (this=0x80d2588) at ./decaf/lang/Pointer.h:68
> #1  0x007acd98 in decaf::lang::Thread::runCallback (self=0x80c5568, param=0x80d3560) at decaf/lang/Thread.cpp:125
> #2  0x00134a4c in dummy_worker (opaque=0x80c5568) at threadproc/unix/thread.c:142
> #3  0x0062145b in start_thread () from /lib/libpthread.so.0
> #4  0x00578c4e in clone () from /lib/libc.so.6
> (gdb) thread apply all bt full
> Thread 3 (process 24403):
> #0  0x00bce402 in __kernel_vsyscall ()
> No symbol table info available.
> #1  0x006254dc in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
> No symbol table info available.
> #2  0x00124f3e in apr_thread_cond_timedwait (cond=0x8118020, mutex=0x8116018, timeout=15000000) at locks/unix/thread_cond.c:89
>         rv = 12196256
>         then = 1241684283140354
>         abstime = {tv_sec = 1241684283, tv_nsec = 140354000}
> #3  0x007af72a in decaf::util::concurrent::Mutex::wait (this=0x80d3d9c, millisecs=15000) at decaf/util/concurrent/Mutex.cpp:116
>         lock_owner = 3086771968
>         lock_count = 1
>         waitEvent = (apr_thread_cond_t *) 0x8118020
>         subPool = (apr_pool_t *) 0x8117fe0
> #4  0x007b48df in decaf::util::concurrent::CountDownLatch::await (this=0x80d3d94, timeOut=15000) at decaf/util/concurrent/CountDownLatch.cpp:69
>         lock_W = {_vptr.Lock = 0x8096df8, locked = true, syncObject = 0x80d3d9c}
>         ex = {<decaf::lang::Throwable> = {<> = {<No data fields>}, <No data fields>}, message = {static npos = 4294967295, 
>     _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
>       _M_p = 0x98da55 "\213]�\213u�\213}�\211�]��\004$\030"}}, cause = 0x80d25d0, 
>   stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >> = {
>       _M_impl = {<std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >> = {<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, <No data fields>}, _M_start = 0xbfa9ef60, 
>         _M_finish = 0x8, _M_end_of_storage = 0x2485d4}}, <No data fields>}}
> #5  0x0085538c in activemq::transport::correlator::FutureResponse::getResponse (this=0x80d3d90, timeout=15000)
>     at ./activemq/transport/correlator/FutureResponse.h:76
> No locals.
> #6  0x00854264 in activemq::transport::correlator::ResponseCorrelator::request (this=0x80d3488, command=@0xbfa9ef60, timeout=15000)
>     at activemq/transport/correlator/ResponseCorrelator.cpp:142
>         lock_W = {_vptr.Lock = 0x8096df8, locked = false, syncObject = 0x80d34c4}
>         response = {<decaf::lang::AtomicRefCounter> = {counter = 0x80f2fc0}, _vptr.Pointer = 0xb8c718, value = 0x0}
>         ex = {<decaf::lang::Exception> = {<decaf::lang::Throwable> = {Cannot access memory at address 0x5f3f
> Thread 2 (process 24537):
> #0  0x00bce402 in __kernel_vsyscall ()
> No symbol table info available.
> #1  0x00627e1b in read () from /lib/libpthread.so.0
> No symbol table info available.
> #2  0x0012bdd6 in apr_socket_recv (sock=0x80f5b98, buf=0x80fbaa0 "", len=0xb7fc5120) at network_io/unix/sendrecv.c:81
>         rv = -1208200952
>         arv = 1199426
> #3  0x00800f89 in decaf::net::SocketInputStream::read (this=0x80d1890, buffer=0x80fbaa0 "", offset=0, bufferSize=1) at decaf/net/SocketInputStream.cpp:179
>         size = 1
>         result = <value optimized out>
> #4  0x00817e91 in decaf::io::BufferedInputStream::bufferData (this=0x80d1a10) at decaf/io/BufferedInputStream.cpp:260
>         available = 0
>         bytesRead = <value optimized out>
>         ex = {<decaf::lang::Exception> = {<decaf::lang::Throwable> = {<> = {<No data fields>}, <No data fields>}, message = {static npos = 4294967295, 
>       _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
>         _M_p = 0x124d42 "\211E�\213E�\203�\024[]�U\211�S\203�\024��>��\201�\226J\001"}}, cause = 0x80c0c7c, 
>     stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >> = {
>         _M_impl = {<std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >> = {<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, <No data fields>}, _M_start = 0x8110928, 
>           _M_finish = 0xb7fc51c8, _M_end_of_storage = 0x807f0c1}}, <No data fields>}}, <No data fields>}
> #5  0x00818491 in decaf::io::BufferedInputStream::read (this=0x80d1a10, targetBuffer=0x80d180e "", offset=0, targetBufferSize=4)
>     at decaf/io/BufferedInputStream.cpp:181
>         bytesToCopy = 0
>         totalRead = 0
>         ex = {<decaf::lang::Exception> = {<decaf::lang::Throwable> = {<> = <invalid address>, <No data fields>}, message = {static npos = 4294967295, 
>       _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x80d1ee8 "\b\206�"}}, 
>     cause = 0xb7fc51fc, 
>     stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >> = {
>         _M_impl = {<std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >> = {<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, <No data fields>}, _M_start = 0xb7fc5208, 
>           _M_finish = 0x0, _M_end_of_storage = 0xb7fc51f0}}, <No data fields>}}, <No data fields>}
> #6  0x00825d07 in decaf::io::DataInputStream::readInt (this=0x80d17e0) at ./decaf/io/DataInputStream.h:375
>         ex = {<decaf::lang::Exception> = {<decaf::lang::Throwable> = {<> = {<No data fields>}, <No data fields>}, message = {static npos = 4294967295, 
>       _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x80d1ee8 "\b\206�"}}, 
>     cause = 0x80d16d0, 
>     stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >> = {
>         _M_impl = {<std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >> = {<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, <No data fields>}, _M_start = 0xb7fc5248, 
>           _M_finish = 0x5e6ff4, _M_end_of_storage = 0x5e8140}}, <No data fields>}}, <No data fields>}
> #7  0x00861528 in activemq::wireformat::openwire::OpenWireFormat::unmarshal (this=0x80d0ee8, transport=0x80d16d0, dis=0x80d17e0)
>     at activemq/wireformat/openwire/OpenWireFormat.cpp:250
>         ex = {<decaf::lang::Exception> = {<decaf::lang::Throwable> = {<> = {<No data fields>}, <No data fields>}, message = {static npos = 4294967295, 
>       _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xb7fc5298 "�R���\031�"}}, 
>     cause = 0x217731, 
>     stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >> = {
>         _M_impl = {<std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >> = {<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, <No data fields>}, _M_start = 0x80fc820, 
>           _M_finish = 0xba19a0, _M_end_of_storage = 0xb7fc52a8}}, <No data fields>}}, <No data fields>}
> #8  0x00855f80 in activemq::transport::IOTransport::run (this=0x80d16d0) at activemq/transport/IOTransport.cpp:223
>         command = {<decaf::lang::AtomicRefCounter> = {counter = 0x80d1ee8}, _vptr.Pointer = 0xb8bb40, value = 0x80fc820}
> #9  0x007acd98 in decaf::lang::Thread::runCallback (self=0x80c4f08, param=0x80d1790) at decaf/lang/Thread.cpp:125
> No locals.
> #10 0x00134a4c in dummy_worker (opaque=0x80c4f08) at threadproc/unix/thread.c:142
>         thread = (apr_thread_t *) 0x80c4f08
> #11 0x0062145b in start_thread () from /lib/libpthread.so.0
> No symbol table info available.
> #12 0x00578c4e in clone () from /lib/libc.so.6
> No symbol table info available.
> Thread 1 (process 24769):
> #0  0x00855fb6 in activemq::transport::IOTransport::run (this=0x80d2588) at ./decaf/lang/Pointer.h:68
>         command = {<decaf::lang::AtomicRefCounter> = {counter = 0x80d3db0}, _vptr.Pointer = 0xb8bb40, value = 0x80f3438}
> #1  0x007acd98 in decaf::lang::Thread::runCallback (self=0x80c5568, param=0x80d3560) at decaf/lang/Thread.cpp:125
> No locals.
> #2  0x00134a4c in dummy_worker (opaque=0x80c5568) at threadproc/unix/thread.c:142
>         thread = (apr_thread_t *) 0x80c5568
> #3  0x0062145b in start_thread () from /lib/libpthread.so.0
> No symbol table info available.
> #4  0x00578c4e in clone () from /lib/libc.so.6
> No symbol table info available.
> (gdb) list
> 63               *
> 64               * @return true if the count is now zero.
> 65               */
> 66              bool release() {
> 67                  if( this->counter->decrementAndGet() == 0 ) {
> 68                      delete this->counter;
> 69                      return true;
> 70                  }
> 71                  return false;
> 72              }
> (gdb) up
> #1  0x007acd98 in decaf::lang::Thread::runCallback (self=0x80c5568, param=0x80d3560) at decaf/lang/Thread.cpp:125
> 125             thread->task->run();
> (gdb) list
> 120         // Get the instance.
> 121         Thread* thread = (Thread*)param;
> 122
> 123         // Invoke run on the task.
> 124         try{
> 125             thread->task->run();
> 126         } catch( ... ){
> 127             RuntimeException ex(
> 128                 __FILE__, __LINE__,
> 129                 "unhandled exception bubbled up to Thread::run");
> {noformat}
> {noformat}
> Program terminated with signal 11, Segmentation fault.
> #0  0x00000011 in ?? ()
> (gdb) info threads
>   3 process 5624  0x00be0402 in __kernel_vsyscall ()
>   2 process 5632  0x00be0402 in __kernel_vsyscall ()
> * 1 process 5500  0x00000011 in ?? ()
> (gdb) thread apply all bt full
> Thread 3 (process 5624):
> #0  0x00be0402 in __kernel_vsyscall ()
> No symbol table info available.
> #1  0x0014ae1b in read () from /lib/libpthread.so.0
> No symbol table info available.
> #2  0x00f96dd6 in apr_socket_recv (sock=0x9ee2b98, buf=0x9ee8aa0 "", len=0xb7fd8120) at network_io/unix/sendrecv.c:81
>         rv = -1208123128
>         arv = 6628709
> #3  0x0069df89 in decaf::net::SocketInputStream::read (this=0x9ebe8c0, buffer=0x9ee8aa0 "", offset=0, bufferSize=1) at decaf/net/SocketInputStream.cpp:179
>         size = 1
>         result = <value optimized out>
> #4  0x006b4e91 in decaf::io::BufferedInputStream::bufferData (this=0x9ebea40) at decaf/io/BufferedInputStream.cpp:260
>         available = 0
>         bytesRead = <value optimized out>
>         ex = {<decaf::lang::Exception> = {<decaf::lang::Throwable> = {<> = <invalid address>, <No data fields>}, message = {static npos = 4294967295, 
>       _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
>         _M_p = 0x92b460 "U\211�\203�(\211}�\213}\b\211u�\213u\f\211]��]���\201�&5\021"}}, cause = 0x9efef48, 
>     stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >> = {
>         _M_impl = {<std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >> = {<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, <No data fields>}, _M_start = 0x146391, 
>           _M_finish = 0x415140, _M_end_of_storage = 0x95495a}}, <No data fields>}}, <No data fields>}
> #5  0x006b5491 in decaf::io::BufferedInputStream::read (this=0x9ebea40, targetBuffer=0x9ebe83e "", offset=0, targetBufferSize=4)
>     at decaf/io/BufferedInputStream.cpp:181
>         bytesToCopy = 0
>         totalRead = 0
>         ex = {<decaf::lang::Exception> = {<decaf::lang::Throwable> = {<> = {<No data fields>}, <No data fields>}, message = {static npos = 4294967295, 
>       _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x9ee9518 "�n�"}}, 
>     cause = 0xb7fd82f0, 
>     stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >> = {
>         _M_impl = {<std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >> = {<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, <No data fields>}, _M_start = 0xb7fd81f8, 
>           _M_finish = 0x1, _M_end_of_storage = 0x0}}, <No data fields>}}, <No data fields>}
> #6  0x006c2d07 in decaf::io::DataInputStream::readInt (this=0x9ebe810) at ./decaf/io/DataInputStream.h:375
>         ex = {<decaf::lang::Exception> = {<decaf::lang::Throwable> = {<> = {<No data fields>}, <No data fields>}, message = {static npos = 4294967295, 
>       _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x9edf7d8 "���\t"}}, 
>     cause = 0x9ebe700, 
>     stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >> = {
>         _M_impl = {<std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >> = {<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, <No data fields>}, _M_start = 0xb7fd8248, 
>           _M_finish = 0x147880, _M_end_of_storage = 0xb7fd8268}}, <No data fields>}}, <No data fields>}
> #7  0x006fe528 in activemq::wireformat::openwire::OpenWireFormat::unmarshal (this=0x9ebdf38, transport=0x9ebe700, dis=0x9ebe810)
>     at activemq/wireformat/openwire/OpenWireFormat.cpp:250
>         ex = {<decaf::lang::Exception> = {<decaf::lang::Throwable> = {<> = {<No data fields>}, <No data fields>}, message = {static npos = 4294967295, 
>       _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
>         _M_p = 0xb7fd82a8 "\030\203��\200/o"}}, cause = 0x652565, 
>     stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >> = {
>         _M_impl = {<std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >> = {<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, <No data fields>}, _M_start = 0x9edf7dc, 
>           _M_finish = 0xa3e9a0, _M_end_of_storage = 0xb7fd82a8}}, <No data fields>}}, <No data fields>}
> #8  0x006f2f80 in activemq::transport::IOTransport::run (this=0x9ebe700) at activemq/transport/IOTransport.cpp:223
>         command = {<decaf::lang::AtomicRefCounter> = {counter = 0x9edf7d8}, _vptr.Pointer = 0xa28b40, value = 0x9efef48}
> #9  0x00649d98 in decaf::lang::Thread::runCallback (self=0x9eb1ec8, param=0x9ee9838) at decaf/lang/Thread.cpp:125
> No locals.
> #10 0x00f9fa4c in dummy_worker (opaque=0x9eb1ec8) at threadproc/unix/thread.c:142
>         thread = (apr_thread_t *) 0x9eb1ec8
> #11 0x0014445b in start_thread () from /lib/libpthread.so.0
> No symbol table info available.
> #12 0x003a5c4e in clone () from /lib/libc.so.6
> No symbol table info available.
> Thread 2 (process 5632):
> #0  0x00be0402 in __kernel_vsyscall ()
> No symbol table info available.
> #1  0x00148256 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
> No symbol table info available.
> #2  0x00f8fe83 in apr_thread_cond_wait (cond=0x9edb7b0, mutex=0x9ed5798) at locks/unix/thread_cond.c:68
>         rv = 166715416
> #3  0x0064c775 in decaf::util::concurrent::Mutex::wait (this=0x9efe008, millisecs=4294967295) at decaf/util/concurrent/Mutex.cpp:118
>         lock_owner = 3065867152
>         lock_count = 1
>         waitEvent = (apr_thread_cond_t *) 0x9edb7b0
>         subPool = (apr_pool_t *) 0x9edb770
> #4  0x0064c635 in decaf::util::concurrent::Mutex::wait (this=0x9efe008) at decaf/util/concurrent/Mutex.cpp:82
> No locals.
> #5  0x00892f85 in activemq::threads::DedicatedTaskRunner::run (this=0x9efe000) at activemq/threads/DedicatedTaskRunner.cpp:118
>         lock_W = {_vptr.Lock = 0x8096df8, locked = true, syncObject = 0x9efe008}
> #6  0x00649d98 in decaf::lang::Thread::runCallback (self=0x9eb1ee8, param=0x9ebb770) at decaf/lang/Thread.cpp:125
> No locals.
> #7  0x00f9fa4c in dummy_worker (opaque=0x9eb1ee8) at threadproc/unix/thread.c:142
>         thread = (apr_thread_t *) 0x9eb1ee8
> #8  0x0014445b in start_thread () from /lib/libpthread.so.0
> No symbol table info available.
> #9  0x003a5c4e in clone () from /lib/libc.so.6
> No symbol table info available.
> Thread 1 (process 5500):
> #0  0x00000011 in ?? ()
> No symbol table info available.
> #1  0x008ea35d in ~Message (this=0x9edf7ec) at activemq/commands/Message.cpp:68
> No locals.
> #2  0x00924793 in ~ActiveMQBytesMessage (this=0x9edf7e8) at ./activemq/commands/ActiveMQMessageTemplate.h:45
> No locals.
> #3  0x0806bc96 in activemq::test::SimpleTest::testBytesMessageSendRecv (this=0x9ebb438)
>     at /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/memory:259
>         cpputMsg_ = {m_shortDescription = {static npos = 4294967295, 
>     _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
>       _M_p = 0x9ee04bc "activemq/test/SimpleTest.cpp"}}, 
>   m_details = {<std::_Deque_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {
>       _M_impl = {<std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<__gnu_cxx::new_allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<No data fields>}, <No data fields>}, _M_map = 0x9ee0548, _M_map_size = 8, _M_start = {
>           _M_cur = 0x9ee0570, _M_first = 0x9ee0570, _M_last = 0x9ee0770, _M_node = 0x9ee0554}, _M_finish = {_M_cur = 0x9ee0578, _M_first = 0x9ee0570, 
>           _M_last = 0x9ee0770, _M_node = 0x9ee0554}}}, <No data fields>}}
>         session = <value optimized out>
>         consumer = (class cms::MessageConsumer *) 0x9efe6c8
>         producer = (class cms::MessageProducer *) 0x9efea40
>         bytesMessage2 = (class cms::BytesMessage *) 0x9edf7e8
> #4  0x08052ac7 in CppUnit::TestCaller<activemq::test::openwire::OpenwireSimpleTest>::runTest (this=0x9ebb448) at /usr/local/include/cppunit/TestCaller.h:166
> No locals.
> #5  0x0019bbd7 in CppUnit::TestCaseMethodFunctor::operator() (this=0xbfac14b4) at TestCase.cpp:32
> No locals.
> #6  0x0018d5ee in CppUnit::DefaultProtector::protect (this=0x9ebaf40, functor=@0xbfac14b4, context=@0xbfac145c) at DefaultProtector.cpp:15
> No locals.
> #7  0x001977a3 in CppUnit::ProtectorChain::ProtectFunctor::operator() (this=0x9efde60) at ProtectorChain.cpp:20
> No locals.
> #8  0x001974f5 in CppUnit::ProtectorChain::protect (this=0x9ebace0, functor=@0xbfac14b4, context=@0xbfac145c) at ProtectorChain.cpp:77
>         __node_offset = <value optimized out>
>         functors = {<std::_Deque_base<CppUnit::Functor*,std::allocator<CppUnit::Functor*> >> = {
>     _M_impl = {<std::allocator<CppUnit::Functor*>> = {<__gnu_cxx::new_allocator<CppUnit::Functor*>> = {<No data fields>}, <No data fields>}, 
>       _M_map = 0x9ebb2d0, _M_map_size = 8, _M_start = {_M_cur = 0x9ebbb10, _M_first = 0x9ebbb10, _M_last = 0x9ebbd10, _M_node = 0x9ebb2dc}, _M_finish = {
>         _M_cur = 0x9ebbb14, _M_first = 0x9ebbb10, _M_last = 0x9ebbd10, _M_node = 0x9ebb2dc}}}, <No data fields>}
>         outermostFunctor = (const class CppUnit::Functor &) @0x9edffa0: {_vptr.Functor = 0x0}
>         succeed = <value optimized out>
> #9  0x001a3e81 in CppUnit::TestResult::protect (this=0x9ebaa60, functor=@0xbfac14b4, test=0x9ebb448, shortDescription=@0xbfac14d8) at TestResult.cpp:178
>         context = {m_test = 0x9ebb448, m_result = 0x9ebaa60, m_shortDescription = {static npos = 4294967295, 
>     _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x2a9bbc ""}}}
> #10 0x0019b8dd in CppUnit::TestCase::run (this=0x9ebb448, result=0x9ebaa60) at TestCase.cpp:92
> No locals.
> #11 0x0019c23f in CppUnit::TestComposite::doRunChildTests (this=0x9ebb010, controller=0x9ebaa60) at TestComposite.cpp:64
>         index = 9
>         childCount = 14
> #12 0x0019c17a in CppUnit::TestComposite::run (this=0x9ebb010, result=0x9ebaa60) at TestComposite.cpp:23
> No locals.
> #13 0x0019c23f in CppUnit::TestComposite::doRunChildTests (this=0x9ebaf80, controller=0x9ebaa60) at TestComposite.cpp:64
>         index = 1
>         childCount = 1
> #14 0x0019c17a in CppUnit::TestComposite::run (this=0x9ebaf80, result=0x9ebaa60) at TestComposite.cpp:23
> No locals.
> #15 0x001a6440 in CppUnit::TestRunner::WrappingSuite::run (this=0x9eba570, result=0x9ebaa60) at TestRunner.cpp:47
> No locals.
> #16 0x001a3c1a in CppUnit::TestResult::runTest (this=0x9ebaa60, test=0x9eba570) at TestResult.cpp:145
> No locals.
> #17 0x001a6280 in CppUnit::TestRunner::run (this=0xbfac1904, controller=@0x9ebaa60, testPath=@0xbfac1924) at TestRunner.cpp:96
>         path = {_vptr.TestPath = 0x1be1c8, m_tests = {<std::_Deque_base<CppUnit::Test*,std::allocator<CppUnit::Test*> >> = {
>       _M_impl = {<std::allocator<CppUnit::Test*>> = {<__gnu_cxx::new_allocator<CppUnit::Test*>> = {<No data fields>}, <No data fields>}, 
>         _M_map = 0x9ebb2a8, _M_map_size = 8, _M_start = {_M_cur = 0x9ebb908, _M_first = 0x9ebb908, _M_last = 0x9ebbb08, _M_node = 0x9ebb2b4}, _M_finish = {
>           _M_cur = 0x9ebb90c, _M_first = 0x9ebb908, _M_last = 0x9ebbb08, _M_node = 0x9ebb2b4}}}, <No data fields>}}
>         testToRun = (class CppUnit::Test *) 0x9edffa0
> #18 0x001a99db in CppUnit::TextTestRunner::run (this=0xbfac1904, controller=@0x9ebaa60, testPath=@0xbfac1924) at TextTestRunner.cpp:140
> No locals.
> #19 0x001a9a55 in CppUnit::TextTestRunner::run (this=0xbfac1904, testName=
>         {static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xbfac1924 "�\233*"}}, doWait=false, doPrintResult=true, doPrintProgress=true) at TextTestRunner.cpp:64
>         progress = {<CppUnit::TestListener> = {_vptr.TestListener = 0x1be5e8}, <No data fields>}
> #20 0x0804ffc5 in main (argc=1, argv=0xbfac19e4) at main.cpp:77
>         runner = {<CppUnit::TestRunner> = {_vptr.TestRunner = 0x1be708, m_suite = 0x9eba570}, m_result = 0x9eba588, m_eventManager = 0x9ebaa60, 
>   m_outputter = 0x9ebaf50}
>         registry = (class CppUnit::TestFactoryRegistry &) @0x9eb60b8: {<CppUnit::TestFactory> = {_vptr.TestFactory = 0x1be0b0}, m_factories = {_M_t = {
>       _M_impl = {<std::allocator<std::_Rb_tree_node<CppUnit::TestFactory*> >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<CppUnit::TestFactory*> >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, 
>           _M_parent = 0x9eb6100, _M_left = 0x9eb6100, _M_right = 0x9eb6100}, _M_node_count = 1}}}, m_name = {static npos = 4294967295, 
>     _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x9eb60a4 "All Tests"}}}
>         wasSuccessful = <value optimized out>
>         outputFile = <incomplete type>
>         useXMLOutputter = false
> (gdb) thread apply all bt
> Thread 3 (process 5624):
> #0  0x00be0402 in __kernel_vsyscall ()
> #1  0x0014ae1b in read () from /lib/libpthread.so.0
> #2  0x00f96dd6 in apr_socket_recv (sock=0x9ee2b98, buf=0x9ee8aa0 "", len=0xb7fd8120) at network_io/unix/sendrecv.c:81
> #3  0x0069df89 in decaf::net::SocketInputStream::read (this=0x9ebe8c0, buffer=0x9ee8aa0 "", offset=0, bufferSize=1) at decaf/net/SocketInputStream.cpp:179
> #4  0x006b4e91 in decaf::io::BufferedInputStream::bufferData (this=0x9ebea40) at decaf/io/BufferedInputStream.cpp:260
> #5  0x006b5491 in decaf::io::BufferedInputStream::read (this=0x9ebea40, targetBuffer=0x9ebe83e "", offset=0, targetBufferSize=4)
>     at decaf/io/BufferedInputStream.cpp:181
> #6  0x006c2d07 in decaf::io::DataInputStream::readInt (this=0x9ebe810) at ./decaf/io/DataInputStream.h:375
> #7  0x006fe528 in activemq::wireformat::openwire::OpenWireFormat::unmarshal (this=0x9ebdf38, transport=0x9ebe700, dis=0x9ebe810)
>     at activemq/wireformat/openwire/OpenWireFormat.cpp:250
> #8  0x006f2f80 in activemq::transport::IOTransport::run (this=0x9ebe700) at activemq/transport/IOTransport.cpp:223
> #9  0x00649d98 in decaf::lang::Thread::runCallback (self=0x9eb1ec8, param=0x9ee9838) at decaf/lang/Thread.cpp:125
> #10 0x00f9fa4c in dummy_worker (opaque=0x9eb1ec8) at threadproc/unix/thread.c:142
> #11 0x0014445b in start_thread () from /lib/libpthread.so.0
> #12 0x003a5c4e in clone () from /lib/libc.so.6
> Thread 2 (process 5632):
> #0  0x00be0402 in __kernel_vsyscall ()
> #1  0x00148256 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
> #2  0x00f8fe83 in apr_thread_cond_wait (cond=0x9edb7b0, mutex=0x9ed5798) at locks/unix/thread_cond.c:68
> #3  0x0064c775 in decaf::util::concurrent::Mutex::wait (this=0x9efe008, millisecs=4294967295) at decaf/util/concurrent/Mutex.cpp:118
> #4  0x0064c635 in decaf::util::concurrent::Mutex::wait (this=0x9efe008) at decaf/util/concurrent/Mutex.cpp:82
> #5  0x00892f85 in activemq::threads::DedicatedTaskRunner::run (this=0x9efe000) at activemq/threads/DedicatedTaskRunner.cpp:118
> #6  0x00649d98 in decaf::lang::Thread::runCallback (self=0x9eb1ee8, param=0x9ebb770) at decaf/lang/Thread.cpp:125
> #7  0x00f9fa4c in dummy_worker (opaque=0x9eb1ee8) at threadproc/unix/thread.c:142
> #8  0x0014445b in start_thread () from /lib/libpthread.so.0
> #9  0x003a5c4e in clone () from /lib/libc.so.6
> Thread 1 (process 5500):
> #0  0x00000011 in ?? ()
> #1  0x008ea35d in ~Message (this=0x9edf7ec) at activemq/commands/Message.cpp:68
> #2  0x00924793 in ~ActiveMQBytesMessage (this=0x9edf7e8) at ./activemq/commands/ActiveMQMessageTemplate.h:45
> #3  0x0806bc96 in activemq::test::SimpleTest::testBytesMessageSendRecv (this=0x9ebb438)
>     at /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/memory:259
> #4  0x08052ac7 in CppUnit::TestCaller<activemq::test::openwire::OpenwireSimpleTest>::runTest (this=0x9ebb448) at /usr/local/include/cppunit/TestCaller.h:166
> #5  0x0019bbd7 in CppUnit::TestCaseMethodFunctor::operator() (this=0xbfac14b4) at TestCase.cpp:32
> #6  0x0018d5ee in CppUnit::DefaultProtector::protect (this=0x9ebaf40, functor=@0xbfac14b4, context=@0xbfac145c) at DefaultProtector.cpp:15
> #7  0x001977a3 in CppUnit::ProtectorChain::ProtectFunctor::operator() (this=0x9efde60) at ProtectorChain.cpp:20
> #8  0x001974f5 in CppUnit::ProtectorChain::protect (this=0x9ebace0, functor=@0xbfac14b4, context=@0xbfac145c) at ProtectorChain.cpp:77
> #9  0x001a3e81 in CppUnit::TestResult::protect (this=0x9ebaa60, functor=@0xbfac14b4, test=0x9ebb448, shortDescription=@0xbfac14d8) at TestResult.cpp:178
> #10 0x0019b8dd in CppUnit::TestCase::run (this=0x9ebb448, result=0x9ebaa60) at TestCase.cpp:92
> #11 0x0019c23f in CppUnit::TestComposite::doRunChildTests (this=0x9ebb010, controller=0x9ebaa60) at TestComposite.cpp:64
> #12 0x0019c17a in CppUnit::TestComposite::run (this=0x9ebb010, result=0x9ebaa60) at TestComposite.cpp:23
> #13 0x0019c23f in CppUnit::TestComposite::doRunChildTests (this=0x9ebaf80, controller=0x9ebaa60) at TestComposite.cpp:64
> #14 0x0019c17a in CppUnit::TestComposite::run (this=0x9ebaf80, result=0x9ebaa60) at TestComposite.cpp:23
> #15 0x001a6440 in CppUnit::TestRunner::WrappingSuite::run (this=0x9eba570, result=0x9ebaa60) at TestRunner.cpp:47
> #16 0x001a3c1a in CppUnit::TestResult::runTest (this=0x9ebaa60, test=0x9eba570) at TestResult.cpp:145
> #17 0x001a6280 in CppUnit::TestRunner::run (this=0xbfac1904, controller=@0x9ebaa60, testPath=@0xbfac1924) at TestRunner.cpp:96
> #18 0x001a99db in CppUnit::TextTestRunner::run (this=0xbfac1904, controller=@0x9ebaa60, testPath=@0xbfac1924) at TextTestRunner.cpp:140
> #19 0x001a9a55 in CppUnit::TextTestRunner::run (this=0xbfac1904, testName=
>         {static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xbfac1924 "�\233*"}}, doWait=false, doPrintResult=true, doPrintProgress=true) at TextTestRunner.cpp:64
> #20 0x0804ffc5 in main (argc=1, argv=0xbfac19e4) at main.cpp:77
> (gdb) up
> #1  0x008ea35d in ~Message (this=0x9edf7ec) at activemq/commands/Message.cpp:68
> 68      }
> (gdb) list
> 63          this->brokerOutTime = 0;
> 64      }
> 65
> 66      ////////////////////////////////////////////////////////////////////////////////
> 67      Message::~Message() {
> 68      }
> 69
> 70      ////////////////////////////////////////////////////////////////////////////////
> 71      Message* Message::cloneDataStructure() const {
> 72          std::auto_ptr<Message> message( new Message() );
> (gdb) p this
> $1 = (class activemq::commands::Message * const) 0x9edf7ec
> (gdb) p *this
> $2 = {<activemq::commands::BaseCommand> = {<activemq::commands::Command> = {<activemq::commands::BaseDataStructure> = {<activemq::commands::DataStructure> = {<activemq::wireformat::MarshalAware> = {_vptr.MarshalAware = 0xa39108}, <No data fields>}, <No data fields>}, <No data fields>}, responseRequired = false, 
>     commandId = 5}, ackHandler = 0x0, 
>   properties = {<decaf::util::StlMap<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,activemq::util::PrimitiveValueNode,std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {<decaf::util::Map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,activemq::util::PrimitiveValueNode,std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {<decaf::util::concurrent::Synchronizable> = {_vptr.Synchronizable = 0xa34be8}, <No data fields>}, valueMap = {_M_t = {
>           _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, activemq::util::PrimitiveValueNode> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, activemq::util::PrimitiveValueNode> > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<> = {<No data fields>}, <No data fields>}, 
>             _M_header = {_M_color = std::_S_red, _M_parent = 0x0, _M_left = 0x9edf804, _M_right = 0x9edf804}, _M_node_count = 0}}}, 
>       mutex = {<decaf::util::concurrent::Synchronizable> = {_vptr.Synchronizable = 0xa25468}, aprPool = {_vptr.AprPool = 0xa25fa8, aprPool = 0x9f543f0}, 
>         mutex = 0x9f54430, eventQ = {<std::_List_base<apr_thread_cond_t*,std::allocator<apr_thread_cond_t*> >> = {
>             _M_impl = {<std::allocator<std::_List_node<apr_thread_cond_t*> >> = {<__gnu_cxx::new_allocator<std::_List_node<apr_thread_cond_t*> >> = {<No data fields>}, <No data fields>}, _M_node = {_M_next = 0x9edf828, _M_prev = 0x9edf828}}}, <No data fields>}, lock_owner = 0, lock_count = 0}}, converter = {
>       _vptr.PrimitiveValueConverter = 0xa2d9b0}}, readOnlyProperties = true, readOnlyBody = true, static DEFAULT_MESSAGE_SIZE = 1024, 
>   producerId = {<decaf::lang::AtomicRefCounter> = {counter = 0x9ee0250}, _vptr.Pointer = 0xa2aca0, value = 0x9ee01a8}, 
>   destination = {<decaf::lang::AtomicRefCounter> = {counter = 0x9ebeee0}, _vptr.Pointer = 0xa2acf0, value = 0x9ee0260}, 
>   transactionId = {<decaf::lang::AtomicRefCounter> = {counter = 0x9ee02d0}, _vptr.Pointer = 0xa2a938, value = 0x0}, 
>   originalDestination = {<decaf::lang::AtomicRefCounter> = {counter = 0x9edfc08}, _vptr.Pointer = 0xa2acf0, value = 0x0}, 
>   messageId = {<decaf::lang::AtomicRefCounter> = {counter = 0x9edfc18}, _vptr.Pointer = 0xa2acc8, value = 0x9ee02e0}, 
>   originalTransactionId = {<decaf::lang::AtomicRefCounter> = {counter = 0x9edfc28}, _vptr.Pointer = 0xa2a938, value = 0x0}, groupID = {
>     static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
>       _M_p = 0x2a9bbc ""}}, groupSequence = 0, correlationId = {static npos = 4294967295, 
>     _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x2a9bbc ""}}, 
>   persistent = false, expiration = 0, priority = 4 '\004', replyTo = {<decaf::lang::AtomicRefCounter> = {counter = 0x9edff98}, _vptr.Pointer = 0xa2acf0, 
>     value = 0x0}, timestamp = 1241684145316, type = {static npos = 4294967295, 
>     _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x2a9bbc ""}}, 
>   content = {<std::_Vector_base<unsigned char,std::allocator<unsigned char> >> = {
>       _M_impl = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>}, 
>         _M_start = 0x9ee0490 "", _M_finish = 0x9ee04aa "il1\005", _M_end_of_storage = 0x9ee04aa "il1\005"}}, <No data fields>}, 
>   marshalledProperties = {<std::_Vector_base<unsigned char,std::allocator<unsigned char> >> = {
>       _M_impl = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>}, _M_start = 0x0, 
>         _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}, dataStructure = {<decaf::lang::AtomicRefCounter> = {counter = 0x9edffa8}, 
>     _vptr.Pointer = 0xa2a248, value = 0x0}, targetConsumerId = {<decaf::lang::AtomicRefCounter> = {counter = 0x9edffb8}, _vptr.Pointer = 0xa2aad8, 
>     value = 0x0}, compressed = false, redeliveryCounter = 0, 
>   brokerPath = {<std::_Vector_base<decaf::lang::Pointer<activemq::commands::BrokerId, decaf::lang::AtomicRefCounter>,std::allocator<decaf::lang::Pointer<activemq::commands::BrokerId, decaf::lang::AtomicRefCounter> > >> = {
>       _M_impl = {<std::allocator<decaf::lang::Pointer<activemq::commands::BrokerId, decaf::lang::AtomicRefCounter> >> = {<__gnu_cxx::new_allocator<decaf::lang::Pointer<activemq::commands::BrokerId, decaf::lang::AtomicRefCounter> >> = {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0, 
>         _M_end_of_storage = 0x0}}, <No data fields>}, arrival = 0, userID = {static npos = 4294967295, 
>     _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x2a9bbc ""}}, 
>   recievedByDFBridge = false, droppable = false, 
>   cluster = {<std::_Vector_base<decaf::lang::Pointer<activemq::commands::BrokerId, decaf::lang::AtomicRefCounter>,std::allocator<decaf::lang::Pointer<activemq::commands::BrokerId, decaf::lang::AtomicRefCounter> > >> = {
>       _M_impl = {<std::allocator<decaf::lang::Pointer<activemq::commands::BrokerId, decaf::lang::AtomicRefCounter> >> = {<__gnu_cxx::new_allocator<decaf::lang::Pointer<activemq::commands::BrokerId, decaf::lang::AtomicRefCounter> >> = {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0, 
>         _M_end_of_storage = 0x0}}, <No data fields>}, brokerInTime = 1241684145317, brokerOutTime = 1241684145317, static ID_MESSAGE = 0 '\0'}
> {noformat}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.