On 4/21/2021 9:14 AM, Fabian Meumertzheim wrote:
On Thu, 25 Mar 2021 08:19:24 GMT, Fabian Meumertzheim
<github.com+4312191+fm...@openjdk.org> wrote:
Adds missing @throws declarations for ArithmeticException to the public
function
java.math.BigDecimal#stripTrailingZeros
as well as the private helper functions
java.math.BigDecimal#createAndStripZerosToMatchScale(long, int, long)
java.math.BigDecimal#createAndStripZerosToMatchScale(BigInteger, int, long)
stripTrailingZeros calls one of the two helper functions, both of which
can repeatedly decrease the scale by 1 until it underflows. If it does,
the call to checkScale will result in an ArithmeticException (overflow).
Please note the issue
[8264161](https://bugs.openjdk.java.net/browse/JDK-8264161) has already been
addressed by:
#3204
@RogerRiggs The fix in #3204 remains incomplete as it does not update the `@throws`
declarations. I could open a new bug for that, but unfortunately the form at
https://bugreport.java.com/bugreport/start_form.do appears to be down: There is no server
response when clicking "Submit", the request to
https://bugreport.java.com/bugreport/submit_start.do just hangs forever.
Just was we don't think it is helpful to put an explicit
@throws NullPointerException if a argument is null
on every method that throws a NPE for a null argument, I don't think it
is helpful or necessary to explicitly note in every BigDecimal method
with rounding that it could throw ArithmeticException. The general
class-level statement
* <p>As a 32-bit integer, the set of values for the scale is large,
* but bounded. If the scale of a result would exceed the range of a
* 32-bit integer, either by overflow or underflow, the operation may
* throw an {@code ArithmeticException}.
in meant to capture the needed information.
-Joe