Browse Source

reverted logic to set RPC status SUCCESSFUL even if it undelivered

pull/8713/head
ShvaykaD 3 years ago
parent
commit
9899b8d9f4
  1. 14
      application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java

14
application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java

@ -594,19 +594,11 @@ public class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcesso
boolean delivered = requestMd.isDelivered();
boolean hasError = StringUtils.isNotEmpty(responseMsg.getError());
try {
String payload;
if (hasError) {
payload = responseMsg.getError();
} else if (delivered) {
payload = responseMsg.getPayload();
} else {
payload = "Received response for undelivered RPC: " + responseMsg.getPayload();
}
String payload = hasError ? responseMsg.getError() : responseMsg.getPayload();
systemContext.getTbCoreDeviceRpcService().processRpcResponseFromDeviceActor(
new FromDeviceRpcResponse(toDeviceRequestMsg.getId(),
payload, null));
new FromDeviceRpcResponse(toDeviceRequestMsg.getId(), payload, null));
if (toDeviceRequestMsg.isPersisted()) {
RpcStatus status = hasError || !delivered ? RpcStatus.FAILED : RpcStatus.SUCCESSFUL;
RpcStatus status = hasError ? RpcStatus.FAILED : RpcStatus.SUCCESSFUL;
JsonNode response;
try {
response = JacksonUtil.toJsonNode(payload);

Loading…
Cancel
Save