DeviceStateService: Add protection to skip devices with non existent tenant on added partitions.
This commit is contained in:
parent
086168a758
commit
a6aba737d4
@ -349,7 +349,14 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev
|
|||||||
Map<TopicPartitionInfo, List<DeviceIdInfo>> tpiDeviceMap = new HashMap<>();
|
Map<TopicPartitionInfo, List<DeviceIdInfo>> tpiDeviceMap = new HashMap<>();
|
||||||
|
|
||||||
for (DeviceIdInfo idInfo : deviceIdInfos) {
|
for (DeviceIdInfo idInfo : deviceIdInfos) {
|
||||||
TopicPartitionInfo tpi = partitionService.resolve(ServiceType.TB_CORE, idInfo.getTenantId(), idInfo.getDeviceId());
|
TopicPartitionInfo tpi;
|
||||||
|
try {
|
||||||
|
tpi = partitionService.resolve(ServiceType.TB_CORE, idInfo.getTenantId(), idInfo.getDeviceId());
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("Failed to resolve partition for device with id [{}], tenant id [{}], customer id [{}]. Reason: {}",
|
||||||
|
idInfo.getDeviceId(), idInfo.getTenantId(), idInfo.getCustomerId(), e.getMessage());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (addedPartitions.contains(tpi) && !deviceStates.containsKey(idInfo.getDeviceId())) {
|
if (addedPartitions.contains(tpi) && !deviceStates.containsKey(idInfo.getDeviceId())) {
|
||||||
tpiDeviceMap.computeIfAbsent(tpi, tmp -> new ArrayList<>()).add(idInfo);
|
tpiDeviceMap.computeIfAbsent(tpi, tmp -> new ArrayList<>()).add(idInfo);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user