Skip to content

Commit 95ea41b

Browse files
committed
chore: address pr feedback
1 parent 6884672 commit 95ea41b

1 file changed

Lines changed: 16 additions & 9 deletions

File tree

java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOpenTelemetry.java

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import java.util.Objects;
4141
import java.util.concurrent.Callable;
4242
import java.util.concurrent.ConcurrentHashMap;
43+
import java.util.concurrent.locks.ReentrantLock;
4344
import java.util.logging.Handler;
4445
import java.util.logging.Logger;
4546

@@ -119,6 +120,7 @@ static class TelemetryConfig {
119120

120121
private static final ConcurrentHashMap<String, TelemetryConfig> connectionConfigs =
121122
new ConcurrentHashMap<>();
123+
private static final ReentrantLock lock = new ReentrantLock();
122124

123125
private BigQueryJdbcOpenTelemetry() {}
124126

@@ -141,16 +143,21 @@ private BigQueryJdbcOpenTelemetry() {}
141143
}
142144

143145
public static void ensureGlobalHandlerAttached() {
144-
Logger logger = Logger.getLogger(BIGQUERY_NAMESPACE);
145-
boolean present = false;
146-
for (Handler h : logger.getHandlers()) {
147-
if (h instanceof OpenTelemetryJulHandler) {
148-
present = true;
149-
break;
146+
lock.lock();
147+
try {
148+
Logger logger = Logger.getLogger(BIGQUERY_NAMESPACE);
149+
boolean present = false;
150+
for (Handler h : logger.getHandlers()) {
151+
if (h instanceof OpenTelemetryJulHandler) {
152+
present = true;
153+
break;
154+
}
150155
}
151-
}
152-
if (!present) {
153-
logger.addHandler(new OpenTelemetryJulHandler());
156+
if (!present) {
157+
logger.addHandler(new OpenTelemetryJulHandler());
158+
}
159+
} finally {
160+
lock.unlock();
154161
}
155162
}
156163

0 commit comments

Comments
 (0)