diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/api/changes/ChangesImpl.java b/gerrit-server/src/main/java/com/google/gerrit/server/api/changes/ChangesImpl.java index 07188105ca..7d52e16189 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/api/changes/ChangesImpl.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/api/changes/ChangesImpl.java @@ -45,17 +45,17 @@ import java.util.List; class ChangesImpl implements Changes { private final ChangesCollection changes; private final ChangeApiImpl.Factory api; - private final CreateChange.Factory createChangeFactory; + private final CreateChange createChange; private final Provider queryProvider; @Inject ChangesImpl(ChangesCollection changes, ChangeApiImpl.Factory api, - CreateChange.Factory createChangeFactory, + CreateChange createChange, Provider queryProvider) { this.changes = changes; this.api = api; - this.createChangeFactory = createChangeFactory; + this.createChange = createChange; this.queryProvider = queryProvider; } @@ -87,7 +87,7 @@ class ChangesImpl implements Changes { @Override public ChangeApi create(ChangeInfo in) throws RestApiException { try { - ChangeJson.ChangeInfo out = createChangeFactory.create().apply( + ChangeJson.ChangeInfo out = createChange.apply( TopLevelResource.INSTANCE, in).value(); return api.create(changes.parse(TopLevelResource.INSTANCE, IdString.fromUrl(out.changeId))); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangesCollection.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangesCollection.java index 73f9b2e383..5306f83fdc 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangesCollection.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangesCollection.java @@ -44,7 +44,7 @@ public class ChangesCollection implements private final ChangeControl.GenericFactory changeControlFactory; private final Provider queryFactory; private final DynamicMap> views; - private final CreateChange.Factory createChangeFactory; + private final CreateChange createChange; @Inject ChangesCollection( @@ -53,13 +53,13 @@ public class ChangesCollection implements ChangeControl.GenericFactory changeControlFactory, Provider queryFactory, DynamicMap> views, - CreateChange.Factory createChangeFactory) { + CreateChange createChange) { this.db = dbProvider; this.user = user; this.changeControlFactory = changeControlFactory; this.queryFactory = queryFactory; this.views = views; - this.createChangeFactory = createChangeFactory; + this.createChange = createChange; } @Override @@ -135,6 +135,6 @@ public class ChangesCollection implements @SuppressWarnings("unchecked") @Override public CreateChange post(TopLevelResource parent) throws RestApiException { - return createChangeFactory.create(); + return createChange; } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/CreateChange.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/CreateChange.java index f1e4309784..0fcd425f4c 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/CreateChange.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/CreateChange.java @@ -63,18 +63,16 @@ import org.eclipse.jgit.util.ChangeIdUtil; import java.io.IOException; import java.io.UnsupportedEncodingException; +import java.sql.Timestamp; import java.util.List; +import java.util.TimeZone; public class CreateChange implements RestModifyView { - public static interface Factory { - CreateChange create(); - } - - private final ReviewDb db; + private final Provider db; private final GitRepositoryManager gitManager; - private final PersonIdent myIdent; + private final TimeZone serverTimeZone; private final Provider userProvider; private final Provider projectsCollection; private final CommitValidators.Factory commitValidatorsFactory; @@ -82,7 +80,7 @@ public class CreateChange implements private final ChangeJson json; @Inject - CreateChange(ReviewDb db, + CreateChange(Provider db, GitRepositoryManager gitManager, @GerritPersonIdent PersonIdent myIdent, Provider userProvider, @@ -92,7 +90,7 @@ public class CreateChange implements ChangeJson json) { this.db = db; this.gitManager = gitManager; - this.myIdent = myIdent; + this.serverTimeZone = myIdent.getTimeZone(); this.userProvider = userProvider; this.projectsCollection = projectsCollection; this.commitValidatorsFactory = commitValidatorsFactory; @@ -154,9 +152,9 @@ public class CreateChange implements "Branch %s does not exist.", refName)); } - IdentifiedUser me = (IdentifiedUser)userProvider.get(); - PersonIdent author = - me.newCommitterIdent(myIdent.getWhen(), myIdent.getTimeZone()); + Timestamp now = TimeUtil.nowTs(); + IdentifiedUser me = (IdentifiedUser) userProvider.get(); + PersonIdent author = me.newCommitterIdent(now, serverTimeZone); RevCommit mergeTip = rw.parseCommit(destRef.getObjectId()); ObjectId id = ChangeIdUtil.computeChangeId(mergeTip.getTree(), @@ -167,10 +165,10 @@ public class CreateChange implements Change change = new Change( getChangeId(id, c), - new Change.Id(db.nextChangeId()), + new Change.Id(db.get().nextChangeId()), me.getAccountId(), new Branch.NameKey(project, destRef.getName()), - TimeUtil.nowTs()); + now); ChangeInserter ins = changeInserterFactory.create(refControl, change, c); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/Module.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/Module.java index acb6eeffc6..6880ca297e 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/Module.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/Module.java @@ -107,7 +107,6 @@ public class Module extends RestApiModule { factory(EmailReviewComments.Factory.class); factory(ChangeInserter.Factory.class); factory(PatchSetInserter.Factory.class); - factory(CreateChange.Factory.class); } }); }