Bug 46975

GemStone/S 64 Bit

3.3.9, 3.3.8, 3.3.7, 3.3.6, 3.3.5, 3.3.4, 3.3.3, 3.3.2, 3.3.1, 3.3, 3.2.17, 3.2.16, 3.2.15, 3.2.14, 3.2.13, 3.2.12, 3.2.11, 3.2.10, 3.2.9, 3.2.8.1, 3.2.8, 3.2.7, 3.2.6, 3.2.5, 3.2.x, 3.2

3.4

findPatternNoCase: fails with Unicode16 argument

Calling findPatternNoCase: with a String receiver and an element in the argument Array that is a Unicode16 will fail with an illegal pattern error.

This occurs when the argument is an instance of String (which only includes Characters with codePoints under 256), while the Unicode string argument has Characters with codePoints greater than 127 (i.e., Unicode16).

For example:

run
'après ski' asString findPatternNoCase: (Array with: ('après'  asUnicodeString)) startingAt: 1
%
a ArgumentError occurred (error 2017), anArray( 'apr..s') is an illegal pattern for string comparisons.

Workaround

login as SystemUser and execute:

run
String removeSelector: #findPatternNoCase:startingAt:
%
commit

Last updated: 7/3/18