[hornetq-commits] JBoss hornetq SVN: r8916 - in trunk: tests/src/org/hornetq/tests/unit/jms/client and 1 other directory.
do-not-reply at jboss.org
do-not-reply at jboss.org
Mon Mar 8 04:49:02 EST 2010
Author: jmesnil
Date: 2010-03-08 04:49:01 -0500 (Mon, 08 Mar 2010)
New Revision: 8916
Modified:
trunk/src/main/org/hornetq/jms/client/HornetQStreamMessage.java
trunk/tests/src/org/hornetq/tests/unit/jms/client/HornetQStreamMessageTest.java
Log:
fix JMS StreamMessage implementation
Modified: trunk/src/main/org/hornetq/jms/client/HornetQStreamMessage.java
===================================================================
--- trunk/src/main/org/hornetq/jms/client/HornetQStreamMessage.java 2010-03-05 09:29:14 UTC (rev 8915)
+++ trunk/src/main/org/hornetq/jms/client/HornetQStreamMessage.java 2010-03-08 09:49:01 UTC (rev 8916)
@@ -130,6 +130,7 @@
public byte readByte() throws JMSException
{
checkRead();
+ int index = getBuffer().readerIndex();
try
{
byte type = getBuffer().readByte();
@@ -148,6 +149,11 @@
{
throw new MessageEOFException("");
}
+ catch (NumberFormatException e)
+ {
+ getBuffer().readerIndex(index);
+ throw e;
+ }
}
public short readShort() throws JMSException
@@ -493,10 +499,6 @@
public void writeObject(final Object value) throws JMSException
{
- if (value == null)
- {
- throw new NullPointerException("Attempt to write a null value");
- }
if (value instanceof String)
{
writeString((String)value);
@@ -537,6 +539,10 @@
{
writeChar((Character)value);
}
+ else if (value == null)
+ {
+ writeString(null);
+ }
else
{
throw new MessageFormatException("Invalid object type: " + value.getClass());
Modified: trunk/tests/src/org/hornetq/tests/unit/jms/client/HornetQStreamMessageTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/unit/jms/client/HornetQStreamMessageTest.java 2010-03-05 09:29:14 UTC (rev 8915)
+++ trunk/tests/src/org/hornetq/tests/unit/jms/client/HornetQStreamMessageTest.java 2010-03-08 09:49:01 UTC (rev 8916)
@@ -340,7 +340,24 @@
Assert.assertEquals(value, message.readChar());
}
+
+ public void testReadCharFromNull() throws Exception
+ {
+ HornetQStreamMessage message = new HornetQStreamMessage();
+ message.writeString(null);
+ message.reset();
+
+ try
+ {
+ message.readChar();
+ fail();
+ }
+ catch (MessageFormatException e)
+ {
+ }
+ }
+
public void testReadLongFromByte() throws Exception
{
byte value = RandomUtil.randomByte();
@@ -550,6 +567,27 @@
Assert.assertEquals(Byte.toString(value), message.readString());
}
+ public void testString() throws Exception
+ {
+ String value = RandomUtil.randomString();
+ HornetQStreamMessage message = new HornetQStreamMessage();
+
+ message.writeString(value);
+ message.reset();
+
+ try
+ {
+ message.readByte();
+ fail("must throw a NumberFormatException");
+ }
+ catch (NumberFormatException e)
+ {
+ }
+
+ // we can read the String without resetting the message
+ Assert.assertEquals(value, message.readString());
+ }
+
public void testReadStringFromShort() throws Exception
{
short value = RandomUtil.randomShort();
@@ -754,14 +792,7 @@
{
HornetQStreamMessage message = new HornetQStreamMessage();
- try
- {
- message.writeObject(null);
- Assert.fail("NullPointerException");
- }
- catch (NullPointerException e)
- {
- }
+ message.writeObject(null);
}
public void testWriteObjectWithInvalidType() throws Exception
More information about the hornetq-commits
mailing list