Can't append to BytesMessage after send
---------------------------------------

                 Key: QPID-1199
                 URL: https://issues.apache.org/jira/browse/QPID-1199
             Project: Qpid
          Issue Type: Bug
          Components: Java Client
    Affects Versions: M2.1, M3
            Reporter: Aidan Skinner
            Assignee: Aidan Skinner
             Fix For: M4


The following code throws an exception on the second iteration of the loop:

public void testModificationAfterSend() throws Exception
{
                Connection connection = getConnection();
        Session session = connection.createSession(false, 
Session.AUTO_ACKNOWLEDGE);
        BytesMessage jmsMsg = session.createBytesMessage();
        Destination destination = new AMQQueue("amq.direct", 
randomize("BytesMessageTest"));
        /** Set the constant message contents. */
        jmsMsg.setStringProperty(
            "foo", "test"
        );

        /** Pre-populate the message body buffer to the target size. */
        byte[] jmsMsgBodyBuffer = new byte[1024];
        for(int i=0;i<jmsMsgBodyBuffer.length;i++)
        {
            jmsMsgBodyBuffer[i] = (byte) 0xF;
        }

        /**
        * Send messages.
        */
        MessageProducer producer = session.createProducer(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);

        }
    }

AFAICT there is no reason for us to not allow this to work (although it's a bit 
odd)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to