From eb9fd0fea7b99851796ec671afc1898a644d0446 Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Thu, 22 Dec 2016 09:29:07 +0100 Subject: [PATCH] Fix DMF update cancel message (#397) * Fix bug where DMF sends cancel for DDI targets. Signed-off-by: kaizimmerm * Fix nullpointer when event consumer access target info. Signed-off-by: kaizimmerm --- .../eclipse/hawkbit/amqp/AmqpMessageDispatcherService.java | 4 ++++ .../hawkbit/repository/jpa/JpaDeploymentManagement.java | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageDispatcherService.java b/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageDispatcherService.java index 33fe03419..1997f9928 100644 --- a/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageDispatcherService.java +++ b/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageDispatcherService.java @@ -156,6 +156,10 @@ public class AmqpMessageDispatcherService extends BaseAmqpService { void sendCancelMessageToTarget(final String tenant, final String controllerId, final Long actionId, final URI address) { + if (!IpUtil.isAmqpUri(address)) { + return; + } + final Message message = getMessageConverter().toMessage(actionId, createConnectorMessageProperties(tenant, controllerId, EventTopic.CANCEL_DOWNLOAD)); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaDeploymentManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaDeploymentManagement.java index 3eb1dbdd4..939178f19 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaDeploymentManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaDeploymentManagement.java @@ -409,10 +409,15 @@ public class JpaDeploymentManagement implements DeploymentManagement { * the action id of the assignment */ private void cancelAssignDistributionSetEvent(final Target target, final Long actionId) { + loadLazyTargetInfo(target); afterCommit.afterCommit(() -> eventPublisher .publishEvent(new CancelTargetAssignmentEvent(target, actionId, applicationContext.getId()))); } + private static void loadLazyTargetInfo(final Target target) { + target.getTargetInfo(); + } + @Override @Modifying @Transactional(isolation = Isolation.READ_COMMITTED)