From 639c3f6dabc7e2bf305ea321ec0e91f94849e02a Mon Sep 17 00:00:00 2001 From: Volodymyr Babak Date: Tue, 26 Jul 2022 15:25:09 +0300 Subject: [PATCH] Fixed issue with user credential request --- .../cloud/DefaultDownlinkMessageService.java | 10 ++++++++++ .../rpc/processor/BaseCloudProcessor.java | 18 ------------------ .../rpc/processor/UserCloudProcessor.java | 8 +++----- 3 files changed, 13 insertions(+), 23 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/cloud/DefaultDownlinkMessageService.java b/application/src/main/java/org/thingsboard/server/service/cloud/DefaultDownlinkMessageService.java index 63c48e7964f..b5ab7091cb3 100644 --- a/application/src/main/java/org/thingsboard/server/service/cloud/DefaultDownlinkMessageService.java +++ b/application/src/main/java/org/thingsboard/server/service/cloud/DefaultDownlinkMessageService.java @@ -24,6 +24,7 @@ import org.thingsboard.server.common.data.edge.EdgeEventActionType; import org.thingsboard.server.common.data.edge.EdgeSettings; import org.thingsboard.server.common.data.id.DeviceId; +import org.thingsboard.server.common.data.id.EdgeId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.dao.cloud.CloudEventService; import org.thingsboard.server.gen.edge.v1.AdminSettingsUpdateMsg; @@ -273,6 +274,15 @@ private ListenableFuture updateSyncRequiredState(TenantId tenantId, EdgeSe return Futures.transform(cloudEventService.saveEdgeSettings(tenantId, currentEdgeSettings), result -> { log.debug("Full sync required marked as false"); + + // TODO: @voba fixme - this is not required in 3.4.1 once bug with sessionNewEvents fixed + try { + saveCloudEvent(tenantId, CloudEventType.EDGE, + EdgeEventActionType.ATTRIBUTES_REQUEST, new EdgeId(UUID.fromString(currentEdgeSettings.getEdgeId())), null).get(); + } catch (Exception e) { + log.error("Can't save cloud event", e); + } + return null; }, dbCallbackExecutorService); diff --git a/application/src/main/java/org/thingsboard/server/service/cloud/rpc/processor/BaseCloudProcessor.java b/application/src/main/java/org/thingsboard/server/service/cloud/rpc/processor/BaseCloudProcessor.java index 99144be1f03..74dde8f8d50 100644 --- a/application/src/main/java/org/thingsboard/server/service/cloud/rpc/processor/BaseCloudProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/cloud/rpc/processor/BaseCloudProcessor.java @@ -237,24 +237,6 @@ protected ListenableFuture requestForAdditionalData(TenantId tenantId, } } - protected void updateEvents(TenantId tenantId, Device origin, Device destination) { - TimePageLink pageLink = new TimePageLink(100); - PageData pageData; - do { - pageData = eventService.findEvents(tenantId, origin.getId(), pageLink); - if (pageData != null && pageData.getData() != null && !pageData.getData().isEmpty()) { - for (Event event : pageData.getData()) { - event.setEntityId(destination.getId()); - eventService.saveAsync(event); - } - if (pageData.hasNext()) { - pageLink = pageLink.nextPageLink(); - } - } - } while (pageData != null && pageData.hasNext()); - log.debug("Related events updated, origin [{}], destination [{}]", origin.getId(), destination.getId()); - } - protected UUID safeGetUUID(long mSB, long lSB) { return mSB != 0 && lSB != 0 ? new UUID(mSB, lSB) : null; } diff --git a/application/src/main/java/org/thingsboard/server/service/cloud/rpc/processor/UserCloudProcessor.java b/application/src/main/java/org/thingsboard/server/service/cloud/rpc/processor/UserCloudProcessor.java index e7457b2bc7e..8c4b7cc642d 100644 --- a/application/src/main/java/org/thingsboard/server/service/cloud/rpc/processor/UserCloudProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/cloud/rpc/processor/UserCloudProcessor.java @@ -96,10 +96,10 @@ public ListenableFuture processUserMsgFromCloud(TenantId tenantId, case UNRECOGNIZED: return handleUnsupportedMsgType(userUpdateMsg.getMsgType()); } - ListenableFuture aDRF = Futures.transform( - requestForAdditionalData(tenantId, userUpdateMsg.getMsgType(), userId, queueStartTs), future -> null, dbCallbackExecutor); - ListenableFuture> t = Futures.transform(aDRF, aDR -> { + ListenableFuture requestFuture = requestForAdditionalData(tenantId, userUpdateMsg.getMsgType(), userId, queueStartTs); + + return Futures.transformAsync(requestFuture, ignored -> { if (UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE.equals(userUpdateMsg.getMsgType()) || UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE.equals(userUpdateMsg.getMsgType())) { return saveCloudEvent(tenantId, CloudEventType.USER, EdgeEventActionType.CREDENTIALS_REQUEST, userId, null); @@ -107,8 +107,6 @@ public ListenableFuture processUserMsgFromCloud(TenantId tenantId, return Futures.immediateFuture(null); } }, dbCallbackExecutor); - - return Futures.transform(t, tt -> null, dbCallbackExecutor); } private void safeSetCustomerId(UserUpdateMsg userUpdateMsg, User user) {