[
https://issues.apache.org/jira/browse/ACCUMULO-1627?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13780316#comment-13780316
]
Keith Turner commented on ACCUMULO-1627:
----------------------------------------
I experimented w/ the concept of moving the code thats in equals(Mutation) to
equals(Object), and forcing equals(Mutation) to call equals(Object).
{code:java}
class Mutation {
int r;
public Mutation(int r) {
this.r = r;
}
public boolean equals(Mutation m) {
return equals((Object) m);
}
public boolean equals(Object o) {
if (o instanceof Mutation) {
return r == ((Mutation) o).r;
}
return false;
}
}
class CondMutation extends Mutation {
int cond;
public CondMutation(int r, int c) {
super(r);
this.cond = c;
}
public boolean equals(Object o) {
if (o instanceof CondMutation) {
if (super.equals(o)) {
CondMutation cm = (CondMutation) o;
return cond == cm.cond;
}
}
return false;
}
}
{code}
With this change the following code will call Mutation.equals(Mutation) which
calls ConditionalMutation.equals(Object). Have to be careful when implementing
ConditionalMutation.equals(Object) because if it calls
Mutation.equals(Mutation) then could have an infinite loop.
{code:java}
ConditionalMutation cm1 = new ConditionalMutation(1,2);
ConditionalMutation cm2 = new ConditionalMutation(3,2);
cm1.equals(cm2);
{code}
> Add hashcode() and equals() to ConditionalMutation
> --------------------------------------------------
>
> Key: ACCUMULO-1627
> URL: https://issues.apache.org/jira/browse/ACCUMULO-1627
> Project: Accumulo
> Issue Type: Sub-task
> Components: client, tserver
> Reporter: Keith Turner
> Assignee: Bill Havanki
> Labels: newbie
> Fix For: 1.6.0
>
>
> ConditionalMutation should define equals() and hashcode() methods that
> consider the conditions. Its parent class defines those methods, so it
> should.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira