package com.qianwen.core.context; import java.util.Map; import org.slf4j.MDC; import com.qianwen.core.tool.utils.ThreadLocalUtil; import org.springframework.lang.Nullable; /* loaded from: blade-core-context-9.3.0.0-SNAPSHOT.jar:org/springblade/core/context/BladeRunnableWrapper.class */ public class BladeRunnableWrapper implements Runnable { private final Runnable delegate; private final Map tlMap = ThreadLocalUtil.getAll(); @Nullable private final Map mdcMap = MDC.getCopyOfContextMap(); public BladeRunnableWrapper(Runnable runnable) { this.delegate = runnable; } @Override // java.lang.Runnable public void run() { if (!this.tlMap.isEmpty()) { ThreadLocalUtil.put(this.tlMap); } if (this.mdcMap != null && !this.mdcMap.isEmpty()) { MDC.setContextMap(this.mdcMap); } try { this.delegate.run(); } finally { this.tlMap.clear(); if (this.mdcMap != null) { this.mdcMap.clear(); } ThreadLocalUtil.clear(); MDC.clear(); } } }