From 9409bf1043046ceba86387ee4c6aacaaa424ad7b Mon Sep 17 00:00:00 2001 From: Martin Karlsson Date: Mon, 2 Mar 2026 01:18:33 +0100 Subject: [PATCH 01/16] - Added jspecify to pom.xml - @NullMarked to src/main/java/org/example - Checked all files in example for handling null return values. --- pom.xml | 8 +++++--- src/main/java/org/example/App.java | 4 ++-- src/main/java/org/example/package-info.java | 4 ++++ 3 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 src/main/java/org/example/package-info.java diff --git a/pom.xml b/pom.xml index e747e6aa..575fe61c 100644 --- a/pom.xml +++ b/pom.xml @@ -15,9 +15,7 @@ 3.27.7 5.21.0 8.14.0 - - com.bucket4j @@ -70,7 +68,11 @@ brotli4j 1.20.0 - + + org.jspecify + jspecify + 1.0.0 + diff --git a/src/main/java/org/example/App.java b/src/main/java/org/example/App.java index 0189e1f3..f4502ea9 100644 --- a/src/main/java/org/example/App.java +++ b/src/main/java/org/example/App.java @@ -2,8 +2,8 @@ import org.example.config.AppConfig; import org.example.config.ConfigLoader; +import org.jspecify.annotations.Nullable; -import java.net.Socket; import java.nio.file.Path; public class App { @@ -30,7 +30,7 @@ static int resolvePort(String[] args, int configPort) { return validatePort(configPort, "configuration server.port"); } - static Integer parsePortFromCli(String[] args) { + static @Nullable Integer parsePortFromCli(String[] args) { if (args == null) return null; for (int i = 0; i < args.length; i++) { diff --git a/src/main/java/org/example/package-info.java b/src/main/java/org/example/package-info.java new file mode 100644 index 00000000..81843380 --- /dev/null +++ b/src/main/java/org/example/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package org.example; + +import org.jspecify.annotations.NullMarked; \ No newline at end of file From 70d73686c20464fd557dd48191f5bebc17c21938 Mon Sep 17 00:00:00 2001 From: Martin Karlsson Date: Mon, 2 Mar 2026 01:22:39 +0100 Subject: [PATCH 02/16] - @NullMarked to src/main/java/org/example/config - Checked all files for handling null return values --- src/main/java/org/example/config/package-info.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/main/java/org/example/config/package-info.java diff --git a/src/main/java/org/example/config/package-info.java b/src/main/java/org/example/config/package-info.java new file mode 100644 index 00000000..ef22a5c0 --- /dev/null +++ b/src/main/java/org/example/config/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package org.example.config; + +import org.jspecify.annotations.NullMarked; \ No newline at end of file From d637d498c8b78559dcddcb1a1de9c58d41eb606a Mon Sep 17 00:00:00 2001 From: Martin Karlsson Date: Mon, 2 Mar 2026 01:33:14 +0100 Subject: [PATCH 03/16] - Added @NullMarked to src/main/java/org/example/filter package - Checked all files for handling null return values --- src/main/java/org/example/filter/CompressionFilter.java | 3 ++- src/main/java/org/example/filter/LocaleFilterWithCookie.java | 5 +++-- src/main/java/org/example/filter/package-info.java | 4 ++++ 3 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 src/main/java/org/example/filter/package-info.java diff --git a/src/main/java/org/example/filter/CompressionFilter.java b/src/main/java/org/example/filter/CompressionFilter.java index 120c0769..1faa9fe3 100644 --- a/src/main/java/org/example/filter/CompressionFilter.java +++ b/src/main/java/org/example/filter/CompressionFilter.java @@ -2,6 +2,7 @@ import org.example.http.HttpResponseBuilder; import org.example.httpparser.HttpRequest; +import org.jspecify.annotations.Nullable; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -116,7 +117,7 @@ private boolean shouldCompress(String contentType) { baseType.startsWith("text/"); } - private String getHeader(HttpRequest request, String headerName) { + private @Nullable String getHeader(HttpRequest request, String headerName) { Map headers = request.getHeaders(); String value = headers.get(headerName); diff --git a/src/main/java/org/example/filter/LocaleFilterWithCookie.java b/src/main/java/org/example/filter/LocaleFilterWithCookie.java index 28f452ca..fa1849c9 100644 --- a/src/main/java/org/example/filter/LocaleFilterWithCookie.java +++ b/src/main/java/org/example/filter/LocaleFilterWithCookie.java @@ -2,6 +2,7 @@ import org.example.http.HttpResponseBuilder; import org.example.httpparser.HttpRequest; +import org.jspecify.annotations.Nullable; import java.util.Map; @@ -74,7 +75,7 @@ private String resolveLocale(HttpRequest request) { *

* If the cookie header is missing, blank, or malformed, returns null. */ - private String extractLocaleFromCookie(HttpRequest request) { + private @Nullable String extractLocaleFromCookie(HttpRequest request) { Map headers = request.getHeaders(); if (headers == null) { return null; @@ -111,7 +112,7 @@ private String extractLocaleFromCookie(HttpRequest request) { * If the header is missing, blank, or malformed, returns null. * The first language tag is used and any optional quality value (e.g., ";q=0.9") is stripped. */ - private String extractLocaleFromHeader(HttpRequest request) { + private @Nullable String extractLocaleFromHeader(HttpRequest request) { Map headers = request.getHeaders(); if (headers == null) { return null; diff --git a/src/main/java/org/example/filter/package-info.java b/src/main/java/org/example/filter/package-info.java new file mode 100644 index 00000000..457b18e2 --- /dev/null +++ b/src/main/java/org/example/filter/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package org.example.filter; + +import org.jspecify.annotations.NullMarked; \ No newline at end of file From 85f6eed99a31e3864bb0434b670dee73ff85a631 Mon Sep 17 00:00:00 2001 From: Martin Karlsson Date: Mon, 2 Mar 2026 01:34:32 +0100 Subject: [PATCH 04/16] - Added @NullMarked to src/main/java/org/example/http package - Checked all files for handling null return values --- src/main/java/org/example/http/package-info.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/main/java/org/example/http/package-info.java diff --git a/src/main/java/org/example/http/package-info.java b/src/main/java/org/example/http/package-info.java new file mode 100644 index 00000000..af2ca5fb --- /dev/null +++ b/src/main/java/org/example/http/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package org.example.http; + +import org.jspecify.annotations.NullMarked; \ No newline at end of file From 1d684e834e53829bbe05f4167c1c80637be617ed Mon Sep 17 00:00:00 2001 From: Martin Karlsson Date: Mon, 2 Mar 2026 01:36:35 +0100 Subject: [PATCH 05/16] - Added @NullMarked to src/main/java/org/example/httpparser package - Checked all files for handling null return values --- src/main/java/org/example/httpparser/package-info.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/main/java/org/example/httpparser/package-info.java diff --git a/src/main/java/org/example/httpparser/package-info.java b/src/main/java/org/example/httpparser/package-info.java new file mode 100644 index 00000000..7e93c6ac --- /dev/null +++ b/src/main/java/org/example/httpparser/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package org.example.httpparser; + +import org.jspecify.annotations.NullMarked; \ No newline at end of file From 909ec9ba941dc20bf195fab6d7a8a7431cf96da1 Mon Sep 17 00:00:00 2001 From: Martin Karlsson Date: Mon, 2 Mar 2026 01:38:06 +0100 Subject: [PATCH 06/16] - Added @NullMarked to src/main/java/org/example/server package - Checked all files for handling null return values --- src/main/java/org/example/server/package-info.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/main/java/org/example/server/package-info.java diff --git a/src/main/java/org/example/server/package-info.java b/src/main/java/org/example/server/package-info.java new file mode 100644 index 00000000..0b81fd98 --- /dev/null +++ b/src/main/java/org/example/server/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package org.example.server; + +import org.jspecify.annotations.NullMarked; \ No newline at end of file From dd3b25b98a092996ae73c5cbc76010e30539dce6 Mon Sep 17 00:00:00 2001 From: Martin Karlsson Date: Mon, 2 Mar 2026 01:45:54 +0100 Subject: [PATCH 07/16] - Added @NullMarked to src/test/java/org/example package - Checked all files for handling null return values --- src/test/java/org/example/package-info.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/test/java/org/example/package-info.java diff --git a/src/test/java/org/example/package-info.java b/src/test/java/org/example/package-info.java new file mode 100644 index 00000000..81843380 --- /dev/null +++ b/src/test/java/org/example/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package org.example; + +import org.jspecify.annotations.NullMarked; \ No newline at end of file From af6e41b62b18a83406d61b4fbae592a8ce162338 Mon Sep 17 00:00:00 2001 From: Martin Karlsson Date: Mon, 2 Mar 2026 01:48:13 +0100 Subject: [PATCH 08/16] - Added @NullMarked to src/test/java/org/example/config package - Checked ConfigLoaderTest for null handling --- src/test/java/org/example/config/package-info.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/test/java/org/example/config/package-info.java diff --git a/src/test/java/org/example/config/package-info.java b/src/test/java/org/example/config/package-info.java new file mode 100644 index 00000000..ef22a5c0 --- /dev/null +++ b/src/test/java/org/example/config/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package org.example.config; + +import org.jspecify.annotations.NullMarked; \ No newline at end of file From f2b29d9d998c620c089b514d2787ee9a6cd59b69 Mon Sep 17 00:00:00 2001 From: Martin Karlsson Date: Mon, 2 Mar 2026 02:26:00 +0100 Subject: [PATCH 09/16] - Added @NullMarked to src/test/java/org/example/filter package - Checked all tests for null handling - Marked body in HttpRequest parameters as nullable to satisfy tests in CompressionFilterTest. - Marked ip parameters for normalizeIp, addBlockedIp and addAllowedIp to be Nullable since they work as intended but warnings need to be suppressed. -Added @Nullable to request parameter for doFilter in LocaleFilter since it is handled. --- src/main/java/org/example/filter/IpFilter.java | 7 ++++--- src/main/java/org/example/filter/LocaleFilter.java | 3 ++- src/main/java/org/example/httpparser/HttpRequest.java | 4 +++- src/test/java/org/example/filter/package-info.java | 4 ++++ 4 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 src/test/java/org/example/filter/package-info.java diff --git a/src/main/java/org/example/filter/IpFilter.java b/src/main/java/org/example/filter/IpFilter.java index e9c877f2..64114211 100644 --- a/src/main/java/org/example/filter/IpFilter.java +++ b/src/main/java/org/example/filter/IpFilter.java @@ -3,6 +3,7 @@ import org.example.http.HttpResponseBuilder; import org.example.httpparser.HttpRequest; +import org.jspecify.annotations.Nullable; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -84,7 +85,7 @@ private boolean isIpAllowed(String ip) { * @param ip the IP address * @return the trimmed IP address, or {@code null} if the input is {@code null} */ - private String normalizeIp(String ip) { + private String normalizeIp(@Nullable String ip) { return ip == null ? null : ip.trim(); } @@ -92,14 +93,14 @@ public void setMode(FilterMode mode) { this.mode = mode; } - public void addBlockedIp(String ip) { + public void addBlockedIp(@Nullable String ip) { if (ip == null) { throw new IllegalArgumentException("IP address cannot be null"); } blockedIps.add(normalizeIp(ip)); } - public void addAllowedIp(String ip) { + public void addAllowedIp(@Nullable String ip) { if (ip == null) { throw new IllegalArgumentException("IP address cannot be null"); } diff --git a/src/main/java/org/example/filter/LocaleFilter.java b/src/main/java/org/example/filter/LocaleFilter.java index c02f634e..2e45c075 100644 --- a/src/main/java/org/example/filter/LocaleFilter.java +++ b/src/main/java/org/example/filter/LocaleFilter.java @@ -2,6 +2,7 @@ import org.example.http.HttpResponseBuilder; import org.example.httpparser.HttpRequest; +import org.jspecify.annotations.Nullable; import java.util.Map; @@ -26,7 +27,7 @@ public void init() { } @Override - public void doFilter(HttpRequest request, + public void doFilter(@Nullable HttpRequest request, HttpResponseBuilder response, FilterChain chain) { try { diff --git a/src/main/java/org/example/httpparser/HttpRequest.java b/src/main/java/org/example/httpparser/HttpRequest.java index 18f0e561..bd00fc83 100644 --- a/src/main/java/org/example/httpparser/HttpRequest.java +++ b/src/main/java/org/example/httpparser/HttpRequest.java @@ -1,5 +1,7 @@ package org.example.httpparser; +import org.jspecify.annotations.Nullable; + import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -22,7 +24,7 @@ public HttpRequest(String method, String path, String version, Map headers, - String body) { + @Nullable String body) { this.method = method; this.path = path; this.version = version; diff --git a/src/test/java/org/example/filter/package-info.java b/src/test/java/org/example/filter/package-info.java new file mode 100644 index 00000000..457b18e2 --- /dev/null +++ b/src/test/java/org/example/filter/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package org.example.filter; + +import org.jspecify.annotations.NullMarked; \ No newline at end of file From cb6d91ba0ed75837775dda952836f1a6e4c8b546 Mon Sep 17 00:00:00 2001 From: Martin Karlsson Date: Mon, 2 Mar 2026 02:32:53 +0100 Subject: [PATCH 10/16] - Added @NullMarked to src/test/java/org/example/http package - Checked all tests for null handling - Marked filename parameter in detectMimeType as Nullable since it's handled. --- src/main/java/org/example/http/MimeTypeDetector.java | 4 +++- src/test/java/org/example/http/package-info.java | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 src/test/java/org/example/http/package-info.java diff --git a/src/main/java/org/example/http/MimeTypeDetector.java b/src/main/java/org/example/http/MimeTypeDetector.java index 9005078a..48a1892e 100644 --- a/src/main/java/org/example/http/MimeTypeDetector.java +++ b/src/main/java/org/example/http/MimeTypeDetector.java @@ -1,5 +1,7 @@ package org.example.http; +import org.jspecify.annotations.Nullable; + import java.util.Map; /** @@ -56,7 +58,7 @@ private MimeTypeDetector() { */ - public static String detectMimeType(String filename) { + public static String detectMimeType(@Nullable String filename) { String octet = "application/octet-stream"; diff --git a/src/test/java/org/example/http/package-info.java b/src/test/java/org/example/http/package-info.java new file mode 100644 index 00000000..af2ca5fb --- /dev/null +++ b/src/test/java/org/example/http/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package org.example.http; + +import org.jspecify.annotations.NullMarked; \ No newline at end of file From 08bc34ca4399726a03be7a45304f631c95e0c6df Mon Sep 17 00:00:00 2001 From: Martin Karlsson Date: Mon, 2 Mar 2026 02:36:03 +0100 Subject: [PATCH 11/16] - Added @NullMarked to src/test/java/org/example/httpparser package - Checked all tests for null handling - Marked "in" parameter for setReader in HttpParser as nullable since it is handled. --- src/main/java/org/example/httpparser/HttpParser.java | 4 +++- src/test/java/org/example/httpparser/package-info.java | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 src/test/java/org/example/httpparser/package-info.java diff --git a/src/main/java/org/example/httpparser/HttpParser.java b/src/main/java/org/example/httpparser/HttpParser.java index d08a000b..cc044c78 100644 --- a/src/main/java/org/example/httpparser/HttpParser.java +++ b/src/main/java/org/example/httpparser/HttpParser.java @@ -1,5 +1,7 @@ package org.example.httpparser; +import org.jspecify.annotations.Nullable; + import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; @@ -13,7 +15,7 @@ public class HttpParser extends HttpParseRequestLine { private Map headersMap = new HashMap<>(); private BufferedReader reader; - public void setReader(InputStream in) { + public void setReader(@Nullable InputStream in) { if (this.reader == null) { this.reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8)); } diff --git a/src/test/java/org/example/httpparser/package-info.java b/src/test/java/org/example/httpparser/package-info.java new file mode 100644 index 00000000..7e93c6ac --- /dev/null +++ b/src/test/java/org/example/httpparser/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package org.example.httpparser; + +import org.jspecify.annotations.NullMarked; \ No newline at end of file From ef42e2943054dd22449c6f89e38a6b6b811b631d Mon Sep 17 00:00:00 2001 From: Martin Karlsson Date: Mon, 2 Mar 2026 02:56:17 +0100 Subject: [PATCH 12/16] - Added @NullMarked to src/test/java/org/example/server package - Checked ConfigurableFilterPipelineTest for null handling - Marked the routePatterns parameter in the FilterRegistration record in FilterRegistration.java since it is safely null handled. --- src/main/java/org/example/server/FilterRegistration.java | 3 ++- src/test/java/org/example/server/package-info.java | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 src/test/java/org/example/server/package-info.java diff --git a/src/main/java/org/example/server/FilterRegistration.java b/src/main/java/org/example/server/FilterRegistration.java index a9578161..ac9687e1 100644 --- a/src/main/java/org/example/server/FilterRegistration.java +++ b/src/main/java/org/example/server/FilterRegistration.java @@ -1,6 +1,7 @@ package org.example.server; import org.example.filter.Filter; +import org.jspecify.annotations.Nullable; import java.util.List; import java.util.Objects; @@ -8,7 +9,7 @@ public record FilterRegistration( Filter filter, int order, - List routePatterns + @Nullable List routePatterns ) { public FilterRegistration { filter = Objects.requireNonNull(filter, "filter must not be null"); diff --git a/src/test/java/org/example/server/package-info.java b/src/test/java/org/example/server/package-info.java new file mode 100644 index 00000000..0b81fd98 --- /dev/null +++ b/src/test/java/org/example/server/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package org.example.server; + +import org.jspecify.annotations.NullMarked; \ No newline at end of file From f6a17d1f2354bd660fe3f63fa2c5968ae00f2c3f Mon Sep 17 00:00:00 2001 From: Martin Karlsson Date: Mon, 2 Mar 2026 03:14:17 +0100 Subject: [PATCH 13/16] Applied suggested CodeRabbit fixes to Major Issues regarding null markings and null handling. --- src/main/java/org/example/filter/IpFilter.java | 2 +- src/main/java/org/example/httpparser/HttpParser.java | 2 +- src/main/java/org/example/httpparser/HttpRequest.java | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/example/filter/IpFilter.java b/src/main/java/org/example/filter/IpFilter.java index 64114211..f22c192a 100644 --- a/src/main/java/org/example/filter/IpFilter.java +++ b/src/main/java/org/example/filter/IpFilter.java @@ -85,7 +85,7 @@ private boolean isIpAllowed(String ip) { * @param ip the IP address * @return the trimmed IP address, or {@code null} if the input is {@code null} */ - private String normalizeIp(@Nullable String ip) { + private @Nullable String normalizeIp(@Nullable String ip) { return ip == null ? null : ip.trim(); } diff --git a/src/main/java/org/example/httpparser/HttpParser.java b/src/main/java/org/example/httpparser/HttpParser.java index cc044c78..dd812792 100644 --- a/src/main/java/org/example/httpparser/HttpParser.java +++ b/src/main/java/org/example/httpparser/HttpParser.java @@ -16,7 +16,7 @@ public class HttpParser extends HttpParseRequestLine { private BufferedReader reader; public void setReader(@Nullable InputStream in) { - if (this.reader == null) { + if (this.reader == null && in != null) { this.reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8)); } } diff --git a/src/main/java/org/example/httpparser/HttpRequest.java b/src/main/java/org/example/httpparser/HttpRequest.java index bd00fc83..2f467708 100644 --- a/src/main/java/org/example/httpparser/HttpRequest.java +++ b/src/main/java/org/example/httpparser/HttpRequest.java @@ -17,7 +17,7 @@ public class HttpRequest { private final String path; private final String version; private final Map headers; - private final String body; + private final @Nullable String body; private final Map attributes = new HashMap<>(); public HttpRequest(String method, @@ -40,7 +40,7 @@ public String getVersion() { return version; } public Map getHeaders() { return headers; } - public String getBody() { + public @Nullable String getBody() { return body; } public void setAttribute(String key, Object value) { attributes.put(key, value); From 45c3408d3608ad52c557a2a90ae71609f4184a6a Mon Sep 17 00:00:00 2001 From: Martin Karlsson Date: Mon, 2 Mar 2026 03:23:01 +0100 Subject: [PATCH 14/16] CodeRabbit test went against intended outcome of test. Rollbacked change to SetReader in HttpParser --- src/main/java/org/example/httpparser/HttpParser.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/example/httpparser/HttpParser.java b/src/main/java/org/example/httpparser/HttpParser.java index dd812792..70c2463c 100644 --- a/src/main/java/org/example/httpparser/HttpParser.java +++ b/src/main/java/org/example/httpparser/HttpParser.java @@ -15,8 +15,8 @@ public class HttpParser extends HttpParseRequestLine { private Map headersMap = new HashMap<>(); private BufferedReader reader; - public void setReader(@Nullable InputStream in) { - if (this.reader == null && in != null) { + public void setReader(InputStream in) { + if (this.reader == null) { this.reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8)); } } From 0648782d215491ac3a17f73f8d22d91f447fe8ba Mon Sep 17 00:00:00 2001 From: Martin Karlsson Date: Mon, 2 Mar 2026 16:54:11 +0100 Subject: [PATCH 15/16] - LocaleFilteR: Moved @Nullable from doFilter request parameter to resolveLocale request parameter since resolveLocale does the actual null handling. - Removed testParserThrowErrorWhenNull test since it is made redundant by jspecify null marking. --- src/main/java/org/example/filter/LocaleFilter.java | 4 ++-- src/main/java/org/example/httpparser/HttpParser.java | 2 -- .../org/example/httpparser/HttpParseRequestLineTest.java | 7 ------- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/example/filter/LocaleFilter.java b/src/main/java/org/example/filter/LocaleFilter.java index 2e45c075..b478a777 100644 --- a/src/main/java/org/example/filter/LocaleFilter.java +++ b/src/main/java/org/example/filter/LocaleFilter.java @@ -27,7 +27,7 @@ public void init() { } @Override - public void doFilter(@Nullable HttpRequest request, + public void doFilter(HttpRequest request, HttpResponseBuilder response, FilterChain chain) { try { @@ -59,7 +59,7 @@ public static String getCurrentLocale() { * The first language tag is used, and any optional quality value (e.g., ";q=0.9") is stripped. * If the request itself is null, the default locale is also returned. */ - private String resolveLocale(HttpRequest request) { + private String resolveLocale(@Nullable HttpRequest request) { if (request == null) { return DEFAULT_LOCALE; diff --git a/src/main/java/org/example/httpparser/HttpParser.java b/src/main/java/org/example/httpparser/HttpParser.java index 70c2463c..d08a000b 100644 --- a/src/main/java/org/example/httpparser/HttpParser.java +++ b/src/main/java/org/example/httpparser/HttpParser.java @@ -1,7 +1,5 @@ package org.example.httpparser; -import org.jspecify.annotations.Nullable; - import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; diff --git a/src/test/java/org/example/httpparser/HttpParseRequestLineTest.java b/src/test/java/org/example/httpparser/HttpParseRequestLineTest.java index 8ff289f3..cd812e1b 100644 --- a/src/test/java/org/example/httpparser/HttpParseRequestLineTest.java +++ b/src/test/java/org/example/httpparser/HttpParseRequestLineTest.java @@ -6,7 +6,6 @@ import java.io.*; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; -import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy; import static org.junit.jupiter.api.Assertions.*; class HttpParseRequestLineTest { @@ -30,12 +29,6 @@ void testParserWithTestRequestLine() throws IOException { assertThat(httpParseRequestLine.getVersion()).isEqualTo("HTTP/1.1"); } - @Test - void testParserThrowErrorWhenNull(){ - assertThatThrownBy(() -> httpParseRequestLine.setReader(null)).isInstanceOf(NullPointerException.class); - } - - @Test void testParserThrowErrorWhenEmpty(){ InputStream in = new ByteArrayInputStream("".getBytes()); From 48bf90bacbc0e021d38da7460d2daf71daf5b07f Mon Sep 17 00:00:00 2001 From: Martin Karlsson Date: Mon, 2 Mar 2026 17:36:21 +0100 Subject: [PATCH 16/16] - Fixed compilation errors. - Tests and compilation run without issue on my local setup now. --- src/main/java/org/example/filter/CompressionFilter.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/example/filter/CompressionFilter.java b/src/main/java/org/example/filter/CompressionFilter.java index 7525057c..415e3744 100644 --- a/src/main/java/org/example/filter/CompressionFilter.java +++ b/src/main/java/org/example/filter/CompressionFilter.java @@ -3,6 +3,7 @@ import com.aayushatharva.brotli4j.Brotli4jLoader; import org.example.http.HttpResponseBuilder; import org.example.httpparser.HttpRequest; +import com.aayushatharva.brotli4j.encoder.Encoder; import org.jspecify.annotations.Nullable; import java.io.ByteArrayOutputStream;