diff --git a/java-bigquery-jdbc/pom.xml b/java-bigquery-jdbc/pom.xml
index 152924230b26..ca886227ac68 100644
--- a/java-bigquery-jdbc/pom.xml
+++ b/java-bigquery-jdbc/pom.xml
@@ -83,6 +83,10 @@
org.apache.httpcomponents.*:*
io.grpc:*
+
+ io.opentelemetry.contrib:opentelemetry-gcp-auth-extension
+ io.opentelemetry:opentelemetry-exporter-otlp
+
@@ -424,6 +428,16 @@
opentelemetry-sdk-testing
test
+
+ io.opentelemetry
+ opentelemetry-sdk-logs
+ test
+
+
+ io.opentelemetry
+ opentelemetry-sdk-trace
+ test
+
com.google.cloud
google-cloud-trace
diff --git a/java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOpenTelemetry.java b/java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOpenTelemetry.java
index 1995a4d330e4..5f35c9cde510 100644
--- a/java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOpenTelemetry.java
+++ b/java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOpenTelemetry.java
@@ -140,7 +140,7 @@ private BigQueryJdbcOpenTelemetry() {}
}));
}
- public static void ensureGlobalHandlerAttached() {
+ public static synchronized void ensureGlobalHandlerAttached() {
Logger logger = Logger.getLogger(BIGQUERY_NAMESPACE);
boolean present = false;
for (Handler h : logger.getHandlers()) {
diff --git a/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcLoggingBaseTest.java b/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcLoggingBaseTest.java
index 2196363663fb..450b07a65ba8 100644
--- a/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcLoggingBaseTest.java
+++ b/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcLoggingBaseTest.java
@@ -30,10 +30,12 @@ public abstract class BigQueryJdbcLoggingBaseTest extends BigQueryJdbcBaseTest {
private Handler handler;
private Logger logger;
private long threadId;
+ private java.util.logging.Level originalLevel;
@BeforeEach
public void setUpLogValidator() {
logger = BigQueryJdbcRootLogger.getRootLogger();
+ originalLevel = logger.getLevel();
logger.setLevel(java.util.logging.Level.ALL);
capturedLogs.clear();
threadId = Thread.currentThread().getId();
@@ -59,6 +61,7 @@ public void close() throws SecurityException {}
public void tearDownLogValidator() {
if (logger != null && handler != null) {
logger.removeHandler(handler);
+ logger.setLevel(originalLevel);
}
}
diff --git a/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/OpenTelemetryJulHandlerTest.java b/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/OpenTelemetryJulHandlerTest.java
index 7f5f841511dd..e923dd011778 100644
--- a/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/OpenTelemetryJulHandlerTest.java
+++ b/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/OpenTelemetryJulHandlerTest.java
@@ -44,9 +44,11 @@ public class OpenTelemetryJulHandlerTest {
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
private static final Logger logger = Logger.getLogger("com.google.cloud.bigquery");
+ private java.util.logging.Level originalLevel;
@BeforeEach
public void setUp() {
+ originalLevel = logger.getLevel();
logger.setLevel(java.util.logging.Level.ALL);
BigQueryJdbcOpenTelemetry.ensureGlobalHandlerAttached();
}
@@ -56,6 +58,7 @@ public void tearDown() {
BigQueryJdbcOpenTelemetry.unregisterConnection("test-uuid");
BigQueryJdbcOpenTelemetry.unregisterConnection("wrong-uuid");
BigQueryJdbcOpenTelemetry.unregisterConnection("gcp-uuid");
+ logger.setLevel(originalLevel);
}
@Test
diff --git a/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PerConnectionFileHandlerTest.java b/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PerConnectionFileHandlerTest.java
index fda5112703fd..a1149733b113 100644
--- a/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PerConnectionFileHandlerTest.java
+++ b/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PerConnectionFileHandlerTest.java
@@ -45,12 +45,15 @@ public class PerConnectionFileHandlerTest {
private PerConnectionFileHandler handler;
private BigQueryConnection mockConnection;
+ private Level originalLevel;
@BeforeEach
public void setUp() {
handler = new PerConnectionFileHandler(tempDir.toString(), Level.INFO);
mockConnection = Mockito.mock(BigQueryConnection.class);
BigQueryJdbcMdc.clear();
+ originalLevel = BigQueryJdbcRootLogger.getRootLogger().getLevel();
+ BigQueryJdbcRootLogger.getRootLogger().setLevel(Level.ALL);
}
@AfterEach
@@ -59,6 +62,7 @@ public void tearDown() {
handler.close();
}
BigQueryJdbcMdc.clear();
+ BigQueryJdbcRootLogger.getRootLogger().setLevel(originalLevel);
}
private Optional findLogFile(String suffix) throws IOException {