Broker hangs on a durable subscribe when producer is disconnected violently (System.exit()). I have included the test files to reproduce the problem
WARNING: The test cases included can be patched against activemq-core but are not unit tests. Do the following sequence
1.) Run the junit test DurableProducerConsumerBrokerTest. This starts a broker
2.) Run the junit test DurableProducerConsumerTest. It will exit with System.exit midway thru running the test
3.) Rerun the junit test DurableProducerConsumerTest...It should hang the second time around
Note: If you use the log4j.properties included in the patch you would see the Usage memory as it rises above 70 to 99+ in the second run.