DBZ-1149 Ensure consistent Java types for fallback values when converting

This commit is contained in:
Keith Barber 2019-02-16 09:26:04 -08:00 committed by Gunnar Morling
parent 4698cde5bb
commit 95b2290df2
2 changed files with 9 additions and 4 deletions

View File

@ -487,7 +487,7 @@ protected Object convertBits(Column column, Field fieldDefn, Object data, int nu
}
protected Object convertMoney(Column column, Field fieldDefn, Object data) {
return convertValue(column, fieldDefn, data, 0L, (r) -> {
return convertValue(column, fieldDefn, data, BigDecimal.ZERO, (r) -> {
if (data instanceof Double) {
r.deliver(BigDecimal.valueOf((Double) data));
}

View File

@ -352,7 +352,10 @@ protected ValueConverter convertBits(Column column, Field fieldDefn) {
*/
protected Object convertTimestampWithZone(Column column, Field fieldDefn, Object data) {
// epoch is the fallback value
return convertValue(column, fieldDefn, data, OffsetDateTime.of(LocalDate.ofEpochDay(0), LocalTime.MIDNIGHT, defaultOffset), (r) -> {
String fallback = ZonedTimestamp.toIsoString(OffsetDateTime.of(LocalDate.ofEpochDay(0), LocalTime.MIDNIGHT, defaultOffset),
defaultOffset, adjuster);
return convertValue(column, fieldDefn, data, fallback, (r) -> {
try {
r.deliver(ZonedTimestamp.toIsoString(data, defaultOffset, adjuster));
} catch (IllegalArgumentException e) {
@ -378,7 +381,9 @@ protected Object convertTimestampWithZone(Column column, Field fieldDefn, Object
*/
protected Object convertTimeWithZone(Column column, Field fieldDefn, Object data) {
// epoch is the fallback value
return convertValue(column, fieldDefn, data, OffsetTime.of(LocalTime.MIDNIGHT, defaultOffset), (r) -> {
String fallback = ZonedTime.toIsoString(OffsetTime.of(LocalTime.MIDNIGHT, defaultOffset), defaultOffset, adjuster);
return convertValue(column, fieldDefn, data, fallback, (r) -> {
try {
r.deliver(ZonedTime.toIsoString(data, defaultOffset, adjuster));
} catch (IllegalArgumentException e) {
@ -1001,7 +1006,7 @@ else if (data instanceof BitSet) {
* @throws IllegalArgumentException if the value could not be converted but the column does not allow nulls
*/
protected Object convertBits(Column column, Field fieldDefn, Object data, int numBytes) {
return convertValue(column, fieldDefn, data, false, (r) -> {
return convertValue(column, fieldDefn, data, new byte[0], (r) -> {
if (data instanceof Boolean) {
Boolean value = (Boolean) data;
r.deliver(new byte[] { value.booleanValue() ? (byte) 1 : (byte) 0 });