diff --git a/nevado-jms/src/main/java/org/skyscreamer/nevado/jms/connector/AbstractSQSConnector.java b/nevado-jms/src/main/java/org/skyscreamer/nevado/jms/connector/AbstractSQSConnector.java index 9209a22..7f6f5cd 100644 --- a/nevado-jms/src/main/java/org/skyscreamer/nevado/jms/connector/AbstractSQSConnector.java +++ b/nevado-jms/src/main/java/org/skyscreamer/nevado/jms/connector/AbstractSQSConnector.java @@ -1,5 +1,7 @@ package org.skyscreamer.nevado.jms.connector; +import com.caucho.hessian.io.HessianProtocolException; +import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.json.JSONException; @@ -292,7 +294,14 @@ protected String serializeMessage(NevadoMessage message) throws JMSException { protected NevadoMessage deserializeMessage(String serializedMessage) throws JMSException { Serializable deserializedObject; try { - deserializedObject = SerializeUtil.deserializeFromString(serializedMessage); + try { + deserializedObject = SerializeUtil.deserializeFromString(serializedMessage); + } catch (HessianProtocolException e) { + ObjectMapper mapper = new ObjectMapper(); + Map map = mapper.readValue(serializedMessage, Map.class); + serializedMessage = (String) map.get("Message"); + deserializedObject = SerializeUtil.deserializeFromString(serializedMessage); + } } catch (IOException e) { String exMessage = "Unable to deserialized message: " + e.getMessage(); _log.error(exMessage, e);