RFR: 8364007: Add no-argument codePointCount method to CharSequence and String [v14]
Tatsunori Uchino
duke at openjdk.org
Thu Jan 29 23:20:13 UTC 2026
On Thu, 29 Jan 2026 23:14:28 GMT, Chen Liang <liach at openjdk.org> wrote:
>> src/java.base/share/classes/java/lang/AbstractStringBuilder.java line 542:
>>
>>> 540: return count;
>>> 541: }
>>> 542: return StringUTF16.codePointCount(value, 0, count);
>>
>> Suggestion:
>>
>> return StringUTF16.codePointCountSB(value, 0, count);
>>
>> In buggy user program that use StringBuilder from more than one threads, we can have `value.length < count`, so we must perform this call checked.
>>
>> I think we need a new entry for this method in `test/jdk/java/lang/StringBuilder/StressSBTest.java` too.
>
> This should be sufficient for StressSBTest:
>
> diff --git a/test/jdk/java/lang/StringBuilder/StressSBTest.java b/test/jdk/java/lang/StringBuilder/StressSBTest.java
> index a5dc6672f07..6219851ee3b 100644
> --- a/test/jdk/java/lang/StringBuilder/StressSBTest.java
> +++ b/test/jdk/java/lang/StringBuilder/StressSBTest.java
> @@ -1,5 +1,5 @@
> /*
> - * Copyright (c) 2025, Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2025, 2026, Oracle and/or its affiliates. All rights reserved.
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
> *
> * This code is free software; you can redistribute it and/or modify it
> @@ -279,6 +279,7 @@ private boolean invokeByMethodNameAndType(String name, MethodType mt, StringBuil
> case "charAt(StringBuilder,int)char" -> sb.charAt(5);
> case "codePointAt(StringBuilder,int)int" -> sb.codePointAt(4);
> case "codePointBefore(StringBuilder,int)int" -> sb.codePointBefore(3);
> + case "codePointCount(StringBuilder)int" -> sb.codePointCount();
> case "codePointCount(StringBuilder,int,int)int" -> sb.codePointCount(3, 9);
> case "offsetByCodePoints(StringBuilder,int,int)int" -> sb.offsetByCodePoints(3, 7);
> case "lastIndexOf(StringBuilder,String,int)int" -> sb.lastIndexOf("A", 45);
Do we not need other additional test cases?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26461#discussion_r2743926620
More information about the core-libs-dev
mailing list