diff --git a/application/src/main/java/org/thingsboard/server/service/state/DefaultDeviceStateService.java b/application/src/main/java/org/thingsboard/server/service/state/DefaultDeviceStateService.java index fc3523abf5..bf9fb066a0 100644 --- a/application/src/main/java/org/thingsboard/server/service/state/DefaultDeviceStateService.java +++ b/application/src/main/java/org/thingsboard/server/service/state/DefaultDeviceStateService.java @@ -560,27 +560,15 @@ public class DefaultDeviceStateService extends TbApplicationEventListener resultFuture = SettableFuture.create(); - Futures.addCallback( - attributesService.find(TenantId.SYS_TENANT_ID, deviceStateData.getDeviceId(), SERVER_SCOPE, INACTIVITY_TIMEOUT), - new FutureCallback>() { - @Override - public void onSuccess(Optional inactivityTimeoutOpt) { - inactivityTimeoutOpt.flatMap(KvEntry::getLongValue).ifPresent((inactivityTimeout) -> { - if (inactivityTimeout > 0) { - deviceStateData.getState().setInactivityTimeout(inactivityTimeout); - } - }); - resultFuture.set(deviceStateData); - } - - @Override - public void onFailure(Throwable t) { - resultFuture.setException(t); - } - }, - deviceStateExecutor); - return resultFuture; + var attributesFuture = attributesService.find(TenantId.SYS_TENANT_ID, deviceStateData.getDeviceId(), SERVER_SCOPE, INACTIVITY_TIMEOUT); + return Futures.transform(attributesFuture, attributes -> { + attributes.flatMap(KvEntry::getLongValue).ifPresent((inactivityTimeout) -> { + if (inactivityTimeout > 0) { + deviceStateData.getState().setInactivityTimeout(inactivityTimeout); + } + }); + return deviceStateData; + }, deviceStateExecutor); }, deviceStateExecutor); }