Author: rhs
Date: Tue Aug 12 09:30:19 2008
New Revision: 685218
URL: http://svn.apache.org/viewvc?rev=685218&view=rev
Log:
QPID-1235: fixed setXXXProperty to check for empty strings
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=685218&r1=685217&r2=685218&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
Tue Aug 12 09:30:19 2008
@@ -682,54 +682,63 @@
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);
}
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=685218&r1=685217&r2=685218&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
Tue Aug 12 09:30:19 2008
@@ -50,6 +50,8 @@
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 @@
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()