From 94b46958f9f7d92d5f9024fd5768b5723f261939 Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Fri, 26 Apr 2024 17:29:43 +0300 Subject: [PATCH 1/2] Improvement for EntityStateSourcingListener --- .../server/service/entitiy/EntityStateSourcingListener.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/EntityStateSourcingListener.java b/application/src/main/java/org/thingsboard/server/service/entitiy/EntityStateSourcingListener.java index c013650fa7..6027ad92d9 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/EntityStateSourcingListener.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/EntityStateSourcingListener.java @@ -73,6 +73,9 @@ public class EntityStateSourcingListener { public void handleEvent(SaveEntityEvent event) { TenantId tenantId = event.getTenantId(); EntityId entityId = event.getEntityId(); + if (entityId == null) { + return; + } EntityType entityType = entityId.getEntityType(); log.debug("[{}][{}][{}] Handling entity save event: {}", tenantId, entityType, entityId, event); boolean isCreated = event.getCreated() != null && event.getCreated(); From 20de60256cdc62960a4dc484b14a1a44f724afdc Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Mon, 29 Apr 2024 10:38:21 +0300 Subject: [PATCH 2/2] Add fail-fast for DeleteEntityEvent on EntityStateSourcingListener --- .../server/service/entitiy/EntityStateSourcingListener.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/EntityStateSourcingListener.java b/application/src/main/java/org/thingsboard/server/service/entitiy/EntityStateSourcingListener.java index 6027ad92d9..4a7c1e1e87 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/EntityStateSourcingListener.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/EntityStateSourcingListener.java @@ -125,6 +125,9 @@ public class EntityStateSourcingListener { public void handleEvent(DeleteEntityEvent event) { TenantId tenantId = event.getTenantId(); EntityId entityId = event.getEntityId(); + if (entityId == null) { + return; + } EntityType entityType = entityId.getEntityType(); if (!tenantId.isSysTenantId() && entityType != EntityType.TENANT && !tenantService.tenantExists(tenantId)) { log.debug("[{}] Ignoring DeleteEntityEvent because tenant does not exist: {}", tenantId, event);