@@ -86,7 +86,8 @@ public BinaryJedis(final String host, final int port, final boolean ssl,
8686 final SSLSocketFactory sslSocketFactory , final SSLParameters sslParameters ,
8787 final HostnameVerifier hostnameVerifier ) {
8888 this (host , port , DefaultJedisSocketConfig .builder ().withSsl (ssl )
89- .withSslSocketFactory (sslSocketFactory ).withSslParameters (sslParameters ).withHostnameVerifier (hostnameVerifier ).build ());
89+ .withSslSocketFactory (sslSocketFactory ).withSslParameters (sslParameters )
90+ .withHostnameVerifier (hostnameVerifier ).build ());
9091 }
9192
9293 public BinaryJedis (final String host , final int port , final int timeout ) {
@@ -126,7 +127,8 @@ public BinaryJedis(final String host, final int port, final int connectionTimeou
126127 final SSLParameters sslParameters , final HostnameVerifier hostnameVerifier ) {
127128 this (host , port , DefaultJedisSocketConfig .builder ()
128129 .withConnectionTimeout (connectionTimeout ).withSoTimeout (soTimeout ).withSsl (ssl )
129- .withSslSocketFactory (sslSocketFactory ).withSslParameters (sslParameters ).withHostnameVerifier (hostnameVerifier ).build ());
130+ .withSslSocketFactory (sslSocketFactory ).withSslParameters (sslParameters )
131+ .withHostnameVerifier (hostnameVerifier ).build ());
130132 }
131133
132134 public BinaryJedis (final String host , final int port , final int connectionTimeout ,
@@ -142,13 +144,32 @@ public BinaryJedis(final HostAndPort hostAndPort, final JedisSocketConfig config
142144 client .setInfiniteSoTimeout (infiniteSoTimeout );
143145 }
144146
147+ /**
148+ * @param shardInfo
149+ * @deprecated Internal behavior of this constructor has been changed.
150+ */
151+ @ Deprecated
145152 public BinaryJedis (final JedisShardInfo shardInfo ) {
146153 this (shardInfo .getHost (), shardInfo .getPort (), shardInfo .getConnectionTimeout (),
147154 shardInfo .getSoTimeout (), shardInfo .getSsl (), shardInfo .getSslSocketFactory (),
148155 shardInfo .getSslParameters (), shardInfo .getHostnameVerifier ());
149- client .setUser (shardInfo .getUser ());
150- client .setPassword (shardInfo .getPassword ());
151- client .setDb (shardInfo .getDb ());
156+ initializeFromShardInfo (shardInfo );
157+ }
158+
159+ private void initializeFromShardInfo (JedisShardInfo shardInfo ) {
160+ String password = shardInfo .getPassword ();
161+ if (password != null ) {
162+ String user = shardInfo .getUser ();
163+ if (user != null ) {
164+ auth (user , password );
165+ } else {
166+ auth (password );
167+ }
168+ }
169+ int dbIndex = shardInfo .getDb ();
170+ if (dbIndex > 0 ) {
171+ select (dbIndex );
172+ }
152173 }
153174
154175 public BinaryJedis (URI uri ) {
@@ -207,10 +228,6 @@ public BinaryJedis(final URI uri, JedisSocketConfig config) {
207228 initializeFromURI (uri );
208229 }
209230
210- public BinaryJedis (final JedisSocketFactory jedisSocketFactory ) {
211- client = new Client (jedisSocketFactory );
212- }
213-
214231 private static Client createClientFromURI (URI uri ) {
215232 if (!JedisURIHelper .isValid (uri )) {
216233 throw new InvalidURIException (String .format ("Cannot open Redis connection due invalid URI \" %s\" ." , uri .toString ()));
@@ -235,6 +252,14 @@ private void initializeFromURI(URI uri) {
235252 }
236253 }
237254
255+ public BinaryJedis (final JedisSocketFactory jedisSocketFactory ) {
256+ client = new Client (jedisSocketFactory );
257+ }
258+
259+ public boolean isBroken () {
260+ return client .isBroken ();
261+ }
262+
238263 /**
239264 * @return <code>PONG</code>
240265 */
0 commit comments