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 2f80eed3b..b7563a74e 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 @@ -68,6 +68,7 @@ import com.lambdaworks.redis.resource.ClientResources; * @author Christoph Strobl * @author Mark Paluch * @author Balázs Németh + * @author Dmytro Liash */ public class LettuceConnectionFactory implements InitializingBean, DisposableBean, RedisConnectionFactory { @@ -602,6 +603,9 @@ public class LettuceConnectionFactory implements InitializingBean, DisposableBea redisUri.setPassword(password); } + redisUri.setTimeout(timeout); + redisUri.setUnit(TimeUnit.MILLISECONDS); + return redisUri; } diff --git a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactoryUnitTests.java b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactoryUnitTests.java index a34072d66..ba428ed5b 100644 --- a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactoryUnitTests.java +++ b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactoryUnitTests.java @@ -15,6 +15,7 @@ */ package org.springframework.data.redis.connection.lettuce; +import static org.hamcrest.core.IsNull.*; import static org.hamcrest.core.Is.*; import static org.hamcrest.core.IsEqual.*; import static org.hamcrest.core.IsInstanceOf.*; @@ -45,6 +46,7 @@ import com.lambdaworks.redis.cluster.RedisClusterClient; * @author Christoph Strobl * @author Mark Paluch * @author Balázs Németh + * @author Dmytro Liash */ public class LettuceConnectionFactoryUnitTests { @@ -293,4 +295,22 @@ public class LettuceConnectionFactoryUnitTests { clusterConnection.close(); } + + @Test // DATAREDIS-939 + public void timeoutShouldBePassedOnToSentinelConnection() { + RedisSentinelConfiguration sentinelConfiguration = new RedisSentinelConfiguration() + .master("test") + .sentinel("sentinel", 26379); + LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory(sentinelConfiguration); + connectionFactory.setTimeout(5); + connectionFactory.afterPropertiesSet(); + ConnectionFactoryTracker.add(connectionFactory); + + AbstractRedisClient client = (AbstractRedisClient) getField(connectionFactory, "client"); + assertThat(client, instanceOf(RedisClient.class)); + RedisURI redisUri = (RedisURI) getField(client, "redisURI"); + assertThat(redisUri, is(notNullValue())); + assertThat(redisUri.getTimeout(), is(equalTo(connectionFactory.getTimeout()))); + assertThat(redisUri.getUnit(), is(equalTo(TimeUnit.MILLISECONDS))); + } }