From 848868a3ee387845bcb69908dac5b9359c93092b Mon Sep 17 00:00:00 2001 From: Claudio Mezzasalma Date: Fri, 18 Oct 2019 10:36:57 +0200 Subject: [PATCH] Fallback to byte array for non-Kura body payload Signed-off-by: Claudio Mezzasalma --- .../kapua/translator/jms/kura/TranslatorDataJmsKura.java | 9 +++++++-- .../translator/mqtt/kura/TranslatorDataMqttKura.java | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/translator/kura/jms/src/main/java/org/eclipse/kapua/translator/jms/kura/TranslatorDataJmsKura.java b/translator/kura/jms/src/main/java/org/eclipse/kapua/translator/jms/kura/TranslatorDataJmsKura.java index 2fa9aa293ea..ba69a67d728 100644 --- a/translator/kura/jms/src/main/java/org/eclipse/kapua/translator/jms/kura/TranslatorDataJmsKura.java +++ b/translator/kura/jms/src/main/java/org/eclipse/kapua/translator/jms/kura/TranslatorDataJmsKura.java @@ -16,6 +16,7 @@ import java.util.List; import org.eclipse.kapua.KapuaException; +import org.eclipse.kapua.message.internal.MessageException; import org.eclipse.kapua.service.device.call.message.kura.data.KuraDataChannel; import org.eclipse.kapua.service.device.call.message.kura.data.KuraDataMessage; import org.eclipse.kapua.service.device.call.message.kura.data.KuraDataPayload; @@ -26,7 +27,7 @@ /** * Messages translator implementation from {@link org.eclipse.kapua.transport.message.jms.JmsMessage} to {@link org.eclipse.kapua.service.device.call.message.kura.data.KuraDataMessage} - * + * * @since 1.0 */ public class TranslatorDataJmsKura extends Translator { @@ -61,7 +62,11 @@ private KuraDataPayload translate(JmsPayload jmsPayload) KuraDataPayload kuraPayload = null; if (jmsPayload.getBody() != null) { kuraPayload = new KuraDataPayload(); - kuraPayload.readFromByteArray(jmsPayload.getBody()); + try { + kuraPayload.readFromByteArray(jmsPayload.getBody()); + } catch (MessageException ex) { + kuraPayload.setBody(jmsPayload.getBody()); + } } return kuraPayload; } diff --git a/translator/kura/mqtt/src/main/java/org/eclipse/kapua/translator/mqtt/kura/TranslatorDataMqttKura.java b/translator/kura/mqtt/src/main/java/org/eclipse/kapua/translator/mqtt/kura/TranslatorDataMqttKura.java index d0f1f31f59c..7ecbc7296d4 100644 --- a/translator/kura/mqtt/src/main/java/org/eclipse/kapua/translator/mqtt/kura/TranslatorDataMqttKura.java +++ b/translator/kura/mqtt/src/main/java/org/eclipse/kapua/translator/mqtt/kura/TranslatorDataMqttKura.java @@ -13,6 +13,7 @@ package org.eclipse.kapua.translator.mqtt.kura; import org.eclipse.kapua.KapuaException; +import org.eclipse.kapua.message.internal.MessageException; import org.eclipse.kapua.service.device.call.message.kura.data.KuraDataChannel; import org.eclipse.kapua.service.device.call.message.kura.data.KuraDataMessage; import org.eclipse.kapua.service.device.call.message.kura.data.KuraDataPayload; @@ -56,10 +57,14 @@ private KuraDataChannel translate(MqttTopic mqttTopic) private KuraDataPayload translate(MqttPayload mqttPayload) throws KapuaException { - byte[] jmsBody = mqttPayload.getBody(); + byte[] mqttBody = mqttPayload.getBody(); KuraDataPayload kuraPayload = new KuraDataPayload(); - kuraPayload.readFromByteArray(jmsBody); + try { + kuraPayload.readFromByteArray(mqttBody); + } catch (MessageException ex) { + kuraPayload.setBody(mqttBody); + } // // Return Kura Payload