diff options
author | Shawn O. Pearce <sop@google.com> | 2010-08-04 15:04:09 -0700 |
---|---|---|
committer | Shawn O. Pearce <sop@google.com> | 2010-08-04 15:04:09 -0700 |
commit | f76fb4f82c65afcad3607b4c19fe2cf7a923ae34 (patch) | |
tree | 6b50dde98ce31998e3295263f0272ebd6b9aabf9 /gerrit-server/src/main/java/com/google/gerrit/server/query/RewritePredicate.java | |
parent | 6cbee9cb644753ece51e33d59aaf17ccc1ac8497 (diff) |
Fix owner: search operator substring regressionv2.1.4-rc3
In prior releases the owner: and reviewer: operators performed
substring searching to locate user accounts that match the argument,
and find all changes relevant to those accounts. Fix the operators
to perform that multiple-account searching again.
Bug: issue 646
Change-Id: Ie0d67ad15ddffa7d2d774466c42f84dc1a760f25
Signed-off-by: Shawn O. Pearce <sop@google.com>
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/query/RewritePredicate.java')
-rw-r--r-- | gerrit-server/src/main/java/com/google/gerrit/server/query/RewritePredicate.java | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/RewritePredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/RewritePredicate.java index c0a00ca991..35fbc1c203 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/RewritePredicate.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/RewritePredicate.java @@ -20,10 +20,12 @@ import java.util.Collections; import java.util.List; public abstract class RewritePredicate<T> extends Predicate<T> { - private String name = getClass().getName(); + private boolean init; + private String name = getClass().getSimpleName(); private List<Predicate<T>> children = Collections.emptyList(); - void init(String name, Predicate<T>[] args) { + protected void init(String name, Predicate<T>... args) { + this.init = true; this.name = name; this.children = Arrays.asList(args); } @@ -33,10 +35,18 @@ public abstract class RewritePredicate<T> extends Predicate<T> { return this; } + @SuppressWarnings("unchecked") @Override public boolean equals(Object other) { - return getClass() == other.getClass() - && children.equals(((RewritePredicate) other).children); + if (other instanceof RewritePredicate) { + RewritePredicate that = (RewritePredicate<T>) other; + if (this.init && that.init) { + return this.getClass() == that.getClass() + && this.name.equals(that.name) + && this.children.equals(that.children); + } + } + return this == other; } @Override |