diff options
author | David Pursehouse <dpursehouse@collab.net> | 2019-11-01 15:23:12 +0900 |
---|---|---|
committer | David Pursehouse <dpursehouse@collab.net> | 2019-11-01 16:59:33 +0900 |
commit | 9dcd20809738c7466c391ce673452cb421d9ee04 (patch) | |
tree | 5ba64bd86121f6a430b4b298ed551f1c070a5b3d | |
parent | f47108a86b7828917b0917e8e0a853544bdf4dbf (diff) |
SetParent: Access MetaDataUpdate.Factory via Provider
If the update factory is not accessed via a provider, the same instance
gets reused, and this results in the commit message for the update always
having the same timestamp which is the time of the server startup.
Change-Id: I872eadf240209dad2d70761f03d3b3a494e0f330
-rw-r--r-- | gerrit-server/src/main/java/com/google/gerrit/server/project/SetParent.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/SetParent.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/SetParent.java index 37cfcdd33b..56fc1aea18 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/project/SetParent.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/SetParent.java @@ -35,6 +35,7 @@ import com.google.gerrit.server.permissions.PermissionBackend; import com.google.gerrit.server.permissions.PermissionBackendException; import com.google.gerrit.server.project.SetParent.Input; import com.google.inject.Inject; +import com.google.inject.Provider; import com.google.inject.Singleton; import java.io.IOException; import org.eclipse.jgit.errors.ConfigInvalidException; @@ -49,14 +50,14 @@ public class SetParent implements RestModifyView<ProjectResource, Input> { private final ProjectCache cache; private final PermissionBackend permissionBackend; - private final MetaDataUpdate.Server updateFactory; + private final Provider<MetaDataUpdate.Server> updateFactory; private final AllProjectsName allProjects; @Inject SetParent( ProjectCache cache, PermissionBackend permissionBackend, - MetaDataUpdate.Server updateFactory, + Provider<MetaDataUpdate.Server> updateFactory, AllProjectsName allProjects) { this.cache = cache; this.permissionBackend = permissionBackend; @@ -78,7 +79,7 @@ public class SetParent implements RestModifyView<ProjectResource, Input> { String parentName = MoreObjects.firstNonNull(Strings.emptyToNull(input.parent), allProjects.get()); validateParentUpdate(rsrc.getProjectState().getNameKey(), user, parentName, checkIfAdmin); - try (MetaDataUpdate md = updateFactory.create(rsrc.getNameKey())) { + try (MetaDataUpdate md = updateFactory.get().create(rsrc.getNameKey())) { ProjectConfig config = ProjectConfig.read(md); Project project = config.getProject(); project.setParentName(parentName); |