From 9711439f60bd4524a4862b5fed342641f9c0375c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20Nie=C3=9Fing?= Date: Tue, 5 Aug 2025 20:44:13 +0200 Subject: [PATCH] Make pathFor protected to allow overriding MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Steffen Nießing --- .../jdbc/lock/JdbcLockRegistry.java | 2 +- .../jdbc/lock/JdbcLockRegistryTests.java | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/lock/JdbcLockRegistry.java b/spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/lock/JdbcLockRegistry.java index ef7f819197a..1eea3a35c60 100644 --- a/spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/lock/JdbcLockRegistry.java +++ b/spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/lock/JdbcLockRegistry.java @@ -151,7 +151,7 @@ public DistributedLock obtain(Object lockKey) { } } - private String pathFor(String input) { + protected String pathFor(String input) { return UUIDConverter.getUUID(input).toString(); } diff --git a/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/lock/JdbcLockRegistryTests.java b/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/lock/JdbcLockRegistryTests.java index 4a1c9cc081f..d295375b393 100644 --- a/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/lock/JdbcLockRegistryTests.java +++ b/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/lock/JdbcLockRegistryTests.java @@ -613,6 +613,26 @@ void testUnlockAfterLockStatusHasBeenExpiredAndDeleted() throws Exception { .isThrownBy(lock::unlock); } + @Test + void testPathForCanBeOverridden() { + DefaultLockRepository client = new DefaultLockRepository(dataSource); + client.setApplicationContext(this.context); + client.afterPropertiesSet(); + client.afterSingletonsInstantiated(); + JdbcLockRegistry registry = new JdbcLockRegistry(client) { + @Override + protected String pathFor(String input) { + return input; + } + }; + + final String lockKey = "foo"; + Lock lock = registry.obtain(lockKey); + String lockPath = TestUtils.getPropertyValue(lock, "path", String.class); + + assertThat(lockPath).isEqualTo(lockKey); + } + @SuppressWarnings("unchecked") private static Map getRegistryLocks(JdbcLockRegistry registry) { return TestUtils.getPropertyValue(registry, "locks", Map.class);