From bfd8ff934f8e626947374752d477761fc5e96782 Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Wed, 19 Jul 2023 16:39:41 +0300 Subject: [PATCH] Use system queue with same name instead of Main when missing --- .../server/queue/discovery/HashPartitionService.java | 6 +++++- .../dao/service/BaseTenantProfileServiceTest.java | 11 ----------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/HashPartitionService.java b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/HashPartitionService.java index f56233b144..e2312fa7cd 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/HashPartitionService.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/HashPartitionService.java @@ -186,7 +186,8 @@ public class HashPartitionService implements PartitionService { TenantId isolatedOrSystemTenantId = getIsolatedOrSystemTenantId(serviceType, tenantId); QueueKey queueKey = new QueueKey(serviceType, queueName, isolatedOrSystemTenantId); if (!partitionSizesMap.containsKey(queueKey)) { - queueKey = new QueueKey(serviceType, isolatedOrSystemTenantId); + // TODO: fallback to Main in case no system queue + queueKey = new QueueKey(serviceType, queueName, TenantId.SYS_TENANT_ID); } return resolve(queueKey, entityId); } @@ -207,6 +208,9 @@ public class HashPartitionService implements PartitionService { .putLong(entityId.getId().getLeastSignificantBits()).hash().asInt(); Integer partitionSize = partitionSizesMap.get(queueKey); + // if (partitionSize == null) { +// throw new IllegalStateException("Can't get partition ") +// } int partition = Math.abs(hash % partitionSize); return buildTopicPartitionInfo(queueKey, partition); diff --git a/dao/src/test/java/org/thingsboard/server/dao/service/BaseTenantProfileServiceTest.java b/dao/src/test/java/org/thingsboard/server/dao/service/BaseTenantProfileServiceTest.java index 6d41da2965..4129a991cc 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/service/BaseTenantProfileServiceTest.java +++ b/dao/src/test/java/org/thingsboard/server/dao/service/BaseTenantProfileServiceTest.java @@ -187,17 +187,6 @@ public abstract class BaseTenantProfileServiceTest extends AbstractServiceTest { }); } - @Test - public void testSaveSameTenantProfileWithDifferentIsolatedTbRuleEngine() { - TenantProfile tenantProfile = this.createTenantProfile("Tenant Profile"); - TenantProfile savedTenantProfile = tenantProfileService.saveTenantProfile(TenantId.SYS_TENANT_ID, tenantProfile); - savedTenantProfile.setIsolatedTbRuleEngine(true); - addMainQueueConfig(savedTenantProfile); - Assertions.assertThrows(DataValidationException.class, () -> { - tenantProfileService.saveTenantProfile(TenantId.SYS_TENANT_ID, savedTenantProfile); - }); - } - @Test public void testDeleteTenantProfileWithExistingTenant() { TenantProfile tenantProfile = this.createTenantProfile("Tenant Profile");