diff --git a/libsql-jdbc/src/main/java/com/github/magnusp/libsql/jdbc/LibsqlUrlParser.java b/libsql-jdbc/src/main/java/com/github/magnusp/libsql/jdbc/LibsqlUrlParser.java index ed5ee09..fef732b 100644 --- a/libsql-jdbc/src/main/java/com/github/magnusp/libsql/jdbc/LibsqlUrlParser.java +++ b/libsql-jdbc/src/main/java/com/github/magnusp/libsql/jdbc/LibsqlUrlParser.java @@ -95,7 +95,7 @@ public static LibsqlClientConfig parse(String url, Properties info) throws SQLEx // Timeouts Duration connectTimeout = LibsqlClientConfig.DEFAULT_CONNECT_TIMEOUT; - if (queryParams.containsKey("connectTimeout") || queryParams.containsKey("socketTimeout")) { + if (queryParams.containsKey("connectTimeout")) { connectTimeout = Duration.ofMillis(Long.parseLong(queryParams.get("connectTimeout"))); } else if (info != null && info.containsKey("connectTimeout")) { connectTimeout = Duration.ofMillis(Long.parseLong(info.getProperty("connectTimeout"))); diff --git a/libsql-jdbc/src/test/java/com/github/magnusp/libsql/jdbc/LibsqlUrlParserTest.java b/libsql-jdbc/src/test/java/com/github/magnusp/libsql/jdbc/LibsqlUrlParserTest.java index 8ac8070..458e7b9 100644 --- a/libsql-jdbc/src/test/java/com/github/magnusp/libsql/jdbc/LibsqlUrlParserTest.java +++ b/libsql-jdbc/src/test/java/com/github/magnusp/libsql/jdbc/LibsqlUrlParserTest.java @@ -37,6 +37,23 @@ void testParseUrlWithNamespacePathAndQueryParams() throws SQLException { assertThat(config.connectTimeout().toMillis()).isEqualTo(5000); } + @Test + void testIgnoresSocketTimeoutWithoutConnectTimeout() throws SQLException { + String url = "jdbc:libsql:http://localhost:8080/dev/tenant?socketTimeout=5000"; + LibsqlClientConfig config = LibsqlUrlParser.parse(url, new Properties()); + + assertThat(config.url()).isEqualTo("http://localhost:8080/dev/tenant"); + assertThat(config.connectTimeout()).isEqualTo(LibsqlClientConfig.DEFAULT_CONNECT_TIMEOUT); + } + + @Test + void testConnectTimeoutStillWinsAlongsideSocketTimeout() throws SQLException { + String url = "jdbc:libsql:http://localhost:8080/dev/tenant?socketTimeout=5000&connectTimeout=2500"; + LibsqlClientConfig config = LibsqlUrlParser.parse(url, new Properties()); + + assertThat(config.connectTimeout().toMillis()).isEqualTo(2500); + } + @Test void testParseWebSocketUrlKeepsTheSchemeAndPath() throws SQLException { LibsqlClientConfig config = LibsqlUrlParser.parse(