summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java10
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/message/JMSObjectMessage.java10
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/message/JMSStreamMessage.java6
3 files changed, 20 insertions, 6 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java b/java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java
index 85d434e4eb..1f084b8de3 100644
--- a/java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java
+++ b/java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java
@@ -53,7 +53,13 @@ public class JMSMapMessage extends JMSBytesMessage implements javax.jms.MapMessa
}
- JMSMapMessage(long messageNbr, ContentHeaderBody contentHeader, ByteBuffer data)
+ @Override
+ public void clearBodyImpl() throws JMSException {
+ super.clearBodyImpl();
+ _map = new PropertyFieldTable();
+ }
+
+ JMSMapMessage(long messageNbr, ContentHeaderBody contentHeader, ByteBuffer data)
throws AMQException
{
super(messageNbr, contentHeader, data);
@@ -160,7 +166,7 @@ public class JMSMapMessage extends JMSBytesMessage implements javax.jms.MapMessa
if (result == null)
{
- throw new MessageFormatException("getChar couldn't find " + string + " item.");
+ throw new NullPointerException("getChar couldn't find " + string + " item.");
}
else
{
diff --git a/java/client/src/main/java/org/apache/qpid/client/message/JMSObjectMessage.java b/java/client/src/main/java/org/apache/qpid/client/message/JMSObjectMessage.java
index 7393cea714..c9fba083ed 100644
--- a/java/client/src/main/java/org/apache/qpid/client/message/JMSObjectMessage.java
+++ b/java/client/src/main/java/org/apache/qpid/client/message/JMSObjectMessage.java
@@ -71,7 +71,8 @@ public class JMSObjectMessage extends AbstractJMSMessage implements ObjectMessag
{
_data.release();
}
- _data = null;
+ _data = ByteBuffer.allocate(DEFAULT_BUFFER_SIZE);
+ _data.setAutoExpand(true);
}
public String toBodyString() throws JMSException
@@ -120,15 +121,18 @@ public class JMSObjectMessage extends AbstractJMSMessage implements ObjectMessag
try
{
+ _data.rewind();
in = new ObjectInputStream(_data.asInputStream());
return (Serializable) in.readObject();
}
catch (IOException e)
- {
- throw new MessageFormatException("Could not deserialize message: " + e);
+ {
+ e.printStackTrace();
+ throw new MessageFormatException("Could not deserialize message: " + e);
}
catch (ClassNotFoundException e)
{
+ e.printStackTrace();
throw new MessageFormatException("Could not deserialize message: " + e);
}
finally
diff --git a/java/client/src/main/java/org/apache/qpid/client/message/JMSStreamMessage.java b/java/client/src/main/java/org/apache/qpid/client/message/JMSStreamMessage.java
index 04f3c5ee17..c2dfdc1b65 100644
--- a/java/client/src/main/java/org/apache/qpid/client/message/JMSStreamMessage.java
+++ b/java/client/src/main/java/org/apache/qpid/client/message/JMSStreamMessage.java
@@ -226,6 +226,10 @@ public class JMSStreamMessage extends AbstractBytesMessage implements StreamMess
byte wireType = readWireType();
try
{
+ if(wireType == NULL_STRING_TYPE){
+ throw new NullPointerException();
+ }
+
if (wireType != CHAR_TYPE)
{
_data.position(position);
@@ -428,7 +432,7 @@ public class JMSStreamMessage extends AbstractBytesMessage implements StreamMess
break;
case NULL_STRING_TYPE:
result = null;
- break;
+ throw new NullPointerException("data is null");
case BOOLEAN_TYPE:
checkAvailable(1);
result = String.valueOf(readBooleanImpl());