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 2014/03/12 14:51:51 UTC
svn commit: r1576740 - in /qpid/jms/trunk/src:
main/java/org/apache/qpid/jms/impl/BytesMessageImpl.java
test/java/org/apache/qpid/jms/impl/BytesMessageImplTest.java
Author: robbie
Date: Wed Mar 12 13:51:51 2014
New Revision: 1576740
URL: http://svn.apache.org/r1576740
Log:
QPIDJMS-15: ensure that getBodyLength() handles changes from calling reset on a message after writing to it
Modified:
qpid/jms/trunk/src/main/java/org/apache/qpid/jms/impl/BytesMessageImpl.java
qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/BytesMessageImplTest.java
Modified: qpid/jms/trunk/src/main/java/org/apache/qpid/jms/impl/BytesMessageImpl.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/main/java/org/apache/qpid/jms/impl/BytesMessageImpl.java?rev=1576740&r1=1576739&r2=1576740&view=diff
==============================================================================
--- qpid/jms/trunk/src/main/java/org/apache/qpid/jms/impl/BytesMessageImpl.java (original)
+++ qpid/jms/trunk/src/main/java/org/apache/qpid/jms/impl/BytesMessageImpl.java Wed Mar 12 13:51:51 2014
@@ -378,8 +378,9 @@ public class BytesMessageImpl extends Me
//a new message or we cleared the body of a received message
if(_dataOutputStream != null)
{
- //create new input stream based on the current output
+ //update the underlying message and create new input stream based on the current output
byte[] data = _byteOutputStream.toByteArray();
+ getUnderlyingAmqpMessage(false).setBytes(data);
_dataInputStream = createNewDataInputStream(new ByteArrayInputStream(data));
//clear the current output streams
Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/BytesMessageImplTest.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/BytesMessageImplTest.java?rev=1576740&r1=1576739&r2=1576740&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/BytesMessageImplTest.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/BytesMessageImplTest.java Wed Mar 12 13:51:51 2014
@@ -78,6 +78,22 @@ public class BytesMessageImplTest extend
}
/**
+ * Test that calling {@link BytesMessage#getBodyLength()} on a new message which has been
+ * populated and {@link BytesMessage#reset()} causes the length to be reported correctly.
+ */
+ @Test
+ public void testResetOnNewlyPopulatedBytesMessageUpdatesBodyLength() throws Exception
+ {
+ byte[] bytes = "newResetTestBytes".getBytes();
+
+ BytesMessageImpl bytesMessageImpl = new BytesMessageImpl(_mockSessionImpl,_mockConnectionImpl);
+
+ bytesMessageImpl.writeBytes(bytes);
+ bytesMessageImpl.reset();
+ assertEquals("Message reports unexpected length", bytes.length, bytesMessageImpl.getBodyLength());
+ }
+
+ /**
* Test that attempting to call {@link BytesMessage#getBodyLength()} on a new message causes a
* {@link MessageNotReadableException} to be thrown due to being write-only.
*/
@@ -201,7 +217,7 @@ public class BytesMessageImplTest extend
}
/**
- * Test that calling calling {@link BytesMessage#clearBody()} causes a received
+ * Test that calling {@link BytesMessage#clearBody()} causes a received
* message to become writable
*/
@Test
@@ -223,7 +239,7 @@ public class BytesMessageImplTest extend
}
/**
- * Test that calling calling {@link BytesMessage#clearBody()} of a received message
+ * Test that calling {@link BytesMessage#clearBody()} of a received message
* causes the body of the underlying {@link AmqpBytesMessage} to be emptied.
*/
@Test
@@ -283,7 +299,7 @@ public class BytesMessageImplTest extend
}
/**
- * Test that calling calling {@link BytesMessage#reset()} causes a write-only
+ * Test that calling {@link BytesMessage#reset()} causes a write-only
* message to become read-only
*/
@Test
@@ -312,7 +328,7 @@ public class BytesMessageImplTest extend
}
/**
- * Test that calling calling {@link BytesMessage#reset()} on a new message which has been
+ * Test that calling {@link BytesMessage#reset()} on a new message which has been
* populated causes the marker to be reset and makes the message read-only
*/
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org