From 2ecd30104c3f5619e7959d7a9f5695d9ec0975f7 Mon Sep 17 00:00:00 2001 From: Martin Ritchie Date: Fri, 13 Feb 2009 11:19:38 +0000 Subject: QPID-1629 : Fully test MessageHandles before move git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@744074 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/qpid/server/queue/InMemoryMessageHandle.java | 7 ++++++- .../apache/qpid/server/queue/WeakReferenceMessageHandle.java | 10 +++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) (limited to 'java/broker/src/main') diff --git a/java/broker/src/main/java/org/apache/qpid/server/queue/InMemoryMessageHandle.java b/java/broker/src/main/java/org/apache/qpid/server/queue/InMemoryMessageHandle.java index 2a7c90a81e..1092f67d94 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/queue/InMemoryMessageHandle.java +++ b/java/broker/src/main/java/org/apache/qpid/server/queue/InMemoryMessageHandle.java @@ -75,7 +75,12 @@ public class InMemoryMessageHandle implements AMQMessageHandle public ContentChunk getContentChunk(StoreContext context, int index) throws AMQException, IllegalArgumentException { - if (index > _contentBodies.size() - 1) + if(_contentBodies == null) + { + throw new RuntimeException("No ContentBody has been set"); + } + + if (index > _contentBodies.size() - 1 || index < 0) { throw new IllegalArgumentException("Index " + index + " out of valid range 0 to " + (_contentBodies.size() - 1)); diff --git a/java/broker/src/main/java/org/apache/qpid/server/queue/WeakReferenceMessageHandle.java b/java/broker/src/main/java/org/apache/qpid/server/queue/WeakReferenceMessageHandle.java index 3ed8b0e55c..804d2c2131 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/queue/WeakReferenceMessageHandle.java +++ b/java/broker/src/main/java/org/apache/qpid/server/queue/WeakReferenceMessageHandle.java @@ -109,7 +109,12 @@ public class WeakReferenceMessageHandle implements AMQMessageHandle public ContentChunk getContentChunk(StoreContext context, int index) throws AMQException, IllegalArgumentException { - if (index > _contentBodies.size() - 1) + if(_contentBodies == null) + { + throw new RuntimeException("No ContentBody has been set"); + } + + if (index > _contentBodies.size() - 1 || index < 0) { throw new IllegalArgumentException("Index " + index + " out of valid range 0 to " + (_contentBodies.size() - 1)); @@ -197,8 +202,7 @@ public class WeakReferenceMessageHandle implements AMQMessageHandle final long arrivalTime = System.currentTimeMillis(); - - MessageMetaData mmd = new MessageMetaData(publishBody, contentHeaderBody, _contentBodies.size(), arrivalTime); + MessageMetaData mmd = new MessageMetaData(publishBody, contentHeaderBody, _contentBodies == null ? 0 : _contentBodies.size(), arrivalTime); _messageStore.storeMessageMetaData(storeContext, _messageId, mmd); -- cgit v1.2.1