From f879575b323260d3ede00ab7d82d03936f9e8eaa Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Mon, 8 Jan 2024 14:16:59 -0600 Subject: [PATCH] CE-781 Gracefully ignore request to add null uniqueKey or recordSecurityLock --- .../model/metadata/tables/QTableMetaData.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/QTableMetaData.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/QTableMetaData.java index 508b2b38..fac05aaa 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/QTableMetaData.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/QTableMetaData.java @@ -34,6 +34,7 @@ import java.util.Optional; import java.util.Set; import com.kingsrook.qqq.backend.core.actions.customizers.TableCustomizers; import com.kingsrook.qqq.backend.core.exceptions.QException; +import com.kingsrook.qqq.backend.core.logging.QLogger; import com.kingsrook.qqq.backend.core.model.data.QRecordEntity; import com.kingsrook.qqq.backend.core.model.data.QRecordEntityField; import com.kingsrook.qqq.backend.core.model.metadata.QBackendMetaData; @@ -49,6 +50,7 @@ import com.kingsrook.qqq.backend.core.model.metadata.permissions.QPermissionRule import com.kingsrook.qqq.backend.core.model.metadata.security.RecordSecurityLock; import com.kingsrook.qqq.backend.core.model.metadata.tables.automation.QTableAutomationDetails; import com.kingsrook.qqq.backend.core.model.metadata.tables.cache.CacheOf; +import static com.kingsrook.qqq.backend.core.logging.LogUtils.logPair; /******************************************************************************* @@ -57,6 +59,8 @@ import com.kingsrook.qqq.backend.core.model.metadata.tables.cache.CacheOf; *******************************************************************************/ public class QTableMetaData implements QAppChildMetaData, Serializable, MetaDataWithPermissionRules, TopLevelMetaDataInterface { + private static final QLogger LOG = QLogger.getLogger(QTableMetaData.class); + private String name; private String label; @@ -813,6 +817,15 @@ public class QTableMetaData implements QAppChildMetaData, Serializable, MetaData *******************************************************************************/ public QTableMetaData withUniqueKey(UniqueKey uniqueKey) { + //////////////////////////////////////////////////////////////////////////////////// + // you can't add a null key, so, if someone tried, just gracefully return w/ noop // + //////////////////////////////////////////////////////////////////////////////////// + if(uniqueKey == null) + { + LOG.debug("Skipping request to add null uniqueKey", logPair("tableName", name)); + return (this); + } + if(this.uniqueKeys == null) { this.uniqueKeys = new ArrayList<>(); @@ -1130,6 +1143,15 @@ public class QTableMetaData implements QAppChildMetaData, Serializable, MetaData *******************************************************************************/ public QTableMetaData withRecordSecurityLock(RecordSecurityLock recordSecurityLock) { + ///////////////////////////////////////////////////////////////////////////////////// + // you can't add a null lock, so, if someone tried, just gracefully return w/ noop // + ///////////////////////////////////////////////////////////////////////////////////// + if(recordSecurityLock == null) + { + LOG.debug("Skipping request to add null recordSecurityLock", logPair("tableName", name)); + return (this); + } + if(this.recordSecurityLocks == null) { this.recordSecurityLocks = new ArrayList<>();