From 3ef97cc2096496c5c9a2e17ed047f6d870e5f6fb Mon Sep 17 00:00:00 2001 From: Dmytro Skarzhynets Date: Tue, 1 Jul 2025 18:10:47 +0300 Subject: [PATCH] AI rule node: ensure "null" UUIDs are not accepted by AI model settings cache key --- .../server/dao/ai/AiModelSettingsCacheKey.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dao/src/main/java/org/thingsboard/server/dao/ai/AiModelSettingsCacheKey.java b/dao/src/main/java/org/thingsboard/server/dao/ai/AiModelSettingsCacheKey.java index 9d73289be7..60d0ccaee9 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/ai/AiModelSettingsCacheKey.java +++ b/dao/src/main/java/org/thingsboard/server/dao/ai/AiModelSettingsCacheKey.java @@ -18,6 +18,7 @@ package org.thingsboard.server.dao.ai; import org.checkerframework.checker.nullness.qual.NonNull; import org.thingsboard.server.cache.VersionedCacheKey; import org.thingsboard.server.common.data.id.AiModelSettingsId; +import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.TenantId; import java.util.UUID; @@ -29,6 +30,13 @@ record AiModelSettingsCacheKey(UUID tenantId, UUID settingsId) implements Versio AiModelSettingsCacheKey { requireNonNull(tenantId); requireNonNull(settingsId); + + if (TenantId.SYS_TENANT_ID.getId().equals(tenantId)) { + throw new IllegalArgumentException("Tenant ID must not be the system tenant ID"); + } + if (EntityId.NULL_UUID.equals(settingsId)) { + throw new IllegalArgumentException("Settings ID must not be reserved null UUID"); + } } static AiModelSettingsCacheKey of(TenantId tenantId, AiModelSettingsId settingsId) {