code: public static int checkedMultiply(int a, int b) {
      long result = (long) a * b;
      checkNoOverflow(result == (int) result);
      return (int) result;
    }
docs: Returns the product of {@code a} and {@code b}, provided it does not overflow.
  
  @throws ArithmeticException if {@code a * b} overflows in signed {@code int} arithmetic