diff --git a/pom.xml b/pom.xml
index 6ca40eba5c..f440186e07 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-commons
- 2.1.0.BUILD-SNAPSHOT
+ 2.1.0.DATACMNS-1259-SNAPSHOT
Spring Data Core
diff --git a/src/main/java/org/springframework/data/auditing/DefaultAuditableBeanWrapperFactory.java b/src/main/java/org/springframework/data/auditing/DefaultAuditableBeanWrapperFactory.java
index ad58e5828e..3ce3db733a 100644
--- a/src/main/java/org/springframework/data/auditing/DefaultAuditableBeanWrapperFactory.java
+++ b/src/main/java/org/springframework/data/auditing/DefaultAuditableBeanWrapperFactory.java
@@ -19,6 +19,7 @@
import lombok.RequiredArgsConstructor;
import java.lang.reflect.Field;
+import java.time.Instant;
import java.time.LocalDateTime;
import java.time.temporal.TemporalAccessor;
import java.util.Calendar;
@@ -42,6 +43,7 @@
*
* @author Oliver Gierke
* @author Christoph Strobl
+ * @author Jens Schauder
* @since 1.5
*/
class DefaultAuditableBeanWrapperFactory implements AuditableBeanWrapperFactory {
@@ -111,7 +113,7 @@ public Object setCreatedBy(Object value) {
public TemporalAccessor setCreatedDate(TemporalAccessor value) {
auditable.setCreatedDate(
- getAsTemporalAccessor(Optional.of(value), type).orElseThrow(() -> new IllegalStateException()));
+ getAsTemporalAccessor(Optional.of(value), type).orElseThrow(IllegalStateException::new));
return value;
}
@@ -145,7 +147,7 @@ public Optional getLastModifiedDate() {
public TemporalAccessor setLastModifiedDate(TemporalAccessor value) {
auditable.setLastModifiedDate(
- getAsTemporalAccessor(Optional.of(value), type).orElseThrow(() -> new IllegalStateException()));
+ getAsTemporalAccessor(Optional.of(value), type).orElseThrow(IllegalStateException::new));
return value;
}
@@ -207,8 +209,7 @@ protected Object getDateValueToSet(TemporalAccessor value, Class> targetType,
return conversionService.convert(date, targetType);
}
- throw new IllegalArgumentException(String.format("Invalid date type for member %s! Supported types are %s.",
- source, AnnotationAuditingMetadata.SUPPORTED_DATE_TYPES));
+ throw new IllegalArgumentException(createUnsupportedTypeErrorMessage(source));
}
/**
@@ -219,7 +220,7 @@ protected Object getDateValueToSet(TemporalAccessor value, Class> targetType,
* @return
*/
@SuppressWarnings("unchecked")
- protected Optional getAsTemporalAccessor(Optional extends Object> source,
+ protected Optional getAsTemporalAccessor(Optional> source,
Class extends T> target) {
return source.map(it -> {
@@ -228,19 +229,24 @@ protected Optional getAsTemporalAccessor(Optiona
return (T) it;
}
- Class> typeToConvertTo = Stream.of(target, LocalDateTime.class)//
+ Class> typeToConvertTo = Stream.of(target, Instant.class)//
.filter(type -> target.isAssignableFrom(type))//
.filter(type -> conversionService.canConvert(it.getClass(), type))//
.findFirst()
.orElseThrow(() -> new IllegalArgumentException(
- String.format("Invalid date type for member %s! Supported types are %s.", source,
- AnnotationAuditingMetadata.SUPPORTED_DATE_TYPES)));
+ createUnsupportedTypeErrorMessage(((Optional