code: private boolean softEvictConnection(final PoolEntry poolEntry, final String reason, final boolean owner)
     {
        poolEntry.markEvicted();
        if (owner || connectionBag.reserve(poolEntry)) {
           closeConnection(poolEntry, reason);
           return true;
        }
  
        return false;
     }
docs: "Soft" evict a Connection (/PoolEntry) from the pool.  If this method is being called by the user directly
  through {@link com.zaxxer.hikari.HikariDataSource#evictConnection(Connection)} then {@code owner} is {@code true}.
  
  If the caller is the owner, or if the Connection is idle (i.e. can be "reserved" in the {@link ConcurrentBag}),
  then we can close the connection immediately.  Otherwise, we leave it "marked" for eviction so that it is evicted
  the next time someone tries to acquire it from the pool.
  
  @param poolEntry the PoolEntry (/Connection) to "soft" evict from the pool
  @param reason the reason that the connection is being evicted
  @param owner true if the caller is the owner of the connection, false otherwise
  @return true if the connection was evicted (closed), false if it was merely marked for eviction