From 631500b0c9b2a2a2abb707e3de2e10a5936e5d41 Mon Sep 17 00:00:00 2001 From: Mark Thomas Date: Fri, 15 Nov 2024 15:55:37 +0000 Subject: [PATCH] Fix for inconsistent metadata was incomplete Origin: https://github.com/apache/tomcat/commit/631500b0c9b2a2a2abb707e3de2e10a5936e5d41 Need to add key to map once created so it is visible to other threads --- java/org/apache/catalina/webresources/DirResourceSet.java | 2 ++ webapps/docs/changelog.xml | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/java/org/apache/catalina/webresources/DirResourceSet.java b/java/org/apache/catalina/webresources/DirResourceSet.java index 02ddc6ec887c..f1d4e86199ee 100644 --- a/java/org/apache/catalina/webresources/DirResourceSet.java +++ b/java/org/apache/catalina/webresources/DirResourceSet.java @@ -382,6 +382,7 @@ public ResourceLock lockForRead(String path) { resourceLock = resourceLocksByPath.get(key); if (resourceLock == null) { resourceLock = new ResourceLock(key); + resourceLocksByPath.put(key, resourceLock); } resourceLock.count.incrementAndGet(); } @@ -419,6 +420,7 @@ public ResourceLock lockForWrite(String path) { resourceLock = resourceLocksByPath.get(key); if (resourceLock == null) { resourceLock = new ResourceLock(key); + resourceLocksByPath.put(key, resourceLock); } resourceLock.count.incrementAndGet(); }