From 5778c02f688d52d12d8603421cd08b1a84b0d199 Mon Sep 17 00:00:00 2001 From: Marcin Czech Date: Mon, 7 Aug 2023 16:52:26 +0200 Subject: Avoid NullPointerException when deleting multiple tags To avoid NPE make sure that ref is not read again after checking if ref exists. This prevent the issue when other call already removed the tag and we try to read it. Proper behaviour is to try to delete it and return `Cannot delete refs/tags/...: LOCK_FAILURE` if tag is already deleted. Bug: Issue 291102119 Release-Notes: Avoid NullPointerException when deleting multiple tags Change-Id: I8e19d756db2ecf15e6e5e61ec0346a7cfc6a85e3 --- java/com/google/gerrit/server/restapi/project/DeleteRef.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/com/google/gerrit/server/restapi/project/DeleteRef.java b/java/com/google/gerrit/server/restapi/project/DeleteRef.java index 5a84f69b62..73516b64f3 100644 --- a/java/com/google/gerrit/server/restapi/project/DeleteRef.java +++ b/java/com/google/gerrit/server/restapi/project/DeleteRef.java @@ -248,7 +248,7 @@ public class DeleteRef { RefUpdate u = r.updateRef(refName); u.setForceUpdate(true); - u.setExpectedOldObjectId(r.exactRef(refName).getObjectId()); + u.setExpectedOldObjectId(ref.getObjectId()); u.setNewObjectId(ObjectId.zeroId()); refDeletionValidator.validateRefOperation( projectState.getName(), -- cgit v1.2.3