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]

Reply via email to