/** * Creates a {@link Connection} with {@link Connection.Modality#Synchronous} semantics suitable * for use by synchronous (blocking) JRedis clients. * * <p>[TODO: this method should be using connection spec!] * * @param host * @param port * @param redisVersion * @return */ protected Connection createSynchConnection(String host, int port, RedisVersion redisVersion) { InetAddress address = null; Connection synchConnection = null; try { address = InetAddress.getByName(host); synchConnection = new SynchConnection(address, port, redisVersion); Assert.notNull(synchConnection, "connection delegate", ClientRuntimeException.class); } catch (NotSupportedException e) { Log.log("Can not support redis protocol '%s'", redisVersion); throw e; } catch (ProviderException e) { Log.bug("Couldn't create the handler delegate. => " + e.getLocalizedMessage()); throw e; } catch (ClientRuntimeException e) { String msg = e.getMessage() + "\nMake sure your server is running."; Log.error("Error creating connection -> " + e.getLocalizedMessage()); setConnection(new FaultedConnection(msg)); } catch (UnknownHostException e) { String msg = "Couldn't obtain InetAddress for " + host; Log.problem(msg + " => " + e.getLocalizedMessage()); throw new ClientRuntimeException(msg, e); } return synchConnection; }