[
https://issues.apache.org/jira/browse/AMQ-8122?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jean-Baptiste Onofré reassigned AMQ-8122:
-----------------------------------------
Assignee: Jean-Baptiste Onofré
> DataByteArrayInputStreamTest.testNonAscii() is faulty
> -----------------------------------------------------
>
> Key: AMQ-8122
> URL: https://issues.apache.org/jira/browse/AMQ-8122
> Project: ActiveMQ
> Issue Type: Bug
> Reporter: Marcono1234
> Assignee: Jean-Baptiste Onofré
> Priority: Minor
>
> It appears the unit test
> [{{DataByteArrayInputStreamTest.testNonAscii()}}|https://github.com/apache/activemq/blob/1c315db1d1a5432a87e0e43d82d8e926811c6419/activemq-client/src/test/java/org/apache/activemq/util/DataByteArrayInputStreamTest.java#L29]
> is faulty:
> # It loops with {{while(Character.isDefined(test))}}, however the Unicode
> data has gaps, currently with Java 15 the first gap is the code point 888,
> {{Character.isDefined(888) == false}}.
> Therefore this test never tries any higher code points. Looping up to,
> including {{Character.MAX_CODE_POINT}} might be better.
> # Based on the comment next to the variable {{test}}, it appears the author
> wanted to test supplementary code points as well, however by casting them to
> {{char}} when creating the String, they are cutting off code points >
> {{\uFFFF}}. It should instead convert the code point to a String like this:
> {code:java}
> // Java 11
> String toTest = Character.toString(test);
> // Java < 11
> String toTest = String.valueOf(Character.toChars(test));
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)