@Override
    public MapStream<K, V> onClose(Runnable closeHandler) {
        inner = inner.onClose(requireNonNull(closeHandler));
        return this;
    }
Returns an equivalent stream with an additional close handler.  Close
handlers are run when the {@link #close()} method
is called on the stream, and are executed in the order they were
added.  All close handlers are run, even if earlier close handlers throw
exceptions.  If any close handler throws an exception, the first
exception thrown will be relayed to the caller of {@code close()}, with
any remaining exceptions added to that exception as suppressed exceptions
(unless one of the remaining exceptions is the same exception as the
first exception, since an exception cannot suppress itself.)  May
return itself.
<p>
This is an intermediate operation.

@param closeHandler  a task to execute when the stream is closed
@return              a stream with a handler that is run if the stream is 
                     closed
common-parent/mapstream/src/main/java/com/speedment/common/mapstream/MapStream.java