CE-938 Adding some null-tolerance

This commit is contained in:
2024-05-22 12:05:26 -05:00
parent 610915bf94
commit 94bf10fe6e

View File

@ -217,12 +217,17 @@ public class ProcessLockUtils
*******************************************************************************/ *******************************************************************************/
public static ProcessLock getById(Integer id) throws QException public static ProcessLock getById(Integer id) throws QException
{ {
if(id == null)
{
return (null);
}
QRecord existingLockRecord = new GetAction().executeForRecord(new GetInput(ProcessLock.TABLE_NAME).withPrimaryKey(id)); QRecord existingLockRecord = new GetAction().executeForRecord(new GetInput(ProcessLock.TABLE_NAME).withPrimaryKey(id));
if(existingLockRecord != null) if(existingLockRecord != null)
{ {
return (new ProcessLock(existingLockRecord)); return (new ProcessLock(existingLockRecord));
} }
return null; return (null);
} }
@ -230,27 +235,40 @@ public class ProcessLockUtils
/******************************************************************************* /*******************************************************************************
** **
*******************************************************************************/ *******************************************************************************/
public static void checkIn(ProcessLock processLock) throws QException public static void checkIn(ProcessLock processLock)
{ {
ProcessLockType lockType = getProcessLockTypeById(processLock.getProcessLockTypeId()); try
if(lockType == null)
{ {
throw (new QException("Unrecognized process lock type id: " + processLock.getProcessLockTypeId())); if(processLock == null)
{
LOG.debug("Null processLock passed in - will not checkin.");
return;
}
ProcessLockType lockType = getProcessLockTypeById(processLock.getProcessLockTypeId());
if(lockType == null)
{
throw (new QException("Unrecognized process lock type id: " + processLock.getProcessLockTypeId()));
}
Instant now = Instant.now();
QRecord recordToUpdate = new QRecord()
.withValue("id", processLock.getId())
.withValue("checkInTimestamp", now);
Integer defaultExpirationSeconds = lockType.getDefaultExpirationSeconds();
if(defaultExpirationSeconds != null)
{
recordToUpdate.setValue("expiresAtTimestamp", now.plusSeconds(defaultExpirationSeconds));
}
new UpdateAction().execute(new UpdateInput(ProcessLock.TABLE_NAME).withRecord(recordToUpdate));
LOG.debug("Updated processLock checkInTimestamp", logPair("id", processLock.getId()), logPair("checkInTimestamp", now));
} }
catch(Exception e)
Instant now = Instant.now();
QRecord recordToUpdate = new QRecord()
.withValue("id", processLock.getId())
.withValue("checkInTimestamp", now);
Integer defaultExpirationSeconds = lockType.getDefaultExpirationSeconds();
if(defaultExpirationSeconds != null)
{ {
recordToUpdate.setValue("expiresAtTimestamp", now.plusSeconds(defaultExpirationSeconds)); LOG.warn("Error checking-in on process lock", e, logPair("processLockId", () -> processLock.getId()));
} }
new UpdateAction().execute(new UpdateInput(ProcessLock.TABLE_NAME).withRecord(recordToUpdate));
LOG.debug("Updated processLock checkInTimestamp", logPair("id", processLock.getId()), logPair("checkInTimestamp", now));
} }