Author: rajith
Date: Thu Mar 19 21:54:58 2009
New Revision: 756228
URL: http://svn.apache.org/viewvc?rev=756228&view=rev
Log:
This is a fix for QPID-1760
The AbstractBytesMessage will now use the toString method from
AbstractJMSMessage
Also I have modified the toBodyString method in AbstractBytesMessage to use a
function that can handle unprintable charachters and print contents upto a
maximum of 100 bytes.
Modified:
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractBytesMessage.java
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSBytesMessage.java
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSTextMessage.java
Modified:
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractBytesMessage.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractBytesMessage.java?rev=756228&r1=756227&r2=756228&view=diff
==============================================================================
---
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractBytesMessage.java
(original)
+++
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractBytesMessage.java
Thu Mar 19 21:54:58 2009
@@ -31,6 +31,7 @@
import org.apache.qpid.AMQException;
import org.apache.qpid.framing.AMQShortString;
import org.apache.qpid.framing.BasicContentHeaderProperties;
+import org.apache.qpid.transport.util.Functions;
/**
* @author Apache Software Foundation
@@ -84,53 +85,19 @@
}
public String toBodyString() throws JMSException
- {
+ {
checkReadable();
try
{
- return getText();
+ return Functions.str(_data.buf(), 100);
}
- catch (IOException e)
+ catch (Exception e)
{
JMSException jmse = new JMSException(e.toString());
jmse.setLinkedException(e);
throw jmse;
}
- }
-
- /**
- * We reset the stream before and after reading the data. This means that
toString() will always output
- * the entire message and also that the caller can then immediately start
reading as if toString() had
- * never been called.
- *
- * @return
- * @throws IOException
- */
- private String getText() throws IOException
- {
- // this will use the default platform encoding
- if (_data == null)
- {
- return null;
- }
-
- int pos = _data.position();
- _data.rewind();
- // one byte left is for the end of frame marker
- if (_data.remaining() == 0)
- {
- // this is really redundant since pos must be zero
- _data.position(pos);
-
- return null;
- }
- else
- {
- String data =
_data.getString(Charset.forName("UTF8").newDecoder());
- _data.position(pos);
-
- return data;
- }
+
}
/**
Modified:
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java?rev=756228&r1=756227&r2=756228&view=diff
==============================================================================
---
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java
(original)
+++
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java
Thu Mar 19 21:54:58 2009
@@ -367,13 +367,14 @@
try
{
StringBuffer buf = new StringBuffer("Body:\n");
+
buf.append(toBodyString());
buf.append("\nJMS Correlation ID: ").append(getJMSCorrelationID());
buf.append("\nJMS timestamp: ").append(getJMSTimestamp());
buf.append("\nJMS expiration: ").append(getJMSExpiration());
buf.append("\nJMS priority: ").append(getJMSPriority());
buf.append("\nJMS delivery mode: ").append(getJMSDeliveryMode());
- //buf.append("\nJMS reply to:
").append(String.valueOf(getJMSReplyTo()));
+ buf.append("\nJMS reply to: ").append(getReplyToString());
buf.append("\nJMS Redelivered: ").append(_redelivered);
buf.append("\nJMS Destination: ").append(getJMSDestination());
buf.append("\nJMS Type: ").append(getJMSType());
@@ -392,7 +393,7 @@
while(propertyNames.hasMoreElements())
{
String propertyName = (String) propertyNames.nextElement();
-
buf.append(propertyName).append(":\t").append(getObjectProperty(propertyName));
+ buf.append("\t").append(propertyName).append(" =
").append(getObjectProperty(propertyName)).append("\n");
}
}
@@ -401,7 +402,9 @@
}
catch (JMSException e)
{
- return e.toString();
+ e.printStackTrace();
+
+ throw new RuntimeException(e);
}
}
Modified:
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSBytesMessage.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSBytesMessage.java?rev=756228&r1=756227&r2=756228&view=diff
==============================================================================
---
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSBytesMessage.java
(original)
+++
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSBytesMessage.java
Thu Mar 19 21:54:58 2009
@@ -381,10 +381,4 @@
throw new MessageFormatException("Only primitives plus byte arrays
and String are valid types");
}
}
-
- public String toString()
- {
- return String.valueOf(System.identityHashCode(this));
- }
-
}
Modified:
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSTextMessage.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSTextMessage.java?rev=756228&r1=756227&r2=756228&view=diff
==============================================================================
---
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSTextMessage.java
(original)
+++
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSTextMessage.java
Thu Mar 19 21:54:58 2009
@@ -100,6 +100,7 @@
if (encoding == null || encoding.equalsIgnoreCase("UTF-8"))
{
_data = ByteBuffer.wrap(Strings.toUTF8(text));
+ setEncoding("UTF-8");
}
else
{
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]