[15] RFR: 8239520: ValueRange.of(long, long, long) does not throw IAE on invalid inputs

Roger Riggs Roger.Riggs at oracle.com
Fri Feb 21 19:42:05 UTC 2020

Hi Naoto,

The CSR looks ok.

In the implementation ValueRange.of: 148-150; I would omit the check 
here since
it invokes the 4 arg form and does the same check.
The difference in exception message is not worth the extra code.
Though it would help if it said that the 3 arg form is the same as the 4 
arg form with the same first two args.

In the test TestDateTimeValueRange.java, the separate test case is 
(mostly) redundant with the added case at line 187.
(Though that assumes the 3 arg form calls the 4 arg form; as does the 
lack of any other testing of the 3 arg form).

It might be useful to verify that each of the test cases 179-186 trigger 
only 1 of the range checks.
If a test case would fail more than 1 of the conditions then it might be 
never be testing each if statements.

Thanks, Roger

On 2/20/20 5:28 PM, naoto.sato at oracle.com wrote:
> Hi,
> Please review the fix to the following issue:
> https://bugs.openjdk.java.net/browse/JDK-8239520
> The proposed changeset is located at:
> https://cr.openjdk.java.net/~naoto/8239520/webrev.00/
> This change lets 3-arg ValueRange.of() method thrown an IAE on invalid 
> inputs, as well as corrects the method description of 4-arg 
> ValueRange.of() method which lacks an IAE condition. I also filed a 
> CSR for this change accordingly:
> https://bugs.openjdk.java.net/browse/JDK-8239574
> Naoto

More information about the core-libs-dev mailing list