Skip to content

Commit 39a57c0

Browse files
committed
Make createUtcDateFormat thread-safe
1 parent b9ecfb5 commit 39a57c0

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

src/main/java/com/meilisearch/sdk/json/GsonKeyTypeAdapter.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import com.google.gson.stream.JsonWriter;
77
import com.meilisearch.sdk.model.Key;
88
import java.io.IOException;
9-
import java.text.DateFormat;
109
import java.text.SimpleDateFormat;
1110
import java.time.Instant;
1211
import java.util.ArrayList;
@@ -25,13 +24,13 @@ public class GsonKeyTypeAdapter extends TypeAdapter<Key> {
2524
private static final String KEY_EXPIRES_AT = "expiresAt";
2625
private static final String KEY_CREATED_AT = "createdAt";
2726
private static final String KEY_UPDATED_AT = "updatedAt";
28-
private static final DateFormat DATE_FORMAT = createUtcDateFormat();
29-
30-
private static DateFormat createUtcDateFormat() {
31-
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
32-
format.setTimeZone(TimeZone.getTimeZone("UTC"));
33-
return format;
34-
}
27+
private static final ThreadLocal<SimpleDateFormat> DATE_FORMAT =
28+
ThreadLocal.withInitial(
29+
() -> {
30+
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
31+
format.setTimeZone(TimeZone.getTimeZone("UTC"));
32+
return format;
33+
});
3534

3635
@Override
3736
public void write(JsonWriter writer, Key key) throws IOException {
@@ -141,7 +140,7 @@ private void writeDate(JsonWriter writer, String key, Date value) throws IOExcep
141140
if (value == null) {
142141
return;
143142
}
144-
writer.name(key).value(DATE_FORMAT.format(value));
143+
writer.name(key).value(DATE_FORMAT.get().format(value));
145144
}
146145

147146
private void readStartObject(JsonReader reader) throws IOException {

0 commit comments

Comments
 (0)