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