diff --git a/core/src/main/java/feign/querymap/FieldQueryMapEncoder.java b/core/src/main/java/feign/querymap/FieldQueryMapEncoder.java index 7f239a071..deaedf1cb 100644 --- a/core/src/main/java/feign/querymap/FieldQueryMapEncoder.java +++ b/core/src/main/java/feign/querymap/FieldQueryMapEncoder.java @@ -1,5 +1,5 @@ /** - * Copyright 2012-2020 The Feign Authors + * Copyright 2012-2021 The Feign Authors * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at @@ -13,12 +13,17 @@ */ package feign.querymap; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; import feign.Param; import feign.QueryMapEncoder; import feign.codec.EncodeException; -import java.lang.reflect.Field; -import java.util.*; -import java.util.stream.Collectors; /** * the query map will be generated using member variable names as query parameter names. @@ -31,7 +36,7 @@ public class FieldQueryMapEncoder implements QueryMapEncoder { private final Map, ObjectParamMetadata> classToMetadata = - new HashMap, ObjectParamMetadata>(); + new ConcurrentHashMap<>(); @Override public Map encode(Object object) throws EncodeException { @@ -56,7 +61,7 @@ private ObjectParamMetadata getMetadata(Class objectType) { ObjectParamMetadata metadata = classToMetadata.get(objectType); if (metadata == null) { metadata = ObjectParamMetadata.parseObjectType(objectType); - classToMetadata.put(objectType, metadata); + classToMetadata.putIfAbsent(objectType, metadata); } return metadata; }