[
https://issues.apache.org/activemq/browse/AMQCPP-235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=51116#action_51116
]
Timothy Bish commented on AMQCPP-235:
-------------------------------------
Having looked through some more of the code I still think there is a larger
issue here that will need to be addressed. I'm going to play around with some
other changes and test cases.
Have you tried sending a TextMessage with a string that has ASCII values
greater than 127, I'm betting that will fail to unmarshal correctly as well.
This code in the String support class is currently only being used for
properties.
> UTF8 length marshalling bug in openwire readString and writeString.
> -------------------------------------------------------------------
>
> Key: AMQCPP-235
> URL: https://issues.apache.org/activemq/browse/AMQCPP-235
> Project: ActiveMQ C++ Client
> Issue Type: Bug
> Components: Openwire
> Environment: Windows XP / Visual Studio 2005
> Reporter: Martin Schlapfer
> Assignee: Timothy Bish
> Priority: Minor
> Attachments: OpenwireStringSupport.cpp.patch,
> OpenwireStringSupportTest.cpp.patch, OpenwireStringSupportTest.h.patch
>
>
> In investigating a bug for the check "if( str->size() > 65536 )" which should
> be "if( str->size() > 65535 )" in writeString() , I found a couple of other
> problems:
> (1) The OpenwireStringSupport::readString method should read the utf8 length
> as an unsigned short rather than short. The problem is that utf8 encoded
> strings (using writeString) longer than 32768 will become truncated when read
> back using readString().
> (2) The writeString() method should also check the value of utflen after
> determining the UTF8 length of the encoded string, since with the support of
> characters greater than value 127, encodings of 2 UTF8 bytes per byte can
> exist.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.