From b8fbc6461054196ec0fe6e7fe518dca74d835236 Mon Sep 17 00:00:00 2001 From: mzitnik Date: Wed, 9 Apr 2025 11:32:52 +0300 Subject: [PATCH 1/2] Adding issue #2245 test --- .../jdbc/metadata/DatabaseMetaDataTest.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/jdbc-v2/src/test/java/com/clickhouse/jdbc/metadata/DatabaseMetaDataTest.java b/jdbc-v2/src/test/java/com/clickhouse/jdbc/metadata/DatabaseMetaDataTest.java index d68a20fd7..fcd955c39 100644 --- a/jdbc-v2/src/test/java/com/clickhouse/jdbc/metadata/DatabaseMetaDataTest.java +++ b/jdbc-v2/src/test/java/com/clickhouse/jdbc/metadata/DatabaseMetaDataTest.java @@ -24,11 +24,7 @@ import java.util.Properties; import java.util.Set; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; - +import static org.testng.Assert.*; public class DatabaseMetaDataTest extends JdbcIntegrationTest { @@ -315,4 +311,13 @@ public void testGetClientInfoProperties() throws Exception { } } } + + @Test(groups = { "integration" }) + public void testGetDriverVersion() throws Exception { + try (Connection conn = getJdbcConnection()) { + DatabaseMetaData dbmd = conn.getMetaData(); + String version = dbmd.getDriverVersion(); + assertNotEquals(version, "unknown"); + } + } } From 1e832422bacb131b0bffd6ab64ed153b5bd5520c Mon Sep 17 00:00:00 2001 From: mzitnik Date: Thu, 10 Apr 2025 11:43:25 +0300 Subject: [PATCH 2/2] Adding to readVersionFromResource the ability to load from a different classloader for those cases when the thread is running in a different classloader --- .../client/config/ClickHouseClientOption.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/clickhouse-client/src/main/java/com/clickhouse/client/config/ClickHouseClientOption.java b/clickhouse-client/src/main/java/com/clickhouse/client/config/ClickHouseClientOption.java index 0c9f0fb70..95187b541 100644 --- a/clickhouse-client/src/main/java/com/clickhouse/client/config/ClickHouseClientOption.java +++ b/clickhouse-client/src/main/java/com/clickhouse/client/config/ClickHouseClientOption.java @@ -532,7 +532,17 @@ public static String readVersionFromResource(String resourceFilePath) { tmpVersion = tmp; } } catch (Exception e) { - // ignore + try(InputStream in = ClickHouseClientOption.class.getClassLoader().getResourceAsStream(resourceFilePath)) { + Properties p = new Properties(); + p.load(in); + + String tmp = p.getProperty("version"); + if (tmp != null && !tmp.isEmpty() && !tmp.equals("${revision}")) { + tmpVersion = tmp; + } + } catch (Exception ee) { + // ignore + } } return tmpVersion; }