@Override
protected boolean valueEquals(final UserLeafSetNode<?> other) {
- return children.equals(((ImmutableUserLeafSetNode<?>) other).children);
+ if (other instanceof ImmutableUserLeafSetNode) {
+ return children.equals(((ImmutableUserLeafSetNode<?>) other).children);
+ }
+ // Note: performs a size() check first
+ return Iterables.elementsEqual(children.values(), other.body());
}
private Map<NodeWithValue, LeafSetEntryNode<T>> getChildren() {