diff --git a/hibernate-core/src/main/java/org/hibernate/cache/spi/CacheKey.java b/hibernate-core/src/main/java/org/hibernate/cache/spi/CacheKey.java index 7719132da0..3fa4b5058f 100755 --- a/hibernate-core/src/main/java/org/hibernate/cache/spi/CacheKey.java +++ b/hibernate-core/src/main/java/org/hibernate/cache/spi/CacheKey.java @@ -87,15 +87,18 @@ public String getTenantId() { @Override public boolean equals(Object other) { + if ( other == null ) { + return false; + } if ( this == other ) { return true; } - if ( !(other instanceof CacheKey) || hashCode != other.hashCode()) { + if ( hashCode != other.hashCode() || !( other instanceof CacheKey ) ) { //hashCode is part of this check since it is pre-calculated and hash must match for equals to be true return false; } CacheKey that = (CacheKey) other; - return entityOrRoleName.equals( that.entityOrRoleName ) && + return EqualsHelper.equals( entityOrRoleName, that.entityOrRoleName ) && type.isEqual( key, that.key ) && EqualsHelper.equals( tenantId, that.tenantId ); } diff --git a/hibernate-core/src/main/java/org/hibernate/cache/spi/NaturalIdCacheKey.java b/hibernate-core/src/main/java/org/hibernate/cache/spi/NaturalIdCacheKey.java index 4d87fec26e..61c1ed9a6c 100644 --- a/hibernate-core/src/main/java/org/hibernate/cache/spi/NaturalIdCacheKey.java +++ b/hibernate-core/src/main/java/org/hibernate/cache/spi/NaturalIdCacheKey.java @@ -137,17 +137,20 @@ public int hashCode() { @Override public boolean equals(Object o) { + if ( o == null ) { + return false; + } if ( this == o ) { return true; } - - if ( !(o instanceof NaturalIdCacheKey) || hashCode != o.hashCode() ) { + + if ( hashCode != o.hashCode() || !( o instanceof NaturalIdCacheKey ) ) { //hashCode is part of this check since it is pre-calculated and hash must match for equals to be true return false; } final NaturalIdCacheKey other = (NaturalIdCacheKey) o; - return entityName.equals( other.entityName ) + return EqualsHelper.equals( entityName, other.entityName ) && EqualsHelper.equals( tenantId, other.tenantId ) && Arrays.deepEquals( this.naturalIdValues, other.naturalIdValues ); }