reactor-core/src/main/java/reactor/core/Exceptions.java
public static final RuntimeException addSuppressed(RuntimeException original, Throwable suppressed) {
		if (original == suppressed) {
			return original;
		}
		if (original == REJECTED_EXECUTION || original == NOT_TIME_CAPABLE_REJECTED_EXECUTION) {
			RejectedExecutionException ree = new RejectedExecutionException(original.getMessage());
			ree.addSuppressed(suppressed);
			return ree;
		}
		else {
			original.addSuppressed(suppressed);
			return original;
		}
	}
public static final RuntimeException addSuppressed(RuntimeException original, Throwable suppressed) {
		if (original == suppressed) {
			return original;
		}
		if (original == REJECTED_EXECUTION || original == NOT_TIME_CAPABLE_REJECTED_EXECUTION) {
			RejectedExecutionException ree = new RejectedExecutionException(original.getMessage());
			ree.addSuppressed(suppressed);
			return ree;
		}
		else {
			original.addSuppressed(suppressed);
			return original;
		}
	}
Safely suppress a {@link Throwable} on a {@link RuntimeException}. The returned
{@link RuntimeException}, bearing the suppressed exception, is most often the same
as the original exception unless:
<ul>
<li>original and tentatively suppressed exceptions are one and the same: do
nothing but return the original.</li>
<li>original is one of the singleton {@link RejectedExecutionException} created
by Reactor: make a copy the {@link RejectedExecutionException}, add the
suppressed exception to it and return that copy.</li>

</ul>
@param original the original {@link RuntimeException} to bear a suppressed exception
@param suppressed the {@link Throwable} to suppress
@return the (most of the time original) {@link RuntimeException} bearing the
suppressed {@link Throwable}