From 32a65072168711f2efc8ac7d160532d5ad219a26 Mon Sep 17 00:00:00 2001 From: Neenu1995 Date: Fri, 24 Jul 2026 13:39:07 -0400 Subject: [PATCH 1/2] fix(bigquery-jdbc): Add PerConnectionHandler to list of excempted logging classes --- .../jdbc/BigQueryJdbcCustomLogger.java | 1 + .../jdbc/BigQueryJdbcCustomLoggerTest.java | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLogger.java b/java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLogger.java index e1edd575b322..c4bc39f7ee2a 100644 --- a/java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLogger.java +++ b/java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLogger.java @@ -116,6 +116,7 @@ private static boolean isLoggerClass(String className) { return className.equals("com.google.cloud.bigquery.jdbc.BigQueryJdbcCustomLogger") || className.equals("com.google.cloud.bigquery.jdbc.BigQueryJdbcResultSetLogger") || className.startsWith("com.google.cloud.bigquery.jdbc.BigQueryJdbcRootLogger") + || className.equals("com.google.cloud.bigquery.jdbc.PerConnectionFileHandler") || className.equals(BigQueryJdbcLogRecord.class.getName()); } } diff --git a/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLoggerTest.java b/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLoggerTest.java index 223007e7b6fb..3b4f14da8273 100644 --- a/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLoggerTest.java +++ b/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLoggerTest.java @@ -27,6 +27,7 @@ import com.google.cloud.bigquery.FieldValue.Attribute; import com.google.cloud.bigquery.FieldValueList; import com.google.cloud.bigquery.LegacySQLTypeName; +import java.nio.file.Path; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -41,6 +42,7 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; public class BigQueryJdbcCustomLoggerTest extends BigQueryJdbcLoggingBaseTest { @@ -118,6 +120,29 @@ public void testLazyCallerInference() { assertEquals("testLazyCallerInference", methodName); } + @Test + public void testCallerInferenceWithPerConnectionFileHandler(@TempDir Path tempDir) { + PerConnectionFileHandler perConnHandler = + new PerConnectionFileHandler(tempDir.toString(), Level.ALL); + try { + logger.fine("Message through PerConnectionFileHandler"); + + List records = testHandler.getRecords(); + assertEquals(1, records.size()); + LogRecord record = records.get(0); + + // Publish record via PerConnectionFileHandler to put PerConnectionFileHandler on stack trace + perConnHandler.publish(record); + + // Verify that caller inference skips PerConnectionFileHandler frame + assertEquals(BigQueryJdbcCustomLoggerTest.class.getName(), record.getSourceClassName()); + assertEquals( + "testCallerInferenceWithPerConnectionFileHandler", record.getSourceMethodName()); + } finally { + perConnHandler.close(); + } + } + @Test public void testHotPathLoggerLogToDefaultWhenContextIsNull() { BigQueryJdbcCustomLogger hotpathLogger = From d1ad9e0c1f435b1076d4522ddac6e8f82f08c10d Mon Sep 17 00:00:00 2001 From: Neenu1995 Date: Fri, 24 Jul 2026 14:37:45 -0400 Subject: [PATCH 2/2] lint --- .../cloud/bigquery/jdbc/BigQueryJdbcCustomLoggerTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLoggerTest.java b/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLoggerTest.java index 3b4f14da8273..e2e90910edb0 100644 --- a/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLoggerTest.java +++ b/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLoggerTest.java @@ -136,8 +136,7 @@ public void testCallerInferenceWithPerConnectionFileHandler(@TempDir Path tempDi // Verify that caller inference skips PerConnectionFileHandler frame assertEquals(BigQueryJdbcCustomLoggerTest.class.getName(), record.getSourceClassName()); - assertEquals( - "testCallerInferenceWithPerConnectionFileHandler", record.getSourceMethodName()); + assertEquals("testCallerInferenceWithPerConnectionFileHandler", record.getSourceMethodName()); } finally { perConnHandler.close(); }