Merge pull request #1843 from jbertram/2.3.x

Duplicate ID cache clean-up
header fix
Re-applying Bug 1132196(HORNETQ-1389) after fixing test issue - JGroupsBroadcastGroupConfiguration Serialization Problem
Merge pull request #1844 from clebertsuconic/2.3.x

re-applying JGroups fix after fixing test
https://bugzilla.redhat.com/show_bug.cgi?id=1143818 - reset connected flags after failover
Merge pull request #1863 from andytaylor/2.3.x

https://bugzilla.redhat.com/show_bug.cgi?id=1143818
BZ-1146506 & HORNETQ-1287  Message does not expire when it is diverted to another queue

https://issues.jboss.org/browse/HORNETQ-1287
https://bugzilla.redhat.com/show_bug.cgi?id=1146506

Diverts were not setting the expiry message during any type of divert.
It seems this was an initial design decision but I don't see a reason why
expiry should be removed between routing and diverting.
Besides this we also fixed the case where the original queue wasn't set
during divert and expiry.
Merge pull request #1873 from clebertsuconic/2.3.x

BZ-1146506 & HORNETQ-1287  Message does not expire when it is diverted to another queue
BZ-1149936 HORNETQ-1427 Avoid orphaned consumers

https://issues.jboss.org/browse/HORNETQ-1427
https://bugzilla.redhat.com/show_bug.cgi?id=1149936

We have been reported about orphaned consumers cases.
The only cases where I saw this possibly happening was during a hypotethical
exception during server.close() or during a temporary blocking client (thread waiting to lock)

To avoid that I'm now removing connections at the end of loops and making the exception treatment
per consumer, so if any exception happened we will continue closing. at the worst case the connection
will still be on the maps and this won't be na issue any longer.
Merge pull request #1892 from clebertsuconic/2.3.x

BZ-1149936 HORNETQ-1427 Avoid orphaned consumers
test fix on TemporaryQueueTest

The test is now closing connections at the end. the previous assertion needed to be adapted
Merge pull request #1896 from clebertsuconic/2.3.x

test fix on TemporaryQueueTest
BZ-1152410 - handle rollback called twice

https://bugzilla.redhat.com/show_bug.cgi?id=1152410

There are 2 parts to this, firstly make sure that if the call to rollback fails make sure that the session and consumers re restarted.

secondly at the server make sure that we dont cancel the refs and add them to the already rolled back tx, we should handle them separately and rollback on to the queue in a new tx.
Merge pull request #1914 from andytaylor/2.3.x

BZ-1152410 - handle rollback called twice
HORNETQ-1437  Keep JNDI when destroying JMS queues

Change the semantics of the destroyTopic(java.lang.String, boolean) and
destroyQueue(java.lang.String, boolean) methods on
org.hornetq.api.jms.management.JMSServerControl so that if consumers
are attached to the topic/queue then the JNDI bindings are not removed.