[jboss-jira] [JBoss JIRA] (JGRP-2177) (7.0.z) TYPE_STRING does not handle unicode

Bartosz Spyrko-Śmietanko (JIRA) issues at jboss.org
Fri Jun 2 10:07:01 EDT 2017


Bartosz Spyrko-Śmietanko created JGRP-2177:
----------------------------------------------

             Summary: (7.0.z) TYPE_STRING does not handle unicode
                 Key: JGRP-2177
                 URL: https://issues.jboss.org/browse/JGRP-2177
             Project: JGroups
          Issue Type: Bug
            Reporter: Bartosz Spyrko-Śmietanko
            Assignee: Bela Ban
            Priority: Minor
             Fix For: 3.6.11, 4.0


In several places throughout the org.jgroups.util.Util class, it is assumed that Strings are one byte per character.

For example, see objectToByteBuffer lines 561-567:

https://github.com/belaban/JGroups/blob/master/src/org/jgroups/util/Util.java#L561-L567

{code:java}
case TYPE_STRING:
    String str=(String)obj;
    int len=str.length();
    ByteBuffer retval=ByteBuffer.allocate(Global.BYTE_SIZE + len).put(TYPE_STRING);
    for(int i=0; i < len; i++)
        retval.put((byte)str.charAt(i));
    return retval.array();
{code}

This code will incorrectly encode any String with non ASCII encoding.

There are several options to fix.  You could use str.getBytes(StandardCharsets.UTF_8) to get a proper byte encoding, or you could use the existing TYPE_SERIALIZABLE code path.





--
This message was sent by Atlassian JIRA
(v7.2.3#72005)



More information about the jboss-jira mailing list