From 41c15f205faf1045680e17539436bb872f686e81 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Mon, 1 Dec 2014 14:29:22 -0800 Subject: [PATCH] Polish concurrent gaugeLocks map access See gh-1995 --- .../boot/actuate/metrics/writer/CodahaleMetricWriter.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/writer/CodahaleMetricWriter.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/writer/CodahaleMetricWriter.java index 5f3b1cc0a5..17e44bec57 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/writer/CodahaleMetricWriter.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/writer/CodahaleMetricWriter.java @@ -103,8 +103,9 @@ public class CodahaleMetricWriter implements MetricWriter { private Object getGuageLock(String name) { Object lock = this.gaugeLocks.get(name); if (lock == null) { - this.gaugeLocks.putIfAbsent(name, new Object()); - lock = this.gaugeLocks.get(name); + Object newLock = new Object(); + lock = this.gaugeLocks.putIfAbsent(name, newLock); + lock = (lock == null ? newLock : lock); } return lock; }