> The more I think about it, the more I believe that there shouldn't be any > comparison and that the caller should decide. If you call the method, you > want a redraw, so any equals() method would only add overhead, and possibly > stop the update you explicitly called for.
I tend to agree. I also don't think that this change needs to be applied to *all* setters - only setters that take a value without a specific type (i.e. Object) and fire change events. Setters with a more specific type have knowledge about the implications of performing an equality check and can decide whether it is appropriate or not. Untyped setters can't make such a determination so should not attempt to perform the check. This is also consistent with the behavior of List#update().
