ZstdOutputStream will write out the last chunk every time close() is invoked on it, which can cause errors when the output is later decompressed. Per the java.io.Closeable interface documentation, the close() method should have no effect if invoked on an already-closed stream (which is how e.g. the core DeflaterOutputStream behaves as well), so make it a noop if the stream was already closed.
ZstdOutputStream will write out the last chunk every time close() is invoked on it, which can cause errors when the output is later decompressed. Per the java.io.Closeable interface documentation, the close() method should have no effect if invoked on an already-closed stream (which is how e.g. the core DeflaterOutputStream behaves as well), so make it a noop if the stream was already closed.