>While it's not safe in the general case to ignore exceptions that are thrown when closing an I/O resource, it should generally be safe in the case of a resource that's being used only for reading, such as a Reader. Unlike with writable resources, there's no chance that a failure that occurs when closing the reader indicates a meaningful problem such as a failure to flush all bytes to the underlying resource.
`Reader` and `InputStream` instances are closed using `Closeables.closeQuietly()`, while `RandomAccessFile` is closed with `Closeables.close()` that throws `IOException` and needs to be handled.
From Javadoc:
>```java
public static void close(@Nullable
Closeable closeable,
boolean swallowIOException)
throws IOException
```
>Closes a Closeable, with control over whether an IOException may be thrown. This is primarily useful in a finally block, where a thrown exception needs to be logged but not propagated (otherwise the original exception will be lost).
If swallowIOException is true then we never throw IOException but merely log it.
>Example:
```java
public void useStreamNicely() throws IOException {
SomeStream stream = new SomeStream("foo");
boolean threw = true;
try {
// ... code which does something with the stream ...
threw = false;
} finally {
// If an exception occurs, rethrow it only if threw==false:
Closeables.close(stream, threw);
}
}
```
Moreover, `Closeables.close()` and `Flushables.flush()` are used to flush and close `OutputStream`.
Previously there was slight risk that returned value is not the one that is associated with the key in the map. This could happen if another thread inserted value to map between calls to `get` and `putIfAbsent`.
All violations of Findbugs rule [RV: Return value of putIfAbsent ignored, value passed to putIfAbsent reused](http://findbugs.sourceforge.net/bugDescriptions.html#RV_RETURN_VALUE_OF_PUTIFABSENT_IGNORED) are fixed.
By default property [forceSite](https://maven.apache.org/plugins/maven-linkcheck-plugin/linkcheck-mojo.html#forceSite) is `true` and Linkcheck plugin unnecessarily tries to invoke `mvn site` to freshly generate all resources needed for link checking. Not all plugins are ready to support such invocation in different context, e.g. tidy-maven-plugin. Without this additional invocation everything works fine and site generation is faster.
`FastStack` has opposite iteration order compared to the standard stack, so iteration on the `Deque` needs to be performed using `descendingIterator()`.