code: public ClientConfig setIdleConnectionTimeout(long idleConnectionTimeout, TimeUnit unit) {
          if (idleConnectionTimeout <= 0) {
              this.idleConnectionTimeoutMs = -1;
          } else {
              if(unit.toMinutes(idleConnectionTimeout) < 10) {
                  throw new IllegalArgumentException("idleConnectionTimeout should be minimum of 10 minutes");
              }
              this.idleConnectionTimeoutMs = unit.toMillis(idleConnectionTimeout);
          }
          return this;
      }
docs: Set the timeout for idle connections. Voldemort client caches all
  connections to the Voldemort server. This setting allows the a connection
  to be dropped, if it is idle for more than this time.
  
  This could be useful in the following cases 1) Voldemort client is not
  directly connected to the server and is connected via a proxy or
  firewall. The Proxy or firewall could drop the connection silently. If
  the connection is dropped, then client will see operations fail with a
  timeout. Setting this property enables the Voldemort client to tear down
  the connection before a firewall could drop it. 2) Voldemort server
  caches the connection and each connection has an associated memory cost.
  Setting this property on all clients, enable the clients to prune the
  connections and there by freeing up the server connections.
  
  throws IllegalArgumentException if the timeout is less than 10 minutes.
  
  Currently it can't be set below 10 minutes to avoid the racing risk of
  contention between connection checkout and selector trying to close it.
  This is intended for low throughput scenarios.
  
  @param idleConnectionTimeout
  zero or negative number to disable the feature ( default -1)
  timeout
  @param unit {@link TimeUnit}
  @return ClientConfig object for chained set
  
  throws {@link IllegalArgumentException} if the timeout is greater
  than 0, but less than 10 minutes.