Skip to content

Commit b3b570c

Browse files
committed
Polish ConcurrentReferenceCachingMetadataReaderFactory to use Map::computeIfAbsent
1 parent 23fe397 commit b3b570c

File tree

1 file changed

+5
-12
lines changed

1 file changed

+5
-12
lines changed

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/type/classreading/ConcurrentReferenceCachingMetadataReaderFactory.java

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.springframework.core.type.classreading.MetadataReaderFactory;
2727
import org.springframework.core.type.classreading.SimpleMetadataReaderFactory;
2828
import org.springframework.util.ConcurrentReferenceHashMap;
29+
import org.springframework.util.function.ThrowingFunction;
2930

3031
/**
3132
* Caching implementation of the {@link MetadataReaderFactory} interface backed by a
@@ -70,22 +71,14 @@ public ConcurrentReferenceCachingMetadataReaderFactory(ClassLoader classLoader)
7071

7172
@Override
7273
public MetadataReader getMetadataReader(String className) throws IOException {
73-
MetadataReader metadataReader = this.classNameCache.get(className);
74-
if (metadataReader == null) {
75-
metadataReader = super.getMetadataReader(className);
76-
this.classNameCache.put(className, metadataReader);
77-
}
78-
return metadataReader;
74+
return this.classNameCache.computeIfAbsent(className,
75+
(ThrowingFunction<String, MetadataReader>) super::getMetadataReader);
7976
}
8077

8178
@Override
8279
public MetadataReader getMetadataReader(Resource resource) throws IOException {
83-
MetadataReader metadataReader = this.resourceCache.get(resource);
84-
if (metadataReader == null) {
85-
metadataReader = createMetadataReader(resource);
86-
this.resourceCache.put(resource, metadataReader);
87-
}
88-
return metadataReader;
80+
return this.resourceCache.computeIfAbsent(resource,
81+
(ThrowingFunction<Resource, MetadataReader>) this::createMetadataReader);
8982
}
9083

9184
/**

0 commit comments

Comments
 (0)