Add @Nullable to ProblemDetail.setProperty argument
See gh-29868
This commit is contained in:
parent
b578ff1296
commit
aa9f445422
|
|
@ -209,7 +209,7 @@ public class ProblemDetail {
|
|||
* @param value the property value
|
||||
* @see org.springframework.http.converter.json.ProblemDetailJacksonMixin
|
||||
*/
|
||||
public void setProperty(String name, Object value) {
|
||||
public void setProperty(String name, @Nullable Object value) {
|
||||
this.properties = (this.properties != null ? this.properties : new LinkedHashMap<>());
|
||||
this.properties.put(name, value);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonAnySetter;
|
|||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
|
||||
import org.springframework.http.ProblemDetail;
|
||||
import org.springframework.lang.Nullable;
|
||||
|
||||
import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY;
|
||||
|
||||
|
|
@ -46,7 +47,7 @@ import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY;
|
|||
public interface ProblemDetailJacksonMixin {
|
||||
|
||||
@JsonAnySetter
|
||||
void setProperty(String name, Object value);
|
||||
void setProperty(String name, @Nullable Object value);
|
||||
|
||||
@JsonAnyGetter
|
||||
Map<String, Object> getProperties();
|
||||
|
|
|
|||
|
|
@ -52,13 +52,15 @@ public class ProblemDetailJacksonMixinTests {
|
|||
void writeCustomProperty() throws Exception {
|
||||
ProblemDetail problemDetail = ProblemDetail.forStatusAndDetail(HttpStatus.BAD_REQUEST, "Missing header");
|
||||
problemDetail.setProperty("host", "abc.org");
|
||||
problemDetail.setProperty("user", null);
|
||||
|
||||
testWrite(problemDetail,
|
||||
"{\"type\":\"about:blank\"," +
|
||||
"\"title\":\"Bad Request\"," +
|
||||
"\"status\":400," +
|
||||
"\"detail\":\"Missing header\"," +
|
||||
"\"host\":\"abc.org\"}");
|
||||
"\"host\":\"abc.org\"," +
|
||||
"\"user\":null}");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -68,13 +70,15 @@ public class ProblemDetailJacksonMixinTests {
|
|||
"\"title\":\"Bad Request\"," +
|
||||
"\"status\":400," +
|
||||
"\"detail\":\"Missing header\"," +
|
||||
"\"host\":\"abc.org\"}", ProblemDetail.class);
|
||||
"\"host\":\"abc.org\"," +
|
||||
"\"user\":null}", ProblemDetail.class);
|
||||
|
||||
assertThat(problemDetail.getType()).isEqualTo(URI.create("about:blank"));
|
||||
assertThat(problemDetail.getTitle()).isEqualTo("Bad Request");
|
||||
assertThat(problemDetail.getStatus()).isEqualTo(HttpStatus.BAD_REQUEST.value());
|
||||
assertThat(problemDetail.getDetail()).isEqualTo("Missing header");
|
||||
assertThat(problemDetail.getProperties()).containsEntry("host", "abc.org");
|
||||
assertThat(problemDetail.getProperties()).containsEntry("user", null);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue