The following issues were found

src/jmh/java/io/reactivex/rxjava3/core/PerfConsumer.java
2 issues
Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 27

              public final class PerfConsumer implements FlowableSubscriber<Object>, Observer<Object>,
SingleObserver<Object>, CompletableObserver, MaybeObserver<Object> {

    final Blackhole bh;

    public PerfConsumer(Blackhole bh) {
        this.bh = bh;
    }


            

Reported by PMD.

Avoid printStackTrace(); use a logger call instead.
Design

Line: 54

              
    @Override
    public void onError(Throwable t) {
        t.printStackTrace();
    }

    @Override
    public void onComplete() {
        bh.consume(true);

            

Reported by PMD.

src/jmh/java/io/reactivex/rxjava3/core/PerfBoundedSubscriber.java
2 issues
Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 26

               */
public class PerfBoundedSubscriber extends CountDownLatch implements FlowableSubscriber<Object> {

    final Blackhole bh;

    final long request;

    public PerfBoundedSubscriber(Blackhole bh, long request) {
        super(1);

            

Reported by PMD.

Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 28

              
    final Blackhole bh;

    final long request;

    public PerfBoundedSubscriber(Blackhole bh, long request) {
        super(1);
        this.bh = bh;
        this.request = request;

            

Reported by PMD.

src/main/java/io/reactivex/rxjava3/core/FlowableEmitter.java
2 issues
Avoid unused imports such as 'io.reactivex.rxjava3.annotations'
Design

Line: 16

              
package io.reactivex.rxjava3.core;

import io.reactivex.rxjava3.annotations.*;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.functions.*;

/**
 * Abstraction over a Reactive Streams {@link org.reactivestreams.Subscriber} that allows associating

            

Reported by PMD.

Avoid unused imports such as 'io.reactivex.rxjava3.functions'
Design

Line: 18

              
import io.reactivex.rxjava3.annotations.*;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.functions.*;

/**
 * Abstraction over a Reactive Streams {@link org.reactivestreams.Subscriber} that allows associating
 * a resource with it and exposes the current number of downstream
 * requested amount.

            

Reported by PMD.

src/main/java/io/reactivex/rxjava3/internal/operators/completable/CompletableToFlowable.java
2 issues
Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 23

              
public final class CompletableToFlowable<T> extends Flowable<T> {

    final CompletableSource source;

    public CompletableToFlowable(CompletableSource source) {
        this.source = source;
    }


            

Reported by PMD.

Avoid unused imports such as 'io.reactivex.rxjava3.core'
Design

Line: 18

              
import org.reactivestreams.Subscriber;

import io.reactivex.rxjava3.core.*;
import io.reactivex.rxjava3.internal.operators.flowable.FlowableFromCompletable;

public final class CompletableToFlowable<T> extends Flowable<T> {

    final CompletableSource source;

            

Reported by PMD.

src/main/java/io/reactivex/rxjava3/core/MaybeEmitter.java
2 issues
Avoid unused imports such as 'io.reactivex.rxjava3.annotations'
Design

Line: 16

              
package io.reactivex.rxjava3.core;

import io.reactivex.rxjava3.annotations.*;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.functions.*;

/**
 * Abstraction over an RxJava {@link MaybeObserver} that allows associating

            

Reported by PMD.

Avoid unused imports such as 'io.reactivex.rxjava3.functions'
Design

Line: 18

              
import io.reactivex.rxjava3.annotations.*;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.functions.*;

/**
 * Abstraction over an RxJava {@link MaybeObserver} that allows associating
 * a resource with it.
 * <p>

            

Reported by PMD.

src/main/java/io/reactivex/rxjava3/internal/subscribers/BlockingSubscriber.java
2 issues
Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 31

              
    public static final Object TERMINATED = new Object();

    final Queue<Object> queue;

    public BlockingSubscriber(Queue<Object> queue) {
        this.queue = queue;
    }


            

Reported by PMD.

Potential violation of Law of Demeter (method chain calls)
Design

Line: 61

              
    @Override
    public void request(long n) {
        get().request(n);
    }

    @Override
    public void cancel() {
        if (SubscriptionHelper.cancel(this)) {

            

Reported by PMD.

src/main/java/io/reactivex/rxjava3/internal/operators/observable/ObservableFromUnsafeSource.java
2 issues
Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 19

              import io.reactivex.rxjava3.core.*;

public final class ObservableFromUnsafeSource<T> extends Observable<T> {
    final ObservableSource<T> source;

    public ObservableFromUnsafeSource(ObservableSource<T> source) {
        this.source = source;
    }


            

Reported by PMD.

Avoid unused imports such as 'io.reactivex.rxjava3.core'
Design

Line: 16

              
package io.reactivex.rxjava3.internal.operators.observable;

import io.reactivex.rxjava3.core.*;

public final class ObservableFromUnsafeSource<T> extends Observable<T> {
    final ObservableSource<T> source;

    public ObservableFromUnsafeSource(ObservableSource<T> source) {

            

Reported by PMD.

src/main/java/io/reactivex/rxjava3/core/Notification.java
2 issues
Potential violation of Law of Demeter (object not created locally)
Design

Line: 108

                  @Override
    public int hashCode() {
        Object o = value;
        return o != null ? o.hashCode() : 0;
    }

    @Override
    public String toString() {
        Object o = value;

            

Reported by PMD.

Avoid unused imports such as 'io.reactivex.rxjava3.annotations'
Design

Line: 16

              
package io.reactivex.rxjava3.core;

import io.reactivex.rxjava3.annotations.*;
import io.reactivex.rxjava3.internal.util.NotificationLite;
import java.util.Objects;

/**
 * Represents the reactive signal types: {@code onNext}, {@code onError} and {@code onComplete} and

            

Reported by PMD.

src/main/java/io/reactivex/rxjava3/core/ObservableEmitter.java
2 issues
Avoid unused imports such as 'io.reactivex.rxjava3.annotations'
Design

Line: 16

              
package io.reactivex.rxjava3.core;

import io.reactivex.rxjava3.annotations.*;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.functions.*;

/**
 * Abstraction over an RxJava {@link Observer} that allows associating

            

Reported by PMD.

Avoid unused imports such as 'io.reactivex.rxjava3.functions'
Design

Line: 18

              
import io.reactivex.rxjava3.annotations.*;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.functions.*;

/**
 * Abstraction over an RxJava {@link Observer} that allows associating
 * a resource with it.
 * <p>

            

Reported by PMD.

src/main/java/io/reactivex/rxjava3/internal/jdk8/FlowableLastStageSubscriber.java
2 issues
Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 29

               */
public final class FlowableLastStageSubscriber<T> extends FlowableStageSubscriber<T> {

    final boolean hasDefault;

    final T defaultItem;

    public FlowableLastStageSubscriber(boolean hasDefault, T defaultItem) {
        this.hasDefault = hasDefault;

            

Reported by PMD.

Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 31

              
    final boolean hasDefault;

    final T defaultItem;

    public FlowableLastStageSubscriber(boolean hasDefault, T defaultItem) {
        this.hasDefault = hasDefault;
        this.defaultItem = defaultItem;
    }

            

Reported by PMD.