OpenJDK / jdk / hs
changeset 44702:df9a5567603a
8179086: java.time.temporal.ValueRange has poor hashCode()
Reviewed-by: rriggs
author | igerasim |
---|---|
date | Fri, 21 Apr 2017 11:40:21 -0700 |
parents | 73cb7afafdff |
children | 165b88f3d4a8 |
files | jdk/src/java.base/share/classes/java/time/temporal/ValueRange.java |
diffstat | 1 files changed, 4 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/jdk/src/java.base/share/classes/java/time/temporal/ValueRange.java Thu Apr 20 18:40:38 2017 +0200 +++ b/jdk/src/java.base/share/classes/java/time/temporal/ValueRange.java Fri Apr 21 11:40:21 2017 -0700 @@ -385,7 +385,7 @@ } if (obj instanceof ValueRange) { ValueRange other = (ValueRange) obj; - return minSmallest == other.minSmallest && minLargest == other.minLargest && + return minSmallest == other.minSmallest && minLargest == other.minLargest && maxSmallest == other.maxSmallest && maxLargest == other.maxLargest; } return false; @@ -398,8 +398,9 @@ */ @Override public int hashCode() { - long hash = minSmallest + minLargest << 16 + minLargest >> 48 + maxSmallest << 32 + - maxSmallest >> 32 + maxLargest << 48 + maxLargest >> 16; + long hash = minSmallest + (minLargest << 16) + (minLargest >> 48) + + (maxSmallest << 32) + (maxSmallest >> 32) + (maxLargest << 48) + + (maxLargest >> 16); return (int) (hash ^ (hash >>> 32)); }