diff options
Diffstat (limited to 'java/com/google/gerrit/server/query/change/EqualsLabelPredicate.java')
-rw-r--r-- | java/com/google/gerrit/server/query/change/EqualsLabelPredicate.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/java/com/google/gerrit/server/query/change/EqualsLabelPredicate.java b/java/com/google/gerrit/server/query/change/EqualsLabelPredicate.java index 54e22f328d..6975ae5a2f 100644 --- a/java/com/google/gerrit/server/query/change/EqualsLabelPredicate.java +++ b/java/com/google/gerrit/server/query/change/EqualsLabelPredicate.java @@ -107,12 +107,20 @@ public class EqualsLabelPredicate extends ChangeIndexPredicate { return null; } - protected boolean match(ChangeData cd, short value, Account.Id approver) { + protected boolean match(ChangeData cd, short value, Account.Id approver) throws OrmException { if (value != expVal) { return false; } - if (account != null && !account.equals(approver)) { + if (account != null + && !account.equals(approver) + && !account.equals(ChangeQueryBuilder.OWNER_ACCOUNT_ID)) { + return false; + } + + if (account != null + && account.equals(ChangeQueryBuilder.OWNER_ACCOUNT_ID) + && !cd.change().getOwner().equals(approver)) { return false; } |