static void failLateSubscriber(SubscriptionImpl actualSubscription, SubscriptionImpl lateSubscription) {
        final Subscriber<?> actualSubscriber = actualSubscription.subscriber();
        final Subscriber<?> lateSubscriber = lateSubscription.subscriber();
        final Throwable cause = abortedOrLate(actualSubscriber);

        if (lateSubscription.needsDirectInvocation()) {
            handleLateSubscriber(lateSubscriber, cause);
        } else {
            lateSubscription.executor().execute(() -> {
                handleLateSubscriber(lateSubscriber, cause);
            });
        }
    }
Invoked after an element is removed from the {@link StreamMessage} and before
{@link Subscriber#onNext(Object)} is invoked.

@param obj the removed element
core/src/main/java/com/linecorp/armeria/common/stream/CancellableStreamMessage.java