Avoid NPE; just noop

This commit is contained in:
2024-04-18 15:43:44 -05:00
parent d40a466d16
commit 66cf485c41
2 changed files with 37 additions and 6 deletions

View File

@ -94,6 +94,12 @@ public class DateTimeDisplayValueBehavior implements FieldDisplayBehavior<DateTi
try
{
Instant instant = record.getValueInstant(field.getName());
if(instant == null)
{
continue;
}
ZonedDateTime zonedDateTime = instant.atZone(ZoneId.of(defaultZoneId));
record.setDisplayValue(field.getName(), QValueFormatter.formatDateTimeWithZone(zonedDateTime));
}
@ -116,6 +122,11 @@ public class DateTimeDisplayValueBehavior implements FieldDisplayBehavior<DateTi
try
{
Instant instant = record.getValueInstant(field.getName());
if(instant == null)
{
continue;
}
String zoneString = record.getValueString(zoneIdFromFieldName);
ZoneId zoneId = null;

View File

@ -101,6 +101,7 @@ class DateTimeDisplayValueBehaviorTest extends BaseTest
}
/*******************************************************************************
**
*******************************************************************************/
@ -124,6 +125,25 @@ class DateTimeDisplayValueBehaviorTest extends BaseTest
/*******************************************************************************
**
*******************************************************************************/
@Test
void testNullValue()
{
QInstance qInstance = QContext.getQInstance();
QTableMetaData table = qInstance.getTable(TestUtils.TABLE_NAME_PERSON_MEMORY);
table.withField(new QFieldMetaData("timeZone", QFieldType.STRING));
table.getField("createDate").withBehavior(new DateTimeDisplayValueBehavior().withZoneIdFromFieldName("timeZone"));
QRecord record = new QRecord().withValue("createDate", null).withValue("timeZone", "UTC");
ValueBehaviorApplier.applyFieldBehaviors(ValueBehaviorApplier.Action.FORMATTING, qInstance, table, List.of(record), null);
assertNull(record.getDisplayValue("createDate"));
}
/*******************************************************************************
**
*******************************************************************************/