Merge branch 'stable-2.16' into stable-3.0 * stable-2.16: Ignore change deletion events for owners-autoassign Change-Id: If7f9457dee71a3c752f279084b3fa3ee258fb99a
diff --git a/WORKSPACE b/WORKSPACE index 7dc7280..5c0cb74 100644 --- a/WORKSPACE +++ b/WORKSPACE
@@ -3,7 +3,7 @@ load("//:bazlets.bzl", "load_bazlets") load_bazlets( - commit = "56c9f4ed6dbe3c88f793851c88389637f3714a5d", + commit = "7472a1104a37d514799100d6556445836e8efe4c", #local_path = "/home/<user>/projects/bazlets", )
diff --git a/owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/GitRefListener.java b/owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/GitRefListener.java index 7ddd6a7..48f55a5 100644 --- a/owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/GitRefListener.java +++ b/owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/GitRefListener.java
@@ -19,6 +19,7 @@ import static com.google.gerrit.extensions.client.DiffPreferencesInfo.Whitespace.IGNORE_NONE; import com.google.common.collect.Sets; +import com.google.gerrit.exceptions.StorageException; import com.google.gerrit.extensions.annotations.Listen; import com.google.gerrit.extensions.api.GerritApi; import com.google.gerrit.extensions.api.changes.ChangeApi; @@ -39,7 +40,6 @@ import com.google.gerrit.server.patch.PatchListNotAvailableException; import com.google.gerrit.server.util.ManualRequestContext; import com.google.gerrit.server.util.OneOffRequestContext; -import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; import com.google.inject.Provider; import java.io.IOException; @@ -56,11 +56,8 @@ private final GerritApi api; private final PatchListCache patchListCache; - private final GitRepositoryManager repositoryManager; - private final Accounts accounts; - private final ReviewerManager reviewerManager; private final OneOffRequestContext oneOffReqCtx; @@ -106,7 +103,7 @@ private void handleGitReferenceUpdatedAsUser(Event event, Account.Id updaterAccountId) { try (ManualRequestContext ctx = oneOffReqCtx.openAs(updaterAccountId)) { handleGitReferenceUpdated(event); - } catch (OrmException e) { + } catch (StorageException e) { logger.warn("Unable to process event {} on project {}", event, event.getProjectName(), e); } } @@ -114,7 +111,7 @@ private void handleGitReferenceUpdatedAsServer(Event event) { try (ManualRequestContext ctx = oneOffReqCtx.open()) { handleGitReferenceUpdated(event); - } catch (OrmException e) { + } catch (StorageException e) { logger.warn("Unable to process event {} on project {}", event, event.getProjectName(), e); } }
diff --git a/owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/ReviewerManager.java b/owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/ReviewerManager.java index 3335144..0a3f6f9 100644 --- a/owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/ReviewerManager.java +++ b/owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/ReviewerManager.java
@@ -23,17 +23,14 @@ import com.google.gerrit.extensions.common.ChangeInfo; import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.reviewdb.client.Account; -import com.google.gerrit.reviewdb.client.Account.Id; import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.Project; -import com.google.gerrit.reviewdb.server.ReviewDb; import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.permissions.ChangePermission; import com.google.gerrit.server.permissions.PermissionBackend; import com.google.gerrit.server.query.change.ChangeData; import com.google.gerrit.server.util.ManualRequestContext; import com.google.gerrit.server.util.OneOffRequestContext; -import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; import com.google.inject.Singleton; import java.util.ArrayList; @@ -76,7 +73,7 @@ ReviewInput in = new ReviewInput(); in.reviewers = new ArrayList<>(reviewers.size()); for (Account.Id account : reviewers) { - if (isVisibleTo(ctx.getReviewDbProvider().get(), changeInfo, account)) { + if (isVisibleTo(changeInfo, account)) { AddReviewerInput addReviewerInput = new AddReviewerInput(); addReviewerInput.reviewer = account.toString(); in.reviewers.add(addReviewerInput); @@ -89,16 +86,16 @@ } gApi.changes().id(changeInfo.id).current().review(in); } - } catch (RestApiException | OrmException e) { + } catch (RestApiException e) { log.error("Couldn't add reviewers to the change", e); throw new ReviewerManagerException(e); } } - private boolean isVisibleTo(ReviewDb reviewDb, ChangeInfo changeInfo, Id account) { + private boolean isVisibleTo(ChangeInfo changeInfo, Account.Id account) { ChangeData changeData = changeDataFactory.create( - reviewDb, new Project.NameKey(changeInfo.project), new Change.Id(changeInfo._number)); + new Project.NameKey(changeInfo.project), new Change.Id(changeInfo._number)); return permissionBackend .user(userFactory.create(account)) .change(changeData)
diff --git a/owners-autoassign/src/test/java/com/vmware/gerrit/owners/common/GitRefListenerIT.java b/owners-autoassign/src/test/java/com/vmware/gerrit/owners/common/GitRefListenerIT.java index f009bde..24c07a3 100644 --- a/owners-autoassign/src/test/java/com/vmware/gerrit/owners/common/GitRefListenerIT.java +++ b/owners-autoassign/src/test/java/com/vmware/gerrit/owners/common/GitRefListenerIT.java
@@ -21,11 +21,9 @@ import com.google.gerrit.acceptance.TestPlugin; import com.google.gerrit.extensions.events.GitReferenceUpdatedListener; import com.google.gerrit.reviewdb.client.RefNames; -import com.google.gerrit.reviewdb.server.ReviewDb; import com.google.gerrit.server.AnonymousUser; import com.google.gerrit.server.util.ManualRequestContext; import com.google.gerrit.server.util.ThreadLocalRequestContext; -import com.google.gwtorm.server.SchemaFactory; import com.google.inject.AbstractModule; import com.google.inject.Inject; import org.eclipse.jgit.transport.ReceiveCommand.Type; @@ -37,7 +35,6 @@ public class GitRefListenerIT extends LightweightPluginDaemonTest { @Inject GitRefListenerTest gitRefListener; - @Inject SchemaFactory<ReviewDb> schemaFactory; @Inject ThreadLocalRequestContext requestContext; String aRefChange = RefNames.REFS_CHANGES + "01/01/01"; @@ -60,7 +57,7 @@ anOldObjectId, aNewObjectId, Type.CREATE, - admin.id); + admin.id()); gitRefListener.onGitReferenceUpdated(refUpdatedEvent); assertEquals(0, gitRefListener.getProcessedEvents()); @@ -74,8 +71,7 @@ @Test public void shouldRetrieveChangeFromAnonymousContext() throws Exception { - try (ManualRequestContext ctx = - new ManualRequestContext(new AnonymousUser(), schemaFactory, requestContext)) { + try (ManualRequestContext ctx = new ManualRequestContext(new AnonymousUser(), requestContext)) { gitRefListener.onGitReferenceUpdated(newRefUpdateEvent()); assertEquals(1, gitRefListener.getProcessedEvents()); } @@ -86,8 +82,7 @@ ReferenceUpdatedEventTest refUpdateWithoutAccountId = new ReferenceUpdatedEventTest( project, aRefChange, anOldObjectId, aNewObjectId, Type.CREATE, null); - try (ManualRequestContext ctx = - new ManualRequestContext(new AnonymousUser(), schemaFactory, requestContext)) { + try (ManualRequestContext ctx = new ManualRequestContext(new AnonymousUser(), requestContext)) { gitRefListener.onGitReferenceUpdated(refUpdateWithoutAccountId); assertEquals(1, gitRefListener.getProcessedEvents()); } @@ -95,6 +90,6 @@ private ReferenceUpdatedEventTest newRefUpdateEvent() { return new ReferenceUpdatedEventTest( - project, aRefChange, anOldObjectId, aNewObjectId, Type.CREATE, admin.id); + project, aRefChange, anOldObjectId, aNewObjectId, Type.CREATE, admin.id()); } }
diff --git a/owners-common/src/main/java/com/googlesource/gerrit/owners/common/AccountsImpl.java b/owners-common/src/main/java/com/googlesource/gerrit/owners/common/AccountsImpl.java index e83269a..b5c1f90 100644 --- a/owners-common/src/main/java/com/googlesource/gerrit/owners/common/AccountsImpl.java +++ b/owners-common/src/main/java/com/googlesource/gerrit/owners/common/AccountsImpl.java
@@ -32,7 +32,6 @@ import com.google.gerrit.server.project.NoSuchProjectException; import com.google.gerrit.server.util.ManualRequestContext; import com.google.gerrit.server.util.OneOffRequestContext; -import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; import java.io.IOException; import java.util.Collections; @@ -94,7 +93,7 @@ return groupMembers.listAccounts(group.get().getGroupUUID(), null).stream() .map(Account::getId) .collect(Collectors.toSet()); - } catch (NoSuchProjectException | OrmException | IOException e) { + } catch (NoSuchProjectException | IOException e) { log.error("Unable to list accounts in group " + group, e); return Collections.emptySet(); } @@ -102,7 +101,7 @@ private Set<Account.Id> findUserOrEmail(String nameOrEmail) { try (ManualRequestContext ctx = oneOffRequestContext.open()) { - Set<Id> accountIds = resolver.findAll(nameOrEmail); + Set<Id> accountIds = resolver.resolve(nameOrEmail).asIdSet(); if (accountIds.isEmpty()) { log.warn("User '{}' does not resolve to any account.", nameOrEmail); return accountIds; @@ -133,7 +132,7 @@ } return accountIds; - } catch (OrmException | IOException | ConfigInvalidException e) { + } catch (IOException | ConfigInvalidException e) { log.error("Error trying to resolve user " + nameOrEmail, e); return Collections.emptySet(); }
diff --git a/owners-common/src/main/java/com/googlesource/gerrit/owners/common/ConfigurationParser.java b/owners-common/src/main/java/com/googlesource/gerrit/owners/common/ConfigurationParser.java index 2f5c5c0..dcdd9f7 100644 --- a/owners-common/src/main/java/com/googlesource/gerrit/owners/common/ConfigurationParser.java +++ b/owners-common/src/main/java/com/googlesource/gerrit/owners/common/ConfigurationParser.java
@@ -43,7 +43,7 @@ final OwnersConfig ret = new OwnersConfig(); JsonNode jsonNode = new ObjectMapper(new YAMLFactory()).readValue(yamlBytes, JsonNode.class); Boolean inherited = - Optional.ofNullable(jsonNode.get("inherited")).map(JsonNode::asBoolean).orElse(false); + Optional.ofNullable(jsonNode.get("inherited")).map(JsonNode::asBoolean).orElse(true); ret.setInherited(inherited); addClassicMatcher(jsonNode, ret); addMatchers(jsonNode, ret);