You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rh...@apache.org on 2008/08/13 15:22:32 UTC
svn commit: r685536 - in /incubator/qpid/trunk/qpid/java:
client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java
systests/src/main/java/org/apache/qpid/test/unit/basic/PropertyValueTest.java
Author: rhs
Date: Wed Aug 13 06:22:31 2008
New Revision: 685536
URL: http://svn.apache.org/viewvc?rev=685536&view=rev
Log:
QPID-1236: made setObjectProperty validate the passed in value
Modified:
incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java
incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/PropertyValueTest.java
Modified: incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java?rev=685536&r1=685535&r2=685536&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java Wed Aug 13 06:22:31 2008
@@ -736,10 +736,32 @@
setApplicationHeader(propertyName, value);
}
+ private static final Set<Class> ALLOWED = new HashSet();
+ static
+ {
+ ALLOWED.add(Boolean.class);
+ ALLOWED.add(Byte.class);
+ ALLOWED.add(Short.class);
+ ALLOWED.add(Integer.class);
+ ALLOWED.add(Long.class);
+ ALLOWED.add(Float.class);
+ ALLOWED.add(Double.class);
+ ALLOWED.add(Character.class);
+ ALLOWED.add(String.class);
+ ALLOWED.add(byte[].class);
+ }
+
public void setObjectProperty(String propertyName, Object object) throws JMSException
{
checkPropertyName(propertyName);
checkWritableProperties();
+ if (object != null && !ALLOWED.contains(object.getClass()))
+ {
+ throw new MessageFormatException
+ (String.format
+ ("Cannot set a %s, allowed property types are: %s",
+ object.getClass(), ALLOWED));
+ }
setApplicationHeader(propertyName, object);
}
Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/PropertyValueTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/PropertyValueTest.java?rev=685536&r1=685535&r2=685536&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/PropertyValueTest.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/PropertyValueTest.java Wed Aug 13 06:22:31 2008
@@ -39,6 +39,7 @@
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
+import javax.jms.MessageFormatException;
import javax.jms.MessageListener;
import javax.jms.MessageProducer;
import javax.jms.Queue;
@@ -142,6 +143,20 @@
}
}
+ public void testSetDisallowedClass() throws Exception
+ {
+ Message m = getTestMessage();
+ try
+ {
+ m.setObjectProperty("foo", new Object());
+ fail("expected a MessageFormatException");
+ }
+ catch (MessageFormatException e)
+ {
+ // pass
+ }
+ }
+
public void testOnce()
{
runBatch(1);