Inspectopedia Help

Unused publisher

Reports unused Publisher instances.

To use an operator (a method of Mono/Flux/Flowable object that returns a Mono/Flux/Flowable) that produces a new Publisher instance, you must subscribe to the created Publisher via subscribe().

Using a factory (for example, Mono.just()) without subscribing to the returned Publisher, creates an object that is never used and is treated as unnecessary memory allocation.

For example, Mono.just(1, 2, 3).map(i -> i + 3) won't be executed unless you subscribe to this Publisher, or unless you produce a new Publisher by applying operators and subscribe to it.

Example:

Unused Flux instance:

Flux.just(1, 2, 3);

A Flux instance used by consumer:

Flux.just(1, 2, 3).subscribe(System.out::println);

Calls to methods annotated with Error Prone's or AssertJ's @CanIgnoreReturnValue annotation are not reported.

New in 2019.3

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Reactive Streams, 233.SNAPSHOT

Last modified: 13 July 2023