diff --git a/log4j-to-slf4j/pom.xml b/log4j-to-slf4j/pom.xml
index 68f305133aa..3a6b0d9e850 100644
--- a/log4j-to-slf4j/pom.xml
+++ b/log4j-to-slf4j/pom.xml
@@ -50,7 +50,7 @@
org.jspecify;transitive=false
- 2.0.16
+ 2.0.17
diff --git a/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/MDCContextMapTest.java b/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/MDCContextMapTest.java
index 6673de4597a..51b19cc07ce 100644
--- a/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/MDCContextMapTest.java
+++ b/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/MDCContextMapTest.java
@@ -26,14 +26,13 @@
import org.apache.logging.log4j.spi.ThreadContextMap;
import org.junit.jupiter.api.Test;
import org.junitpioneer.jupiter.Issue;
-import org.slf4j.MDCTestHelper;
import org.slf4j.spi.MDCAdapter;
class MDCContextMapTest {
@Test
@Issue("https://github.com/apache/logging-log4j2/issues/1426")
- void nonNullGetCopy() {
+ void nonNullGetCopy() throws Exception {
final ThreadContextMap contextMap = new MDCContextMap();
final MDCAdapter mockAdapter = mock(MDCAdapter.class);
when(mockAdapter.getCopyOfContextMap()).thenReturn(null);
diff --git a/log4j-to-slf4j/src/test/java/org/slf4j/MDCTestHelper.java b/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/MDCTestHelper.java
similarity index 66%
rename from log4j-to-slf4j/src/test/java/org/slf4j/MDCTestHelper.java
rename to log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/MDCTestHelper.java
index 0256131b8f2..8a85a1015dd 100644
--- a/log4j-to-slf4j/src/test/java/org/slf4j/MDCTestHelper.java
+++ b/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/MDCTestHelper.java
@@ -14,15 +14,19 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.slf4j;
+package org.apache.logging.slf4j;
+import java.lang.reflect.Field;
+import org.slf4j.MDC;
import org.slf4j.spi.MDCAdapter;
-public class MDCTestHelper {
+class MDCTestHelper {
- public static MDCAdapter replaceMDCAdapter(final MDCAdapter adapter) {
- final MDCAdapter old = MDC.mdcAdapter;
- MDC.mdcAdapter = adapter;
+ static MDCAdapter replaceMDCAdapter(final MDCAdapter adapter) throws Exception {
+ Field mdcAdapterField = MDC.class.getDeclaredField("MDC_ADAPTER");
+ mdcAdapterField.setAccessible(true);
+ final MDCAdapter old = (MDCAdapter) mdcAdapterField.get(null);
+ mdcAdapterField.set(null, adapter);
return old;
}
}