Reports duplicate conditions in && and || expressions and branches of if statements. While sometimes duplicate conditions are intended, in most cases they the result of an oversight.

Example:


  boolean result = digit1 != digit2 || digit1 != digit2;

To ignore conditions that may produce side effects, use the Ignore conditions with side effects option. Disabling this option may lead to false-positives, for example, when the same method returns different values on subsequent invocations.

Example:


  if (iterator.next() != null || iterator.next() != null) {
    System.out.println("Got it");
  }

Due to possible side effects of iterator.next() (on the example), the warning will only be triggered if the Ignore conditions with side effects option is disabled.