summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Pursehouse <dpursehouse@collab.net>2019-11-01 15:13:37 +0900
committerDavid Pursehouse <dpursehouse@collab.net>2019-11-01 16:59:33 +0900
commitf47108a86b7828917b0917e8e0a853544bdf4dbf (patch)
treed683f4e5b548bce999161de826753ae8a5a68aca
parent8f7c78e1124dea85328cfa9bca545f9fc7fade4e (diff)
PutDescription: 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: I2517c8be4c6fe5594850cb787095809203a1874e
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/project/PutDescription.java7
1 files changed, 4 insertions, 3 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/PutDescription.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/PutDescription.java
index 5c1d41b41f..27bf042a1c 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/project/PutDescription.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/PutDescription.java
@@ -27,6 +27,7 @@ import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.git.MetaDataUpdate;
import com.google.gerrit.server.git.ProjectConfig;
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;
@@ -35,10 +36,10 @@ import org.eclipse.jgit.errors.RepositoryNotFoundException;
@Singleton
public class PutDescription implements RestModifyView<ProjectResource, DescriptionInput> {
private final ProjectCache cache;
- private final MetaDataUpdate.Server updateFactory;
+ private final Provider<MetaDataUpdate.Server> updateFactory;
@Inject
- PutDescription(ProjectCache cache, MetaDataUpdate.Server updateFactory) {
+ PutDescription(ProjectCache cache, Provider<MetaDataUpdate.Server> updateFactory) {
this.cache = cache;
this.updateFactory = updateFactory;
}
@@ -56,7 +57,7 @@ public class PutDescription implements RestModifyView<ProjectResource, Descripti
throw new AuthException("not project owner");
}
- try (MetaDataUpdate md = updateFactory.create(resource.getNameKey())) {
+ try (MetaDataUpdate md = updateFactory.get().create(resource.getNameKey())) {
ProjectConfig config = ProjectConfig.read(md);
Project project = config.getProject();
project.setDescription(Strings.emptyToNull(input.description));