code: public void decreaseKey(Entry<T> entry, double newPriority) {
          checkPriority(newPriority);
          if (newPriority > entry.mPriority)
              throw new IllegalArgumentException("New priority exceeds old.");
  
          /* Forward this to a helper function. */
          decreaseKeyUnchecked(entry, newPriority);
      }
docs: Decreases the key of the specified element to the new priority.  If the
  new priority is greater than the old priority, this function throws an
  IllegalArgumentException.  The new priority must be a finite double,
  so you cannot set the priority to be NaN, or +/- infinity.  Doing
  so also throws an IllegalArgumentException.
  <p/>
  It is assumed that the entry belongs in this heap.  For efficiency
  reasons, this is not checked at runtime.
  
  @param entry       The element whose priority should be decreased.
  @param newPriority The new priority to associate with this entry.
  @throws IllegalArgumentException If the new priority exceeds the old
  priority, or if the argument is not a finite double.