Description
When deleting a temp destination a DestinationInfo object is sent signifying the deletion to brokers. These are not deleted immediately but are instead put into the cachedDestinations map in AbstractTempRegion. Upon the regular scheduled doPurge call any that are older than a minute are disposed of, however, calling remove on the cache map returns nothing because the key object, CachedDestination has a bug inside the equals method in the instanceof check and the temp destinations stick around and are never disposed of
if (o instanceof ActiveMQDestination) {
Should be
if (o instanceof CachedDestination ) {