diff --git a/src/main/java/org/springframework/data/auditing/DefaultAuditableBeanWrapperFactory.java b/src/main/java/org/springframework/data/auditing/DefaultAuditableBeanWrapperFactory.java index 3ce3db733..3efda1826 100644 --- a/src/main/java/org/springframework/data/auditing/DefaultAuditableBeanWrapperFactory.java +++ b/src/main/java/org/springframework/data/auditing/DefaultAuditableBeanWrapperFactory.java @@ -20,7 +20,6 @@ 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; import java.util.Date; @@ -112,8 +111,7 @@ class DefaultAuditableBeanWrapperFactory implements AuditableBeanWrapperFactory @Override public TemporalAccessor setCreatedDate(TemporalAccessor value) { - auditable.setCreatedDate( - getAsTemporalAccessor(Optional.of(value), type).orElseThrow(IllegalStateException::new)); + auditable.setCreatedDate(getAsTemporalAccessor(Optional.of(value), type).orElseThrow(IllegalStateException::new)); return value; } @@ -146,8 +144,8 @@ class DefaultAuditableBeanWrapperFactory implements AuditableBeanWrapperFactory @Override public TemporalAccessor setLastModifiedDate(TemporalAccessor value) { - auditable.setLastModifiedDate( - getAsTemporalAccessor(Optional.of(value), type).orElseThrow(IllegalStateException::new)); + auditable + .setLastModifiedDate(getAsTemporalAccessor(Optional.of(value), type).orElseThrow(IllegalStateException::new)); return value; } @@ -209,7 +207,7 @@ class DefaultAuditableBeanWrapperFactory implements AuditableBeanWrapperFactory return conversionService.convert(date, targetType); } - throw new IllegalArgumentException(createUnsupportedTypeErrorMessage(source)); + throw rejectUnsupportedType(source); } /** @@ -232,19 +230,17 @@ class DefaultAuditableBeanWrapperFactory implements AuditableBeanWrapperFactory Class typeToConvertTo = Stream.of(target, Instant.class)// .filter(type -> target.isAssignableFrom(type))// .filter(type -> conversionService.canConvert(it.getClass(), type))// - .findFirst() - .orElseThrow(() -> new IllegalArgumentException( - createUnsupportedTypeErrorMessage(((Optional)source).orElseGet(() -> source)))); + .findFirst() // + .orElseThrow(() -> rejectUnsupportedType(source.map(Object.class::cast).orElseGet(() -> source))); return (T) conversionService.convert(it, typeToConvertTo); }); } } - private static String createUnsupportedTypeErrorMessage(Object source) { - - return String.format("Invalid date type %s for member %s! Supported types are %s.", source.getClass(), source, - AnnotationAuditingMetadata.SUPPORTED_DATE_TYPES); + private static IllegalArgumentException rejectUnsupportedType(Object source) { + return new IllegalArgumentException(String.format("Invalid date type %s for member %s! Supported types are %s.", + source.getClass(), source, AnnotationAuditingMetadata.SUPPORTED_DATE_TYPES)); } /** diff --git a/src/main/java/org/springframework/data/convert/JodaTimeConverters.java b/src/main/java/org/springframework/data/convert/JodaTimeConverters.java index 090f04258..56e4ce6ea 100644 --- a/src/main/java/org/springframework/data/convert/JodaTimeConverters.java +++ b/src/main/java/org/springframework/data/convert/JodaTimeConverters.java @@ -22,12 +22,10 @@ import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.List; -import java.util.TimeZone; import javax.annotation.Nonnull; import org.joda.time.DateTime; -import org.joda.time.DateTimeZone; import org.joda.time.LocalDate; import org.joda.time.LocalDateTime; import org.springframework.core.convert.converter.Converter; diff --git a/src/test/java/org/springframework/data/auditing/MappingAuditableBeanWrapperFactoryUnitTests.java b/src/test/java/org/springframework/data/auditing/MappingAuditableBeanWrapperFactoryUnitTests.java index 032f347b1..7ab9c7924 100755 --- a/src/test/java/org/springframework/data/auditing/MappingAuditableBeanWrapperFactoryUnitTests.java +++ b/src/test/java/org/springframework/data/auditing/MappingAuditableBeanWrapperFactoryUnitTests.java @@ -193,22 +193,21 @@ public class MappingAuditableBeanWrapperFactoryUnitTests { }); } - private AbstractLongAssert compareTemporalAccessors(TemporalAccessor expected, TemporalAccessor actual) { + private static AbstractLongAssert compareTemporalAccessors(TemporalAccessor expected, TemporalAccessor actual) { long actualSeconds = getInstantSeconds(actual); long expectedSeconds = getInstantSeconds(expected); - return assertThat(actualSeconds).describedAs("Difference is %s", actualSeconds - expectedSeconds) + return assertThat(actualSeconds) // + .describedAs("Difference is %s", actualSeconds - expectedSeconds) // .isEqualTo(expectedSeconds); } - private long getInstantSeconds(TemporalAccessor actual) { + private static long getInstantSeconds(TemporalAccessor actual) { - if (actual instanceof LocalDateTime) { - return getInstantSeconds(((LocalDateTime) actual).atZone(ZoneOffset.systemDefault())); - } - - return actual.getLong(ChronoField.INSTANT_SECONDS); + return actual instanceof LocalDateTime // + ? getInstantSeconds(((LocalDateTime) actual).atZone(ZoneOffset.systemDefault())) // + : actual.getLong(ChronoField.INSTANT_SECONDS); } static class Sample {