diff options
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeResource.java')
-rw-r--r-- | gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeResource.java | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeResource.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeResource.java index 1555cdd842..16472e35cf 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeResource.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeResource.java @@ -57,15 +57,17 @@ public class ChangeResource implements RestResource, HasETag { return getControl().getNotes(); } - - // This includes all information relevant for ETag computation - // unrelated to the UI. - public void prepareETag(Hasher h, CurrentUser user) { - h.putLong(getChange().getLastUpdatedOn().getTime()) + @Override + public String getETag() { + CurrentUser user = control.getCurrentUser(); + Hasher h = Hashing.md5().newHasher() + .putLong(getChange().getLastUpdatedOn().getTime()) .putInt(getChange().getRowVersion()) + .putBoolean(user.getStarredChanges().contains(getChange().getId())) .putInt(user.isIdentifiedUser() ? ((IdentifiedUser) user).getAccountId().get() : 0); + byte[] buf = new byte[20]; ObjectId noteId; try { @@ -80,14 +82,6 @@ public class ChangeResource implements RestResource, HasETag { for (ProjectState p : control.getProjectControl().getProjectState().tree()) { hashObjectId(h, p.getConfig().getRevision(), buf); } - } - - @Override - public String getETag() { - CurrentUser user = control.getCurrentUser(); - Hasher h = Hashing.md5().newHasher() - .putBoolean(user.getStarredChanges().contains(getChange().getId())); - prepareETag(h, user); return h.hash().toString(); } |