Fixed DestinationCache to avoid ConcurrentModificationException

Since updateCache is a LinkedHashMap with accessOrder=true,
a simple access with updateCache.get() modify the map.
By iterating over updateCache.entrySet(), we avoid this update.

Also moved the cached destinations removal outside the for loop.

Issue: SPR-11755