TransportConnector get duplicated when used with JMX
----------------------------------------------------
Key: AMQ-1029
URL: https://issues.apache.org/activemq/browse/AMQ-1029
Project: ActiveMQ
Issue Type: Bug
Components: Broker
Affects Versions: 4.0.2
Environment: Linux, ActiveMQ broker in a custom servlet, running on
Tomcat 5.5.
Reporter: Andreas Mack
Priority: Minor
Attachments: tc-jmx-patch
The BrokerService keeps the configured TransportConnectors in a list called
transportConnectors. In startAllConnectors, the list is traversed and each
connector is started through startTransportConnector(). This method checks if
JMX is configured, and if so, it called connector.asManagedConnector() which
returns a new instance of a TransportConnector. This instance is started.
But in the transportConnectors list of BrokerService, the old, unstarted
object is still existent. Since a TransportConnector starts a
TransportServiceDetector thread, the old, unstarted instance contains a TSD
that is not active. But the started TSD isn't referenced anymore.
On shutdown, the old, unstarted TC and subsequently TSD are stopped. The "lost"
instance can't be touched anymore.
My patch does this: During spin-up, startTransportConnector() returns the
instance that is started. The started instances are collected in an arraylist,
this list replaces transportConnectors after startup.
Thanks to jstrachan for being patient on irc.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira