From 0396c217e8f507b24136f5d7dce588d617481fe7 Mon Sep 17 00:00:00 2001 From: Rajith Muditha Attapattu Date: Thu, 17 Dec 2009 17:22:41 +0000 Subject: This is a fix for QPID-1830 I have removed the checkReadable() method from the toBodyString() This will enable the toString() method to be used any time on message. I have also modified the Functions.str() to take in an additional parameter to denote to the starting position of the buffer. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@891805 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/qpid/client/message/AbstractBytesMessage.java | 13 ++++++++++--- .../main/java/org/apache/qpid/transport/util/Functions.java | 7 ++++++- 2 files changed, 16 insertions(+), 4 deletions(-) (limited to 'qpid/java') diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractBytesMessage.java b/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractBytesMessage.java index 234212c301..535b55ced5 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractBytesMessage.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractBytesMessage.java @@ -85,11 +85,18 @@ public abstract class AbstractBytesMessage extends AbstractJMSMessage } public String toBodyString() throws JMSException - { - checkReadable(); + { try { - return Functions.str(_data.buf(), 100); + if (_data != null) + { + return Functions.str(_data.buf(), 100,0); + } + else + { + return ""; + } + } catch (Exception e) { diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/util/Functions.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/util/Functions.java index c220694b50..9f1c0ca9eb 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/transport/util/Functions.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/util/Functions.java @@ -56,13 +56,18 @@ public class Functions } public static final String str(ByteBuffer buf, int limit) + { + return str(buf, limit,buf.position()); + } + + public static final String str(ByteBuffer buf, int limit,int start) { StringBuilder str = new StringBuilder(); str.append('"'); for (int i = 0; i < min(buf.remaining(), limit); i++) { - byte c = buf.get(buf.position() + i); + byte c = buf.get(start + i); if (c > 31 && c < 127 && c != '\\') { -- cgit v1.2.1