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()


Reply via email to