diff --git a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/restapi/ResourceNotFoundException.java b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/restapi/ResourceNotFoundException.java index aa891c9404..0e358ec629 100644 --- a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/restapi/ResourceNotFoundException.java +++ b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/restapi/ResourceNotFoundException.java @@ -31,4 +31,10 @@ public class ResourceNotFoundException extends RestApiException { public ResourceNotFoundException(IdString id) { super(id.get()); } + + @SuppressWarnings("unchecked") + @Override + public ResourceNotFoundException caching(CacheControl c) { + return super.caching(c); + } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/GetAvatar.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/GetAvatar.java index 1c665550d4..a96e713816 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/account/GetAvatar.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/GetAvatar.java @@ -16,6 +16,7 @@ package com.google.gerrit.server.account; import com.google.common.base.Strings; import com.google.gerrit.extensions.registration.DynamicItem; +import com.google.gerrit.extensions.restapi.CacheControl; import com.google.gerrit.extensions.restapi.ResourceNotFoundException; import com.google.gerrit.extensions.restapi.Response; import com.google.gerrit.extensions.restapi.RestReadView; @@ -24,6 +25,8 @@ import com.google.inject.Inject; import org.kohsuke.args4j.Option; +import java.util.concurrent.TimeUnit; + class GetAvatar implements RestReadView { private final DynamicItem avatarProvider; @@ -41,12 +44,14 @@ class GetAvatar implements RestReadView { throws ResourceNotFoundException { AvatarProvider impl = avatarProvider.get(); if (impl == null) { - throw new ResourceNotFoundException(); + throw (new ResourceNotFoundException()) + .caching(CacheControl.PUBLIC(1, TimeUnit.DAYS)); } String url = impl.getUrl(rsrc.getUser(), size); if (Strings.isNullOrEmpty(url)) { - throw new ResourceNotFoundException(); + throw (new ResourceNotFoundException()) + .caching(CacheControl.PUBLIC(1, TimeUnit.HOURS)); } else { return Response.redirect(url); }