### Question:
MultiDefer implements Multi<T> { @Override public void subscribe(Flow.Subscriber<? super T> subscriber) { Flow.Publisher<? extends T> publisher; try { publisher = Objects.requireNonNull(supplier.get(), "The supplier returned a null Flow.Publisher"); } catch (Throwable ex) { subscriber.onSubscribe(EmptySubscription.INSTANCE); subscriber.onError(ex); return; } publisher.subscribe(subscriber); } MultiDefer(Supplier<? extends Flow.Publisher<? extends T>> supplier); @Override void subscribe(Flow.Subscriber<? super T> subscriber);  }### Answer:
@Test public void nullPublisher() { TestSubscriber<Object> ts = new TestSubscriber<>(Long.MAX_VALUE); Multi.defer(() -> null) .subscribe(ts); ts.assertFailure(NullPointerException.class); }
@Test public void supplierCrash() { TestSubscriber<Object> ts = new TestSubscriber<>(Long.MAX_VALUE); Multi.defer(() -> { throw new IllegalArgumentException(); }) .subscribe(ts); ts.assertFailure(IllegalArgumentException.class); }