code: public static void closeAndConvert(@Nullable final Closeable closeable, final boolean swallowIOException) {
  		if (closeable != null) {
  			try {
  				closeable.close();
  			} catch (final IOException e) {
  				if (!swallowIOException) {
  					throw new CannotCloseException(e.getLocalizedMessage(), e);
  				}
  				LOG.warn(e.getLocalizedMessage(), e);
  			}
  		}
  	}
docs: Closes a {@link Closeable} and swallows an occurring {@link IOException} if argument {@code swallowIOException}
  is {@code true}, otherwise the {@code IOException} will be converted into a runtime exception.
  <p>
  This method does nothing if a null reference is passed as {@code closeable}.
  
  @param closeable
  the {@code Closeable} object to be closed, or {@code null}
  @param swallowIOException
  {@code true} if an occurring {@code IOException} should be swallowed and logged or {@code false} to
  throw a {@code CannotCloseException}
  
  @throws CannotCloseException
  if the given {@code closeable} cannot be closed