Fix ClassCastException for LocalDateTime (#13425)
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
This commit is contained in:
@@ -583,8 +583,14 @@ public class JdbcBaseDAO {
|
|||||||
return ((Number) v).longValue();
|
return ((Number) v).longValue();
|
||||||
} else if (v instanceof java.sql.Date) {
|
} else if (v instanceof java.sql.Date) {
|
||||||
return ((java.sql.Date) v).getTime();
|
return ((java.sql.Date) v).getTime();
|
||||||
|
} else if (v instanceof LocalDateTime) {
|
||||||
|
return ((LocalDateTime) v).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
|
||||||
|
} else if (v instanceof Instant) {
|
||||||
|
return ((Instant) v).toEpochMilli();
|
||||||
|
} else if (v instanceof java.sql.Timestamp) {
|
||||||
|
return ((java.sql.Timestamp) v).getTime();
|
||||||
}
|
}
|
||||||
return ((java.sql.Timestamp) v).getTime();
|
throw new UnsupportedOperationException("Date of type " + v.getClass().getName() + " is not supported");
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Integer objectAsInteger(Object v) {
|
protected Integer objectAsInteger(Object v) {
|
||||||
|
|||||||
@@ -89,6 +89,11 @@ public class JdbcBaseDAOTest {
|
|||||||
assertInstanceOf(DateTimeType.class, dateTimeType);
|
assertInstanceOf(DateTimeType.class, dateTimeType);
|
||||||
assertThat(dateTimeType, is(DateTimeType.valueOf("2021-02-01T23:30:02.049")));
|
assertThat(dateTimeType, is(DateTimeType.valueOf("2021-02-01T23:30:02.049")));
|
||||||
|
|
||||||
|
dateTimeType = jdbcBaseDAO.objectAsState(new DateTimeItem("testDateTimeItem"), null,
|
||||||
|
LocalDateTime.parse("2021-02-01T23:30:02.049"));
|
||||||
|
assertInstanceOf(DateTimeType.class, dateTimeType);
|
||||||
|
assertThat(dateTimeType, is(DateTimeType.valueOf("2021-02-01T23:30:02.049")));
|
||||||
|
|
||||||
State hsbType = jdbcBaseDAO.objectAsState(new ColorItem("testColorItem"), null, "184,100,52");
|
State hsbType = jdbcBaseDAO.objectAsState(new ColorItem("testColorItem"), null, "184,100,52");
|
||||||
assertInstanceOf(HSBType.class, hsbType);
|
assertInstanceOf(HSBType.class, hsbType);
|
||||||
assertThat(hsbType, is(HSBType.valueOf("184,100,52")));
|
assertThat(hsbType, is(HSBType.valueOf("184,100,52")));
|
||||||
|
|||||||
Reference in New Issue
Block a user