Suggestion: Add null message for HttpRequest.Builder POST()
Hyunsu Eun
ehs122100 at gmail.com
Sat Nov 1 19:14:38 UTC 2025
Hello,
While reviewing the implementation of java.net.http.HttpRequest.Builder,
I noticed a small inconsistency in how null arguments are handled.
Currently, when calling POST(null), a plain NullPointerException is thrown
without any descriptive message.
Example:
HttpRequest.newBuilder()
.uri(URI.create(“https://example.com”))
.POST(null)
.build();
This produces the following stack trace:
Exception in thread “main” java.lang.NullPointerException
at java.base/java.util.Objects.requireNonNull(Objects.java:220)
at java.net.http/jdk.internal.net.http.HttpRequestBuilderImpl.POST(HttpRequestBuilderImpl.java:180)
at org.example.Main.main(Main.java:17)
Although the cause can be inferred from Main.java:17,
the exception message itself does not clearly indicate which argument was null.
In contrast, the uri(URI) method in the same class uses
requireNonNull(uri, "uri must be non-null"),
which provides a clear and descriptive message when the argument is null.
I understand that URI is a mandatory field for every request,
while the BodyPublisher might be optional.
However, since passing a null body to POST, PUT, or
method(String, BodyPublisher) is almost always unintentional,
it may be helpful to include a similar message for these methods as well.
For example,
requireNonNull(body, "BodyPublisher must be non-null");
Adding such a message would improve clarity and consistency
with other null checks already present in this class.
I have searched for existing issues related to this behavior
but was unable to find any.
If I have overlooked something or if this suggestion is inappropriate,
please feel free to let me know.
If the proposal sounds reasonable,
I would be happy to prepare a patch and contribute it.
Thank you for your time and consideration.
Best regards,
Hyunsu Eun
GitHub: https://github.com/ehs208
More information about the net-dev
mailing list