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 2010/12/05 18:11:11 UTC
[jira] Resolved: (AMQCPP-330) Unable to reinitialize ActiveMQ CMS
library and then open a session
[ https://issues.apache.org/jira/browse/AMQCPP-330?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Timothy Bish resolved AMQCPP-330.
---------------------------------
Resolution: Fixed
Fix Version/s: 3.3.0
Fixed in trunk.
> Unable to reinitialize ActiveMQ CMS library and then open a session
> -------------------------------------------------------------------
>
> Key: AMQCPP-330
> URL: https://issues.apache.org/jira/browse/AMQCPP-330
> Project: ActiveMQ C++ Client
> Issue Type: Bug
> Components: Decaf
> Affects Versions: 3.2.3
> Environment: Windows XP SP2
> Reporter: Evan Kuhn
> Assignee: Timothy Bish
> Priority: Minor
> Fix For: 3.3.0
>
> Attachments: multi_init_test_main.cpp
>
>
> I'm working on a project that initializes and shuts down the ActiveMQ CMS library multiple times. After upgrading from CMS 3.1.3 to 3.2.3, I noticed that my process crashes after these steps:
> 1) Initialize ActiveMQ CMS library
> 2) Create connection, session, etc and do work
> 3) Shut down ActiveMQ CMS library
> 4) Initialize ActiveMQ CMS library a second time
> 5) Create a connection, then a session... crash
> First off, am I allowed to reinitialize the CMS library after shutting it down? Is it recommended not to?
> Either way, the program crashes at:
> /main/activemq/transport/tcp/TcpTransport.cpp line 163
> I believe the error is in /main/decaf/net/SocketFactory.cpp. The static SocketFactory::defaultFactory pointer (line 30) is set while creating the first session. Then when shutting down the library, the Network object destroys the object pointed to by SocketFactory::defaultFactory. The next time around, SocketFactory::getDefault() will try to use the pointer, but the factory object has been destroyed, so the process crashes.
> One possible fix is to modify the SocketFactory destructor to set the defaultFactory pointer to NULL. I have no idea if that's a good solution, though.
> I will attach a test program to reproduce the crash.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.