The following issues were found

guava/src/com/google/common/graph/Graph.java
1 issues
This class has too many methods, consider refactoring it.
Design

Line: 107

              @Beta
@DoNotMock("Use GraphBuilder to create a real instance")
@ElementTypesAreNonnullByDefault
public interface Graph<N> extends BaseGraph<N> {
  //
  // Graph-level accessors
  //

  /** Returns all nodes in this graph, in the order specified by {@link #nodeOrder()}. */

            

Reported by PMD.

guava/src/com/google/common/base/FinalizableWeakReference.java
1 issues
Avoid unused imports such as 'java.lang.ref.ReferenceQueue'
Design

Line: 18

              package com.google.common.base;

import com.google.common.annotations.GwtIncompatible;
import java.lang.ref.ReferenceQueue;
import java.lang.ref.WeakReference;
import javax.annotation.CheckForNull;

/**
 * Weak reference with a {@code finalizeReferent()} method which a background thread invokes after

            

Reported by PMD.

guava/src/com/google/common/base/FinalizableSoftReference.java
1 issues
Avoid unused imports such as 'java.lang.ref.ReferenceQueue'
Design

Line: 18

              package com.google.common.base;

import com.google.common.annotations.GwtIncompatible;
import java.lang.ref.ReferenceQueue;
import java.lang.ref.SoftReference;
import javax.annotation.CheckForNull;

/**
 * Soft reference with a {@code finalizeReferent()} method which a background thread invokes after

            

Reported by PMD.

guava/src/com/google/common/graph/BaseGraph.java
1 issues
This class has too many methods, consider refactoring it.
Design

Line: 28

               * @param <N> Node parameter type
 */
@ElementTypesAreNonnullByDefault
interface BaseGraph<N> extends SuccessorsFunction<N>, PredecessorsFunction<N> {
  //
  // Graph-level accessors
  //

  /** Returns all nodes in this graph, in the order specified by {@link #nodeOrder()}. */

            

Reported by PMD.

guava/src/com/google/common/graph/AbstractUndirectedNetworkConnections.java
1 issues
Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 38

              @ElementTypesAreNonnullByDefault
abstract class AbstractUndirectedNetworkConnections<N, E> implements NetworkConnections<N, E> {
  /** Keys are edges incident to the origin node, values are the node at the other end. */
  final Map<E, N> incidentEdgeMap;

  AbstractUndirectedNetworkConnections(Map<E, N> incidentEdgeMap) {
    this.incidentEdgeMap = checkNotNull(incidentEdgeMap);
  }


            

Reported by PMD.

guava/src/com/google/common/collect/ForwardingObject.java
1 issues
Potential violation of Law of Demeter (method chain calls)
Design

Line: 64

                /** Returns the string representation generated by the delegate's {@code toString} method. */
  @Override
  public String toString() {
    return delegate().toString();
  }

  /* No equals or hashCode. See class comments for details. */
}

            

Reported by PMD.

guava/src/com/google/common/eventbus/SubscriberExceptionContext.java
1 issues
The class 'SubscriberExceptionContext' is suspected to be a Data Class (WOC=0.000%, NOPA=0, NOAM=4, WMC=5)
Design

Line: 27

               * @since 16.0
 */
@ElementTypesAreNonnullByDefault
public class SubscriberExceptionContext {
  private final EventBus eventBus;
  private final Object event;
  private final Object subscriber;
  private final Method subscriberMethod;


            

Reported by PMD.

guava/src/com/google/common/util/concurrent/AsyncFunction.java
1 issues
A method/constructor should not explicitly throw java.lang.Exception
Design

Line: 39

                 *
   * <p>Throwing an exception from this method is equivalent to returning a failing {@code Future}.
   */
  ListenableFuture<O> apply(@ParametricNullness I input) throws Exception;
}

            

Reported by PMD.

guava/src/com/google/common/util/concurrent/AtomicDouble.java
1 issues
This class has too many methods, consider refactoring it.
Design

Line: 57

              @GwtIncompatible
@ReflectionSupport(value = ReflectionSupport.Level.FULL)
@ElementTypesAreNonnullByDefault
public class AtomicDouble extends Number implements java.io.Serializable {
  private static final long serialVersionUID = 0L;

  private transient volatile long value;

  private static final AtomicLongFieldUpdater<AtomicDouble> updater =

            

Reported by PMD.

guava/src/com/google/common/util/concurrent/Atomics.java
1 issues
Consider using varargs for methods or constructors which take an array the last parameter.
Design

Line: 70

                 * @param array the array to copy elements from
   * @return a new {@code AtomicReferenceArray} copied from the given array
   */
  public static <E extends @Nullable Object> AtomicReferenceArray<E> newReferenceArray(E[] array) {
    return new AtomicReferenceArray<>(array);
  }
}

            

Reported by PMD.