diff --git a/spring-web/src/main/java/org/springframework/http/ProblemDetail.java b/spring-web/src/main/java/org/springframework/http/ProblemDetail.java index 617c4fd684d7..3c58ba2a593d 100644 --- a/spring-web/src/main/java/org/springframework/http/ProblemDetail.java +++ b/spring-web/src/main/java/org/springframework/http/ProblemDetail.java @@ -55,10 +55,8 @@ public class ProblemDetail implements Serializable { private static final long serialVersionUID = 3307761915842206538L; - private static final URI BLANK_TYPE = URI.create("about:blank"); - - private URI type = BLANK_TYPE; + private @Nullable URI type; private @Nullable String title; @@ -104,18 +102,17 @@ protected ProblemDetail() { /** * Setter for the {@link #getType() problem type}. - *

By default, this is {@link #BLANK_TYPE}. + *

By default, this is not set. According to the spec, when not present, its value is assumed to be "about:blank" * @param type the problem type */ - public void setType(URI type) { - Assert.notNull(type, "'type' is required"); + public void setType(@Nullable URI type) { this.type = type; } /** * Return the configured {@link #setType(URI) problem type}. */ - public URI getType() { + public @Nullable URI getType() { return this.type; } @@ -245,7 +242,7 @@ public void setProperties(@Nullable Map properties) { @Override public boolean equals(@Nullable Object other) { return (this == other || (other instanceof ProblemDetail that && - getType().equals(that.getType()) && + ObjectUtils.nullSafeEquals(getType(), that.getType()) && ObjectUtils.nullSafeEquals(getTitle(), that.getTitle()) && this.status == that.status && ObjectUtils.nullSafeEquals(this.detail, that.detail) &&