On Thu, 18 Sep 2025 13:09:10 GMT, Chen Liang <[email protected]> wrote:
>> Hi @RogerRiggs @liach >> Thanks for the suggestion. >> Creating a string of Integer.MAX_VALUE/2 characters would require enormous >> memory, even using a file, since the JVM still needs to hold the string >> content in memory when reading it back. >> Instead, i used a small string chunk with 1-, 2-, and 3-byte UTF-8 >> characters and repeatedly called ModifiedUtf.utfLen() in a loop, >> accumulating the total in a long. This safely simulates a total length >> exceeding Integer.MAX_VALUE and verifies that the change to long prevents >> overflow. >> Could you please take another look when you have time ? Thanks! > >> This safely simulates a total length exceeding Integer.MAX_VALUE and >> verifies that the change to long prevents overflow. > > Can you try derive a **regression** test that fails on mainline and passes > with your fix? You can generate a string with `chunk.repeat(iterations)` and > run `ModifiedUtf.utfLen` on it. @liach Thank you for the approval. I combined these tests into a single class mainly to reuse the large string. @RogerRiggs Do you have any further suggestions? If not, I’ll proceed with integrating it. ------------- PR Comment: https://git.openjdk.org/jdk/pull/27285#issuecomment-3326012201
