-
Bug
-
Resolution: Done
-
Major
-
None
-
JBoss A-MQ 6.1
-
None
If a producer tries to send a msg to a temp destination, it internally calls ActiveMQConnection.isDeleted() to check if the temp destination still exists or not. This method only checks if the temp destination is known locally.
ActiveMQConnection.java
public boolean isDeleted(ActiveMQDestination dest) { // If we are not watching the advisories.. then // we will assume that the temp destination does exist. if (advisoryConsumer == null) { return false; } return !activeTempDestinations.contains(dest); }
Now if this connection just got created and if there are many temp destinations, the broker may not have pushed advisories about all temp destinations to this connection when isDeleted() is called.
As a result this check refuses to send the message to the temp destination although it exists on the broker.