File tree Expand file tree Collapse file tree
java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc Expand file tree Collapse file tree Original file line number Diff line number Diff line change 4040import java .util .Objects ;
4141import java .util .concurrent .Callable ;
4242import java .util .concurrent .ConcurrentHashMap ;
43+ import java .util .concurrent .locks .ReentrantLock ;
4344import java .util .logging .Handler ;
4445import 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
You can’t perform that action at this time.
0 commit comments