code: public void put(Socket sock) {
      Preconditions.checkNotNull(sock);
      
      SocketAddress remoteAddr = sock.getRemoteSocketAddress();
      if (remoteAddr == null) {
        LOG.warn("Cannot cache (unconnected) socket with no remote address: " + 
                 sock);
        IOUtils.closeSocket(sock);
        return;
      }
     
      Socket oldestSock = null;
      synchronized(multimap) {
        if (capacity == multimap.size()) {
          oldestSock = evictOldest();
        }
        multimap.put(remoteAddr, sock);
      }
      
      if (oldestSock != null) {
        IOUtils.closeSocket(oldestSock);
      }
    }
docs: Give an unused socket to the cache.
  @param sock  Socket not used by anyone.