AMQShortString needs only be used in a transport layer for 0.8/0.9.x AMQP
protocol implementations.
---------------------------------------------------------------------------------------------------
Key: QPID-3285
URL: https://issues.apache.org/jira/browse/QPID-3285
Project: Qpid
Issue Type: Improvement
Components: Java Broker, Java Broker MessageStore - DerbyStore, Java
Client, Java Common
Reporter: Alex Rudyy
Assignee: Robbie Gemmell
Priority: Minor
Current implementation of AMQShortString does not deal properly with unicode
characters. Each character of the string is converted into a single byte using
the following transformation
(byte) (0xFF & data[i])
In result of such transformation multi-byte characters can not be passed over
the wire with 0.8/0.9.x AMQP protocol implementations.
AMQP 0.10 transport layer does not have such issue because it does not use
string byte buffers from AMQShortString objects.
AMQP 1.0 specification does not declare short string type. So, current
implementation of AMQShortString can not be used to implement AMQP 1.0
specification. For implementing of AMQP 1.0 specification java.lang.String
class can be used.
Current broker and client implementations use AMQShortString classes
everywhere, including JMS layer, message store layer etc.
Usages of AMQShortString beyond 0.8/0.9.x transport layers should be replaced
with java.lang.String class. Only 0.8/0.9.x transport layers require
AMQShortString for keeping backward compatibility.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]