Skip to content

Commit 8b373a3

Browse files
author
mayuefeng
committed
fix issue: There is a thread safety issue with InfluxDBResultMapper influxdata#683
1 parent 01979bf commit 8b373a3

File tree

1 file changed

+2
-5
lines changed

1 file changed

+2
-5
lines changed

src/main/java/org/influxdb/impl/InfluxDBResultMapper.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -211,11 +211,7 @@ void cacheMeasurementClass(final Class<?>... classVarAgrs) {
211211
if (CLASS_FIELD_CACHE.containsKey(clazz.getName())) {
212212
continue;
213213
}
214-
ConcurrentMap<String, Field> initialMap = new ConcurrentHashMap<>();
215-
ConcurrentMap<String, Field> influxColumnAndFieldMap = CLASS_FIELD_CACHE.putIfAbsent(clazz.getName(), initialMap);
216-
if (influxColumnAndFieldMap == null) {
217-
influxColumnAndFieldMap = initialMap;
218-
}
214+
ConcurrentMap<String, Field> influxColumnAndFieldMap = new ConcurrentHashMap<>();
219215

220216
Class<?> c = clazz;
221217
while (c != null) {
@@ -227,6 +223,7 @@ void cacheMeasurementClass(final Class<?>... classVarAgrs) {
227223
}
228224
c = c.getSuperclass();
229225
}
226+
CLASS_FIELD_CACHE.putIfAbsent(clazz.getName(), influxColumnAndFieldMap);
230227
}
231228
}
232229

0 commit comments

Comments
 (0)