< prev index next >

src/java.base/share/classes/java/time/temporal/ValueRange.java

Print this page
rev 58118 : [mq]: 8239520

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2020, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this

@@ -143,10 +143,13 @@
      * @throws IllegalArgumentException if
      *     the minimum is greater than the smallest maximum,
      *  or the smallest maximum is greater than the largest maximum
      */
     public static ValueRange of(long min, long maxSmallest, long maxLargest) {
+        if (min > maxSmallest) {
+            throw new IllegalArgumentException("Minimum value must be less than smallest maximum value");
+        }
         return of(min, min, maxSmallest, maxLargest);
     }
 
     /**
      * Obtains a fully variable value range.

@@ -158,22 +161,26 @@
      * @param maxSmallest  the smallest maximum value
      * @param maxLargest  the largest maximum value
      * @return the ValueRange for smallest min, largest min, smallest max, largest max, not null
      * @throws IllegalArgumentException if
      *     the smallest minimum is greater than the smallest maximum,
-     *  or the smallest maximum is greater than the largest maximum
-     *  or the largest minimum is greater than the largest maximum
+     *  or the smallest maximum is greater than the largest maximum,
+     *  or the largest minimum is greater than the largest maximum,
+     *  or the smallest minimum is greater than the largest minimum
      */
     public static ValueRange of(long minSmallest, long minLargest, long maxSmallest, long maxLargest) {
         if (minSmallest > minLargest) {
             throw new IllegalArgumentException("Smallest minimum value must be less than largest minimum value");
         }
         if (maxSmallest > maxLargest) {
             throw new IllegalArgumentException("Smallest maximum value must be less than largest maximum value");
         }
         if (minLargest > maxLargest) {
-            throw new IllegalArgumentException("Minimum value must be less than maximum value");
+            throw new IllegalArgumentException("Largest minimum value must be less than largest maximum value");
+        }
+        if (minSmallest > maxSmallest) {
+            throw new IllegalArgumentException("Smallest minimum value must be less than smallest maximum value");
         }
         return new ValueRange(minSmallest, minLargest, maxSmallest, maxLargest);
     }
 
     /**
< prev index next >