summaryrefslogtreecommitdiffstats
path: root/gerrit-server/src/main/java/com/google/gerrit/server/query/RewritePredicate.java
diff options
context:
space:
mode:
authorShawn O. Pearce <sop@google.com>2010-08-04 15:04:09 -0700
committerShawn O. Pearce <sop@google.com>2010-08-04 15:04:09 -0700
commitf76fb4f82c65afcad3607b4c19fe2cf7a923ae34 (patch)
tree6b50dde98ce31998e3295263f0272ebd6b9aabf9 /gerrit-server/src/main/java/com/google/gerrit/server/query/RewritePredicate.java
parent6cbee9cb644753ece51e33d59aaf17ccc1ac8497 (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.java18
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