Если клиент делает запрос на ресурс и задает заголовок If-Modified-Since
, когда отображаемый объект не имеет каких-либо аннотаций аудита JPA Spring Data (@CreatedBy
, @LastModifiedBy
, @CreatedDate
, @LastModifiedDate
), то это, как представляется, приведет к исключению нулевого указателя в классе org.springframework.data.rest.webmvc.HttpHeadersPreparer:Spring Data Rest: Null Pointer If-Modified-Since Header Present и Resource Not Auditable
public boolean isObjectStillValid(Object source, HttpHeaders headers) {
Assert.notNull(source, "Source object must not be null!");
Assert.notNull(headers, "HttpHeaders must not be null!");
if (headers.getIfModifiedSince() == -1) {
return false;
}
//THE WRAPPER IS NULL IF NO AUDITING ANNOTATIONS PRESENT
AuditableBeanWrapper wrapper = auditableBeanWrapperFactory.getBeanWrapperFor(source);
long current = wrapper.getLastModifiedDate().getTimeInMillis()/1000 * 1000;
return current <= headers.getIfModifiedSince();
}
Является ли это ошибка, и короткие добавления поле для Entity, чтобы предотвратить это, есть ли какой-либо другой workround.