diff --git a/spring-core/src/main/java/org/springframework/util/MimeTypeUtils.java b/spring-core/src/main/java/org/springframework/util/MimeTypeUtils.java index 428f08c33a3..c73cd4d8de6 100644 --- a/spring-core/src/main/java/org/springframework/util/MimeTypeUtils.java +++ b/spring-core/src/main/java/org/springframework/util/MimeTypeUtils.java @@ -443,6 +443,11 @@ public abstract class MimeTypeUtils { } this.lock.writeLock().lock(); try { + // retrying in case of concurrent reads on the same key + if (this.queue.remove(key)) { + this.queue.add(key); + return this.cache.get(key); + } if (this.queue.size() == this.maxSize) { K leastUsed = this.queue.poll(); if (leastUsed != null) {