ReceiveCommits: don't call 'validRefOperation' twice

In case when 'checkRefPermission' returns no error (the most frequent
case) 'validRefOperation' is called again.

It was properly reworked in [1] but it ended up in the current state
as a result of erroneously resolved merge from 2.15 to 2.16 [2].

[1] https://gerrit-review.googlesource.com/c/gerrit/+/228874/2/gerrit-server/src/main/java/com/google/gerrit/server/git/receive/ReceiveCommits.java
[2] https://gerrit-review.googlesource.com/c/gerrit/+/229113/-1..3/java/com/google/gerrit/server/git/receive/ReceiveCommits.java

Change-Id: I1cb7a19ce9b894f2deaf7d677f30ed3b775bbc1b
This commit is contained in:
Jacek Centkowski
2020-06-18 14:46:18 +02:00
parent 0eec00fd58
commit 934acddc89

View File

@@ -1268,12 +1268,8 @@ class ReceiveCommits {
return;
}
Optional<AuthException> err = checkRefPermission(cmd, RefPermission.FORCE_UPDATE);
if (!err.isPresent()) {
validRefOperation(cmd);
} else {
rejectProhibited(cmd, err.get());
}
checkRefPermission(cmd, RefPermission.FORCE_UPDATE)
.ifPresent((AuthException err) -> rejectProhibited(cmd, err));
}
private Optional<AuthException> checkRefPermission(ReceiveCommand cmd, RefPermission perm)