Merge "Avoid creating loose objects in schemas 115 and 119" into stable-2.16
diff --git a/java/com/google/gerrit/server/schema/Schema_115.java b/java/com/google/gerrit/server/schema/Schema_115.java
index d04723b..8682b8a 100644
--- a/java/com/google/gerrit/server/schema/Schema_115.java
+++ b/java/com/google/gerrit/server/schema/Schema_115.java
@@ -45,8 +45,11 @@
import java.util.Map;
import java.util.Set;
import org.eclipse.jgit.errors.ConfigInvalidException;
+import org.eclipse.jgit.internal.storage.file.FileRepository;
+import org.eclipse.jgit.internal.storage.file.PackInserter;
import org.eclipse.jgit.lib.BatchRefUpdate;
import org.eclipse.jgit.lib.NullProgressMonitor;
+import org.eclipse.jgit.lib.ObjectReader;
import org.eclipse.jgit.lib.PersonIdent;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.revwalk.RevWalk;
@@ -151,7 +154,9 @@
}
try (Repository git = mgr.openRepository(allUsersName);
- RevWalk rw = new RevWalk(git)) {
+ PackInserter packInserter = ((FileRepository) git).getObjectDatabase().newPackInserter();
+ ObjectReader reader = packInserter.newReader();
+ RevWalk rw = new RevWalk(reader)) {
BatchRefUpdate bru = git.getRefDatabase().newBatchUpdate();
for (Map.Entry<Account.Id, DiffPreferencesInfo> e : imports.entrySet()) {
try (MetaDataUpdate md =
@@ -166,10 +171,11 @@
null,
e.getValue(),
DiffPreferencesInfo.defaults());
- p.commit(md);
+ p.commit(md, packInserter, reader, rw);
}
}
+ packInserter.flush();
bru.execute(rw, NullProgressMonitor.INSTANCE);
} catch (ConfigInvalidException | IOException ex) {
throw new OrmException(ex);
diff --git a/java/com/google/gerrit/server/schema/Schema_119.java b/java/com/google/gerrit/server/schema/Schema_119.java
index e5a6405..a583168 100644
--- a/java/com/google/gerrit/server/schema/Schema_119.java
+++ b/java/com/google/gerrit/server/schema/Schema_119.java
@@ -52,8 +52,11 @@
import java.util.Map;
import java.util.Set;
import org.eclipse.jgit.errors.ConfigInvalidException;
+import org.eclipse.jgit.internal.storage.file.FileRepository;
+import org.eclipse.jgit.internal.storage.file.PackInserter;
import org.eclipse.jgit.lib.BatchRefUpdate;
import org.eclipse.jgit.lib.NullProgressMonitor;
+import org.eclipse.jgit.lib.ObjectReader;
import org.eclipse.jgit.lib.PersonIdent;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.revwalk.RevWalk;
@@ -141,7 +144,9 @@
}
try (Repository git = mgr.openRepository(allUsersName);
- RevWalk rw = new RevWalk(git)) {
+ PackInserter packInserter = ((FileRepository) git).getObjectDatabase().newPackInserter();
+ ObjectReader reader = packInserter.newReader();
+ RevWalk rw = new RevWalk(reader)) {
BatchRefUpdate bru = git.getRefDatabase().newBatchUpdate();
for (Map.Entry<Account.Id, GeneralPreferencesInfo> e : imports.entrySet()) {
try (MetaDataUpdate md =
@@ -156,10 +161,11 @@
null,
e.getValue(),
GeneralPreferencesInfo.defaults());
- p.commit(md);
+ p.commit(md, packInserter, reader, rw);
}
}
+ packInserter.flush();
bru.execute(rw, NullProgressMonitor.INSTANCE);
} catch (ConfigInvalidException | IOException ex) {
throw new OrmException(ex);