Author: rgodfrey
Date: Thu Feb 23 23:51:45 2012
New Revision: 1293034

URL: http://svn.apache.org/viewvc?rev=1293034&view=rev
Log:
QPID-1199 : [Java Client] Can not (actually you can) append to BytesMessage 
after send
           Add test from JIRA to test suite showing problem no longer occurs

Modified:
    
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/BytesMessageTest.java

Modified: 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/BytesMessageTest.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/BytesMessageTest.java?rev=1293034&r1=1293033&r2=1293034&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/BytesMessageTest.java
 (original)
+++ 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/BytesMessageTest.java
 Thu Feb 23 23:51:45 2012
@@ -36,6 +36,7 @@ import javax.jms.Connection;
 import javax.jms.Destination;
 import javax.jms.JMSException;
 import javax.jms.Message;
+import javax.jms.MessageConsumer;
 import javax.jms.MessageListener;
 import javax.jms.MessageNotReadableException;
 import javax.jms.MessageNotWriteableException;
@@ -278,4 +279,46 @@ public class BytesMessageTest extends Qp
         test._count = count;
         test.test();
     }
+
+    public void testModificationAfterSend() throws Exception
+    {
+        Connection connection = getConnection();
+        Session session = connection.createSession(false, 
Session.AUTO_ACKNOWLEDGE);
+        BytesMessage jmsMsg = session.createBytesMessage();
+        Destination destination = getTestQueue();
+
+        /* Set the constant message contents. */
+
+        jmsMsg.setStringProperty("foo", "test");
+
+        /* Pre-populate the message body buffer to the target size. */
+        byte[] jmsMsgBodyBuffer = new byte[1024];
+
+        connection.start();
+
+        /* Send messages. */
+        MessageProducer producer = session.createProducer(destination);
+
+        MessageConsumer consumer = session.createConsumer(destination);
+        
+        for(int writtenMsgCount = 0; writtenMsgCount < 10; writtenMsgCount++)
+        {
+            /* Set the per send message contents. */
+            jmsMsgBodyBuffer[0] = (byte) writtenMsgCount;
+            jmsMsg.writeBytes(jmsMsgBodyBuffer, 0, jmsMsgBodyBuffer.length);
+            /** Try to write a message. */
+            producer.send(jmsMsg);
+        }
+
+
+        for(int writtenMsgCount = 0; writtenMsgCount < 10; writtenMsgCount++)
+        {
+            BytesMessage recvdMsg = (BytesMessage) consumer.receive(1000L);
+            assertNotNull("Expected to receive message " + writtenMsgCount + " 
but did not", recvdMsg);
+            assertEquals("Message "+writtenMsgCount+" not of expected size", 
(long) ((writtenMsgCount + 1)*1024),
+                         recvdMsg.getBodyLength());
+
+        }
+    }
+
 }



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org

Reply via email to