From 6a10894b8c755cf3235db7e8b138d4a9fc20253d Mon Sep 17 00:00:00 2001 From: Ismail Bhana Date: Fri, 4 Sep 2026 14:57:52 +0100 Subject: [PATCH] fix: ConcurrentModificationException when accessing DFS referrals Fixes java.util.ConcurrentModificationException when accessing DFS referral data. Refs: - https://github.com/codelibs/jcifs/issues/76 --- src/main/java/org/codelibs/jcifs/smb/impl/SmbTreeImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/codelibs/jcifs/smb/impl/SmbTreeImpl.java b/src/main/java/org/codelibs/jcifs/smb/impl/SmbTreeImpl.java index 66129108..c00d2ecc 100644 --- a/src/main/java/org/codelibs/jcifs/smb/impl/SmbTreeImpl.java +++ b/src/main/java/org/codelibs/jcifs/smb/impl/SmbTreeImpl.java @@ -22,11 +22,11 @@ import java.util.Arrays; import java.util.Collections; import java.util.EnumSet; -import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; @@ -94,7 +94,7 @@ class SmbTreeImpl implements SmbTreeInternal { private final List acquires; private final List releases; - private final Map treeReferrals = new HashMap<>(); + private final Map treeReferrals = new ConcurrentHashMap<>(); SmbTreeImpl(final SmbSessionImpl session, final String share, final String service) { this.session = session.acquire();