mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 05:01:07 +00:00
Avoid NPE; just noop
This commit is contained in:
@ -93,7 +93,13 @@ public class DateTimeDisplayValueBehavior implements FieldDisplayBehavior<DateTi
|
||||
{
|
||||
try
|
||||
{
|
||||
Instant instant = record.getValueInstant(field.getName());
|
||||
Instant instant = record.getValueInstant(field.getName());
|
||||
|
||||
if(instant == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
ZonedDateTime zonedDateTime = instant.atZone(ZoneId.of(defaultZoneId));
|
||||
record.setDisplayValue(field.getName(), QValueFormatter.formatDateTimeWithZone(zonedDateTime));
|
||||
}
|
||||
@ -115,8 +121,13 @@ public class DateTimeDisplayValueBehavior implements FieldDisplayBehavior<DateTi
|
||||
{
|
||||
try
|
||||
{
|
||||
Instant instant = record.getValueInstant(field.getName());
|
||||
String zoneString = record.getValueString(zoneIdFromFieldName);
|
||||
Instant instant = record.getValueInstant(field.getName());
|
||||
if(instant == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
String zoneString = record.getValueString(zoneIdFromFieldName);
|
||||
|
||||
ZoneId zoneId = null;
|
||||
if(StringUtils.hasContent(zoneString))
|
||||
@ -131,7 +142,7 @@ public class DateTimeDisplayValueBehavior implements FieldDisplayBehavior<DateTi
|
||||
// we probably(?) don't need a stack trace here (and it could get noisy?), so just info w/ the exception message... //
|
||||
// and we expect this might be somewhat frequent, if you might have invalid values in your zoneId field... //
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
LOG.info("Exception applying zoneIdFromFieldName behavior", logPair("message", e.getMessage()), logPair("table", table.getName()), logPair("field", field.getName()), logPair("id", record.getValue(table.getPrimaryKeyField())));
|
||||
LOG.info("Exception applying zoneIdFromFieldName behavior", logPair("message", e.getMessage()), logPair("table", table.getName()), logPair("field", field.getName()), logPair("id", record.getValue(table.getPrimaryKeyField())));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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"));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
@ -131,8 +151,8 @@ class DateTimeDisplayValueBehaviorTest extends BaseTest
|
||||
void testValidation()
|
||||
{
|
||||
QInstance qInstance = QContext.getQInstance();
|
||||
QTableMetaData table = qInstance.getTable(TestUtils.TABLE_NAME_PERSON_MEMORY);
|
||||
QFieldMetaData field = table.getField("createDate");
|
||||
QTableMetaData table = qInstance.getTable(TestUtils.TABLE_NAME_PERSON_MEMORY);
|
||||
QFieldMetaData field = table.getField("createDate");
|
||||
table.withField(new QFieldMetaData("timeZone", QFieldType.STRING));
|
||||
|
||||
Function<Consumer<DateTimeDisplayValueBehavior>, List<String>> testOne = setup ->
|
||||
|
Reference in New Issue
Block a user