summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael H. Schloming <rhs@apache.org>2008-08-12 16:30:19 +0000
committerRafael H. Schloming <rhs@apache.org>2008-08-12 16:30:19 +0000
commitfb6350f465138ae0a2d0cb9231288ce5aa12a046 (patch)
tree86dd69e32584588007c2b4803b4524cc5651a760
parentdd54154fbffaa98477579b0784ec9e33da8f92f2 (diff)
downloadqpid-python-fb6350f465138ae0a2d0cb9231288ce5aa12a046.tar.gz
QPID-1235: fixed setXXXProperty to check for empty strings
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@685218 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java9
-rw-r--r--java/systests/src/main/java/org/apache/qpid/test/unit/basic/PropertyValueTest.java47
2 files changed, 53 insertions, 3 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java b/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java
index e66ba433a9..5a57e7b0db 100644
--- a/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java
+++ b/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java
@@ -682,54 +682,63 @@ public class AMQMessageDelegate_0_10 implements AMQMessageDelegate
public void setBooleanProperty(String propertyName, boolean b) throws JMSException
{
+ checkPropertyName(propertyName);
checkWritableProperties();
setApplicationHeader(propertyName, b);
}
public void setByteProperty(String propertyName, byte b) throws JMSException
{
+ checkPropertyName(propertyName);
checkWritableProperties();
setApplicationHeader(propertyName, b);
}
public void setShortProperty(String propertyName, short i) throws JMSException
{
+ checkPropertyName(propertyName);
checkWritableProperties();
setApplicationHeader(propertyName, i);
}
public void setIntProperty(String propertyName, int i) throws JMSException
{
+ checkPropertyName(propertyName);
checkWritableProperties();
setApplicationHeader(propertyName, i);
}
public void setLongProperty(String propertyName, long l) throws JMSException
{
+ checkPropertyName(propertyName);
checkWritableProperties();
setApplicationHeader(propertyName, l);
}
public void setFloatProperty(String propertyName, float f) throws JMSException
{
+ checkPropertyName(propertyName);
checkWritableProperties();
setApplicationHeader(propertyName, f);
}
public void setDoubleProperty(String propertyName, double v) throws JMSException
{
+ checkPropertyName(propertyName);
checkWritableProperties();
setApplicationHeader(propertyName, v);
}
public void setStringProperty(String propertyName, String value) throws JMSException
{
+ checkPropertyName(propertyName);
checkWritableProperties();
setApplicationHeader(propertyName, value);
}
public void setObjectProperty(String propertyName, Object object) throws JMSException
{
+ checkPropertyName(propertyName);
checkWritableProperties();
setApplicationHeader(propertyName, object);
}
diff --git a/java/systests/src/main/java/org/apache/qpid/test/unit/basic/PropertyValueTest.java b/java/systests/src/main/java/org/apache/qpid/test/unit/basic/PropertyValueTest.java
index 48bd722aae..1b3dffe9b9 100644
--- a/java/systests/src/main/java/org/apache/qpid/test/unit/basic/PropertyValueTest.java
+++ b/java/systests/src/main/java/org/apache/qpid/test/unit/basic/PropertyValueTest.java
@@ -50,6 +50,8 @@ import java.util.Iterator;
import java.util.List;
import java.net.URISyntaxException;
+import java.lang.reflect.*;
+
public class PropertyValueTest extends QpidTestCase implements MessageListener
{
private static final Logger _logger = LoggerFactory.getLogger(PropertyValueTest.class);
@@ -91,14 +93,53 @@ public class PropertyValueTest extends QpidTestCase implements MessageListener
connection.start();
}
- public void testGetNonexistent() throws Exception
+ private Message getTestMessage() throws Exception
{
Connection conn = getConnection();
Session ssn = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
- Message m = ssn.createTextMessage();
+ return ssn.createTextMessage();
+ }
+
+ public void testGetNonexistent() throws Exception
+ {
+ Message m = getTestMessage();
String s = m.getStringProperty("nonexistent");
assertNull(s);
- conn.close();
+ }
+
+ private static final String[] NAMES = {
+ "setBooleanProperty", "setByteProperty", "setShortProperty",
+ "setIntProperty", "setLongProperty", "setFloatProperty",
+ "setDoubleProperty", "setObjectProperty"
+ };
+
+ private static final Class[] TYPES = {
+ boolean.class, byte.class, short.class, int.class, long.class,
+ float.class, double.class, Object.class
+ };
+
+ private static final Object[] VALUES = {
+ true, (byte) 0, (short) 0, 0, (long) 0, (float) 0, (double) 0,
+ new Object()
+ };
+
+ public void testSetEmptyPropertyName() throws Exception
+ {
+ Message m = getTestMessage();
+
+ for (int i = 0; i < NAMES.length; i++)
+ {
+ Method meth = m.getClass().getMethod(NAMES[i], String.class, TYPES[i]);
+ try
+ {
+ meth.invoke(m, "", VALUES[i]);
+ fail("expected illegal argument exception");
+ }
+ catch (InvocationTargetException e)
+ {
+ assertEquals(e.getCause().getClass(), IllegalArgumentException.class);
+ }
+ }
}
public void testOnce()