From 4b6be1db8548816c9a5f4ad8c64c38ea7cd7d5b7 Mon Sep 17 00:00:00 2001 From: rprevot Date: Sun, 12 Apr 2020 16:05:30 +0200 Subject: [PATCH] Fix JedisConnection.close(), ensure socket close on exit --- .../dyno/jedis/JedisConnectionFactory.java | 21 +++++- .../jedis/JedisConnectionFactoryTest.java | 73 +++++++++++++++++++ 2 files changed, 91 insertions(+), 3 deletions(-) create mode 100644 dyno-jedis/src/test/java/com/netflix/dyno/jedis/JedisConnectionFactoryTest.java diff --git a/dyno-jedis/src/main/java/com/netflix/dyno/jedis/JedisConnectionFactory.java b/dyno-jedis/src/main/java/com/netflix/dyno/jedis/JedisConnectionFactory.java index 855140c1..1c5b82e4 100644 --- a/dyno-jedis/src/main/java/com/netflix/dyno/jedis/JedisConnectionFactory.java +++ b/dyno-jedis/src/main/java/com/netflix/dyno/jedis/JedisConnectionFactory.java @@ -162,10 +162,25 @@ public ListenableFuture> executeAsync(AsyncOperation hostConnectionPool = new HostConnectionPoolImpl<>(noAuthHost, conFactory, cpConfig, poolMonitor); + + JedisConnection connection = (JedisConnection) conFactory.createConnection(hostConnectionPool); + connection.execPing(); + Assert.assertTrue(connection.getClient().isConnected()); + + redisServer.stop(); + + try { + connection.close(); + Assert.fail("expected to throw"); + } catch (JedisConnectionException e) { + Assert.assertFalse(connection.getClient().isConnected()); + } + } + +}