Skip to content

Commit 8485956

Browse files
committed
Use immutable map for static cache in TypeDescriptor
Switch to Map.of for the static commonTypesCache field for immutability. Signed-off-by: Patrick Strawderman <pstrawderman@netflix.com>
1 parent 0c25d81 commit 8485956

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

spring-core/src/main/java/org/springframework/core/convert/TypeDescriptor.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import java.lang.reflect.Type;
2323
import java.util.Arrays;
2424
import java.util.Collection;
25-
import java.util.HashMap;
2625
import java.util.Map;
2726
import java.util.function.Supplier;
2827
import java.util.stream.Stream;
@@ -36,6 +35,7 @@
3635
import org.springframework.lang.Contract;
3736
import org.springframework.util.Assert;
3837
import org.springframework.util.ClassUtils;
38+
import org.springframework.util.CollectionUtils;
3939

4040
/**
4141
* Contextual descriptor about a type to convert from or to.
@@ -55,17 +55,19 @@
5555
@SuppressWarnings("serial")
5656
public class TypeDescriptor implements Serializable {
5757

58-
private static final Map<Class<?>, TypeDescriptor> commonTypesCache = new HashMap<>(32);
58+
private static final Map<Class<?>, TypeDescriptor> commonTypesCache;
5959

6060
private static final Class<?>[] CACHED_COMMON_TYPES = {
6161
boolean.class, Boolean.class, byte.class, Byte.class, char.class, Character.class,
6262
double.class, Double.class, float.class, Float.class, int.class, Integer.class,
6363
long.class, Long.class, short.class, Short.class, String.class, Object.class};
6464

6565
static {
66+
Map<Class<?>, TypeDescriptor> commonTypes = CollectionUtils.newHashMap(CACHED_COMMON_TYPES.length);
6667
for (Class<?> preCachedClass : CACHED_COMMON_TYPES) {
67-
commonTypesCache.put(preCachedClass, valueOf(preCachedClass));
68+
commonTypes.put(preCachedClass, new TypeDescriptor(ResolvableType.forClass(preCachedClass), null, null));
6869
}
70+
commonTypesCache = Map.copyOf(commonTypes);
6971
}
7072

7173

0 commit comments

Comments
 (0)