Browse Source

Add missing sleep, fix wrong timeout expiry check

pull/9155/head
Dmytro Skarzhynets 3 years ago
parent
commit
8a64842039
  1. 2
      application/src/main/java/org/thingsboard/server/service/state/DefaultDeviceStateService.java
  2. 1
      application/src/test/java/org/thingsboard/server/service/state/DefaultDeviceStateServiceTest.java

2
application/src/main/java/org/thingsboard/server/service/state/DefaultDeviceStateService.java

@ -486,7 +486,7 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev
if (stateData != null) {
DeviceState state = stateData.getState();
if (!isActive(ts, state)
&& (state.getLastInactivityAlarmTime() == 0L || state.getLastInactivityAlarmTime() < state.getLastActivityTime())
&& (state.getLastInactivityAlarmTime() == 0L || state.getLastInactivityAlarmTime() <= state.getLastActivityTime())
&& stateData.getDeviceCreationTime() + state.getInactivityTimeout() < ts) {
if (partitionService.resolve(ServiceType.TB_CORE, stateData.getTenantId(), deviceId).isMyPartition()) {
state.setActive(false);

1
application/src/test/java/org/thingsboard/server/service/state/DefaultDeviceStateServiceTest.java

@ -294,6 +294,7 @@ public class DefaultDeviceStateServiceTest {
Mockito.verify(telemetrySubscriptionService, Mockito.never()).saveAttrAndNotify(Mockito.any(), Mockito.eq(deviceId), Mockito.any(), Mockito.eq("active"), Mockito.any(), Mockito.any());
long newTimeout = 1;
Thread.sleep(newTimeout);
service.onDeviceInactivityTimeoutUpdate(tenantId, deviceId, newTimeout);
activityVerify(false);

Loading…
Cancel
Save