core/src/com/google/inject/internal/Messages.java
public static Throwable getOnlyCause(Collection<Message> messages) {
    Throwable onlyCause = null;
    for (Message message : messages) {
      Throwable messageCause = message.getCause();
      if (messageCause == null) {
        continue;
      }

      if (onlyCause != null && !ThrowableEquivalence.INSTANCE.equivalent(onlyCause, messageCause)) {
        return null;
      }

      onlyCause = messageCause;
    }

    return onlyCause;
  }
public static Throwable getOnlyCause(Collection<Message> messages) {
    Throwable onlyCause = null;
    for (Message message : messages) {
      Throwable messageCause = message.getCause();
      if (messageCause == null) {
        continue;
      }

      if (onlyCause != null && !ThrowableEquivalence.INSTANCE.equivalent(onlyCause, messageCause)) {
        return null;
      }

      onlyCause = messageCause;
    }

    return onlyCause;
  }
public static Throwable getOnlyCause ( Collection < Message > messages ) { Throwable onlyCause = null ; for ( Message message : messages ) { Throwable messageCause = message . getCause ( ) ; if ( messageCause == null ) { continue ; } if ( onlyCause != null && ! ThrowableEquivalence . INSTANCE . equivalent ( onlyCause , messageCause ) ) { return null ; } onlyCause = messageCause ; } return onlyCause ; }
Returns the cause throwable if there is exactly one cause in {@code messages}. If there are
zero or multiple messages with causes, null is returned.
Returns the cause throwable if there is exactly one cause in {