@Override
    public void printStackTrace(PrintStream s) {
        printStackTrace(new WrappedPrintStream(s));
    }
All of the following {@code printStackTrace} functionality is derived from JDK {@link Throwable}
{@code printStackTrace}. In particular, the {@code PrintStreamOrWriter} abstraction is copied wholesale.

<p>Changes from the official JDK implementation:<ul>
<li>no infinite loop detection</li>
<li>smaller critical section holding {@link PrintStream} lock</li>
<li>explicit knowledge about the exceptions {@link List} that this loops through</li>
</ul>
core/src/main/java/com/linecorp/armeria/common/util/CompositeException.java