From 80a4155021e36bccfd0f1a461c59f801cf685f4c Mon Sep 17 00:00:00 2001 From: "Brian S. O'Neill" Date: Wed, 11 Jan 2012 22:19:59 +0000 Subject: Make encoding strategy equals method symmetric in the face of subclassing. --- src/main/java/com/amazon/carbonado/gen/StorableGenerator.java | 1 + src/main/java/com/amazon/carbonado/raw/CompressedEncodingStrategy.java | 2 +- src/main/java/com/amazon/carbonado/raw/GenericEncodingStrategy.java | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/amazon/carbonado/gen/StorableGenerator.java b/src/main/java/com/amazon/carbonado/gen/StorableGenerator.java index ddde311..d372cf3 100644 --- a/src/main/java/com/amazon/carbonado/gen/StorableGenerator.java +++ b/src/main/java/com/amazon/carbonado/gen/StorableGenerator.java @@ -3055,6 +3055,7 @@ public final class StorableGenerator { b.returnValue(TypeDesc.BOOLEAN); notEqual.setLocation(); + // FIXME: Using instanceof means that equals is not symmetric. // if (! target instanceof this) return false; TypeDesc userStorableTypeDesc = TypeDesc.forClass(mStorableType); b.loadLocal(b.getParameter(0)); diff --git a/src/main/java/com/amazon/carbonado/raw/CompressedEncodingStrategy.java b/src/main/java/com/amazon/carbonado/raw/CompressedEncodingStrategy.java index ed68bdb..c8e913e 100644 --- a/src/main/java/com/amazon/carbonado/raw/CompressedEncodingStrategy.java +++ b/src/main/java/com/amazon/carbonado/raw/CompressedEncodingStrategy.java @@ -83,7 +83,7 @@ public class CompressedEncodingStrategy extends GenericEncod if (this == obj) { return true; } - if (obj instanceof CompressedEncodingStrategy) { + if (CompressedEncodingStrategy.class.equals(obj)) { CompressedEncodingStrategy other = (CompressedEncodingStrategy) obj; return super.equals(obj) && mCompressionType.equals(other.mCompressionType); } diff --git a/src/main/java/com/amazon/carbonado/raw/GenericEncodingStrategy.java b/src/main/java/com/amazon/carbonado/raw/GenericEncodingStrategy.java index b20a521..6f3139e 100644 --- a/src/main/java/com/amazon/carbonado/raw/GenericEncodingStrategy.java +++ b/src/main/java/com/amazon/carbonado/raw/GenericEncodingStrategy.java @@ -424,7 +424,7 @@ public class GenericEncodingStrategy { if (this == obj) { return true; } - if (obj instanceof GenericEncodingStrategy) { + if (GenericEncodingStrategy.class.equals(obj)) { GenericEncodingStrategy other = (GenericEncodingStrategy) obj; return mType == other.mType && mKeyPrefixPadding == other.mKeyPrefixPadding -- cgit v1.2.3