From 5185a68eebf08cd08797726a96c26ed0ec108885 Mon Sep 17 00:00:00 2001 From: Rene Pfeuffer Date: Mon, 21 Oct 2019 13:10:48 +0200 Subject: [PATCH] Formatter is not thread safe --- .../main/java/sonia/scm/web/lfs/ExpiringAction.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/lfs/ExpiringAction.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/lfs/ExpiringAction.java index 28a6ee1016..223bb3151e 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/lfs/ExpiringAction.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/lfs/ExpiringAction.java @@ -3,23 +3,26 @@ package sonia.scm.web.lfs; import org.eclipse.jgit.lfs.server.Response; import sonia.scm.security.AccessToken; +import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Collections; import java.util.TimeZone; class ExpiringAction extends Response.Action { - private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); - static { - DATE_FORMAT.setTimeZone(TimeZone.getTimeZone("GMT")); - } @SuppressWarnings({"squid:S00116"}) // This class is used for json serialization, only public final String expires_at; ExpiringAction(String href, AccessToken accessToken) { - this.expires_at = DATE_FORMAT.format(accessToken.getExpiration()); + this.expires_at = createDateFormat().format(accessToken.getExpiration()); this.href = href; this.header = Collections.singletonMap("Authorization", "Bearer " + accessToken.compact()); } + + private DateFormat createDateFormat() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); + dateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); + return dateFormat; + } }