NoOpCacheManager#getCacheNames() returns the underlying raw LinkedHashSet without any concurrent access protection. This should rather be aligned with ConcurrentMapCacheManager and CaffeineCacheManager which simply return ConcurrentHashMap#keySet() from there. The returned collection does not come with any ordering guarantees in the production implementations either, so the no-op implementation can easily align there.
NoOpCacheManager#getCacheNames()returns the underlying rawLinkedHashSetwithout any concurrent access protection. This should rather be aligned withConcurrentMapCacheManagerandCaffeineCacheManagerwhich simply returnConcurrentHashMap#keySet()from there. The returned collection does not come with any ordering guarantees in the production implementations either, so the no-op implementation can easily align there.