From 0db7d33b5193a195dbd0cbda3160ed91c107247d Mon Sep 17 00:00:00 2001 From: Rajith Muditha Attapattu Date: Fri, 9 Apr 2010 15:37:06 +0000 Subject: This is a fix for QPID-2493 Added test cases as well. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@932467 13f79535-47bb-0310-9956-ffa450edef68 --- .../qpid/client/message/AMQPEncodedMapMessage.java | 21 +++++++++++++++++++++ .../apache/qpid/client/message/JMSMapMessage.java | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) (limited to 'java/client/src') diff --git a/java/client/src/main/java/org/apache/qpid/client/message/AMQPEncodedMapMessage.java b/java/client/src/main/java/org/apache/qpid/client/message/AMQPEncodedMapMessage.java index f66387e734..6e22292ee0 100644 --- a/java/client/src/main/java/org/apache/qpid/client/message/AMQPEncodedMapMessage.java +++ b/java/client/src/main/java/org/apache/qpid/client/message/AMQPEncodedMapMessage.java @@ -21,9 +21,11 @@ package org.apache.qpid.client.message; */ +import java.util.List; import java.util.Map; import javax.jms.JMSException; +import javax.jms.MessageFormatException; import org.apache.mina.common.ByteBuffer; import org.apache.qpid.AMQException; @@ -54,6 +56,25 @@ public class AMQPEncodedMapMessage extends JMSMapMessage { return MIME_TYPE; } + + @ Override + public void setObject(String propName, Object value) throws JMSException + { + checkWritable(); + checkPropertyName(propName); + if ((value instanceof Boolean) || (value instanceof Byte) || (value instanceof Short) || (value instanceof Integer) + || (value instanceof Long) || (value instanceof Character) || (value instanceof Float) + || (value instanceof Double) || (value instanceof String) || (value instanceof byte[]) + || (value instanceof List) || (value instanceof Map) || (value == null)) + { + _map.put(propName, value); + } + else + { + throw new MessageFormatException("Cannot set property " + propName + " to value " + value + "of type " + + value.getClass().getName() + "."); + } + } // The super clas methods resets the buffer @ Override diff --git a/java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java b/java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java index 73f3afab03..306ffeeadf 100644 --- a/java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java +++ b/java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java @@ -445,7 +445,7 @@ public class JMSMapMessage extends AbstractBytesTypedMessage implements javax.jm } } - private void checkPropertyName(String propName) + protected void checkPropertyName(String propName) { if ((propName == null) || propName.equals("")) { -- cgit v1.2.1