This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/main by this push:
new 80b11f3a7c Map may be accessed concurrently so use ConcurrentMap
80b11f3a7c is described below
commit 80b11f3a7cce9c668a4c3b7b066327d6e8ad26e5
Author: Mark Thomas <[email protected]>
AuthorDate: Wed Sep 17 08:12:30 2025 +0100
Map may be accessed concurrently so use ConcurrentMap
Fixes a issue reported by Coverity
---
java/org/apache/catalina/core/StandardContext.java | 19 +++++--------------
1 file changed, 5 insertions(+), 14 deletions(-)
diff --git a/java/org/apache/catalina/core/StandardContext.java
b/java/org/apache/catalina/core/StandardContext.java
index 6964e95bf6..cdbfd7112e 100644
--- a/java/org/apache/catalina/core/StandardContext.java
+++ b/java/org/apache/catalina/core/StandardContext.java
@@ -40,6 +40,7 @@ import java.util.Objects;
import java.util.Set;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.locks.Lock;
@@ -425,7 +426,7 @@ public class StandardContext extends ContainerBase
implements Context, Notificat
/**
* The MIME mappings for this web application, keyed by extension.
*/
- private final Map<String,String> mimeMappings = new HashMap<>();
+ private final ConcurrentMap<String,String> mimeMappings = new
ConcurrentHashMap<>();
/**
@@ -2805,12 +2806,8 @@ public class StandardContext extends ContainerBase
implements Context, Notificat
@Override
public void addMimeMapping(String extension, String mimeType) {
-
- synchronized (mimeMappings) {
- mimeMappings.put(extension.toLowerCase(Locale.ENGLISH), mimeType);
- }
+ mimeMappings.put(extension.toLowerCase(Locale.ENGLISH), mimeType);
fireContainerEvent("addMimeMapping", extension);
-
}
@@ -3084,9 +3081,7 @@ public class StandardContext extends ContainerBase
implements Context, Notificat
@Override
public String[] findMimeMappings() {
- synchronized (mimeMappings) {
- return mimeMappings.keySet().toArray(new String[0]);
- }
+ return mimeMappings.keySet().toArray(new String[0]);
}
@@ -3381,12 +3376,8 @@ public class StandardContext extends ContainerBase
implements Context, Notificat
@Override
public void removeMimeMapping(String extension) {
-
- synchronized (mimeMappings) {
- mimeMappings.remove(extension);
- }
+ mimeMappings.remove(extension);
fireContainerEvent("removeMimeMapping", extension);
-
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]