diff --git a/application/src/main/java/org/thingsboard/server/service/ota/DefaultOtaPackageStateService.java b/application/src/main/java/org/thingsboard/server/service/ota/DefaultOtaPackageStateService.java index b4a469102f..31b7da5fdf 100644 --- a/application/src/main/java/org/thingsboard/server/service/ota/DefaultOtaPackageStateService.java +++ b/application/src/main/java/org/thingsboard/server/service/ota/DefaultOtaPackageStateService.java @@ -181,10 +181,22 @@ public class DefaultOtaPackageStateService implements OtaPackageStateService { private void update(TenantId tenantId, DeviceProfile deviceProfile, OtaPackageType otaPackageType) { Consumer updateConsumer; + OtaPackageId packageId = null; + if (otaPackageType.equals(FIRMWARE)) { + if (deviceProfile.getFirmwareId() != null) { + packageId = deviceProfile.getFirmwareId(); + } + } + else if (otaPackageType.equals(SOFTWARE)) { + if (deviceProfile.getSoftwareId() != null) { + packageId = deviceProfile.getSoftwareId(); + } + } - if (deviceProfile.getFirmwareId() != null) { + if (packageId != null) { long ts = System.currentTimeMillis(); - updateConsumer = d -> send(d.getTenantId(), d.getId(), deviceProfile.getFirmwareId(), ts, otaPackageType); + OtaPackageId finalPackageId = packageId; + updateConsumer = d -> send(d.getTenantId(), d.getId(), finalPackageId, ts, otaPackageType); } else { updateConsumer = d -> remove(d, otaPackageType); }