From cfece39c426b6a7542e971a5539fa776bdd31555 Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Wed, 17 Feb 2016 16:06:48 +0100 Subject: [PATCH] DATAREDIS-465 - Guard lettuce client shutdown during ConnectionFactory.destroy. We now guard and log errors during lettuce client shutdown when destroying the ConnectionFactory on ApplicationContext shutdown. --- .../lettuce/LettuceConnectionFactory.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactory.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactory.java index 48640226b..6bc8e80a7 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactory.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactory.java @@ -32,6 +32,7 @@ import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.connection.RedisSentinelConfiguration; import org.springframework.data.redis.connection.RedisSentinelConnection; import org.springframework.util.Assert; +import org.springframework.util.ClassUtils; import com.lambdaworks.redis.LettuceFutures; import com.lambdaworks.redis.RedisAsyncConnection; @@ -114,8 +115,18 @@ public class LettuceConnectionFactory implements InitializingBean, DisposableBea } public void destroy() { + resetConnection(); - client.shutdown(shutdownTimeout, shutdownTimeout, TimeUnit.MILLISECONDS); + + try { + client.shutdown(shutdownTimeout, shutdownTimeout, TimeUnit.MILLISECONDS); + } catch (Exception e) { + + if (log.isWarnEnabled()) { + log.warn((client != null ? ClassUtils.getShortName(client.getClass()) : "LettuceClient") + + " did not shut down gracefully.", e); + } + } } /*