From 560540f259a3ec996e4d7438e86971f69be4baaf Mon Sep 17 00:00:00 2001 From: Dan Sarlo <81384153+dsarlo-viso@users.noreply.github.com> Date: Wed, 21 May 2025 15:48:01 -0400 Subject: [PATCH] Fix datasource connection leak when using the JdbcChatMemoryRepository Signed-off-by: Dan Sarlo <81384153+dsarlo-viso@users.noreply.github.com> --- .../repository/jdbc/JdbcChatMemoryRepositoryDialect.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/JdbcChatMemoryRepositoryDialect.java b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/JdbcChatMemoryRepositoryDialect.java index 3d7032df4..526c0908c 100644 --- a/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/JdbcChatMemoryRepositoryDialect.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/JdbcChatMemoryRepositoryDialect.java @@ -17,6 +17,7 @@ package org.springframework.ai.chat.memory.repository.jdbc; import javax.sql.DataSource; +import java.sql.Connection; /** * Abstraction for database-specific SQL for chat memory repository. @@ -53,8 +54,8 @@ public interface JdbcChatMemoryRepositoryDialect { */ static JdbcChatMemoryRepositoryDialect from(DataSource dataSource) { // Simple detection (could be improved) - try { - String url = dataSource.getConnection().getMetaData().getURL().toLowerCase(); + try (Connection connection = dataSource.getConnection()) { + String url = connection.getMetaData().getURL().toLowerCase(); if (url.contains("postgresql")) { return new PostgresChatMemoryRepositoryDialect(); }