Hi,
I have a stream that exposes the state for Queryable State.
I am using the key as follows:
public class MyKey {
private Long first;
private EnumType myType;
private Long second;
private TreeMap<String, String> map;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
MyKey that = (MyKey) o;
boolean isEqual = first.longValue() == that.first.longValue() &&
myTime.name().equalsIgnoreCase(that.myTime.name()) &&
second.longValue() == that.second.longValue();// &&
// map.equals(that.dimensions);
return isEqual;
}
@Override
public int hashCode() {
int result = first != null ? first.hashCode() : 0;
result = 31 * result + (myType != null ? myType.name().hashCode() : 0);
result = 31 * result + (second != null ? second.hashCode() : 0);
// result = 31 * result + (map != null ? map.hashCode() : 0);
return result;
}
}
If I only set the first three members for the key class, then the key lookup
works correctly.
If I add the TreeMap, then the lookup always errors with the message; “No state
found for the given key/namespace”.
What am I dong wrong with the TreeMap as a member in the Key class for
equals/hashcode?
Thanks,
Sandeep