You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2013/12/13 16:57:45 UTC
svn commit: r1550752 - in /qpid/jms/trunk/src:
main/java/org/apache/qpid/jms/impl/MessageImpl.java
test/java/org/apache/qpid/jms/impl/MessageImplTest.java
Author: robbie
Date: Fri Dec 13 15:57:44 2013
New Revision: 1550752
URL: http://svn.apache.org/r1550752
Log:
QPIDJMS-9: add basic support for clearProperties(), sans state checking
Modified:
qpid/jms/trunk/src/main/java/org/apache/qpid/jms/impl/MessageImpl.java
qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/MessageImplTest.java
Modified: qpid/jms/trunk/src/main/java/org/apache/qpid/jms/impl/MessageImpl.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/main/java/org/apache/qpid/jms/impl/MessageImpl.java?rev=1550752&r1=1550751&r2=1550752&view=diff
==============================================================================
--- qpid/jms/trunk/src/main/java/org/apache/qpid/jms/impl/MessageImpl.java (original)
+++ qpid/jms/trunk/src/main/java/org/apache/qpid/jms/impl/MessageImpl.java Fri Dec 13 15:57:44 2013
@@ -123,6 +123,8 @@ public abstract class MessageImpl<T exte
private void setApplicationProperty(String name, Object value) throws MessageFormatException
{
+ //TODO: check properties read/write state
+
checkPropertyNameIsValid(name);
if(JMS_AMQP_TTL.equals(name))
@@ -394,10 +396,10 @@ public abstract class MessageImpl<T exte
@Override
public void clearProperties() throws JMSException
{
- // TODO Auto-generated method stub
- throw new UnsupportedOperationException("Not Implemented");
+ //TODO: toggle properties read/write state
- //_propJMS_AMQP_TTL = null;
+ _amqpMessage.clearAllApplicationProperties();
+ _propJMS_AMQP_TTL = null;
}
@Override
Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/MessageImplTest.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/MessageImplTest.java?rev=1550752&r1=1550751&r2=1550752&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/MessageImplTest.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/MessageImplTest.java Fri Dec 13 15:57:44 2013
@@ -175,6 +175,30 @@ public class MessageImplTest extends Qpi
assertFalse(names.hasMoreElements());
}
+ @Test
+ public void testClearPropertiesEmptiesProperties() throws Exception
+ {
+ String propertyName = "myProperty";
+
+ _testMessage.setObjectProperty(propertyName, "string");
+
+ _testMessage.clearProperties();
+
+ //check the prop no longer exists, returns null
+ assertFalse(_testMessage.propertyExists(propertyName));
+ assertNull(_testMessage.getObjectProperty(propertyName));
+
+ //check there are no properties
+ Enumeration<?> names = _testMessage.getPropertyNames();
+ int numProps = 0;
+ while(names.hasMoreElements())
+ {
+ numProps++;
+ }
+
+ assertEquals(0, numProps);
+ }
+
// ======= String Properties =========
@Test
@@ -980,9 +1004,46 @@ public class MessageImplTest extends Qpi
_testMessage.setLongProperty(JMS_AMQP_TTL, 5L);
+ //verify that the underlying message doesn't have a JMS_AMQP_TTL entry in its
+ //application-properties section, as we don't transmit the value that way
assertFalse(_testAmqpMessage.applicationPropertyExists(JMS_AMQP_TTL));
}
+ @Test
+ public void testJMS_AMQP_TTL_AfterClearProperties() throws Exception
+ {
+ _testMessage.setLongProperty(JMS_AMQP_TTL, 5L);
+
+ assertTrue(_testMessage.propertyExists(JMS_AMQP_TTL));
+
+ _testMessage.clearProperties();
+
+ //check the prop no longer exists
+ assertFalse(_testMessage.propertyExists(JMS_AMQP_TTL));
+
+ //verify getting the value returns a NFE
+ try
+ {
+ _testMessage.getLongProperty(JMS_AMQP_TTL);
+ fail("expected exception not thrown");
+ }
+ catch(NumberFormatException nfe)
+ {
+ //expected, property isn't set, so it returns null, and so
+ //the null->Long conversion process failure applies
+ }
+
+ //check there are no properties
+ Enumeration<?> names = _testMessage.getPropertyNames();
+ int numProps = 0;
+ while(names.hasMoreElements())
+ {
+ numProps++;
+ }
+
+ assertEquals(0, numProps);
+ }
+
// ====== utility methods =======
private void assertGetPropertyThrowsMessageFormatException(TestMessageImpl testMessage,
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org