When virtual destination network demand is enabled based on the existence of a destination ( the useVirtualDestSubsOnCreation flag as described in
AMQ-6027) , there is a map called brokerConsumerDests that tracks the unique demand for the existence virtual destinations.
Elements are not being properly removed from this map when a virtual destination is removed. All elements are being removed from this map instead of just the ones that match the removed virtual destination. This can cause entries in a different map (the virtualDestinationConsumers map) to not be cleaned up and for duplicates to be added if the virtual destination is re-added later. This can lead to a memory leak as this map can continue to grow and not be cleaned up.