@Override
        public Map<String, String> getCopyOfContextMap() {
            final Map<String, String> threadLocalMap = getDelegateContextMap();
            final RequestContext ctx = RequestContext.currentOrNull();
            if (ctx == null) {
                // No context available
                if (threadLocalMap != null) {
                    return maybeCloneThreadLocalMap(threadLocalMap);
                } else {
                    return Object2ObjectMaps.emptyMap();
                }
            }

            // Retrieve the request-scoped properties.
            // Note that this map is 1) unmodifiable and shared 2) or modifiable yet unshared,
            // which means it's OK to return as it is or mutate it.
            final Map<String, String> requestScopedMap = getAll(ctx);
            if (threadLocalMap == null || threadLocalMap.isEmpty()) {
                // No thread-local map available
                return requestScopedMap;
            }

            // Thread-local map available
            if (requestScopedMap.isEmpty()) {
                // Only thread-local map available
                return maybeCloneThreadLocalMap(threadLocalMap);
            }

            // Both thread-local and request-scoped map available
            final Object2ObjectOpenHashMap<String, String> merged;
            if (requestScopedMap instanceof Object2ObjectOpenHashMap) {
                // Reuse the mutable copy returned by getAll() for less memory footprint.
                merged = (Object2ObjectOpenHashMap<String, String>) requestScopedMap;
                threadLocalMap.forEach(merged::putIfAbsent);
            } else {
                merged = new Object2ObjectOpenHashMap<>(threadLocalMap.size() + requestScopedMap.size());
                merged.putAll(threadLocalMap);
                merged.putAll(requestScopedMap);
            }
            return merged;
        }
Unbinds all request-scoped {@link MDC} properties from the specified {@link RequestContext}.

@param ctx the {@link RequestContext}
core/src/main/java/com/linecorp/armeria/common/logging/RequestScopedMdc.java