diff options
author | Alvaro Vilaplana Garcia <alvaro.vilaplana@gmail.com> | 2023-12-06 10:14:57 +0000 |
---|---|---|
committer | Alvaro Vilaplana Garcia <alvaro.vilaplana@gmail.com> | 2023-12-06 10:15:37 +0000 |
commit | 52c6e5ba841c53663585a1c1caace5e51ea8b77f (patch) | |
tree | 6d4e216e11ea7b509ee4cef1e7f0b03b607446c5 | |
parent | 9bcb7ac8a9d056526af2b1cf66d7d1254b378178 (diff) | |
parent | 081a9914a3b75e33d94f8d176882c044879895b0 (diff) |
Merge branch 'stable-3.2' into stable-3.3upstream/stable-3.3
* stable-3.2:
Make the indexing operation fail upon StorageException(s)
ConsistencyCheckerIT: Delete calls to index broken changes that fail silently
RefAdvertisementIT: Don't call reindex that would fail silently
Release-Notes: skip
Change-Id: Iecdf1e4ce450c8fab5244338ce46e6e4d95bf959
3 files changed, 9 insertions, 43 deletions
diff --git a/java/com/google/gerrit/index/Schema.java b/java/com/google/gerrit/index/Schema.java index 3aa9de0614..ec14a154f4 100644 --- a/java/com/google/gerrit/index/Schema.java +++ b/java/com/google/gerrit/index/Schema.java @@ -207,21 +207,19 @@ public class Schema<T> { /** * Build all fields in the schema from an input object. * - * <p>Null values are omitted, as are fields which cause errors, which are logged. + * <p>Null values are omitted, as are fields which cause errors, which are logged. If any of the + * fields cause a StorageException, the whole operation fails and the exception is propagated to + * the caller. * * @param obj input object. * @param skipFields set of field names to skip when indexing the document * @return all non-null field values from the object. */ public final Iterable<Values<T>> buildFields(T obj, ImmutableSet<String> skipFields) { - try { - return fields.values().stream() - .map(f -> fieldValues(obj, f, skipFields)) - .filter(Objects::nonNull) - .collect(toImmutableList()); - } catch (StorageException e) { - return ImmutableList.of(); - } + return fields.values().stream() + .map(f -> fieldValues(obj, f, skipFields)) + .filter(Objects::nonNull) + .collect(toImmutableList()); } @Override diff --git a/javatests/com/google/gerrit/acceptance/git/RefAdvertisementIT.java b/javatests/com/google/gerrit/acceptance/git/RefAdvertisementIT.java index 0930815255..dd689e600e 100644 --- a/javatests/com/google/gerrit/acceptance/git/RefAdvertisementIT.java +++ b/javatests/com/google/gerrit/acceptance/git/RefAdvertisementIT.java @@ -38,7 +38,6 @@ import com.google.gerrit.common.Nullable; import com.google.gerrit.common.data.GlobalCapability; import com.google.gerrit.entities.AccessSection; import com.google.gerrit.entities.AccountGroup; -import com.google.gerrit.entities.Change; import com.google.gerrit.entities.Patch; import com.google.gerrit.entities.PatchSet; import com.google.gerrit.entities.Permission; @@ -68,7 +67,6 @@ import org.eclipse.jgit.junit.TestRepository; import org.eclipse.jgit.lib.Config; import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.ObjectId; -import org.eclipse.jgit.lib.PersonIdent; import org.eclipse.jgit.lib.Ref; import org.eclipse.jgit.lib.RefUpdate; import org.eclipse.jgit.lib.Repository; @@ -1072,37 +1070,10 @@ public class RefAdvertisementIT extends AbstractDaemonTest { @Test public void receivePackOmitsMissingObject() throws Exception { - String rev = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef"; try (Repository repo = repoManager.openRepository(project); TestRepository<Repository> tr = new TestRepository<>(repo)) { - String subject = "Subject for missing commit"; - Change c = new Change(cd3.change()); - PatchSet.Id psId = PatchSet.id(cd3.getId(), 2); - c.setCurrentPatchSet(psId, subject, c.getOriginalSubject()); - - PersonIdent committer = serverIdent.get(); - PersonIdent author = - noteUtil.newAccountIdIdent(getAccount(admin.id()).id(), committer.getWhen(), committer); - tr.branch(RefNames.changeMetaRef(cd3.getId())) - .commit() - .author(author) - .committer(committer) - .message( - "Update patch set " - + psId.get() - + "\n" - + "\n" - + "Patch-set: " - + psId.get() - + "\n" - + "Commit: " - + rev - + "\n" - + "Subject: " - + subject - + "\n") - .create(); - indexer.index(c.getProject(), c.getId()); + PatchSet.Id psId = PatchSet.id(cd3.getId(), 1); + tr.delete(psId.toRefName()); } assertThat(getReceivePackRefs().additionalHaves()).containsExactly(obj(cd4, 1)); diff --git a/javatests/com/google/gerrit/acceptance/server/change/ConsistencyCheckerIT.java b/javatests/com/google/gerrit/acceptance/server/change/ConsistencyCheckerIT.java index e39f967ba1..9d821b75df 100644 --- a/javatests/com/google/gerrit/acceptance/server/change/ConsistencyCheckerIT.java +++ b/javatests/com/google/gerrit/acceptance/server/change/ConsistencyCheckerIT.java @@ -257,7 +257,6 @@ public class ConsistencyCheckerIT extends AbstractDaemonTest { + "Groups: " + rev + "\n"); - indexer.index(c.getProject(), c.getId()); ChangeNotes notes = changeNotesFactory.create(c.getProject(), c.getId()); FixInput fix = new FixInput(); @@ -817,8 +816,6 @@ public class ConsistencyCheckerIT extends AbstractDaemonTest { + "Subject: " + subject + "\n"); - indexer.index(c.getProject(), c.getId()); - return ps; } |