Uploaded image for project: 'ActiveMQ C++ Client'
  1. ActiveMQ C++ Client
  2. AMQCPP-242

Segfault when destroying auto pointer managed objects

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.2.6, 3.0
    • 2.2.6, 3.0
    • Integration Tests
    • None
    • CentOS 5.2, RHEL 5.2, apr-1.3.3, apr-util-1.3.4

    Description

      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

      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
      
      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");
      
      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'}
      

      Attachments

        1. AtomicInteger.patch
          2 kB
          Alexander Martens

        Activity

          People

            tabish Timothy A. Bish
            alex.martens Alexander Martens
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: