On Thu, 29 Jan 2026 22:21:41 GMT, Chen Liang <[email protected]> wrote:
>> Tatsunori Uchino has updated the pull request with a new target base due to >> a merge or a rebase. The pull request now contains 20 commits: >> >> - Merge remote-tracking branch 'origin/master' into codepoint-count >> - Fix comments >> - Don't use removed `Character::codePointCount` overload >> - Update year in copyright >> - Fix double empty lines >> - Remove `Character.codePointCount()` >> - Replace "unpaired surrogates" with "isolated surrogate code units" >> >> https://www.unicode.org/versions/Unicode17.0.0/core-spec/chapter-3/#G1654 >> https://www.unicode.org/charts/PDF/UDC00.pdf >> - Remove `Character.codePointCount` overload >> - Rename parameter names from `a` to `seq` >> >> `chars` is too confusing with `char` >> - Improve JavaDoc >> >> Co-authored-by: Chen Liang <[email protected]> >> - ... and 10 more: https://git.openjdk.org/jdk/compare/681e4ec8...198b3188 > > 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); ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/26461#discussion_r2743920523
