From 52a10e1ec21e3465e7ef38a4c207ff2978a8a0d7 Mon Sep 17 00:00:00 2001 From: M Sazzadul Hoque <7600764+sazzad16@users.noreply.github.com> Date: Thu, 27 Apr 2023 19:30:35 +0600 Subject: [PATCH] Newly disconnected connections are set as broken (#3381) * Address+Fix #3353 --- src/main/java/redis/clients/jedis/Connection.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/redis/clients/jedis/Connection.java b/src/main/java/redis/clients/jedis/Connection.java index dea7d0b59d..c8380e1051 100644 --- a/src/main/java/redis/clients/jedis/Connection.java +++ b/src/main/java/redis/clients/jedis/Connection.java @@ -190,13 +190,21 @@ public void connect() throws JedisConnectionException { outputStream = new RedisOutputStream(socket.getOutputStream()); inputStream = new RedisInputStream(socket.getInputStream()); + + broken = false; // unset broken status when connection is (re)initialized + } catch (JedisConnectionException jce) { - broken = true; + + setBroken(); throw jce; + } catch (IOException ioe) { - broken = true; + + setBroken(); throw new JedisConnectionException("Failed to create input/output stream", ioe); + } finally { + if (broken) { IOUtils.closeQuietly(socket); } @@ -228,10 +236,10 @@ public void disconnect() { outputStream.flush(); socket.close(); } catch (IOException ex) { - broken = true; throw new JedisConnectionException(ex); } finally { IOUtils.closeQuietly(socket); + setBroken(); } } }