From a1eea47b3faa104b91e97594e440fade92263a4b Mon Sep 17 00:00:00 2001 From: Daniel Chao Date: Fri, 22 May 2026 15:58:09 -0700 Subject: [PATCH] Restore @ThreadSafe and @Immutable annotations (#1613) --- pkl-core/src/main/java/org/pkl/core/http/DummyHttpClient.java | 2 ++ pkl-core/src/main/java/org/pkl/core/http/JdkHttpClient.java | 2 ++ pkl-core/src/main/java/org/pkl/core/http/LazyHttpClient.java | 2 ++ .../src/main/java/org/pkl/core/http/RequestRewritingClient.java | 2 ++ pkl-core/src/main/java/org/pkl/core/util/StringSimilarity.java | 2 ++ 5 files changed, 10 insertions(+) diff --git a/pkl-core/src/main/java/org/pkl/core/http/DummyHttpClient.java b/pkl-core/src/main/java/org/pkl/core/http/DummyHttpClient.java index 6af91aab..cc9380fe 100644 --- a/pkl-core/src/main/java/org/pkl/core/http/DummyHttpClient.java +++ b/pkl-core/src/main/java/org/pkl/core/http/DummyHttpClient.java @@ -15,11 +15,13 @@ */ package org.pkl.core.http; +import com.google.errorprone.annotations.ThreadSafe; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.net.http.HttpResponse.BodyHandler; /** An {@code HttpClient} implementation that throws {@code AssertionError} on every send. */ +@ThreadSafe final class DummyHttpClient implements HttpClient { @Override public HttpResponse send(HttpRequest request, BodyHandler responseBodyHandler) { diff --git a/pkl-core/src/main/java/org/pkl/core/http/JdkHttpClient.java b/pkl-core/src/main/java/org/pkl/core/http/JdkHttpClient.java index f2f0c331..6c2092cf 100644 --- a/pkl-core/src/main/java/org/pkl/core/http/JdkHttpClient.java +++ b/pkl-core/src/main/java/org/pkl/core/http/JdkHttpClient.java @@ -15,6 +15,7 @@ */ package org.pkl.core.http; +import com.google.errorprone.annotations.ThreadSafe; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; @@ -49,6 +50,7 @@ import org.pkl.core.util.ErrorMessages; import org.pkl.core.util.Exceptions; /** An {@code HttpClient} implementation backed by {@link java.net.http.HttpClient}. */ +@ThreadSafe final class JdkHttpClient implements HttpClient { // non-private for testing final java.net.http.HttpClient underlying; diff --git a/pkl-core/src/main/java/org/pkl/core/http/LazyHttpClient.java b/pkl-core/src/main/java/org/pkl/core/http/LazyHttpClient.java index 4d2a6262..5696e2d1 100644 --- a/pkl-core/src/main/java/org/pkl/core/http/LazyHttpClient.java +++ b/pkl-core/src/main/java/org/pkl/core/http/LazyHttpClient.java @@ -15,6 +15,7 @@ */ package org.pkl.core.http; +import com.google.errorprone.annotations.ThreadSafe; import com.google.errorprone.annotations.concurrent.GuardedBy; import java.io.IOException; import java.net.http.HttpRequest; @@ -28,6 +29,7 @@ import org.jspecify.annotations.Nullable; * An {@code HttpClient} decorator that defers creating the underlying HTTP client until the first * send. */ +@ThreadSafe final class LazyHttpClient implements HttpClient { private final Supplier supplier; private final Object lock = new Object(); diff --git a/pkl-core/src/main/java/org/pkl/core/http/RequestRewritingClient.java b/pkl-core/src/main/java/org/pkl/core/http/RequestRewritingClient.java index 09f2d513..7b7d39e2 100644 --- a/pkl-core/src/main/java/org/pkl/core/http/RequestRewritingClient.java +++ b/pkl-core/src/main/java/org/pkl/core/http/RequestRewritingClient.java @@ -15,6 +15,7 @@ */ package org.pkl.core.http; +import com.google.errorprone.annotations.ThreadSafe; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; @@ -49,6 +50,7 @@ import org.pkl.core.util.Pair; *

Both {@code User-Agent} header and default request timeout are configurable through {@link * HttpClient.Builder}. */ +@ThreadSafe final class RequestRewritingClient implements HttpClient { // non-private for testing final String userAgent; diff --git a/pkl-core/src/main/java/org/pkl/core/util/StringSimilarity.java b/pkl-core/src/main/java/org/pkl/core/util/StringSimilarity.java index 51ff92e9..3b735074 100644 --- a/pkl-core/src/main/java/org/pkl/core/util/StringSimilarity.java +++ b/pkl-core/src/main/java/org/pkl/core/util/StringSimilarity.java @@ -15,6 +15,7 @@ */ package org.pkl.core.util; +import com.google.errorprone.annotations.Immutable; import java.util.Arrays; /** @@ -27,6 +28,7 @@ import java.util.Arrays; * * @author Thibault Debatty */ +@Immutable public final class StringSimilarity { private static final double DEFAULT_THRESHOLD = 0.7; private static final int THREE = 3;