From duke at openjdk.org Tue Apr 1 11:19:19 2025 From: duke at openjdk.org (Stewart X Addison) Date: Tue, 1 Apr 2025 11:19:19 GMT Subject: RFR: 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX In-Reply-To: <4vwDv7WgmBMDFJoPfd-6x1tLac9Am8AwdD3eaoVKmBU=.067af3d9-f4ba-4352-825f-09f7816c3184@github.com> References: <4vwDv7WgmBMDFJoPfd-6x1tLac9Am8AwdD3eaoVKmBU=.067af3d9-f4ba-4352-825f-09f7816c3184@github.com> Message-ID: On Thu, 27 Mar 2025 12:57:30 GMT, Varada M wrote: > @sxa could you please review it? Is there any additional changes required I don't believe I can give a formal review, but I've tested your fix and it seems to resolve the issues I was seeing :-) ------------- PR Comment: https://git.openjdk.org/jdk/pull/24276#issuecomment-2769021292 From jkern at openjdk.org Wed Apr 2 14:50:10 2025 From: jkern at openjdk.org (Joachim Kern) Date: Wed, 2 Apr 2025 14:50:10 GMT Subject: RFR: 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX [v2] In-Reply-To: <925da2UeOLLmSZoxeEzzs1or83qbFMVSALQ086cLu0o=.90d49c15-8de4-4587-aae8-b764c66f692e@github.com> References: <925da2UeOLLmSZoxeEzzs1or83qbFMVSALQ086cLu0o=.90d49c15-8de4-4587-aae8-b764c66f692e@github.com> Message-ID: On Thu, 27 Mar 2025 13:19:07 GMT, Varada M wrote: >> In AIX, the JFS2 supports extended attributes which has fgetea, fsetea, flistea, femoveea APIs support fetching, setting, listing and removing extended attributes. >> >> JBS: [JDK-8353053](https://bugs.openjdk.org/browse/JDK-8353053) > > Varada M has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision: > > - Merge branch 'openjdk:master' into basic.java > - UserDefinedFileAttributeView not supported on AIX > - UserDefinedFileAttributeView not supported on AIX > - UserDefinedFileAttributeView not supported on AIX > - UserDefinedFileAttributeView for AIX I tried to test your changes by running jdk/java/nio/file/attribute/ UserDefinedFileAttributeView/Basic.java but I still get `UserDefinedFileAttributeView not supported - skip test` ------------- PR Comment: https://git.openjdk.org/jdk/pull/24276#issuecomment-2772804080 From bpb at openjdk.org Thu Apr 3 01:13:26 2025 From: bpb at openjdk.org (Brian Burkhalter) Date: Thu, 3 Apr 2025 01:13:26 GMT Subject: RFR: 8321591: (fs) Path.of(URI) performance (win) Message-ID: Improve the performance of `WindowsPathParser.normalize` by using a `char` array to perform the normalization in place instead of appending to a `StringBuilder`. The `Result` inner class is also converted to a `record`. ------------- Commit messages: - 8321591: (fs) Path.of(URI) performance (win) Changes: https://git.openjdk.org/jdk/pull/24400/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24400&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8321591 Stats: 146 lines in 2 files changed: 91 ins; 33 del; 22 mod Patch: https://git.openjdk.org/jdk/pull/24400.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24400/head:pull/24400 PR: https://git.openjdk.org/jdk/pull/24400 From bpb at openjdk.org Thu Apr 3 01:16:46 2025 From: bpb at openjdk.org (Brian Burkhalter) Date: Thu, 3 Apr 2025 01:16:46 GMT Subject: RFR: 8321591: (fs) Path.of(URI) performance (win) In-Reply-To: References: Message-ID: On Thu, 3 Apr 2025 01:07:34 GMT, Brian Burkhalter wrote: > Improve the performance of `WindowsPathParser.normalize` by using a `char` array to perform the normalization in place instead of appending to a `StringBuilder`. The `Result` inner class is also converted to a `record`. Performance changes as measured by the included benchmark are shown in the following table. The input path strings in even numbered rows include redundant backslashes (`\`). | Path String | Baseline (ops/s) | Proposal (ops/s) | Change (%) | | ----------- | ---------------- | ---------------- | ---------- | | C:\Users\foo\bar\gus.txt | 6199154.628 | 6734399.308 | 8.34 | | C:\Users\\\\foo\\\\bar\gus.txt | 5152600.992 | 6991821.398 | 35.69 | | \\\.\UNC\localhost\C$\Users\foo | 4315495.741 | 4950377.343 | 14.71 | | \\\.\UNC\localhost\C$\\\\Users\\\\foo | 4412610.277 | 5136928.053 | 15.41 | | \\\?\C:\Users\foo\bar\gus.txt | 5401771.850 | 6332844.341 | 17.24 | | \\\?\C:\Users\\\\foo\bar\\\\gus.txt | 5643219.553 | 6699547.423 |18.72 | | .\foo\bar\gus.txt | 7354450.120 | 8967738.201 | 21.94 | | .\foo\\\\bar\\\\gus.txt | 7179405.341 | 8816331.038 | 22.80 | | \foo\bar\gus.txt | 8137737.571 | 9738842.924 | 19.68 | | \foo\\\\bar\\\\gus.txt | 7966882.354 | 9444461.000 | 18.55 | | C:foo\bar\gus.txt | 7917777.448 | 8489733.707 | 7.22 | | C:foo\\\\bar\\\\gus.txt | 6986341.760 | 8583323.842 | 22.86 | This proposed change affects `WindowsUriSupport.fromUri` as this method invokes `WindowsPathParser.parse` which in turn invokes `WindowsPathParser.normalize`. The opportunities for performance improvement in the code of `parse` proper appear to be limited due to the complexity of the Windows path design. Other URI-specific opportunities might exist in `fromUri` itself, for example, parsing only if the path component of the URI does not meet certain conditions, e.g., if it contains a slash `/`, redundant backslahes (`\`), or an invalid character (`:`, `|`, etc.) ------------- PR Comment: https://git.openjdk.org/jdk/pull/24400#issuecomment-2774087281 From varadam at openjdk.org Thu Apr 3 07:27:55 2025 From: varadam at openjdk.org (Varada M) Date: Thu, 3 Apr 2025 07:27:55 GMT Subject: RFR: 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX [v2] In-Reply-To: <925da2UeOLLmSZoxeEzzs1or83qbFMVSALQ086cLu0o=.90d49c15-8de4-4587-aae8-b764c66f692e@github.com> References: <925da2UeOLLmSZoxeEzzs1or83qbFMVSALQ086cLu0o=.90d49c15-8de4-4587-aae8-b764c66f692e@github.com> Message-ID: On Thu, 27 Mar 2025 13:19:07 GMT, Varada M wrote: >> In AIX, the JFS2 supports extended attributes which has fgetea, fsetea, flistea, femoveea APIs support fetching, setting, listing and removing extended attributes. >> >> JBS: [JDK-8353053](https://bugs.openjdk.org/browse/JDK-8353053) > > Varada M has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision: > > - Merge branch 'openjdk:master' into basic.java > - UserDefinedFileAttributeView not supported on AIX > - UserDefinedFileAttributeView not supported on AIX > - UserDefinedFileAttributeView not supported on AIX > - UserDefinedFileAttributeView for AIX The initial behavior: `The test test/jdk/java/nio/file/attribute/UserDefinedFileAttributeView/Basic.java` passes with the output UserDefinedFileAttributeView not supported - skip test. This happens because AIX does not have the necessary code changes to support UserDefinedFileAttributeView, and by default, extended attributes (EA) are disabled, returning false for AIX. With the addition of UserDefinedFileAttributeView support: If EA is enabled on the system, the test runs successfully without being skipped. If EA is disabled, the test behaves as before, skipping with the same output. To ensure the test runs correctly, EA needs to be set to version 2 on AIX for the /tmp directory where the test file is created. Could you check whether EA is enabled on your system? ------------- PR Comment: https://git.openjdk.org/jdk/pull/24276#issuecomment-2774726050 From dfuchs at openjdk.org Thu Apr 3 08:43:07 2025 From: dfuchs at openjdk.org (Daniel Fuchs) Date: Thu, 3 Apr 2025 08:43:07 GMT Subject: RFR: 8321591: (fs) Path.of(URI) performance (win) In-Reply-To: References: Message-ID: On Thu, 3 Apr 2025 01:07:34 GMT, Brian Burkhalter wrote: > Improve the performance of `WindowsPathParser.normalize` by using a `char` array to perform the normalization in place instead of appending to a `StringBuilder`. The `Result` inner class is also converted to a `record`. I skimmed through the changes and they look reasonable. I assume there are tests that already cover path normalization on windows? ------------- PR Comment: https://git.openjdk.org/jdk/pull/24400#issuecomment-2774907498 From duke at openjdk.org Thu Apr 3 09:23:07 2025 From: duke at openjdk.org (Stewart X Addison) Date: Thu, 3 Apr 2025 09:23:07 GMT Subject: RFR: 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX [v2] In-Reply-To: References: <925da2UeOLLmSZoxeEzzs1or83qbFMVSALQ086cLu0o=.90d49c15-8de4-4587-aae8-b764c66f692e@github.com> Message-ID: On Wed, 2 Apr 2025 14:47:19 GMT, Joachim Kern wrote: > I tried to test your changes by running > > ``` > jdk/java/nio/file/attribute/ > UserDefinedFileAttributeView/Basic.java > ``` > > but I still get `UserDefinedFileAttributeView not supported - skip test` Running `chfs ea=v2` on the appropriate file system (probably `/tmp`) is needed as well as this fix. `lsfs -q` will show the current status - if it shows `EAformat: v2` then it's in a compatible state. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24276#issuecomment-2775028772 From jkern at openjdk.org Thu Apr 3 10:26:50 2025 From: jkern at openjdk.org (Joachim Kern) Date: Thu, 3 Apr 2025 10:26:50 GMT Subject: RFR: 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX [v2] In-Reply-To: References: <925da2UeOLLmSZoxeEzzs1or83qbFMVSALQ086cLu0o=.90d49c15-8de4-4587-aae8-b764c66f692e@github.com> Message-ID: <9k_YUfOIEEZTQ1b0Rr25TZwB4HmCbeuhshiJwYS2ANI=.9b88f031-cce9-419d-a798-0ec42e72f43b@github.com> On Thu, 3 Apr 2025 09:20:40 GMT, Stewart X Addison wrote: > > I tried to test your changes by running > > ``` > > jdk/java/nio/file/attribute/ > > UserDefinedFileAttributeView/Basic.java > > ``` > > > > > > > > > > > > > > > > > > > > > > > > but I still get `UserDefinedFileAttributeView not supported - skip test` > > Running `chfs ea=v2` on the appropriate file system (probably `/tmp`) is needed as well as this fix. `lsfs -q` will show the current status - if it shows `EAformat: v2` then it's in a compatible state. I already did it with our administrator this morning and it looks much better now. I will further investigate and approve if I do not find anything else. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24276#issuecomment-2775254895 From alanb at openjdk.org Thu Apr 3 12:35:03 2025 From: alanb at openjdk.org (Alan Bateman) Date: Thu, 3 Apr 2025 12:35:03 GMT Subject: RFR: 8321591: (fs) Path.of(URI) performance (win) In-Reply-To: References: Message-ID: On Thu, 3 Apr 2025 01:07:34 GMT, Brian Burkhalter wrote: > Improve the performance of `WindowsPathParser.normalize` by using a `char` array to perform the normalization in place instead of appending to a `StringBuilder`. The `Result` inner class is also converted to a `record`. I did a quick pass over this and eliminating the intermediate SB looks okay. I note that the JBS description says "Path.of(URI)" but the benchmark is Path.of(String). ------------- PR Comment: https://git.openjdk.org/jdk/pull/24400#issuecomment-2775641464 From jkern at openjdk.org Thu Apr 3 12:45:57 2025 From: jkern at openjdk.org (Joachim Kern) Date: Thu, 3 Apr 2025 12:45:57 GMT Subject: RFR: 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX [v2] In-Reply-To: <925da2UeOLLmSZoxeEzzs1or83qbFMVSALQ086cLu0o=.90d49c15-8de4-4587-aae8-b764c66f692e@github.com> References: <925da2UeOLLmSZoxeEzzs1or83qbFMVSALQ086cLu0o=.90d49c15-8de4-4587-aae8-b764c66f692e@github.com> Message-ID: On Thu, 27 Mar 2025 13:19:07 GMT, Varada M wrote: >> In AIX, the JFS2 supports extended attributes which has fgetea, fsetea, flistea, femoveea APIs support fetching, setting, listing and removing extended attributes. >> >> JBS: [JDK-8353053](https://bugs.openjdk.org/browse/JDK-8353053) > > Varada M has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision: > > - Merge branch 'openjdk:master' into basic.java > - UserDefinedFileAttributeView not supported on AIX > - UserDefinedFileAttributeView not supported on AIX > - UserDefinedFileAttributeView not supported on AIX > - UserDefinedFileAttributeView for AIX I tested the UserDefinedAttributesView on AIX. For me symlinks seem to be not supported, bat that is OK as mentioned. ------------- Marked as reviewed by jkern (Committer). PR Review: https://git.openjdk.org/jdk/pull/24276#pullrequestreview-2739710329 From alanb at openjdk.org Thu Apr 3 12:57:54 2025 From: alanb at openjdk.org (Alan Bateman) Date: Thu, 3 Apr 2025 12:57:54 GMT Subject: RFR: 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX [v2] In-Reply-To: <925da2UeOLLmSZoxeEzzs1or83qbFMVSALQ086cLu0o=.90d49c15-8de4-4587-aae8-b764c66f692e@github.com> References: <925da2UeOLLmSZoxeEzzs1or83qbFMVSALQ086cLu0o=.90d49c15-8de4-4587-aae8-b764c66f692e@github.com> Message-ID: On Thu, 27 Mar 2025 13:19:07 GMT, Varada M wrote: >> In AIX, the JFS2 supports extended attributes which has fgetea, fsetea, flistea, femoveea APIs support fetching, setting, listing and removing extended attributes. >> >> JBS: [JDK-8353053](https://bugs.openjdk.org/browse/JDK-8353053) > > Varada M has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision: > > - Merge branch 'openjdk:master' into basic.java > - UserDefinedFileAttributeView not supported on AIX > - UserDefinedFileAttributeView not supported on AIX > - UserDefinedFileAttributeView not supported on AIX > - UserDefinedFileAttributeView for AIX The changes to the non-AIX specific files look okay, I assume the copyright headers will be updated before the changes are integrated ------------- PR Comment: https://git.openjdk.org/jdk/pull/24276#issuecomment-2775700220 From bpb at openjdk.org Thu Apr 3 17:53:57 2025 From: bpb at openjdk.org (Brian Burkhalter) Date: Thu, 3 Apr 2025 17:53:57 GMT Subject: RFR: 8321591: (fs) Path.of(URI) performance (win) In-Reply-To: References: Message-ID: On Thu, 3 Apr 2025 08:40:26 GMT, Daniel Fuchs wrote: > I assume there are tests that already cover path normalization on windows? `Path.of` normalizes by default. There are a lot of cases tested here: https://github.com/openjdk/jdk/blob/master/test/jdk/java/nio/file/Path/PathOps.java ------------- PR Comment: https://git.openjdk.org/jdk/pull/24400#issuecomment-2776529955 From bpb at openjdk.org Thu Apr 3 17:57:02 2025 From: bpb at openjdk.org (Brian Burkhalter) Date: Thu, 3 Apr 2025 17:57:02 GMT Subject: RFR: 8321591: (fs) Path.of(URI) performance (win) In-Reply-To: References: Message-ID: On Thu, 3 Apr 2025 12:32:20 GMT, Alan Bateman wrote: > I note that the JBS description says "Path.of(URI)" but the benchmark is Path.of(String). Correct, hence my comments after the table above about other opportunities in `WindowsUriSupport.fromUri`. If there are none, then perhaps the issue and PR summaries should be changed accordingly. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24400#issuecomment-2776535879 From varadam at openjdk.org Thu Apr 3 18:22:43 2025 From: varadam at openjdk.org (Varada M) Date: Thu, 3 Apr 2025 18:22:43 GMT Subject: RFR: 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX [v2] In-Reply-To: <925da2UeOLLmSZoxeEzzs1or83qbFMVSALQ086cLu0o=.90d49c15-8de4-4587-aae8-b764c66f692e@github.com> References: <925da2UeOLLmSZoxeEzzs1or83qbFMVSALQ086cLu0o=.90d49c15-8de4-4587-aae8-b764c66f692e@github.com> Message-ID: On Thu, 27 Mar 2025 13:19:07 GMT, Varada M wrote: >> In AIX, the JFS2 supports extended attributes which has fgetea, fsetea, flistea, femoveea APIs support fetching, setting, listing and removing extended attributes. >> >> JBS: [JDK-8353053](https://bugs.openjdk.org/browse/JDK-8353053) > > Varada M has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision: > > - Merge branch 'openjdk:master' into basic.java > - UserDefinedFileAttributeView not supported on AIX > - UserDefinedFileAttributeView not supported on AIX > - UserDefinedFileAttributeView not supported on AIX > - UserDefinedFileAttributeView for AIX Thanks for the reviews. I have updated the copyright headers ------------- PR Comment: https://git.openjdk.org/jdk/pull/24276#issuecomment-2776588899 From varadam at openjdk.org Thu Apr 3 18:22:40 2025 From: varadam at openjdk.org (Varada M) Date: Thu, 3 Apr 2025 18:22:40 GMT Subject: RFR: 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX [v3] In-Reply-To: References: Message-ID: > In AIX, the JFS2 supports extended attributes which has fgetea, fsetea, flistea, femoveea APIs support fetching, setting, listing and removing extended attributes. > > JBS: [JDK-8353053](https://bugs.openjdk.org/browse/JDK-8353053) Varada M has updated the pull request incrementally with one additional commit since the last revision: 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX ------------- Changes: - all: https://git.openjdk.org/jdk/pull/24276/files - new: https://git.openjdk.org/jdk/pull/24276/files/6866e532..5defce85 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=24276&range=02 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24276&range=01-02 Stats: 2 lines in 2 files changed: 0 ins; 0 del; 2 mod Patch: https://git.openjdk.org/jdk/pull/24276.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24276/head:pull/24276 PR: https://git.openjdk.org/jdk/pull/24276 From bpb at openjdk.org Thu Apr 3 20:50:49 2025 From: bpb at openjdk.org (Brian Burkhalter) Date: Thu, 3 Apr 2025 20:50:49 GMT Subject: RFR: 8321591: (fs) Path.of(URI) performance (win) In-Reply-To: References: Message-ID: On Thu, 3 Apr 2025 17:51:32 GMT, Brian Burkhalter wrote: > I assume there are tests that already cover path normalization on windows? Also, this changes passes JDK tiers 1-3 CI tests. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24400#issuecomment-2776886871 From rriggs at openjdk.org Thu Apr 3 22:12:49 2025 From: rriggs at openjdk.org (Roger Riggs) Date: Thu, 3 Apr 2025 22:12:49 GMT Subject: RFR: 8321591: (fs) Path.of(URI) performance (win) In-Reply-To: References: Message-ID: On Thu, 3 Apr 2025 01:07:34 GMT, Brian Burkhalter wrote: > Improve the performance of `WindowsPathParser.normalize` by using a `char` array to perform the normalization in place instead of appending to a `StringBuilder`. The `Result` inner class is also converted to a `record`. I would encourage going further with the refactoring folding two classes into one. WindowsPathParser is all static methods but with a better name could be a record that is the parsed WindowsPath. The parsing methods could be either static or overloaded constructors with the input string and normalization flag, invoking the canonical constructor. YMMV. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24400#issuecomment-2777105101 From mdoerr at openjdk.org Fri Apr 4 09:02:50 2025 From: mdoerr at openjdk.org (Martin Doerr) Date: Fri, 4 Apr 2025 09:02:50 GMT Subject: RFR: 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX [v3] In-Reply-To: References: Message-ID: On Thu, 3 Apr 2025 18:22:40 GMT, Varada M wrote: >> In AIX, the JFS2 supports extended attributes which has fgetea, fsetea, flistea, femoveea APIs support fetching, setting, listing and removing extended attributes. >> >> JBS: [JDK-8353053](https://bugs.openjdk.org/browse/JDK-8353053) > > Varada M has updated the pull request incrementally with one additional commit since the last revision: > > 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX src/java.base/aix/classes/sun/nio/fs/AixFileStore.java line 119: > 117: return super.supportsFileAttributeView(name); > 118: } > 119: The indentation seems to be off by one space. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24276#discussion_r2028402348 From duke at openjdk.org Fri Apr 4 09:21:10 2025 From: duke at openjdk.org (Markus KARG) Date: Fri, 4 Apr 2025 09:21:10 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: References: Message-ID: On Sun, 30 Mar 2025 12:34:06 GMT, Markus KARG wrote: >> This Pull Request proposes an implementation for [JDK-8343110](https://bugs.openjdk.org/browse/JDK-8343110): Adding the new method `public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` to the `CharSequence` interface, providing a **bulk-read** facility including a default implementation iterating over `charAt(int)`. >> >> In addition, this Pull Request proposes to replace the implementation of `Reader.of(CharSequence).read(char[] cbuf, int off, int len)` to invoke `CharSequence.getChars(next, next + n, cbuf, off)` instead of utilizing pattern matching for switch. Also, this PR proposes to implement `CharBuffer.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` as an alias for `CharBuffer.get(srcBegin, dst, dstBegin, srcEnd - srcBegin)`. >> >> To ensure quality... >> * ...the method signature and JavaDocs are adapted from `AbstractStringBuilder.getChars(...)`. >> * ...this PR relies upon the existing tests for `Reader.of(CharSequence)`, as these provide sufficient coverage of all changes introduced by this PR. > > Markus KARG has updated the pull request incrementally with one additional commit since the last revision: > > Applied changes requested by Chen: 'We might need to specify the IOOBE behavior - when an IOOBE is thrown, some characters may be already transferred (this is important for concurrent char sequences)' All requested changes are included in this PR since last week. Kindly asking to re-review / mark as reviewed, so we can proceed with the needed CSR. Thanks. ------------- PR Comment: https://git.openjdk.org/jdk/pull/21730#issuecomment-2778044566 From varadam at openjdk.org Fri Apr 4 09:25:21 2025 From: varadam at openjdk.org (Varada M) Date: Fri, 4 Apr 2025 09:25:21 GMT Subject: RFR: 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX [v3] In-Reply-To: References: Message-ID: On Fri, 4 Apr 2025 09:00:02 GMT, Martin Doerr wrote: >> Varada M has updated the pull request incrementally with one additional commit since the last revision: >> >> 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX > > src/java.base/aix/classes/sun/nio/fs/AixFileStore.java line 119: > >> 117: return super.supportsFileAttributeView(name); >> 118: } >> 119: > > The indentation seems to be off by one space. fixed! ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24276#discussion_r2028440348 From varadam at openjdk.org Fri Apr 4 09:25:20 2025 From: varadam at openjdk.org (Varada M) Date: Fri, 4 Apr 2025 09:25:20 GMT Subject: RFR: 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX [v4] In-Reply-To: References: Message-ID: > In AIX, the JFS2 supports extended attributes which has fgetea, fsetea, flistea, femoveea APIs support fetching, setting, listing and removing extended attributes. > > JBS: [JDK-8353053](https://bugs.openjdk.org/browse/JDK-8353053) Varada M has updated the pull request incrementally with two additional commits since the last revision: - 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX - 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX ------------- Changes: - all: https://git.openjdk.org/jdk/pull/24276/files - new: https://git.openjdk.org/jdk/pull/24276/files/5defce85..d6ef10ea Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=24276&range=03 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24276&range=02-03 Stats: 6 lines in 1 file changed: 1 ins; 2 del; 3 mod Patch: https://git.openjdk.org/jdk/pull/24276.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24276/head:pull/24276 PR: https://git.openjdk.org/jdk/pull/24276 From mdoerr at openjdk.org Fri Apr 4 09:57:05 2025 From: mdoerr at openjdk.org (Martin Doerr) Date: Fri, 4 Apr 2025 09:57:05 GMT Subject: RFR: 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX [v3] In-Reply-To: References: Message-ID: On Fri, 4 Apr 2025 09:22:29 GMT, Varada M wrote: >> src/java.base/aix/classes/sun/nio/fs/AixFileStore.java line 119: >> >>> 117: return super.supportsFileAttributeView(name); >>> 118: } >>> 119: >> >> The indentation seems to be off by one space. > > fixed! This file uses 4 spaces. Please take another look. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24276#discussion_r2028490623 From varadam at openjdk.org Fri Apr 4 10:25:31 2025 From: varadam at openjdk.org (Varada M) Date: Fri, 4 Apr 2025 10:25:31 GMT Subject: RFR: 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX [v5] In-Reply-To: References: Message-ID: <48Q0GwgOyeCT0NBwq6gmM0z7EeANYythkfkohLBHbCU=.acfc8160-231c-4a4a-b411-fbdd46d919f2@github.com> > In AIX, the JFS2 supports extended attributes which has fgetea, fsetea, flistea, femoveea APIs support fetching, setting, listing and removing extended attributes. > > JBS: [JDK-8353053](https://bugs.openjdk.org/browse/JDK-8353053) Varada M has updated the pull request incrementally with one additional commit since the last revision: 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX ------------- Changes: - all: https://git.openjdk.org/jdk/pull/24276/files - new: https://git.openjdk.org/jdk/pull/24276/files/d6ef10ea..dc2be404 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=24276&range=04 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24276&range=03-04 Stats: 17 lines in 1 file changed: 0 ins; 0 del; 17 mod Patch: https://git.openjdk.org/jdk/pull/24276.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24276/head:pull/24276 PR: https://git.openjdk.org/jdk/pull/24276 From varadam at openjdk.org Fri Apr 4 10:25:31 2025 From: varadam at openjdk.org (Varada M) Date: Fri, 4 Apr 2025 10:25:31 GMT Subject: RFR: 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX [v3] In-Reply-To: References: Message-ID: On Fri, 4 Apr 2025 09:54:00 GMT, Martin Doerr wrote: >> fixed! > > This file uses 4 spaces. Please take another look. Thanks for pointing that out! I've corrected the indentation ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24276#discussion_r2028546316 From mdoerr at openjdk.org Fri Apr 4 10:28:59 2025 From: mdoerr at openjdk.org (Martin Doerr) Date: Fri, 4 Apr 2025 10:28:59 GMT Subject: RFR: 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX [v5] In-Reply-To: <48Q0GwgOyeCT0NBwq6gmM0z7EeANYythkfkohLBHbCU=.acfc8160-231c-4a4a-b411-fbdd46d919f2@github.com> References: <48Q0GwgOyeCT0NBwq6gmM0z7EeANYythkfkohLBHbCU=.acfc8160-231c-4a4a-b411-fbdd46d919f2@github.com> Message-ID: On Fri, 4 Apr 2025 10:25:31 GMT, Varada M wrote: >> In AIX, the JFS2 supports extended attributes which has fgetea, fsetea, flistea, femoveea APIs support fetching, setting, listing and removing extended attributes. >> >> JBS: [JDK-8353053](https://bugs.openjdk.org/browse/JDK-8353053) > > Varada M has updated the pull request incrementally with one additional commit since the last revision: > > 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX Thanks for cleaning this up! ------------- Marked as reviewed by mdoerr (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/24276#pullrequestreview-2742533602 From varadam at openjdk.org Fri Apr 4 10:33:27 2025 From: varadam at openjdk.org (Varada M) Date: Fri, 4 Apr 2025 10:33:27 GMT Subject: RFR: 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX [v5] In-Reply-To: <48Q0GwgOyeCT0NBwq6gmM0z7EeANYythkfkohLBHbCU=.acfc8160-231c-4a4a-b411-fbdd46d919f2@github.com> References: <48Q0GwgOyeCT0NBwq6gmM0z7EeANYythkfkohLBHbCU=.acfc8160-231c-4a4a-b411-fbdd46d919f2@github.com> Message-ID: On Fri, 4 Apr 2025 10:25:31 GMT, Varada M wrote: >> In AIX, the JFS2 supports extended attributes which has fgetea, fsetea, flistea, femoveea APIs support fetching, setting, listing and removing extended attributes. >> >> JBS: [JDK-8353053](https://bugs.openjdk.org/browse/JDK-8353053) > > Varada M has updated the pull request incrementally with one additional commit since the last revision: > > 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX Thanks all! ------------- PR Comment: https://git.openjdk.org/jdk/pull/24276#issuecomment-2778258562 From varadam at openjdk.org Fri Apr 4 10:33:28 2025 From: varadam at openjdk.org (Varada M) Date: Fri, 4 Apr 2025 10:33:28 GMT Subject: Integrated: 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX In-Reply-To: References: Message-ID: On Thu, 27 Mar 2025 11:37:52 GMT, Varada M wrote: > In AIX, the JFS2 supports extended attributes which has fgetea, fsetea, flistea, femoveea APIs support fetching, setting, listing and removing extended attributes. > > JBS: [JDK-8353053](https://bugs.openjdk.org/browse/JDK-8353053) This pull request has now been integrated. Changeset: 1161b566 Author: Varada M URL: https://git.openjdk.org/jdk/commit/1161b566ca06786996cf47a4475bcdabaa24cde8 Stats: 113 lines in 6 files changed: 102 ins; 5 del; 6 mod 8353053: (fs) Add support for UserDefinedFileAttributeView on AIX Reviewed-by: mdoerr, jkern ------------- PR: https://git.openjdk.org/jdk/pull/24276 From rriggs at openjdk.org Fri Apr 4 12:44:03 2025 From: rriggs at openjdk.org (Roger Riggs) Date: Fri, 4 Apr 2025 12:44:03 GMT Subject: RFR: 8353641: Deprecate core library permission classes for removal Message-ID: Now that the Security Manager is permanently disabled, the following permission classes in the core libraries area can be deprecated for removal as they are no longer useful: FilePermission, LinkPermission, LoggingPermission, PropertyPermission, ReflectPermission, RuntimePermission, and SerializablePermission @Deprecated(forRemoval = true, since="25") Is added to each class and the existing @apiNote is converted to @deprected ------------- Commit messages: - 8353641: Deprecate core library permission classes for removal Changes: https://git.openjdk.org/jdk/pull/24444/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24444&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8353641 Stats: 47 lines in 15 files changed: 28 ins; 0 del; 19 mod Patch: https://git.openjdk.org/jdk/pull/24444.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24444/head:pull/24444 PR: https://git.openjdk.org/jdk/pull/24444 From dfuchs at openjdk.org Fri Apr 4 12:56:03 2025 From: dfuchs at openjdk.org (Daniel Fuchs) Date: Fri, 4 Apr 2025 12:56:03 GMT Subject: RFR: 8353641: Deprecate core library permission classes for removal In-Reply-To: References: Message-ID: On Fri, 4 Apr 2025 12:37:32 GMT, Roger Riggs wrote: > Now that the Security Manager is permanently disabled, the following permission classes in the core libraries area can be deprecated for removal as they are no longer useful: FilePermission, LinkPermission, LoggingPermission, PropertyPermission, ReflectPermission, RuntimePermission, and SerializablePermission > > @Deprecated(forRemoval = true, since="25") > Is added to each class and the existing @apiNote is converted to @deprected Looks reasonable to me. Changes to LoggingPermission look good. Out of curiosity I also looked at all usages of RuntimePermission in the JDK - I believe you caught them all - including the unexpected use in XSLT. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24444#issuecomment-2778654645 From bpb at openjdk.org Fri Apr 4 15:08:48 2025 From: bpb at openjdk.org (Brian Burkhalter) Date: Fri, 4 Apr 2025 15:08:48 GMT Subject: RFR: 8321591: (fs) Path.of(URI) performance (win) In-Reply-To: References: Message-ID: <_k5QoZC5zu6SkWrLidbKzHaAuxQTuJEL36asxxLVNu8=.fd93c322-8737-45f6-b15e-c8351cdb7fd3@github.com> On Thu, 3 Apr 2025 22:10:33 GMT, Roger Riggs wrote: > I would encourage going further with the refactoring folding two classes into one. Sounds like a good idea. I will investigate. Thanks. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24400#issuecomment-2779003523 From rriggs at openjdk.org Fri Apr 4 16:39:27 2025 From: rriggs at openjdk.org (Roger Riggs) Date: Fri, 4 Apr 2025 16:39:27 GMT Subject: RFR: 8353641: Deprecate core library permission classes for removal [v2] In-Reply-To: References: Message-ID: <-VbTKqOznNLKI7R7AHZEECmO_Gfu5aYoFpE7T2FriqY=.79b97a1a-1787-465c-b6a8-f590a01c8f9b@github.com> > Now that the Security Manager is permanently disabled, the following permission classes in the core libraries area can be deprecated for removal as they are no longer useful: FilePermission, LinkPermission, LoggingPermission, PropertyPermission, ReflectPermission, RuntimePermission, and SerializablePermission > > @Deprecated(forRemoval = true, since="25") > Is added to each class and the existing @apiNote is converted to @deprected Roger Riggs has updated the pull request incrementally with one additional commit since the last revision: Add SuppressWarnings to a Windows source missed earlier. ------------- Changes: - all: https://git.openjdk.org/jdk/pull/24444/files - new: https://git.openjdk.org/jdk/pull/24444/files/3ae4467e..1fa560a4 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=24444&range=01 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24444&range=00-01 Stats: 2 lines in 1 file changed: 1 ins; 1 del; 0 mod Patch: https://git.openjdk.org/jdk/pull/24444.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24444/head:pull/24444 PR: https://git.openjdk.org/jdk/pull/24444 From rriggs at openjdk.org Fri Apr 4 18:21:29 2025 From: rriggs at openjdk.org (Roger Riggs) Date: Fri, 4 Apr 2025 18:21:29 GMT Subject: RFR: 8353641: Deprecate core library permission classes for removal [v3] In-Reply-To: References: Message-ID: > Now that the Security Manager is permanently disabled, the following permission classes in the core libraries area can be deprecated for removal as they are no longer useful: FilePermission, LinkPermission, LoggingPermission, PropertyPermission, ReflectPermission, RuntimePermission, and SerializablePermission > > @Deprecated(forRemoval = true, since="25") > Is added to each class and the existing @apiNote is converted to @deprected Roger Riggs has updated the pull request incrementally with one additional commit since the last revision: Updated style of @Deprecated to match most existing @Deprecated annotations `since` comes before `forRemoval` No spaces around `=` ------------- Changes: - all: https://git.openjdk.org/jdk/pull/24444/files - new: https://git.openjdk.org/jdk/pull/24444/files/1fa560a4..bb18c1e6 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=24444&range=02 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24444&range=01-02 Stats: 6 lines in 6 files changed: 0 ins; 0 del; 6 mod Patch: https://git.openjdk.org/jdk/pull/24444.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24444/head:pull/24444 PR: https://git.openjdk.org/jdk/pull/24444 From iris at openjdk.org Fri Apr 4 18:40:50 2025 From: iris at openjdk.org (Iris Clark) Date: Fri, 4 Apr 2025 18:40:50 GMT Subject: RFR: 8353641: Deprecate core library permission classes for removal [v3] In-Reply-To: References: Message-ID: <9XnN5LLqYWAbbv3Smz9WTvMTZcbGwpGnQJtozSQm0Co=.ba9516ba-7fdc-4694-88e4-93a78a788099@github.com> On Fri, 4 Apr 2025 18:21:29 GMT, Roger Riggs wrote: >> Now that the Security Manager is permanently disabled, the following permission classes in the core libraries area can be deprecated for removal as they are no longer useful: FilePermission, LinkPermission, LoggingPermission, PropertyPermission, ReflectPermission, RuntimePermission, and SerializablePermission >> >> @Deprecated(forRemoval = true, since="25") >> Is added to each class and the existing @apiNote is converted to @deprected > > Roger Riggs has updated the pull request incrementally with one additional commit since the last revision: > > Updated style of @Deprecated to match most existing @Deprecated annotations > `since` comes before `forRemoval` > No spaces around `=` Marked as reviewed by iris (Reviewer). ------------- PR Review: https://git.openjdk.org/jdk/pull/24444#pullrequestreview-2743835110 From rriggs at openjdk.org Fri Apr 4 19:00:02 2025 From: rriggs at openjdk.org (Roger Riggs) Date: Fri, 4 Apr 2025 19:00:02 GMT Subject: RFR: 8353641: Deprecate core library permission classes for removal [v4] In-Reply-To: References: Message-ID: > Now that the Security Manager is permanently disabled, the following permission classes in the core libraries area can be deprecated for removal as they are no longer useful: FilePermission, LinkPermission, LoggingPermission, PropertyPermission, ReflectPermission, RuntimePermission, and SerializablePermission > > @Deprecated(forRemoval = true, since="25") > Is added to each class and the existing @apiNote is converted to @deprected Roger Riggs has updated the pull request incrementally with one additional commit since the last revision: Remove unused import of LinkPermission ------------- Changes: - all: https://git.openjdk.org/jdk/pull/24444/files - new: https://git.openjdk.org/jdk/pull/24444/files/bb18c1e6..25aa6099 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=24444&range=03 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24444&range=02-03 Stats: 1 line in 1 file changed: 0 ins; 1 del; 0 mod Patch: https://git.openjdk.org/jdk/pull/24444.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24444/head:pull/24444 PR: https://git.openjdk.org/jdk/pull/24444 From mullan at openjdk.org Fri Apr 4 19:07:59 2025 From: mullan at openjdk.org (Sean Mullan) Date: Fri, 4 Apr 2025 19:07:59 GMT Subject: RFR: 8353641: Deprecate core library permission classes for removal [v4] In-Reply-To: References: Message-ID: On Fri, 4 Apr 2025 19:00:02 GMT, Roger Riggs wrote: >> Now that the Security Manager is permanently disabled, the following permission classes in the core libraries area can be deprecated for removal as they are no longer useful: FilePermission, LinkPermission, LoggingPermission, PropertyPermission, ReflectPermission, RuntimePermission, and SerializablePermission >> >> @Deprecated(forRemoval = true, since="25") >> Is added to each class and the existing @apiNote is converted to @deprected > > Roger Riggs has updated the pull request incrementally with one additional commit since the last revision: > > Remove unused import of LinkPermission Some copyright dates have not been updated. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24444#issuecomment-2779539268 From rriggs at openjdk.org Fri Apr 4 19:15:29 2025 From: rriggs at openjdk.org (Roger Riggs) Date: Fri, 4 Apr 2025 19:15:29 GMT Subject: RFR: 8353641: Deprecate core library permission classes for removal [v5] In-Reply-To: References: Message-ID: > Now that the Security Manager is permanently disabled, the following permission classes in the core libraries area can be deprecated for removal as they are no longer useful: FilePermission, LinkPermission, LoggingPermission, PropertyPermission, ReflectPermission, RuntimePermission, and SerializablePermission > > @Deprecated(forRemoval = true, since="25") > Is added to each class and the existing @apiNote is converted to @deprected Roger Riggs has updated the pull request incrementally with one additional commit since the last revision: Update copyright in WindowsFileCopy ------------- Changes: - all: https://git.openjdk.org/jdk/pull/24444/files - new: https://git.openjdk.org/jdk/pull/24444/files/25aa6099..c1457493 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=24444&range=04 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24444&range=03-04 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/jdk/pull/24444.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24444/head:pull/24444 PR: https://git.openjdk.org/jdk/pull/24444 From mullan at openjdk.org Fri Apr 4 19:15:29 2025 From: mullan at openjdk.org (Sean Mullan) Date: Fri, 4 Apr 2025 19:15:29 GMT Subject: RFR: 8353641: Deprecate core library permission classes for removal [v4] In-Reply-To: References: Message-ID: On Fri, 4 Apr 2025 19:00:02 GMT, Roger Riggs wrote: >> Now that the Security Manager is permanently disabled, the following permission classes in the core libraries area can be deprecated for removal as they are no longer useful: FilePermission, LinkPermission, LoggingPermission, PropertyPermission, ReflectPermission, RuntimePermission, and SerializablePermission >> >> @Deprecated(forRemoval = true, since="25") >> Is added to each class and the existing @apiNote is converted to @deprected > > Roger Riggs has updated the pull request incrementally with one additional commit since the last revision: > > Remove unused import of LinkPermission src/java.base/share/classes/java/io/FilePermission.java line 87: > 85: > 86: @Deprecated(since="25", forRemoval=true) > 87: @SuppressWarnings("removal") Is this leftover? You already add it to the methods that need it. src/java.base/share/classes/sun/net/www/protocol/file/FileURLConnection.java line 202: > 200: } > 201: > 202: @SuppressWarnings("removal") This should not be necessary. src/java.logging/share/classes/java/util/logging/LoggingPermission.java line 48: > 46: */ > 47: > 48: @Deprecated(forRemoval = true, since="25") This order is different than other classes, maybe make it consistent? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24444#discussion_r2029312409 PR Review Comment: https://git.openjdk.org/jdk/pull/24444#discussion_r2029308725 PR Review Comment: https://git.openjdk.org/jdk/pull/24444#discussion_r2029311303 From rriggs at openjdk.org Fri Apr 4 19:22:46 2025 From: rriggs at openjdk.org (Roger Riggs) Date: Fri, 4 Apr 2025 19:22:46 GMT Subject: RFR: 8353641: Deprecate core library permission classes for removal [v6] In-Reply-To: References: Message-ID: > Now that the Security Manager is permanently disabled, the following permission classes in the core libraries area can be deprecated for removal as they are no longer useful: FilePermission, LinkPermission, LoggingPermission, PropertyPermission, ReflectPermission, RuntimePermission, and SerializablePermission > > @Deprecated(forRemoval = true, since="25") > Is added to each class and the existing @apiNote is converted to @deprected Roger Riggs has updated the pull request incrementally with one additional commit since the last revision: Remove unnecessary SuppressWarnings and correct Deprecated annotation style ------------- Changes: - all: https://git.openjdk.org/jdk/pull/24444/files - new: https://git.openjdk.org/jdk/pull/24444/files/c1457493..9a9417a7 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=24444&range=05 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24444&range=04-05 Stats: 3 lines in 3 files changed: 0 ins; 2 del; 1 mod Patch: https://git.openjdk.org/jdk/pull/24444.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24444/head:pull/24444 PR: https://git.openjdk.org/jdk/pull/24444 From duke at openjdk.org Sat Apr 5 17:41:00 2025 From: duke at openjdk.org (Markus KARG) Date: Sat, 5 Apr 2025 17:41:00 GMT Subject: RFR: 8353795: Add Writer.of(StringBuilder) Message-ID: <2xEfp_WiAa-QW5Yao7JoOS3zSOtPKvBq4qV5rk8obWs=.2b1cc84d-2ff4-4d0c-bb0f-bdb276dc109a@github.com> This Pull Requests proposes an implementation for [JDK-8353795](https://bugs.openjdk.org/browse/JDK-8353795): Adding the new method `public static Writer Writer.of(StringBuilder)`, providing a non-synchronized Writer implementation optimized for writing into `StringBuilder`. A basic test is provided to proof that the new `Writer` behaves as expected. For comparison, the same test is also run against `StringWriter`. ------------- Commit messages: - Removed unused import - Limited to Writer.of(StringBuilder) - Must not change implementation of StringWriter as getBuffer would not reflect current content of internally used Writer - Fixed typo - Do not wrap Writer, but return it as-is - Forward flush() and close() for Flushable and Closeable - Draft: Test for Writer.of(Appendable) - Writer.of(Appendable) Changes: https://git.openjdk.org/jdk/pull/24469/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24469&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8353795 Stats: 379 lines in 4 files changed: 376 ins; 0 del; 3 mod Patch: https://git.openjdk.org/jdk/pull/24469.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24469/head:pull/24469 PR: https://git.openjdk.org/jdk/pull/24469 From duke at openjdk.org Sun Apr 6 09:39:47 2025 From: duke at openjdk.org (Markus KARG) Date: Sun, 6 Apr 2025 09:39:47 GMT Subject: RFR: 8353795: Add Writer.of(StringBuilder) In-Reply-To: <2xEfp_WiAa-QW5Yao7JoOS3zSOtPKvBq4qV5rk8obWs=.2b1cc84d-2ff4-4d0c-bb0f-bdb276dc109a@github.com> References: <2xEfp_WiAa-QW5Yao7JoOS3zSOtPKvBq4qV5rk8obWs=.2b1cc84d-2ff4-4d0c-bb0f-bdb276dc109a@github.com> Message-ID: On Sat, 5 Apr 2025 17:36:29 GMT, Markus KARG wrote: > This Pull Requests proposes an implementation for [JDK-8353795](https://bugs.openjdk.org/browse/JDK-8353795): Adding the new method `public static Writer Writer.of(StringBuilder)`, providing a non-synchronized Writer implementation optimized for writing into `StringBuilder`. > > A basic test is provided to proof that the new `Writer` behaves as expected. For comparison, the same test is also run against `StringWriter`. Continuing from thread "[Request for Enhancement: java.io.Writer.of(Appendable) as an efficient alternative to java.io.StringWriter](https://mail.openjdk.org/pipermail/core-libs-dev/2025-March/141539.html)": @liach wrote: >...we can probably start drafting the API documentation of this new API `Writer.of(StringBuilder)`: >```java >@return a character stream that redirects to a specified StringBuilder} >

>The {@code write} and {@code append} invocations are redirected to the {@code append} methods with the same parameter t>ypes on the specified StringBuilder, except {@code write(int)}, which delegates to {@code append(char)}. The {@code flush} and >{@code close} invocations have no effect. >``` >I propose to specify this explicitly as a delegation proxy; we can infer the lack of thread safety from `StringBuilder`. (If we want, we can add an API note asking to use `StringWriter` if thread safety is needed). Also, we don't specify the `toString` behavior on the returned Writer (unlike for `StringWriter`); I think users should just use the `toString` on the `StringBuilder`. Actually I do not see the benefit of documenting which method redirects to what other method or class, but I see that it binds us in future to today's decisions. Also I do not see what benefit notes about `StringWriter` and `toString` would be good for, as leaving it open provides most future flexibility to change eventually (just as we leave open `hashCode` and `equals`). Having said that, instead I started the PR with a typical JavaDoc as it looks like what we did in `Reader.of()` recently. WDYT? ------------- PR Comment: https://git.openjdk.org/jdk/pull/24469#issuecomment-2781332523 From alanb at openjdk.org Mon Apr 7 06:48:55 2025 From: alanb at openjdk.org (Alan Bateman) Date: Mon, 7 Apr 2025 06:48:55 GMT Subject: RFR: 8353641: Deprecate core library permission classes for removal [v6] In-Reply-To: References: Message-ID: On Fri, 4 Apr 2025 19:22:46 GMT, Roger Riggs wrote: >> Now that the Security Manager is permanently disabled, the following permission classes in the core libraries area can be deprecated for removal as they are no longer useful: FilePermission, LinkPermission, LoggingPermission, PropertyPermission, ReflectPermission, RuntimePermission, and SerializablePermission >> >> @Deprecated(forRemoval = true, since="25") >> Is added to each class and the existing @apiNote is converted to @deprected > > Roger Riggs has updated the pull request incrementally with one additional commit since the last revision: > > Remove unnecessary SuppressWarnings and correct Deprecated annotation style src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java line 1639: > 1637: */ > 1638: @SuppressWarnings("removal") > 1639: static volatile RuntimePermission modifyThreadPermission; This can be removed, it's not used. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24444#discussion_r2030554666 From alanb at openjdk.org Mon Apr 7 08:44:58 2025 From: alanb at openjdk.org (Alan Bateman) Date: Mon, 7 Apr 2025 08:44:58 GMT Subject: RFR: 8321591: (fs) Path.of(URI) performance (win) In-Reply-To: References: Message-ID: On Thu, 3 Apr 2025 01:07:34 GMT, Brian Burkhalter wrote: > Improve the performance of `WindowsPathParser.normalize` by using a `char` array to perform the normalization in place instead of appending to a `StringBuilder`. The `Result` inner class is also converted to a `record`. Marked as reviewed by alanb (Reviewer). ------------- PR Review: https://git.openjdk.org/jdk/pull/24400#pullrequestreview-2745995934 From alanb at openjdk.org Mon Apr 7 08:44:59 2025 From: alanb at openjdk.org (Alan Bateman) Date: Mon, 7 Apr 2025 08:44:59 GMT Subject: RFR: 8321591: (fs) Path.of(URI) performance (win) In-Reply-To: References: Message-ID: On Thu, 3 Apr 2025 17:54:12 GMT, Brian Burkhalter wrote: > Correct, hence my comments after the table above about other opportunities in `WindowsUriSupport.fromUri`. If there are none, then perhaps the issue and PR summaries should be changed accordingly. I think we should rename, otherwise the commit log will be a bit confusing. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24400#issuecomment-2782479819 From bpb at openjdk.org Mon Apr 7 15:21:12 2025 From: bpb at openjdk.org (Brian Burkhalter) Date: Mon, 7 Apr 2025 15:21:12 GMT Subject: RFR: 8321591: (fs) Path.of(URI) performance (win) In-Reply-To: References: Message-ID: <_-Vk73YanI1Ef6Rxpkh2zZ2ELxo6nAOUzARc5PXCYtM=.fff57e2f-c6ce-4ef4-be14-5e84cfb05345@github.com> On Mon, 7 Apr 2025 08:42:15 GMT, Alan Bateman wrote: > I think we should rename, otherwise the commit log will be a bit confusing. Will do. I thinks it would also be worth filing two more related issues: one for the suggested refactoring of `WindowsPathParser`, and another to investigate improving the performance of other portions of the `URI` -> `Path` conversion. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24400#issuecomment-2783700768 From rriggs at openjdk.org Mon Apr 7 17:18:40 2025 From: rriggs at openjdk.org (Roger Riggs) Date: Mon, 7 Apr 2025 17:18:40 GMT Subject: RFR: 8353641: Deprecate core library permission classes for removal [v7] In-Reply-To: References: Message-ID: > Now that the Security Manager is permanently disabled, the following permission classes in the core libraries area can be deprecated for removal as they are no longer useful: FilePermission, LinkPermission, LoggingPermission, PropertyPermission, ReflectPermission, RuntimePermission, and SerializablePermission > > @Deprecated(forRemoval = true, since="25") > Is added to each class and the existing @apiNote is converted to @deprected Roger Riggs has updated the pull request incrementally with one additional commit since the last revision: Mark as deprecated for removal as of jdk 25: SecureClassLoader.getPermissions, URLClassLoader.getPermissions. Remove dead code from ForkJoinPool. Add @SuppressWarnings("remove") ------------- Changes: - all: https://git.openjdk.org/jdk/pull/24444/files - new: https://git.openjdk.org/jdk/pull/24444/files/9a9417a7..322c5938 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=24444&range=06 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24444&range=05-06 Stats: 20 lines in 4 files changed: 11 ins; 7 del; 2 mod Patch: https://git.openjdk.org/jdk/pull/24444.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24444/head:pull/24444 PR: https://git.openjdk.org/jdk/pull/24444 From rriggs at openjdk.org Mon Apr 7 18:40:35 2025 From: rriggs at openjdk.org (Roger Riggs) Date: Mon, 7 Apr 2025 18:40:35 GMT Subject: RFR: 8353641: Deprecate core library permission classes for removal [v8] In-Reply-To: References: Message-ID: > Now that the Security Manager is permanently disabled, the following permission classes in the core libraries area can be deprecated for removal as they are no longer useful: FilePermission, LinkPermission, LoggingPermission, PropertyPermission, ReflectPermission, RuntimePermission, and SerializablePermission > > @Deprecated(forRemoval = true, since="25") > Is added to each class and the existing @apiNote is converted to @deprected Roger Riggs has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 10 additional commits since the last revision: - Revert "Mark as deprecated for removal as of jdk 25: SecureClassLoader.getPermissions, URLClassLoader.getPermissions." SecureClassLoader.getPermissions and URLClassLoader.getPermissions are not marked as Deprecated. - Merge branch 'master' into 8353641-deprecate-premission-classes - Missing suppresswarnings - Mark as deprecated for removal as of jdk 25: SecureClassLoader.getPermissions, URLClassLoader.getPermissions. Remove dead code from ForkJoinPool. Add @SuppressWarnings("remove") - Remove unnecessary SuppressWarnings and correct Deprecated annotation style - Update copyright in WindowsFileCopy - Remove unused import of LinkPermission - Updated style of @Deprecated to match most existing @Deprecated annotations `since` comes before `forRemoval` No spaces around `=` - Add SuppressWarnings to a Windows source missed earlier. - 8353641: Deprecate core library permission classes for removal Now that the Security Manager is permanently disabled, the following permission classes in the core libraries area can be deprecated for removal as they are no longer useful: FilePermission, LinkPermission, LoggingPermission, PropertyPermission, ReflectPermission, RuntimePermission, and SerializablePermission @Deprecated(forRemoval = true, since="25") Is added to each class and the existing @apiNote is converted to @deprected ------------- Changes: - all: https://git.openjdk.org/jdk/pull/24444/files - new: https://git.openjdk.org/jdk/pull/24444/files/322c5938..6d3f003d Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=24444&range=07 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24444&range=06-07 Stats: 10986 lines in 240 files changed: 8087 ins; 2384 del; 515 mod Patch: https://git.openjdk.org/jdk/pull/24444.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24444/head:pull/24444 PR: https://git.openjdk.org/jdk/pull/24444 From bpb at openjdk.org Mon Apr 7 18:49:50 2025 From: bpb at openjdk.org (Brian Burkhalter) Date: Mon, 7 Apr 2025 18:49:50 GMT Subject: Integrated: 8321591: (fs) Improve String -> Path conversion performance (win) In-Reply-To: References: Message-ID: On Thu, 3 Apr 2025 01:07:34 GMT, Brian Burkhalter wrote: > Improve the performance of `WindowsPathParser.normalize` by using a `char` array to perform the normalization in place instead of appending to a `StringBuilder`. The `Result` inner class is also converted to a `record`. This pull request has now been integrated. Changeset: 5481021e Author: Brian Burkhalter URL: https://git.openjdk.org/jdk/commit/5481021ee64fd457279ea7083be0f977c7ce3e3c Stats: 146 lines in 2 files changed: 91 ins; 33 del; 22 mod 8321591: (fs) Improve String -> Path conversion performance (win) Reviewed-by: alanb ------------- PR: https://git.openjdk.org/jdk/pull/24400 From alanb at openjdk.org Tue Apr 8 06:44:15 2025 From: alanb at openjdk.org (Alan Bateman) Date: Tue, 8 Apr 2025 06:44:15 GMT Subject: RFR: 8353641: Deprecate core library permission classes for removal [v8] In-Reply-To: References: Message-ID: On Mon, 7 Apr 2025 18:40:35 GMT, Roger Riggs wrote: >> Now that the Security Manager is permanently disabled, the following permission classes in the core libraries area can be deprecated for removal as they are no longer useful: FilePermission, LinkPermission, LoggingPermission, PropertyPermission, ReflectPermission, RuntimePermission, and SerializablePermission >> >> @Deprecated(forRemoval = true, since="25") >> Is added to each class and the existing @apiNote is converted to @deprected > > Roger Riggs has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 10 additional commits since the last revision: > > - Revert "Mark as deprecated for removal as of jdk 25: SecureClassLoader.getPermissions, URLClassLoader.getPermissions." > SecureClassLoader.getPermissions and URLClassLoader.getPermissions are not marked as Deprecated. > - Merge branch 'master' into 8353641-deprecate-premission-classes > - Missing suppresswarnings > - Mark as deprecated for removal as of jdk 25: SecureClassLoader.getPermissions, URLClassLoader.getPermissions. > Remove dead code from ForkJoinPool. > Add @SuppressWarnings("remove") > - Remove unnecessary SuppressWarnings and correct Deprecated annotation style > - Update copyright in WindowsFileCopy > - Remove unused import of LinkPermission > - Updated style of @Deprecated to match most existing @Deprecated annotations > `since` comes before `forRemoval` > No spaces around `=` > - Add SuppressWarnings to a Windows source missed earlier. > - 8353641: Deprecate core library permission classes for removal > > Now that the Security Manager is permanently disabled, the following permission classes > in the core libraries area can be deprecated for removal as they are no longer useful: > FilePermission, LinkPermission, LoggingPermission, PropertyPermission, ReflectPermission, > RuntimePermission, and SerializablePermission > > @Deprecated(forRemoval = true, since="25") > Is added to each class and the existing @apiNote is converted to @deprected src/java.base/share/classes/jdk/internal/access/JavaIOFilePermissionAccess.java line 49: > 47: */ > 48: @SuppressWarnings("removal") > 49: FilePermission newPermUsingAltPath(FilePermission input); I assume JavaIOFilePermissionAccess can be removed, nothing should be using this now. src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java line 443: > 441: @SuppressWarnings("removal") > 442: private void defineTransletClasses() > 443: throws TransformerConfigurationException { In passing, the PermissionCollection used to construct the PD here is no longer needed. If this is cleaned up then the SW wouldn't be needed. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24444#discussion_r2032494012 PR Review Comment: https://git.openjdk.org/jdk/pull/24444#discussion_r2032493150 From duke at openjdk.org Tue Apr 8 11:27:31 2025 From: duke at openjdk.org (YuHui936) Date: Tue, 8 Apr 2025 11:27:31 GMT Subject: RFR: 8294068: Unconditional and eager load of nio library since JDK-8264744 In-Reply-To: References: Message-ID: <5LtByF2VzmXidNMEpcafwMg-zggX1KvTBj_GsCzGvHo=.0c95f751-51b2-400b-93fe-3350fbd9511e@github.com> On Tue, 20 Sep 2022 16:47:09 GMT, Brian Burkhalter wrote: > Move `LinuxFileSystem` native code to `LinuxNativeDispatcher`. Files.copy() fails with EOPNOTSUPP on NFS when copy_file_range is unsupported by kernel Detailed Description **Environment:** - JDK Version: OpenJDK 21.0.3 - OS: Alpine Linux 3.20 (kernel 3.10) - Filesystem: NFS - Glibc: 2.36 (supports `copy_file_range` syscall) - Container Environment: Alpine 3.20 with kernel 3.10 (lacks `copy_file_range` support) **Problem:** When invoking `Files.copy(Path, Path, CopyOption)` on an NFS filesystem, the operation fails with: `java.io.IOException: Operation not supported` due to error code `EOPNOTSUPP`. **Root Cause Analysis:** - JDK 21's `LinuxNativeDispatcher.directCopy0` attempts to use the `copy_file_range` syscall. - The NFS driver in older kernels (e.g., 3.10) returns `EOPNOTSUPP` (indicating unsupported operation). - JDK currently handles `EINVAL`, `ENOSYS`, and `EXDEV` by falling back to `sendfile64`, but **ignores `EOPNOTSUPP`**, leading to an unchecked exception. **Expected Behavior:** JDK should RESTARTABLE to `sendfile64` when encountering `EOPNOTSUPP`. **Steps to Reproduce:** 1. Mount an NFS filesystem in an Alpine 3.20 container (kernel 3.10). 2. Run the following Java code with JDK 21: ```java Path src = Path.of("/nfs/src.txt"); Path dst = Path.of("/nfs/dst.txt"); Files.copy(src, dst, StandardCopyOption.REPLACE_EXISTING); 3. Observe the exception: java.io.IOException: Operation not supported at java.base/sun.nio.fs.LinuxNativeDispatcher.directCopy0(Native Method) ... (full stack trace) Additional Context Attach the full exception stack trace (provided in the problem description). Relevant kernel code snippet (from nfs42_proc_copy): if (!nfs_server_capable(file_inode(dst), NFS_CAP_COPY)) return -EOPNOTSUPP; // Kernel returns EOPNOTSUPP for unsupported copy Suggested Fix Extend error handling in directCopy0 to catch EOPNOTSUPP. ![1](https://github.com/user-attachments/assets/781f420a-87c7-4168-8b29-d657ca28fa90) ![2](https://github.com/user-attachments/assets/84fc840f-1e4e-45bc-9426-734585414745) ![3](https://github.com/user-attachments/assets/7dc6d0ce-0fb7-444a-9590-7d10c685bed3) ![4](https://github.com/user-attachments/assets/e3bda0cd-46cd-4676-99d2-5f1683142082) ------------- PR Comment: https://git.openjdk.org/jdk/pull/10362#issuecomment-2786106876 From rriggs at openjdk.org Tue Apr 8 16:09:27 2025 From: rriggs at openjdk.org (Roger Riggs) Date: Tue, 8 Apr 2025 16:09:27 GMT Subject: RFR: 8353641: Deprecate core library permission classes for removal [v8] In-Reply-To: References: Message-ID: On Tue, 8 Apr 2025 06:41:41 GMT, Alan Bateman wrote: >> Roger Riggs has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 10 additional commits since the last revision: >> >> - Revert "Mark as deprecated for removal as of jdk 25: SecureClassLoader.getPermissions, URLClassLoader.getPermissions." >> SecureClassLoader.getPermissions and URLClassLoader.getPermissions are not marked as Deprecated. >> - Merge branch 'master' into 8353641-deprecate-premission-classes >> - Missing suppresswarnings >> - Mark as deprecated for removal as of jdk 25: SecureClassLoader.getPermissions, URLClassLoader.getPermissions. >> Remove dead code from ForkJoinPool. >> Add @SuppressWarnings("remove") >> - Remove unnecessary SuppressWarnings and correct Deprecated annotation style >> - Update copyright in WindowsFileCopy >> - Remove unused import of LinkPermission >> - Updated style of @Deprecated to match most existing @Deprecated annotations >> `since` comes before `forRemoval` >> No spaces around `=` >> - Add SuppressWarnings to a Windows source missed earlier. >> - 8353641: Deprecate core library permission classes for removal >> >> Now that the Security Manager is permanently disabled, the following permission classes >> in the core libraries area can be deprecated for removal as they are no longer useful: >> FilePermission, LinkPermission, LoggingPermission, PropertyPermission, ReflectPermission, >> RuntimePermission, and SerializablePermission >> >> @Deprecated(forRemoval = true, since="25") >> Is added to each class and the existing @apiNote is converted to @deprected > > src/java.base/share/classes/jdk/internal/access/JavaIOFilePermissionAccess.java line 49: > >> 47: */ >> 48: @SuppressWarnings("removal") >> 49: FilePermission newPermUsingAltPath(FilePermission input); > > I assume JavaIOFilePermissionAccess can be removed, nothing should be using this now. Filed JDK-8354053 to remove as a separate issue. > src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java line 443: > >> 441: @SuppressWarnings("removal") >> 442: private void defineTransletClasses() >> 443: throws TransformerConfigurationException { > > In passing, the PermissionCollection used to construct the PD here is no longer needed. If this is cleaned up then the SW wouldn't be needed. Filed JDK-8354054 to cleanup in a separate issue. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24444#discussion_r2033542174 PR Review Comment: https://git.openjdk.org/jdk/pull/24444#discussion_r2033538959 From alanb at openjdk.org Tue Apr 8 16:54:17 2025 From: alanb at openjdk.org (Alan Bateman) Date: Tue, 8 Apr 2025 16:54:17 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: References: Message-ID: On Sun, 30 Mar 2025 12:34:06 GMT, Markus KARG wrote: >> This Pull Request proposes an implementation for [JDK-8343110](https://bugs.openjdk.org/browse/JDK-8343110): Adding the new method `public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` to the `CharSequence` interface, providing a **bulk-read** facility including a default implementation iterating over `charAt(int)`. >> >> In addition, this Pull Request proposes to replace the implementation of `Reader.of(CharSequence).read(char[] cbuf, int off, int len)` to invoke `CharSequence.getChars(next, next + n, cbuf, off)` instead of utilizing pattern matching for switch. Also, this PR proposes to implement `CharBuffer.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` as an alias for `CharBuffer.get(srcBegin, dst, dstBegin, srcEnd - srcBegin)`. >> >> To ensure quality... >> * ...the method signature and JavaDocs are adapted from `AbstractStringBuilder.getChars(...)`. >> * ...this PR relies upon the existing tests for `Reader.of(CharSequence)`, as these provide sufficient coverage of all changes introduced by this PR. > > Markus KARG has updated the pull request incrementally with one additional commit since the last revision: > > Applied changes requested by Chen: 'We might need to specify the IOOBE behavior - when an IOOBE is thrown, some characters may be already transferred (this is important for concurrent char sequences)' I think the API docs in the latest draft looks okay. It mildly bothers me a bit is that getChars is JDK 1.0 API but the trade off with doing a new API is that it would need to be implemented by String and SB so I think the proposal on the table is okay. ------------- PR Comment: https://git.openjdk.org/jdk/pull/21730#issuecomment-2787087670 From duke at openjdk.org Tue Apr 8 17:07:30 2025 From: duke at openjdk.org (Markus KARG) Date: Tue, 8 Apr 2025 17:07:30 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: References: Message-ID: <3_9EK7Fh7EyKrg-5msgTMYB-icpPwvBRL5v7bXWdsTA=.ed4bda82-a9cb-43e9-be32-416cdef6a3da@github.com> On Tue, 8 Apr 2025 16:51:06 GMT, Alan Bateman wrote: > I think the API docs in the latest draft looks okay. It mildly bothers me a bit is that getChars is JDK 1.0 API but the trade off with doing a new API is that it would need to be implemented by String and SB so I think the proposal on the table is okay. Kindly asking to mark this PR as reviewed, so I will go on with the CSR next. ------------- PR Comment: https://git.openjdk.org/jdk/pull/21730#issuecomment-2787121134 From liach at openjdk.org Tue Apr 8 18:14:32 2025 From: liach at openjdk.org (Chen Liang) Date: Tue, 8 Apr 2025 18:14:32 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: References: Message-ID: <4U3TP4zVn6Bg39f6rLOCDT97Zfj33DEMrJm2seoatN4=.155d1292-2a03-4b5b-ad7e-62adf9bd2be7@github.com> On Sun, 30 Mar 2025 12:34:06 GMT, Markus KARG wrote: >> This Pull Request proposes an implementation for [JDK-8343110](https://bugs.openjdk.org/browse/JDK-8343110): Adding the new method `public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` to the `CharSequence` interface, providing a **bulk-read** facility including a default implementation iterating over `charAt(int)`. >> >> In addition, this Pull Request proposes to replace the implementation of `Reader.of(CharSequence).read(char[] cbuf, int off, int len)` to invoke `CharSequence.getChars(next, next + n, cbuf, off)` instead of utilizing pattern matching for switch. Also, this PR proposes to implement `CharBuffer.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` as an alias for `CharBuffer.get(srcBegin, dst, dstBegin, srcEnd - srcBegin)`. >> >> To ensure quality... >> * ...the method signature and JavaDocs are adapted from `AbstractStringBuilder.getChars(...)`. >> * ...this PR relies upon the existing tests for `Reader.of(CharSequence)`, as these provide sufficient coverage of all changes introduced by this PR. > > Markus KARG has updated the pull request incrementally with one additional commit since the last revision: > > Applied changes requested by Chen: 'We might need to specify the IOOBE behavior - when an IOOBE is thrown, some characters may be already transferred (this is important for concurrent char sequences)' Should we ask hotspot compiler engineers for inputs on how useful this API is for allowing batch/vectorized copy and eliminating overheads of defensive copy array allocation? ------------- PR Comment: https://git.openjdk.org/jdk/pull/21730#issuecomment-2787292309 From bpb at openjdk.org Tue Apr 8 22:56:53 2025 From: bpb at openjdk.org (Brian Burkhalter) Date: Tue, 8 Apr 2025 22:56:53 GMT Subject: RFR: 8337143: (fc, fs) Move filesystem-related native objects from libnio to libjava [v12] In-Reply-To: References: Message-ID: > This proposed change would move the native objects required for NIO file interaction from the libnio native library to the libjava native library on Linux, macOS, and Windows. Brian Burkhalter has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 12 commits: - Merge - Merge - Merge - Merge - 8337143: Minor makefile tweak - 8337143: Clean up to address reviewer comments - Merge - 8337143: Remove loading libnet from Inet6AddressImpl; delete commented out #include in Windows IOUtil.c - Merge - 8337143: Removed dependency of libjava on headers in libnio/ch - ... and 2 more: https://git.openjdk.org/jdk/compare/5b42c46b...3e1e15dc ------------- Changes: https://git.openjdk.org/jdk/pull/20317/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20317&range=11 Stats: 1541 lines in 93 files changed: 774 ins; 668 del; 99 mod Patch: https://git.openjdk.org/jdk/pull/20317.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/20317/head:pull/20317 PR: https://git.openjdk.org/jdk/pull/20317 From duke at openjdk.org Wed Apr 9 03:06:42 2025 From: duke at openjdk.org (duke) Date: Wed, 9 Apr 2025 03:06:42 GMT Subject: Withdrawn: 8069345: (fs) FileTreeWalker throws NotDirectoryException on file junction points In-Reply-To: References: Message-ID: On Thu, 17 Oct 2024 00:05:26 GMT, Brian Burkhalter wrote: > Improve support for Windows directory junctions. This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.org/jdk/pull/21555 From michaelm at openjdk.org Wed Apr 9 10:04:47 2025 From: michaelm at openjdk.org (Michael McMahon) Date: Wed, 9 Apr 2025 10:04:47 GMT Subject: RFR: 8348986: Improve coverage of enhanced exception messages [v4] In-Reply-To: References: Message-ID: <7QqAa8kPfdRpCCwiAleAk7v53UshuArCnUvMpRR0On8=.4646bb5b-5382-437c-9e7e-9e8513698d4a@github.com> > Hi, > > Enhanced exception messages are designed to hide sensitive information such as hostnames, IP > addresses from exception message strings, unless the enhanced mode for the specific category > has been explicitly enabled. Enhanced exceptions were first introduced in 8204233 in JDK 11 and > updated in 8207846. > > This PR aims to increase the coverage of enhanced exception messages in the networking code. > A limited number of exceptions are already hidden (restricted) by default. The new categories and > exceptions in this PR will be restricted on an opt-in basis, ie. the default mode will be enhanced > (while preserving the existing behavior). > > The mechanism is controlled by the security/system property "jdk.includeInExceptions" which takes as value > a comma separated list of category names, which identify groups of exceptions where the exception > message may be enhanced. Any category not listed is "restricted" which means that potentially > sensitive information (such as hostnames, IP addresses, user identities) are excluded from the message text. > > The changes to the java.security conf file describe the exact changes in terms of the categories now > supported and any changes in behavior. > > Thanks, > Michael Michael McMahon has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 17 commits: - Merge branch 'master' into 8348986-exceptions - Merge branch 'master' into 8348986-exceptions - Apply suggestions from code review from turbanoff review Co-authored-by: Andrey Turbanov - doc + copyright update - remove file added by mistake - whitespace - moved test - Merge branch 'master' into 8348986-exceptions - update - update - ... and 7 more: https://git.openjdk.org/jdk/compare/f7fa05f5...f5501d18 ------------- Changes: https://git.openjdk.org/jdk/pull/23929/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=23929&range=03 Stats: 1000 lines in 42 files changed: 767 ins; 104 del; 129 mod Patch: https://git.openjdk.org/jdk/pull/23929.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/23929/head:pull/23929 PR: https://git.openjdk.org/jdk/pull/23929 From mullan at openjdk.org Thu Apr 10 15:12:45 2025 From: mullan at openjdk.org (Sean Mullan) Date: Thu, 10 Apr 2025 15:12:45 GMT Subject: RFR: 8353641: Deprecate core library permission classes for removal [v8] In-Reply-To: References: Message-ID: On Mon, 7 Apr 2025 18:40:35 GMT, Roger Riggs wrote: >> Now that the Security Manager is permanently disabled, the following permission classes in the core libraries area can be deprecated for removal as they are no longer useful: FilePermission, LinkPermission, LoggingPermission, PropertyPermission, ReflectPermission, RuntimePermission, and SerializablePermission >> >> @Deprecated(forRemoval = true, since="25") >> Is added to each class and the existing @apiNote is converted to @deprected > > Roger Riggs has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 10 additional commits since the last revision: > > - Revert "Mark as deprecated for removal as of jdk 25: SecureClassLoader.getPermissions, URLClassLoader.getPermissions." > SecureClassLoader.getPermissions and URLClassLoader.getPermissions are not marked as Deprecated. > - Merge branch 'master' into 8353641-deprecate-premission-classes > - Missing suppresswarnings > - Mark as deprecated for removal as of jdk 25: SecureClassLoader.getPermissions, URLClassLoader.getPermissions. > Remove dead code from ForkJoinPool. > Add @SuppressWarnings("remove") > - Remove unnecessary SuppressWarnings and correct Deprecated annotation style > - Update copyright in WindowsFileCopy > - Remove unused import of LinkPermission > - Updated style of @Deprecated to match most existing @Deprecated annotations > `since` comes before `forRemoval` > No spaces around `=` > - Add SuppressWarnings to a Windows source missed earlier. > - 8353641: Deprecate core library permission classes for removal > > Now that the Security Manager is permanently disabled, the following permission classes > in the core libraries area can be deprecated for removal as they are no longer useful: > FilePermission, LinkPermission, LoggingPermission, PropertyPermission, ReflectPermission, > RuntimePermission, and SerializablePermission > > @Deprecated(forRemoval = true, since="25") > Is added to each class and the existing @apiNote is converted to @deprected Marked as reviewed by mullan (Reviewer). ------------- PR Review: https://git.openjdk.org/jdk/pull/24444#pullrequestreview-2757226356 From rriggs at openjdk.org Thu Apr 10 19:22:40 2025 From: rriggs at openjdk.org (Roger Riggs) Date: Thu, 10 Apr 2025 19:22:40 GMT Subject: Integrated: 8353641: Deprecate core library permission classes for removal In-Reply-To: References: Message-ID: On Fri, 4 Apr 2025 12:37:32 GMT, Roger Riggs wrote: > Now that the Security Manager is permanently disabled, the following permission classes in the core libraries area can be deprecated for removal as they are no longer useful: FilePermission, LinkPermission, LoggingPermission, PropertyPermission, ReflectPermission, RuntimePermission, and SerializablePermission > > @Deprecated(forRemoval = true, since="25") > Is added to each class and the existing @apiNote is converted to @deprected This pull request has now been integrated. Changeset: af5db513 Author: Roger Riggs URL: https://git.openjdk.org/jdk/commit/af5db513060db5f89c071f531e6111c69fcd7370 Stats: 54 lines in 17 files changed: 26 ins; 8 del; 20 mod 8353641: Deprecate core library permission classes for removal Reviewed-by: mullan, iris ------------- PR: https://git.openjdk.org/jdk/pull/24444 From michaelm at openjdk.org Thu Apr 10 21:26:21 2025 From: michaelm at openjdk.org (Michael McMahon) Date: Thu, 10 Apr 2025 21:26:21 GMT Subject: RFR: 8348986: Improve coverage of enhanced exception messages [v5] In-Reply-To: References: Message-ID: > Hi, > > Enhanced exception messages are designed to hide sensitive information such as hostnames, IP > addresses from exception message strings, unless the enhanced mode for the specific category > has been explicitly enabled. Enhanced exceptions were first introduced in 8204233 in JDK 11 and > updated in 8207846. > > This PR aims to increase the coverage of enhanced exception messages in the networking code. > A limited number of exceptions are already hidden (restricted) by default. The new categories and > exceptions in this PR will be restricted on an opt-in basis, ie. the default mode will be enhanced > (while preserving the existing behavior). > > The mechanism is controlled by the security/system property "jdk.includeInExceptions" which takes as value > a comma separated list of category names, which identify groups of exceptions where the exception > message may be enhanced. Any category not listed is "restricted" which means that potentially > sensitive information (such as hostnames, IP addresses, user identities) are excluded from the message text. > > The changes to the java.security conf file describe the exact changes in terms of the categories now > supported and any changes in behavior. > > Thanks, > Michael Michael McMahon has updated the pull request incrementally with one additional commit since the last revision: update to minimise code changes ------------- Changes: - all: https://git.openjdk.org/jdk/pull/23929/files - new: https://git.openjdk.org/jdk/pull/23929/files/f5501d18..c41146b0 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=23929&range=04 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=23929&range=03-04 Stats: 208 lines in 26 files changed: 16 ins; 61 del; 131 mod Patch: https://git.openjdk.org/jdk/pull/23929.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/23929/head:pull/23929 PR: https://git.openjdk.org/jdk/pull/23929 From michaelm at openjdk.org Thu Apr 10 21:31:31 2025 From: michaelm at openjdk.org (Michael McMahon) Date: Thu, 10 Apr 2025 21:31:31 GMT Subject: RFR: 8348986: Improve coverage of enhanced exception messages [v5] In-Reply-To: References: Message-ID: On Thu, 10 Apr 2025 21:26:21 GMT, Michael McMahon wrote: >> Hi, >> >> Enhanced exception messages are designed to hide sensitive information such as hostnames, IP >> addresses from exception message strings, unless the enhanced mode for the specific category >> has been explicitly enabled. Enhanced exceptions were first introduced in 8204233 in JDK 11 and >> updated in 8207846. >> >> This PR aims to increase the coverage of enhanced exception messages in the networking code. >> A limited number of exceptions are already hidden (restricted) by default. The new categories and >> exceptions in this PR will be restricted on an opt-in basis, ie. the default mode will be enhanced >> (while preserving the existing behavior). >> >> The mechanism is controlled by the security/system property "jdk.includeInExceptions" which takes as value >> a comma separated list of category names, which identify groups of exceptions where the exception >> message may be enhanced. Any category not listed is "restricted" which means that potentially >> sensitive information (such as hostnames, IP addresses, user identities) are excluded from the message text. >> >> The changes to the java.security conf file describe the exact changes in terms of the categories now >> supported and any changes in behavior. >> >> Thanks, >> Michael > > Michael McMahon has updated the pull request incrementally with one additional commit since the last revision: > > update to minimise code changes I've just updated the PR with a change that replaces the new methods of the form `throwException()` with the previous pattern of the form `throw new XException`. This reduces the code changes a bit further and is more readable. ------------- PR Comment: https://git.openjdk.org/jdk/pull/23929#issuecomment-2795207656 From duke at openjdk.org Fri Apr 11 06:36:45 2025 From: duke at openjdk.org (Markus KARG) Date: Fri, 11 Apr 2025 06:36:45 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: <4U3TP4zVn6Bg39f6rLOCDT97Zfj33DEMrJm2seoatN4=.155d1292-2a03-4b5b-ad7e-62adf9bd2be7@github.com> References: <4U3TP4zVn6Bg39f6rLOCDT97Zfj33DEMrJm2seoatN4=.155d1292-2a03-4b5b-ad7e-62adf9bd2be7@github.com> Message-ID: <5TyyklVSyjd6_Cxsbea5bqiPqKDHG6qb3Fxe-O9KAdQ=.d6292b16-d554-4ec4-babd-f8e0c18037ae@github.com> On Tue, 8 Apr 2025 18:12:03 GMT, Chen Liang wrote: > Should we ask hotspot compiler engineers for inputs on how useful this API is for allowing batch/vectorized copy and eliminating overheads of defensive copy array allocation? I have no strong feelings about that. As it looks like we reached concensus on the proposed change, I have now copied the spec into the CSR and set it into the proposed state. Kindly asking for your reviews of the CSR, so it can rather soon proceed into the provisional state. ------------- PR Comment: https://git.openjdk.org/jdk/pull/21730#issuecomment-2795968057 From dfuchs at openjdk.org Fri Apr 11 09:06:28 2025 From: dfuchs at openjdk.org (Daniel Fuchs) Date: Fri, 11 Apr 2025 09:06:28 GMT Subject: RFR: 8353642: Deprecate networking permission classes for removal Message-ID: Please find her a patch that deprecate networking permission classes for removal. The method `URL::getPermission` now serves little purpose and is also deprecated. That method was overridden in subclasses and specified to return some of the deprecated permissions. ------------- Commit messages: - 8353642: Deprecate networking permission classes for removal Changes: https://git.openjdk.org/jdk/pull/24592/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24592&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8353642 Stats: 58 lines in 12 files changed: 36 ins; 4 del; 18 mod Patch: https://git.openjdk.org/jdk/pull/24592.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24592/head:pull/24592 PR: https://git.openjdk.org/jdk/pull/24592 From dfuchs at openjdk.org Fri Apr 11 10:01:26 2025 From: dfuchs at openjdk.org (Daniel Fuchs) Date: Fri, 11 Apr 2025 10:01:26 GMT Subject: RFR: 8353642: Deprecate networking permission classes for removal [v2] In-Reply-To: References: Message-ID: > Please find her a patch that deprecate networking permission classes for removal. The method `URL::getPermission` now serves little purpose and is also deprecated. That method was overridden in subclasses and specified to return some of the deprecated permissions. Daniel Fuchs has updated the pull request incrementally with one additional commit since the last revision: Missing white spaces ------------- Changes: - all: https://git.openjdk.org/jdk/pull/24592/files - new: https://git.openjdk.org/jdk/pull/24592/files/e9dc4146..9b371b3a Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=24592&range=01 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24592&range=00-01 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/jdk/pull/24592.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24592/head:pull/24592 PR: https://git.openjdk.org/jdk/pull/24592 From dfuchs at openjdk.org Fri Apr 11 10:01:26 2025 From: dfuchs at openjdk.org (Daniel Fuchs) Date: Fri, 11 Apr 2025 10:01:26 GMT Subject: RFR: 8353642: Deprecate networking permission classes for removal In-Reply-To: References: Message-ID: On Fri, 11 Apr 2025 09:00:05 GMT, Daniel Fuchs wrote: > Please find her a patch that deprecate networking permission classes for removal. The method `URL::getPermission` now serves little purpose and is also deprecated. That method was overridden in subclasses and specified to return some of the deprecated permissions. The CSR is also ready to be reviewed at [https://bugs.openjdk.org/browse/JDK-8354406](https://bugs.openjdk.org/browse/JDK-8354406) ------------- PR Comment: https://git.openjdk.org/jdk/pull/24592#issuecomment-2796425675 From djelinski at openjdk.org Fri Apr 11 11:00:26 2025 From: djelinski at openjdk.org (Daniel =?UTF-8?B?SmVsacWEc2tp?=) Date: Fri, 11 Apr 2025 11:00:26 GMT Subject: RFR: 8353642: Deprecate networking permission classes for removal [v2] In-Reply-To: References: Message-ID: On Fri, 11 Apr 2025 10:01:26 GMT, Daniel Fuchs wrote: >> Please find her a patch that deprecate networking permission classes for removal. The method `URL::getPermission` now serves little purpose and is also deprecated. That method was overridden in subclasses and specified to return some of the deprecated permissions. > > Daniel Fuchs has updated the pull request incrementally with one additional commit since the last revision: > > Missing white spaces src/java.base/share/classes/java/net/HttpURLConnection.java line 617: > 615: * {@link java.security.AllPermission}. > 616: */ > 617: @Deprecated(since = "25") can this (and all other getPermission methods) be "forRemoval=true"? src/java.base/share/classes/java/security/CodeSource.java line 468: > 466: } > 467: @SuppressWarnings("removal") > 468: var result = this.sp.implies(that.sp); Will we need to rewrite this code without SocketPermissions? Can we remove it, maybe? It is only used by CodeSource.implies, which is not used by the JDK (but may be used elsewhere). ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24592#discussion_r2039291810 PR Review Comment: https://git.openjdk.org/jdk/pull/24592#discussion_r2039304662 From djelinski at openjdk.org Fri Apr 11 11:12:40 2025 From: djelinski at openjdk.org (Daniel =?UTF-8?B?SmVsacWEc2tp?=) Date: Fri, 11 Apr 2025 11:12:40 GMT Subject: RFR: 8353642: Deprecate networking permission classes for removal [v2] In-Reply-To: References: Message-ID: On Fri, 11 Apr 2025 10:55:10 GMT, Daniel Jeli?ski wrote: >> Daniel Fuchs has updated the pull request incrementally with one additional commit since the last revision: >> >> Missing white spaces > > src/java.base/share/classes/java/security/CodeSource.java line 468: > >> 466: } >> 467: @SuppressWarnings("removal") >> 468: var result = this.sp.implies(that.sp); > > Will we need to rewrite this code without SocketPermissions? Can we remove it, maybe? It is only used by CodeSource.implies, which is not used by the JDK (but may be used elsewhere). also the JavaDoc of the implies method references the SocketPermission. That will also need to be cleaned up at some point. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24592#discussion_r2039324745 From djelinski at openjdk.org Fri Apr 11 11:19:27 2025 From: djelinski at openjdk.org (Daniel =?UTF-8?B?SmVsacWEc2tp?=) Date: Fri, 11 Apr 2025 11:19:27 GMT Subject: RFR: 8353642: Deprecate networking permission classes for removal [v2] In-Reply-To: References: Message-ID: On Fri, 11 Apr 2025 10:01:26 GMT, Daniel Fuchs wrote: >> Please find her a patch that deprecate networking permission classes for removal. The method `URL::getPermission` now serves little purpose and is also deprecated. That method was overridden in subclasses and specified to return some of the deprecated permissions. > > Daniel Fuchs has updated the pull request incrementally with one additional commit since the last revision: > > Missing white spaces src/java.base/share/classes/java/net/SocketPermission.java line 1311: > 1309: > 1310: @SuppressWarnings("removal") > 1311: @Deprecated(since = "25", forRemoval = true) this class is internal, no need to deprecate ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24592#discussion_r2039335050 From dfuchs at openjdk.org Fri Apr 11 11:34:32 2025 From: dfuchs at openjdk.org (Daniel Fuchs) Date: Fri, 11 Apr 2025 11:34:32 GMT Subject: RFR: 8353642: Deprecate networking permission classes for removal [v2] In-Reply-To: References: Message-ID: On Fri, 11 Apr 2025 10:45:20 GMT, Daniel Jeli?ski wrote: >> Daniel Fuchs has updated the pull request incrementally with one additional commit since the last revision: >> >> Missing white spaces > > src/java.base/share/classes/java/net/HttpURLConnection.java line 617: > >> 615: * {@link java.security.AllPermission}. >> 616: */ >> 617: @Deprecated(since = "25") > > can this (and all other getPermission methods) be "forRemoval=true"? Possibly. @AlanBateman may have some thoughts on this. > src/java.base/share/classes/java/net/SocketPermission.java line 1311: > >> 1309: >> 1310: @SuppressWarnings("removal") >> 1311: @Deprecated(since = "25", forRemoval = true) > > this class is internal, no need to deprecate It helps getting warnings at the place where the class is used. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24592#discussion_r2039358351 PR Review Comment: https://git.openjdk.org/jdk/pull/24592#discussion_r2039360730 From dfuchs at openjdk.org Fri Apr 11 11:34:33 2025 From: dfuchs at openjdk.org (Daniel Fuchs) Date: Fri, 11 Apr 2025 11:34:33 GMT Subject: RFR: 8353642: Deprecate networking permission classes for removal [v2] In-Reply-To: References: Message-ID: <_lrzJTVqcfATXdXToFeL69PLIu9LRQ37BFmmlFYvTWQ=.8e3a7e15-e5a5-45dc-b0d1-362950b51939@github.com> On Fri, 11 Apr 2025 11:10:10 GMT, Daniel Jeli?ski wrote: >> src/java.base/share/classes/java/security/CodeSource.java line 468: >> >>> 466: } >>> 467: @SuppressWarnings("removal") >>> 468: var result = this.sp.implies(that.sp); >> >> Will we need to rewrite this code without SocketPermissions? Can we remove it, maybe? It is only used by CodeSource.implies, which is not used by the JDK (but may be used elsewhere). > > also the JavaDoc of the implies method references the SocketPermission. That will also need to be cleaned up at some point. That will be left over for someone in security-libs to cleanup this code at their convenience before we remove SocketException. Hmmm... If the public API references SocketException we might have to deprecate in this PR too. Not sure what the implications are. Maybe @seanjmullan can advise. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24592#discussion_r2039353439 From alanb at openjdk.org Fri Apr 11 11:37:36 2025 From: alanb at openjdk.org (Alan Bateman) Date: Fri, 11 Apr 2025 11:37:36 GMT Subject: RFR: 8353642: Deprecate networking permission classes for removal [v2] In-Reply-To: References: Message-ID: On Fri, 11 Apr 2025 11:30:54 GMT, Daniel Fuchs wrote: >> src/java.base/share/classes/java/net/HttpURLConnection.java line 617: >> >>> 615: * {@link java.security.AllPermission}. >>> 616: */ >>> 617: @Deprecated(since = "25") >> >> can this (and all other getPermission methods) be "forRemoval=true"? > > Possibly. @AlanBateman may have some thoughts on this. I think we should at least consider deprecating URLConnection.getPermission and HttpURLConnection.getPermission for removal, only because I don't immediately see the advantage of doing it in two steps for these two APIs. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24592#discussion_r2039366899 From dfuchs at openjdk.org Fri Apr 11 11:50:24 2025 From: dfuchs at openjdk.org (Daniel Fuchs) Date: Fri, 11 Apr 2025 11:50:24 GMT Subject: RFR: 8353642: Deprecate networking permission classes for removal [v2] In-Reply-To: References: Message-ID: On Fri, 11 Apr 2025 11:34:36 GMT, Alan Bateman wrote: >> Possibly. @AlanBateman may have some thoughts on this. > > I think we should at least consider deprecating URLConnection.getPermission and HttpURLConnection.getPermission for removal, only because I don't immediately see the advantage of doing it in two steps for these two APIs. Thanks - I will do that then ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24592#discussion_r2039391997 From djelinski at openjdk.org Fri Apr 11 12:04:24 2025 From: djelinski at openjdk.org (Daniel =?UTF-8?B?SmVsacWEc2tp?=) Date: Fri, 11 Apr 2025 12:04:24 GMT Subject: RFR: 8353642: Deprecate networking permission classes for removal [v2] In-Reply-To: References: Message-ID: On Fri, 11 Apr 2025 10:01:26 GMT, Daniel Fuchs wrote: >> Please find her a patch that deprecate networking permission classes for removal. The method `URL::getPermission` now serves little purpose and is also deprecated. That method was overridden in subclasses and specified to return some of the deprecated permissions. > > Daniel Fuchs has updated the pull request incrementally with one additional commit since the last revision: > > Missing white spaces The GHA failure (Windows) appears to be related. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24592#issuecomment-2796715234 From dfuchs at openjdk.org Fri Apr 11 12:33:25 2025 From: dfuchs at openjdk.org (Daniel Fuchs) Date: Fri, 11 Apr 2025 12:33:25 GMT Subject: RFR: 8353642: Deprecate networking permission classes for removal [v2] In-Reply-To: References: Message-ID: On Fri, 11 Apr 2025 12:01:52 GMT, Daniel Jeli?ski wrote: > The GHA failure (Windows) appears to be related. Yes - I missed one windows specific file in my original patch. I have a test running in the CI and I am waiting for it to pass before updating the PR. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24592#issuecomment-2796783392 From michaelm at openjdk.org Fri Apr 11 13:49:27 2025 From: michaelm at openjdk.org (Michael McMahon) Date: Fri, 11 Apr 2025 13:49:27 GMT Subject: RFR: 8353642: Deprecate networking permission classes for removal [v2] In-Reply-To: References: Message-ID: On Fri, 11 Apr 2025 10:01:26 GMT, Daniel Fuchs wrote: >> Please find her a patch that deprecate networking permission classes for removal. The method `URL::getPermission` now serves little purpose and is also deprecated. That method was overridden in subclasses and specified to return some of the deprecated permissions. > > Daniel Fuchs has updated the pull request incrementally with one additional commit since the last revision: > > Missing white spaces src/java.base/share/classes/java/security/CodeSource.java line 461: > 459: if (this.sp == null) { > 460: @SuppressWarnings("removal") > 461: var _ = this.sp = new SocketPermission(thisHost, "resolve"); What's the reason for the `var _ =` bit ? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24592#discussion_r2039598335 From dfuchs at openjdk.org Fri Apr 11 13:56:18 2025 From: dfuchs at openjdk.org (Daniel Fuchs) Date: Fri, 11 Apr 2025 13:56:18 GMT Subject: RFR: 8353642: Deprecate networking permission classes for removal [v3] In-Reply-To: References: Message-ID: > Please find her a patch that deprecate networking permission classes for removal. The method `URL::getPermission` now serves little purpose and is also deprecated. That method was overridden in subclasses and specified to return some of the deprecated permissions. Daniel Fuchs has updated the pull request incrementally with one additional commit since the last revision: Review feedback. Deprecate getPermission for removal. ------------- Changes: - all: https://git.openjdk.org/jdk/pull/24592/files - new: https://git.openjdk.org/jdk/pull/24592/files/9b371b3a..d47a31d1 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=24592&range=02 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24592&range=01-02 Stats: 22 lines in 7 files changed: 5 ins; 7 del; 10 mod Patch: https://git.openjdk.org/jdk/pull/24592.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24592/head:pull/24592 PR: https://git.openjdk.org/jdk/pull/24592 From dfuchs at openjdk.org Fri Apr 11 14:00:32 2025 From: dfuchs at openjdk.org (Daniel Fuchs) Date: Fri, 11 Apr 2025 14:00:32 GMT Subject: RFR: 8353642: Deprecate URL::getPermission method and networking permission classes for removal [v2] In-Reply-To: References: Message-ID: On Fri, 11 Apr 2025 12:31:04 GMT, Daniel Fuchs wrote: > The GHA failure (Windows) appears to be related. Should be fixed now ------------- PR Comment: https://git.openjdk.org/jdk/pull/24592#issuecomment-2796995066 From dfuchs at openjdk.org Fri Apr 11 14:00:33 2025 From: dfuchs at openjdk.org (Daniel Fuchs) Date: Fri, 11 Apr 2025 14:00:33 GMT Subject: RFR: 8353642: Deprecate URL::getPermission method and networking permission classes for removal [v2] In-Reply-To: References: Message-ID: On Fri, 11 Apr 2025 11:47:21 GMT, Daniel Fuchs wrote: >> I think we should at least consider deprecating URLConnection.getPermission and HttpURLConnection.getPermission for removal, only because I don't immediately see the advantage of doing it in two steps for these two APIs. > > Thanks - I will do that then Done ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24592#discussion_r2039614980 From dfuchs at openjdk.org Fri Apr 11 14:00:34 2025 From: dfuchs at openjdk.org (Daniel Fuchs) Date: Fri, 11 Apr 2025 14:00:34 GMT Subject: RFR: 8353642: Deprecate URL::getPermission method and networking permission classes for removal [v2] In-Reply-To: References: Message-ID: On Fri, 11 Apr 2025 13:47:10 GMT, Michael McMahon wrote: >> Daniel Fuchs has updated the pull request incrementally with one additional commit since the last revision: >> >> Missing white spaces > > src/java.base/share/classes/java/security/CodeSource.java line 461: > >> 459: if (this.sp == null) { >> 460: @SuppressWarnings("removal") >> 461: var _ = this.sp = new SocketPermission(thisHost, "resolve"); > > What's the reason for the `var _ =` bit ? `@SuppressWarnings` can not be applied to a an expression - it needs a (variable/method/class) declaration ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24592#discussion_r2039613130 From michaelm at openjdk.org Fri Apr 11 14:58:29 2025 From: michaelm at openjdk.org (Michael McMahon) Date: Fri, 11 Apr 2025 14:58:29 GMT Subject: RFR: 8353642: Deprecate URL::getPermission method and networking permission classes for removal [v3] In-Reply-To: References: Message-ID: On Fri, 11 Apr 2025 13:56:18 GMT, Daniel Fuchs wrote: >> Please find her a patch that deprecate networking permission classes for removal. The method `URL::getPermission` now serves little purpose and is also deprecated. That method was overridden in subclasses and specified to return some of the deprecated permissions. > > Daniel Fuchs has updated the pull request incrementally with one additional commit since the last revision: > > Review feedback. Deprecate getPermission for removal. Looks fine to me. ------------- Marked as reviewed by michaelm (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/24592#pullrequestreview-2760620879 From djelinski at openjdk.org Fri Apr 11 15:50:43 2025 From: djelinski at openjdk.org (Daniel =?UTF-8?B?SmVsacWEc2tp?=) Date: Fri, 11 Apr 2025 15:50:43 GMT Subject: RFR: 8353642: Deprecate URL::getPermission method and networking permission classes for removal [v3] In-Reply-To: References: Message-ID: On Fri, 11 Apr 2025 13:56:18 GMT, Daniel Fuchs wrote: >> Please find her a patch that deprecate networking permission classes for removal. The method `URL::getPermission` now serves little purpose and is also deprecated. That method was overridden in subclasses and specified to return some of the deprecated permissions. > > Daniel Fuchs has updated the pull request incrementally with one additional commit since the last revision: > > Review feedback. Deprecate getPermission for removal. LGTM. ------------- Marked as reviewed by djelinski (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/24592#pullrequestreview-2760802017 From alanb at openjdk.org Sat Apr 12 05:51:33 2025 From: alanb at openjdk.org (Alan Bateman) Date: Sat, 12 Apr 2025 05:51:33 GMT Subject: RFR: 8343157: Examine large files for character encoding/decoding In-Reply-To: References: Message-ID: On Fri, 11 Apr 2025 17:02:13 GMT, Naoto Sato wrote: > Removing old charset test cases that verify new charset implementations (as of JDK7). Removed tests/files are actual charset implementations used in pre-JDK7, which have been used for comparing the results. Since those "new" implementations have been used since then, I believe it is OK to retire those old test cases. Okay to delete, no real value keeping these. ------------- Marked as reviewed by alanb (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/24597#pullrequestreview-2762069633 From dfuchs at openjdk.org Mon Apr 14 14:24:51 2025 From: dfuchs at openjdk.org (Daniel Fuchs) Date: Mon, 14 Apr 2025 14:24:51 GMT Subject: RFR: 8348986: Improve coverage of enhanced exception messages [v5] In-Reply-To: References: Message-ID: On Thu, 10 Apr 2025 21:26:21 GMT, Michael McMahon wrote: >> Hi, >> >> Enhanced exception messages are designed to hide sensitive information such as hostnames, IP >> addresses from exception message strings, unless the enhanced mode for the specific category >> has been explicitly enabled. Enhanced exceptions were first introduced in 8204233 in JDK 11 and >> updated in 8207846. >> >> This PR aims to increase the coverage of enhanced exception messages in the networking code. >> A limited number of exceptions are already hidden (restricted) by default. The new categories and >> exceptions in this PR will be restricted on an opt-in basis, ie. the default mode will be enhanced >> (while preserving the existing behavior). >> >> The mechanism is controlled by the security/system property "jdk.includeInExceptions" which takes as value >> a comma separated list of category names, which identify groups of exceptions where the exception >> message may be enhanced. Any category not listed is "restricted" which means that potentially >> sensitive information (such as hostnames, IP addresses, user identities) are excluded from the message text. >> >> The changes to the java.security conf file describe the exact changes in terms of the categories now >> supported and any changes in behavior. >> >> Thanks, >> Michael > > Michael McMahon has updated the pull request incrementally with one additional commit since the last revision: > > update to minimise code changes src/java.base/share/classes/java/net/NetworkInterface.java line 329: > 327: } else { > 328: throw new IllegalArgumentException( > 329: formatMsg("invalid address type%s", filterNetInfo(addr.toString()).prefixWith(": "))); OK - I see that `addr` cannot be null if we reach here. src/java.base/share/classes/java/net/Proxy.java line 101: > 99: throw new IllegalArgumentException( > 100: formatMsg("type " + type + " is not compatible with address %s", > 101: filterNetInfo(sa.toString()) You will get NullPointerException instead of IllegalArgumentException if `sa` is `null`. I suggest using `String.valueOf(sa)` rather than `sa.toString()` to preserve the pre-existing behaviour. src/java.base/share/classes/java/net/Proxy.java line 102: > 100: formatMsg("type " + type + " is not compatible with address %s", > 101: filterNetInfo(sa.toString()) > 102: .replaceWith("type " + sa.getClass().toString()))); You will have to guard against sa == null here src/java.base/share/classes/jdk/internal/util/Exceptions.java line 253: > 251: > 252: int i = 0; > 253: boolean enhanced = true; `enhanced` doesn't seem to be used here. Is this some leftover? src/java.base/share/classes/sun/net/www/protocol/jar/Handler.java line 203: > 201: throw new NullPointerException( > 202: formatMsg("malformed context url%s : no !/", > 203: filterJarName(url.toString()).prefixWith(": "))); It's not clear whether `url` could be `null` here, so to sidestep the question maybe use `String::valueOf` rather than `Object::toString`. src/java.base/share/classes/sun/net/www/protocol/jar/Handler.java line 212: > 210: throw new NullPointerException( > 211: formatMsg("malformed context url%s", > 212: filterJarName(url.toString()).prefixWith(": "))); Same remark here test/jdk/java/net/URI/Test.java line 29: > 27: * 7171415 6339649 6933879 8037396 8272072 8051627 8297687 > 28: * @author Mark Reinhold > 29: * @run main/othervm -Djdk.includeInExceptions=hostInfo Test This change does not look like it's needed. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/23929#discussion_r2042182598 PR Review Comment: https://git.openjdk.org/jdk/pull/23929#discussion_r2042187411 PR Review Comment: https://git.openjdk.org/jdk/pull/23929#discussion_r2042190019 PR Review Comment: https://git.openjdk.org/jdk/pull/23929#discussion_r2042199577 PR Review Comment: https://git.openjdk.org/jdk/pull/23929#discussion_r2042214144 PR Review Comment: https://git.openjdk.org/jdk/pull/23929#discussion_r2042215273 PR Review Comment: https://git.openjdk.org/jdk/pull/23929#discussion_r2042244694 From isipka at openjdk.org Mon Apr 14 14:43:14 2025 From: isipka at openjdk.org (Ivan =?UTF-8?B?xaBpcGth?=) Date: Mon, 14 Apr 2025 14:43:14 GMT Subject: RFR: 8351851: Update PmemTest to run on AMD64 Message-ID: review to facilitate visibility on changes prior to testing @bwhuang-us ------------- Commit messages: - trailing whitespace fix - trailing whitespace fix - all OS architectures are treated equally Changes: https://git.openjdk.org/jdk/pull/24416/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24416&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8351851 Stats: 21 lines in 1 file changed: 6 ins; 12 del; 3 mod Patch: https://git.openjdk.org/jdk/pull/24416.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24416/head:pull/24416 PR: https://git.openjdk.org/jdk/pull/24416 From naoto at openjdk.org Mon Apr 14 16:12:47 2025 From: naoto at openjdk.org (Naoto Sato) Date: Mon, 14 Apr 2025 16:12:47 GMT Subject: RFR: 8343157: Examine large files for character encoding/decoding In-Reply-To: References: Message-ID: On Fri, 11 Apr 2025 17:02:13 GMT, Naoto Sato wrote: > Removing old charset test cases that verify new charset implementations (as of JDK7). Removed tests/files are actual charset implementations used in pre-JDK7, which have been used for comparing the results. Since those "new" implementations have been used since then, I believe it is OK to retire those old test cases. Thanks for the review! ------------- PR Comment: https://git.openjdk.org/jdk/pull/24597#issuecomment-2802205991 From naoto at openjdk.org Mon Apr 14 16:12:47 2025 From: naoto at openjdk.org (Naoto Sato) Date: Mon, 14 Apr 2025 16:12:47 GMT Subject: Integrated: 8343157: Examine large files for character encoding/decoding In-Reply-To: References: Message-ID: On Fri, 11 Apr 2025 17:02:13 GMT, Naoto Sato wrote: > Removing old charset test cases that verify new charset implementations (as of JDK7). Removed tests/files are actual charset implementations used in pre-JDK7, which have been used for comparing the results. Since those "new" implementations have been used since then, I believe it is OK to retire those old test cases. This pull request has now been integrated. Changeset: d748bb5c Author: Naoto Sato URL: https://git.openjdk.org/jdk/commit/d748bb5cbb983fb07ae28e3a1c194058b73ef652 Stats: 164679 lines in 55 files changed: 0 ins; 164677 del; 2 mod 8343157: Examine large files for character encoding/decoding Reviewed-by: alanb ------------- PR: https://git.openjdk.org/jdk/pull/24597 From bpb at openjdk.org Mon Apr 14 23:52:54 2025 From: bpb at openjdk.org (Brian Burkhalter) Date: Mon, 14 Apr 2025 23:52:54 GMT Subject: RFR: 8353923: (fs) Further improve performance of URI -> Path conversion (win) Message-ID: If the path portion of a `URI` permits, then simply replace all `'\'` with `'/'` instead of completely parsing the path. ------------- Commit messages: - 8353923: (fs) Further improve performance of URI -> Path conversion (win) Changes: https://git.openjdk.org/jdk/pull/24638/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24638&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8353923 Stats: 37 lines in 1 file changed: 35 ins; 0 del; 2 mod Patch: https://git.openjdk.org/jdk/pull/24638.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24638/head:pull/24638 PR: https://git.openjdk.org/jdk/pull/24638 From bpb at openjdk.org Tue Apr 15 00:01:51 2025 From: bpb at openjdk.org (Brian Burkhalter) Date: Tue, 15 Apr 2025 00:01:51 GMT Subject: RFR: 8353923: (fs) Further improve performance of URI -> Path conversion (win) In-Reply-To: References: Message-ID: On Mon, 14 Apr 2025 23:48:18 GMT, Brian Burkhalter wrote: > If the path portion of a `URI` permits, then simply replace all `'\'` with `'/'` instead of completely parsing the path. Benchmark testing of URI-to-Path conversion on Windows gives these results: | URI | Throughput Change (%) | | ---- | --------------------- | | file:/C:/Users/bpb/git/foo/bar/classes/gus/dir/ | +63.96 | | file:/C:/Users/bpb/git/foo/bar/classes/gus/dir | +61.19 | | file:/C:/Users/bpb/git/foo/bar/classes//gus/dir/ | -4.19 | | file:/C:/Users/bpb/git/foo/bar/classes//gus/dir | -2.21 | For URIs having a path to which the optimization applies, the throughput increase is nearly two-thirds. For URIs which are not so amenable, there is a small throughput decrease of less than 5%. URIs which have a UNC path component are not affected. So the question is whether a substantial throughput increase for susceptible absolute drive paths is worth a small but non-zero throughput decrease for other path components. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24638#issuecomment-2803357971 From michaelm at openjdk.org Tue Apr 15 11:10:49 2025 From: michaelm at openjdk.org (Michael McMahon) Date: Tue, 15 Apr 2025 11:10:49 GMT Subject: RFR: 8348986: Improve coverage of enhanced exception messages [v5] In-Reply-To: References: Message-ID: <4T-aEuL5RC4ragkopv7afbUBA3NT9efLxcG6EZGCJ8o=.65b066df-bc22-4df5-a7b8-c09b8e7515f7@github.com> On Mon, 14 Apr 2025 13:51:30 GMT, Daniel Fuchs wrote: >> Michael McMahon has updated the pull request incrementally with one additional commit since the last revision: >> >> update to minimise code changes > > src/java.base/share/classes/java/net/Proxy.java line 102: > >> 100: formatMsg("type " + type + " is not compatible with address %s", >> 101: filterNetInfo(sa.toString()) >> 102: .replaceWith("type " + sa.getClass().toString()))); > > You will have to guard against sa == null here The `replaceWith()` call is actually not needed at all. I will remove it ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/23929#discussion_r2044273655 From mchhipa at openjdk.org Tue Apr 15 11:13:58 2025 From: mchhipa at openjdk.org (Mahendra Chhipa) Date: Tue, 15 Apr 2025 11:13:58 GMT Subject: RFR: 8351851: Update PmemTest to run on AMD64 In-Reply-To: References: Message-ID: On Thu, 3 Apr 2025 14:48:41 GMT, Ivan ?ipka wrote: > Remove default OS platform linux x86_64, remove @ignores allowing amd64 as a viable OS platform selection Update the copy right year. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24416#issuecomment-2804688979 From michaelm at openjdk.org Tue Apr 15 11:24:47 2025 From: michaelm at openjdk.org (Michael McMahon) Date: Tue, 15 Apr 2025 11:24:47 GMT Subject: RFR: 8348986: Improve coverage of enhanced exception messages [v5] In-Reply-To: References: Message-ID: <5ovW0BNN592wq1AFeHxH0QsrKk-hDXqCtGHgwRJ6StU=.ab9fa83f-27a7-485f-b586-4b1572329694@github.com> On Mon, 14 Apr 2025 14:20:39 GMT, Daniel Fuchs wrote: >> Michael McMahon has updated the pull request incrementally with one additional commit since the last revision: >> >> update to minimise code changes > > test/jdk/java/net/URI/Test.java line 29: > >> 27: * 7171415 6339649 6933879 8037396 8272072 8051627 8297687 >> 28: * @author Mark Reinhold >> 29: * @run main/othervm -Djdk.includeInExceptions=hostInfo Test > > This change does not look like it's needed. Thanks for the review. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/23929#discussion_r2044297016 From adinn at openjdk.org Tue Apr 15 13:12:46 2025 From: adinn at openjdk.org (Andrew Dinn) Date: Tue, 15 Apr 2025 13:12:46 GMT Subject: RFR: 8351851: Update PmemTest to run on AMD64 In-Reply-To: References: Message-ID: On Thu, 3 Apr 2025 14:48:41 GMT, Ivan ?ipka wrote: > Remove default OS platform linux x86_64, remove @ignores allowing amd64 as a viable OS platform selection I'm not sure if this change is correct. The original directive was ignored and replaced with an x86_64-only directive because of automated testing concerns documented in [PR 12352](https://github.com/openjdk/jdk/pull/12352). If this change is happening because those automated test restrictions no longer apply for all three of amd64 (by which I mean not intel x86_64) aarch64 and ppc then reverting to the ignored directive would be fine. If the only change is that automated testing on amd64 now works as well as x86_64 then I would recommend modifying the first directive and keeping the ignored directive as the latter helps to clarify to general users how non-automated testing can be performed on aarch64 and ppc. ------------- PR Review: https://git.openjdk.org/jdk/pull/24416#pullrequestreview-2768213569 From alanb at openjdk.org Tue Apr 15 14:25:46 2025 From: alanb at openjdk.org (Alan Bateman) Date: Tue, 15 Apr 2025 14:25:46 GMT Subject: RFR: 8353923: (fs) Further improve performance of URI -> Path conversion (win) In-Reply-To: References: Message-ID: On Mon, 14 Apr 2025 23:48:18 GMT, Brian Burkhalter wrote: > If the path portion of a `URI` permits, then simply replace all `'\'` with `'/'` instead of completely parsing the path. Is it possible to add a JMH benchmark to the PR? ------------- PR Comment: https://git.openjdk.org/jdk/pull/24638#issuecomment-2805401251 From michaelm at openjdk.org Tue Apr 15 14:35:28 2025 From: michaelm at openjdk.org (Michael McMahon) Date: Tue, 15 Apr 2025 14:35:28 GMT Subject: RFR: 8348986: Improve coverage of enhanced exception messages [v6] In-Reply-To: References: Message-ID: <_RtwTSEJW4kr0WOiLRIp3oc8CbpaMjIe2u5xjfYJIH0=.87e0cd7f-7e46-4b2c-9b30-60a7758f1ee2@github.com> > Hi, > > Enhanced exception messages are designed to hide sensitive information such as hostnames, IP > addresses from exception message strings, unless the enhanced mode for the specific category > has been explicitly enabled. Enhanced exceptions were first introduced in 8204233 in JDK 11 and > updated in 8207846. > > This PR aims to increase the coverage of enhanced exception messages in the networking code. > A limited number of exceptions are already hidden (restricted) by default. The new categories and > exceptions in this PR will be restricted on an opt-in basis, ie. the default mode will be enhanced > (while preserving the existing behavior). > > The mechanism is controlled by the security/system property "jdk.includeInExceptions" which takes as value > a comma separated list of category names, which identify groups of exceptions where the exception > message may be enhanced. Any category not listed is "restricted" which means that potentially > sensitive information (such as hostnames, IP addresses, user identities) are excluded from the message text. > > The changes to the java.security conf file describe the exact changes in terms of the categories now > supported and any changes in behavior. > > Thanks, > Michael Michael McMahon has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 20 commits: - review update - Merge branch 'master' into 8348986-exceptions - update to minimise code changes - Merge branch 'master' into 8348986-exceptions - Merge branch 'master' into 8348986-exceptions - Apply suggestions from code review from turbanoff review Co-authored-by: Andrey Turbanov - doc + copyright update - remove file added by mistake - whitespace - moved test - ... and 10 more: https://git.openjdk.org/jdk/compare/b7837843...da33863c ------------- Changes: https://git.openjdk.org/jdk/pull/23929/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=23929&range=05 Stats: 948 lines in 42 files changed: 715 ins; 101 del; 132 mod Patch: https://git.openjdk.org/jdk/pull/23929.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/23929/head:pull/23929 PR: https://git.openjdk.org/jdk/pull/23929 From dfuchs at openjdk.org Tue Apr 15 15:08:57 2025 From: dfuchs at openjdk.org (Daniel Fuchs) Date: Tue, 15 Apr 2025 15:08:57 GMT Subject: RFR: 8348986: Improve coverage of enhanced exception messages [v6] In-Reply-To: <_RtwTSEJW4kr0WOiLRIp3oc8CbpaMjIe2u5xjfYJIH0=.87e0cd7f-7e46-4b2c-9b30-60a7758f1ee2@github.com> References: <_RtwTSEJW4kr0WOiLRIp3oc8CbpaMjIe2u5xjfYJIH0=.87e0cd7f-7e46-4b2c-9b30-60a7758f1ee2@github.com> Message-ID: On Tue, 15 Apr 2025 14:35:28 GMT, Michael McMahon wrote: >> Hi, >> >> Enhanced exception messages are designed to hide sensitive information such as hostnames, IP >> addresses from exception message strings, unless the enhanced mode for the specific category >> has been explicitly enabled. Enhanced exceptions were first introduced in 8204233 in JDK 11 and >> updated in 8207846. >> >> This PR aims to increase the coverage of enhanced exception messages in the networking code. >> A limited number of exceptions are already hidden (restricted) by default. The new categories and >> exceptions in this PR will be restricted on an opt-in basis, ie. the default mode will be enhanced >> (while preserving the existing behavior). >> >> The mechanism is controlled by the security/system property "jdk.includeInExceptions" which takes as value >> a comma separated list of category names, which identify groups of exceptions where the exception >> message may be enhanced. Any category not listed is "restricted" which means that potentially >> sensitive information (such as hostnames, IP addresses, user identities) are excluded from the message text. >> >> The changes to the java.security conf file describe the exact changes in terms of the categories now >> supported and any changes in behavior. >> >> Thanks, >> Michael > > Michael McMahon has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 20 commits: > > - review update > - Merge branch 'master' into 8348986-exceptions > - update to minimise code changes > - Merge branch 'master' into 8348986-exceptions > - Merge branch 'master' into 8348986-exceptions > - Apply suggestions from code review > > from turbanoff review > > Co-authored-by: Andrey Turbanov > - doc + copyright update > - remove file added by mistake > - whitespace > - moved test > - ... and 10 more: https://git.openjdk.org/jdk/compare/b7837843...da33863c Marked as reviewed by dfuchs (Reviewer). ------------- PR Review: https://git.openjdk.org/jdk/pull/23929#pullrequestreview-2768796475 From bpb at openjdk.org Tue Apr 15 15:25:40 2025 From: bpb at openjdk.org (Brian Burkhalter) Date: Tue, 15 Apr 2025 15:25:40 GMT Subject: RFR: 8353923: (fs) Further improve performance of URI -> Path conversion (win) In-Reply-To: References: Message-ID: On Tue, 15 Apr 2025 14:23:33 GMT, Alan Bateman wrote: > Is it possible to add a JMH benchmark to the PR? Yes, I was intending to do that. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24638#issuecomment-2806179488 From msheppar at openjdk.org Tue Apr 15 16:24:43 2025 From: msheppar at openjdk.org (Mark Sheppard) Date: Tue, 15 Apr 2025 16:24:43 GMT Subject: RFR: 8351851: Update PmemTest to run on AMD64 In-Reply-To: References: Message-ID: <4ZBBW-YJlnEPdKPztUw-rVUcat5mcOMx_d_Y72RDmNU=.fdf74676-a172-46d0-be93-e49d93c741e3@github.com> On Thu, 3 Apr 2025 14:48:41 GMT, Ivan ?ipka wrote: > Remove default OS platform linux x86_64, remove @ignores allowing amd64 as a viable OS platform selection I would prefer if we retained the current test structure and swap the x86_64 with amd64, as amd64 is the os.arch on which the test will be run Change 80 /* @test 81 * @summary Testing NVRAM mapped byte buffer support 82 * @run main/manual PmemTest 83 * @requires (os.family == "linux") 84 * @requires (os.arch == "x86_64") 85 */ 86 87 /* @test 88 * @summary Testing NVRAM mapped byte buffer support 89 * @run main/manual PmemTest 90 * @requires (os.family == "linux") 91 * @requires ((os.arch == "amd64")|(os.arch == "aarch64")|(os.arch == "ppc64le")) 92 * @ignore The test described here is currently disabled on systems that are not 93 * x64-based and lack an external NVRAM memory device. In order to re-enable the 94 * test, you will need to mount the NVRAM device, which will typically appear as 95 * /dev/pmem0, to the directory /mnt/pmem. Once that is done, you can follow the 96 * instructions above to create a test directory and remove the ignore tag. 97 */ To the preferred change i.e. to swap the x86_64 and amd64 and to use 80 /* @test 81 * @summary Testing NVRAM mapped byte buffer support 82 * @run main/manual PmemTest 83 * @requires (os.family == "linux") 84 * @requires (os.arch == ?amd64?) 85 */ 91 * @requires ((os.arch == ?x86_64?)|(os.arch == "aarch64")|(os.arch == "ppc64le")) 92 * @ignore The test described here is currently disabled on systems that are not ------------- PR Comment: https://git.openjdk.org/jdk/pull/24416#issuecomment-2806732665 From rriggs at openjdk.org Tue Apr 15 20:49:51 2025 From: rriggs at openjdk.org (Roger Riggs) Date: Tue, 15 Apr 2025 20:49:51 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: References: Message-ID: On Sun, 30 Mar 2025 12:34:06 GMT, Markus KARG wrote: >> This Pull Request proposes an implementation for [JDK-8343110](https://bugs.openjdk.org/browse/JDK-8343110): Adding the new method `public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` to the `CharSequence` interface, providing a **bulk-read** facility including a default implementation iterating over `charAt(int)`. >> >> In addition, this Pull Request proposes to replace the implementation of `Reader.of(CharSequence).read(char[] cbuf, int off, int len)` to invoke `CharSequence.getChars(next, next + n, cbuf, off)` instead of utilizing pattern matching for switch. Also, this PR proposes to implement `CharBuffer.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` as an alias for `CharBuffer.get(srcBegin, dst, dstBegin, srcEnd - srcBegin)`. >> >> To ensure quality... >> * ...the method signature and JavaDocs are adapted from `AbstractStringBuilder.getChars(...)`. >> * ...this PR relies upon the existing tests for `Reader.of(CharSequence)`, as these provide sufficient coverage of all changes introduced by this PR. > > Markus KARG has updated the pull request incrementally with one additional commit since the last revision: > > Applied changes requested by Chen: 'We might need to specify the IOOBE behavior - when an IOOBE is thrown, some characters may be already transferred (this is important for concurrent char sequences)' src/java.base/share/classes/java/lang/CharSequence.java line 338: > 336: * Concurrent truncation of this character sequence can throw > 337: * {@code IndexOutOfBoundsException}. In this case, some characters, but not > 338: * all, may be already transferred. Though its been absent for decades, it might be worthwhile to include a class level warning that the implementations of the interface are not known or required to be thread safe and if used concurrently by multiple threads the behavior is unpredictable. I'd be more circumspect than trying to specify the only aberrant behavior is IndexOutOfBounds. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/21730#discussion_r2045454429 From bpb at openjdk.org Wed Apr 16 00:41:11 2025 From: bpb at openjdk.org (Brian Burkhalter) Date: Wed, 16 Apr 2025 00:41:11 GMT Subject: RFR: 8353923: (fs) Further improve performance of URI -> Path conversion (win) [v2] In-Reply-To: References: Message-ID: > If the path portion of a `URI` permits, then simply replace all `'\'` with `'/'` instead of completely parsing the path. Brian Burkhalter has updated the pull request incrementally with one additional commit since the last revision: 8353923: Add PathOfURI benchmark ------------- Changes: - all: https://git.openjdk.org/jdk/pull/24638/files - new: https://git.openjdk.org/jdk/pull/24638/files/3bd3e2a9..325abb62 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=24638&range=01 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24638&range=00-01 Stats: 47 lines in 2 files changed: 45 ins; 1 del; 1 mod Patch: https://git.openjdk.org/jdk/pull/24638.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24638/head:pull/24638 PR: https://git.openjdk.org/jdk/pull/24638 From adinn at openjdk.org Wed Apr 16 10:35:43 2025 From: adinn at openjdk.org (Andrew Dinn) Date: Wed, 16 Apr 2025 10:35:43 GMT Subject: RFR: 8351851: Update PmemTest to run on AMD64 In-Reply-To: <4ZBBW-YJlnEPdKPztUw-rVUcat5mcOMx_d_Y72RDmNU=.fdf74676-a172-46d0-be93-e49d93c741e3@github.com> References: <4ZBBW-YJlnEPdKPztUw-rVUcat5mcOMx_d_Y72RDmNU=.fdf74676-a172-46d0-be93-e49d93c741e3@github.com> Message-ID: On Tue, 15 Apr 2025 16:22:11 GMT, Mark Sheppard wrote: > It would be preferable if we retained the current test structure and swap the x86_64 with amd64, as amd64 is the os.arch on which the test will be run When I wrote my previous comment I was under the impression that `@requires(os.arch == "x86_64")` selects Intel x86 64-bit only while `@requires(os.arch == "amd64")` selects either Intel x86 64-bit or AMD x86 64-bit. However, having looked through the code in files: test/jdk/jdk/internal/util/ArchTest.java src/java.base/share/classes/jdk/internal/util/Architecture.java src/java.base/share/classes/jdk/internal/util/PlatformProps.java /make/modules/java.base/gensrc/GensrcMisc.gmk it appears to me that these two `@requires` clauses select the same thing i.e. either Intel x86 64-bit or AMD x86 64-bit. In which case the current config should mean that this test will run on AMD CPUs. Is that not the case? ------------- PR Comment: https://git.openjdk.org/jdk/pull/24416#issuecomment-2809158221 From duke at openjdk.org Wed Apr 16 10:37:51 2025 From: duke at openjdk.org (Markus KARG) Date: Wed, 16 Apr 2025 10:37:51 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: References: Message-ID: <6dAYgfNcUgA3z3iid8wXPNo3qhdhZGDbCgOfbfA0skE=.8194c6ee-81df-4170-a983-0283c2234d0b@github.com> On Tue, 15 Apr 2025 20:46:52 GMT, Roger Riggs wrote: >> Markus KARG has updated the pull request incrementally with one additional commit since the last revision: >> >> Applied changes requested by Chen: 'We might need to specify the IOOBE behavior - when an IOOBE is thrown, some characters may be already transferred (this is important for concurrent char sequences)' > > src/java.base/share/classes/java/lang/CharSequence.java line 338: > >> 336: * Concurrent truncation of this character sequence can throw >> 337: * {@code IndexOutOfBoundsException}. In this case, some characters, but not >> 338: * all, may be already transferred. > > Though its been absent for decades, it might be worthwhile to include a class level warning that the implementations of the interface are not known or required to be thread safe and if used concurrently by multiple threads the behavior is unpredictable. I'd be more circumspect than trying to specify the only aberrant behavior is IndexOutOfBounds. Any quick proposals how to rephrase JavaDocs and CSR? As the CSR is already reviewed I am a bit reluctant to hold the train for this, as IMHO *masses* of classes and interfaces would need such a disclaimer, if we kick-off that ball here... ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/21730#discussion_r2046642887 From msheppar at openjdk.org Wed Apr 16 10:38:41 2025 From: msheppar at openjdk.org (Mark Sheppard) Date: Wed, 16 Apr 2025 10:38:41 GMT Subject: RFR: 8351851: Update PmemTest to run on AMD64 In-Reply-To: References: Message-ID: On Tue, 15 Apr 2025 13:09:50 GMT, Andrew Dinn wrote: > I'm not sure if this change is correct. The original directive was ignored and replaced with an x86_64-only directive because of automated testing concerns documented in [PR 12352](https://github.com/openjdk/jdk/pull/12352). If this change is happening because those automated test restrictions no longer apply for all three of amd64 (by which I mean not intel x86_64) aarch64 and ppc then reverting to the ignored directive would be fine. If the only change is that automated testing on amd64 now works as well as x86_64 then I would recommend modifying the first directive and keeping the ignored directive as the latter helps to clarify to general users how non-automated testing can be performed on aarch64 and ppc. just to clarify that both instances of @test are **manual** and that current test environments are os.arch == "amd64", which based on the default os.arch == "x86_64" meant the test was not run. As such, the purpose of the ticket is to make the default case "amd64" ------------- PR Comment: https://git.openjdk.org/jdk/pull/24416#issuecomment-2809164778 From alanb at openjdk.org Wed Apr 16 10:44:50 2025 From: alanb at openjdk.org (Alan Bateman) Date: Wed, 16 Apr 2025 10:44:50 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: <6dAYgfNcUgA3z3iid8wXPNo3qhdhZGDbCgOfbfA0skE=.8194c6ee-81df-4170-a983-0283c2234d0b@github.com> References: <6dAYgfNcUgA3z3iid8wXPNo3qhdhZGDbCgOfbfA0skE=.8194c6ee-81df-4170-a983-0283c2234d0b@github.com> Message-ID: On Wed, 16 Apr 2025 10:35:10 GMT, Markus KARG wrote: >> src/java.base/share/classes/java/lang/CharSequence.java line 338: >> >>> 336: * Concurrent truncation of this character sequence can throw >>> 337: * {@code IndexOutOfBoundsException}. In this case, some characters, but not >>> 338: * all, may be already transferred. >> >> Though its been absent for decades, it might be worthwhile to include a class level warning that the implementations of the interface are not known or required to be thread safe and if used concurrently by multiple threads the behavior is unpredictable. I'd be more circumspect than trying to specify the only aberrant behavior is IndexOutOfBounds. > > Any quick proposals how to rephrase JavaDocs and CSR? As the CSR is already reviewed I am a bit reluctant to hold the train for this, as IMHO *masses* of classes and interfaces would need such a disclaimer, if we kick-off that ball here... I think Roger's suggestion is for a different JBS issue / PR / CSR. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/21730#discussion_r2046653580 From msheppar at openjdk.org Wed Apr 16 11:12:52 2025 From: msheppar at openjdk.org (Mark Sheppard) Date: Wed, 16 Apr 2025 11:12:52 GMT Subject: RFR: 8351851: Update PmemTest to run on AMD64 In-Reply-To: References: <4ZBBW-YJlnEPdKPztUw-rVUcat5mcOMx_d_Y72RDmNU=.fdf74676-a172-46d0-be93-e49d93c741e3@github.com> Message-ID: On Wed, 16 Apr 2025 10:33:31 GMT, Andrew Dinn wrote: > > It would be preferable if we retained the current test structure and swap > > the x86_64 with amd64, as amd64 is the os.arch on which the test will be run > > When I wrote my previous comment I was under the impression that `@requires(os.arch == "x86_64")` selects Intel x86 64-bit only while `@requires(os.arch == "amd64")` selects either Intel x86 64-bit or AMD x86 64-bit. However, having looked through the code in files: > > ``` > test/jdk/jdk/internal/util/ArchTest.java > src/java.base/share/classes/jdk/internal/util/Architecture.java > src/java.base/share/classes/jdk/internal/util/PlatformProps.java > /make/modules/java.base/gensrc/GensrcMisc.gmk > ``` > > it appears to me that these two `@requires` clauses select the same thing i.e. either Intel x86 64-bit or AMD x86 64-bit. In which case the current config should mean that this test will run on AMD CPUs. Is that not the case? Thanks for the details above. Currently the main linux execution platforms are returning "amd64" for the OS arch, and that is not picked up by the current @requires (os.arch == "x86_64") so this is a pragmatic change to facilitate the manual execution of the most prevalent test environments. It was observed that there might be a separate issue for jtreg on the @requires and based on your feedback, and expectations there is a separate jtreg issue to investigate the consistency of @requires on the os.arch attribute. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24416#issuecomment-2809243922 From adinn at openjdk.org Wed Apr 16 12:16:55 2025 From: adinn at openjdk.org (Andrew Dinn) Date: Wed, 16 Apr 2025 12:16:55 GMT Subject: RFR: 8351851: Update PmemTest to run on AMD64 In-Reply-To: References: <4ZBBW-YJlnEPdKPztUw-rVUcat5mcOMx_d_Y72RDmNU=.fdf74676-a172-46d0-be93-e49d93c741e3@github.com> Message-ID: On Wed, 16 Apr 2025 11:10:22 GMT, Mark Sheppard wrote: >>> It would be preferable if we retained the current test structure and swap >> the x86_64 with amd64, as amd64 is the os.arch on which the test will be run >> >> When I wrote my previous comment I was under the impression that `@requires(os.arch == "x86_64")` selects Intel x86 64-bit only while `@requires(os.arch == "amd64")` selects either Intel x86 64-bit or AMD x86 64-bit. However, having looked through the code in files: >> >> test/jdk/jdk/internal/util/ArchTest.java >> src/java.base/share/classes/jdk/internal/util/Architecture.java >> src/java.base/share/classes/jdk/internal/util/PlatformProps.java >> /make/modules/java.base/gensrc/GensrcMisc.gmk >> >> it appears to me that these two `@requires` clauses select the same thing i.e. either Intel x86 64-bit or AMD x86 64-bit. In which case the current config should mean that this test will run on AMD CPUs. Is that not the case? > >> > It would be preferable if we retained the current test structure and swap >> > the x86_64 with amd64, as amd64 is the os.arch on which the test will be run >> >> When I wrote my previous comment I was under the impression that `@requires(os.arch == "x86_64")` selects Intel x86 64-bit only while `@requires(os.arch == "amd64")` selects either Intel x86 64-bit or AMD x86 64-bit. However, having looked through the code in files: >> >> ``` >> test/jdk/jdk/internal/util/ArchTest.java >> src/java.base/share/classes/jdk/internal/util/Architecture.java >> src/java.base/share/classes/jdk/internal/util/PlatformProps.java >> /make/modules/java.base/gensrc/GensrcMisc.gmk >> ``` >> >> it appears to me that these two `@requires` clauses select the same thing i.e. either Intel x86 64-bit or AMD x86 64-bit. In which case the current config should mean that this test will run on AMD CPUs. Is that not the case? > > Thanks for the details above. Currently the main linux execution platforms are returning "amd64" for the OS arch, and that is not picked up by the current @requires (os.arch == "x86_64") > to run on amd64 necessitates the removal of the @ignores directive > so this is a pragmatic change to facilitate the manual execution of the most prevalent amd64 test environments. > > It was observed that there might be a separate issue for jtreg on the @requires and > based on your feedback, and expectations there is a separate jtreg issue to investigate the consistency of @requires on the os.arch attribute. @msheppar Thanks for clarifying what is at stake here. I am afraid don't know enough about the mechanics of the test infrastructure to explain why it is working the way you describe. However, given what you have observed I agree with your suggestion above that the right solution is to keep the two test declarations but switch "amd64" for "x86_64" and vice versa. That should make the tests work on amd64 CPUs while leaving it clear how anyone wanting to test on an alternative CPU would need to modify the test. I'll be happy to review the PR if it includes that change. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24416#issuecomment-2809394333 From liach at openjdk.org Wed Apr 16 14:45:46 2025 From: liach at openjdk.org (Chen Liang) Date: Wed, 16 Apr 2025 14:45:46 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: References: <6dAYgfNcUgA3z3iid8wXPNo3qhdhZGDbCgOfbfA0skE=.8194c6ee-81df-4170-a983-0283c2234d0b@github.com> Message-ID: <5VoTSyeoyECVkqefMEk2IRs1y64sXHLvkjM_vRBVUKM=.c8a9d588-d203-4962-9cfd-be867d5d3807@github.com> On Wed, 16 Apr 2025 10:41:48 GMT, Alan Bateman wrote: >> Any quick proposals how to rephrase JavaDocs and CSR? As the CSR is already reviewed I am a bit reluctant to hold the train for this, as IMHO *masses* of classes and interfaces would need such a disclaimer, if we kick-off that ball here... > > I think Roger's suggestion is for a different JBS issue / PR / CSR. Yeah, we already added this API to allow implementations to be more consistent under race condition. So for changing char sequences, this method's default implementation can throw IOOBE, but it is already specified so it is well-behaved even under race (as you can argue a read observed the shorter state of the CS that causes the failure) ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/21730#discussion_r2047095624 From rriggs at openjdk.org Wed Apr 16 15:02:45 2025 From: rriggs at openjdk.org (Roger Riggs) Date: Wed, 16 Apr 2025 15:02:45 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: <5VoTSyeoyECVkqefMEk2IRs1y64sXHLvkjM_vRBVUKM=.c8a9d588-d203-4962-9cfd-be867d5d3807@github.com> References: <6dAYgfNcUgA3z3iid8wXPNo3qhdhZGDbCgOfbfA0skE=.8194c6ee-81df-4170-a983-0283c2234d0b@github.com> <5VoTSyeoyECVkqefMEk2IRs1y64sXHLvkjM_vRBVUKM=.c8a9d588-d203-4962-9cfd-be867d5d3807@github.com> Message-ID: On Wed, 16 Apr 2025 14:42:38 GMT, Chen Liang wrote: >> I think Roger's suggestion is for a different JBS issue / PR / CSR. > > Yeah, we already added this API to allow implementations to be more consistent under race condition. So for changing char sequences, this method's default implementation can throw IOOBE, but it is already specified so it is well-behaved even under race (as you can argue a read observed the shorter state of the CS that causes the failure) Omitting it is fine, it was just a reminder that an interface cannot make any definitive statements about its implementations and sometime should warn the unwary user. (We all expect them to adhere to the contract described in each method, but who knows.) The statement in the implSpec is fine as it only applies to the default implementation, but can be mis-read and thought to apply to all implementations. YMMV. And though I see consensus, I don't see any approvals yet, including the CSR. Its good to see it settle down and make progress. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/21730#discussion_r2047135826 From liach at openjdk.org Wed Apr 16 15:59:48 2025 From: liach at openjdk.org (Chen Liang) Date: Wed, 16 Apr 2025 15:59:48 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: References: Message-ID: On Sun, 30 Mar 2025 12:34:06 GMT, Markus KARG wrote: >> This Pull Request proposes an implementation for [JDK-8343110](https://bugs.openjdk.org/browse/JDK-8343110): Adding the new method `public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` to the `CharSequence` interface, providing a **bulk-read** facility including a default implementation iterating over `charAt(int)`. >> >> In addition, this Pull Request proposes to replace the implementation of `Reader.of(CharSequence).read(char[] cbuf, int off, int len)` to invoke `CharSequence.getChars(next, next + n, cbuf, off)` instead of utilizing pattern matching for switch. Also, this PR proposes to implement `CharBuffer.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` as an alias for `CharBuffer.get(srcBegin, dst, dstBegin, srcEnd - srcBegin)`. >> >> To ensure quality... >> * ...the method signature and JavaDocs are adapted from `AbstractStringBuilder.getChars(...)`. >> * ...this PR relies upon the existing tests for `Reader.of(CharSequence)`, as these provide sufficient coverage of all changes introduced by this PR. > > Markus KARG has updated the pull request incrementally with one additional commit since the last revision: > > Applied changes requested by Chen: 'We might need to specify the IOOBE behavior - when an IOOBE is thrown, some characters may be already transferred (this is important for concurrent char sequences)' The implementation looks good. Do you think we need some unit tests for this new API, especially against the default implementation? ------------- PR Comment: https://git.openjdk.org/jdk/pull/21730#issuecomment-2810022443 From duke at openjdk.org Wed Apr 16 15:59:49 2025 From: duke at openjdk.org (Markus KARG) Date: Wed, 16 Apr 2025 15:59:49 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: References: Message-ID: On Sun, 30 Mar 2025 12:34:06 GMT, Markus KARG wrote: >> This Pull Request proposes an implementation for [JDK-8343110](https://bugs.openjdk.org/browse/JDK-8343110): Adding the new method `public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` to the `CharSequence` interface, providing a **bulk-read** facility including a default implementation iterating over `charAt(int)`. >> >> In addition, this Pull Request proposes to replace the implementation of `Reader.of(CharSequence).read(char[] cbuf, int off, int len)` to invoke `CharSequence.getChars(next, next + n, cbuf, off)` instead of utilizing pattern matching for switch. Also, this PR proposes to implement `CharBuffer.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` as an alias for `CharBuffer.get(srcBegin, dst, dstBegin, srcEnd - srcBegin)`. >> >> To ensure quality... >> * ...the method signature and JavaDocs are adapted from `AbstractStringBuilder.getChars(...)`. >> * ...this PR relies upon the existing tests for `Reader.of(CharSequence)`, as these provide sufficient coverage of all changes introduced by this PR. > > Markus KARG has updated the pull request incrementally with one additional commit since the last revision: > > Applied changes requested by Chen: 'We might need to specify the IOOBE behavior - when an IOOBE is thrown, some characters may be already transferred (this is important for concurrent char sequences)' IMHO the existing `Reader.of()` tests do cover all implementations already. ------------- PR Comment: https://git.openjdk.org/jdk/pull/21730#issuecomment-2810027377 From liach at openjdk.org Wed Apr 16 16:06:59 2025 From: liach at openjdk.org (Chen Liang) Date: Wed, 16 Apr 2025 16:06:59 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: References: Message-ID: On Sun, 30 Mar 2025 12:34:06 GMT, Markus KARG wrote: >> This Pull Request proposes an implementation for [JDK-8343110](https://bugs.openjdk.org/browse/JDK-8343110): Adding the new method `public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` to the `CharSequence` interface, providing a **bulk-read** facility including a default implementation iterating over `charAt(int)`. >> >> In addition, this Pull Request proposes to replace the implementation of `Reader.of(CharSequence).read(char[] cbuf, int off, int len)` to invoke `CharSequence.getChars(next, next + n, cbuf, off)` instead of utilizing pattern matching for switch. Also, this PR proposes to implement `CharBuffer.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` as an alias for `CharBuffer.get(srcBegin, dst, dstBegin, srcEnd - srcBegin)`. >> >> To ensure quality... >> * ...the method signature and JavaDocs are adapted from `AbstractStringBuilder.getChars(...)`. >> * ...this PR relies upon the existing tests for `Reader.of(CharSequence)`, as these provide sufficient coverage of all changes introduced by this PR. > > Markus KARG has updated the pull request incrementally with one additional commit since the last revision: > > Applied changes requested by Chen: 'We might need to specify the IOOBE behavior - when an IOOBE is thrown, some characters may be already transferred (this is important for concurrent char sequences)' Relying on another user is not a good practice - it is possible that we switch `Reader.of` to another implementation. The tests can be as simple as copying the `Reader.of` tests. ------------- PR Comment: https://git.openjdk.org/jdk/pull/21730#issuecomment-2810046366 From jpai at openjdk.org Wed Apr 16 16:12:58 2025 From: jpai at openjdk.org (Jaikiran Pai) Date: Wed, 16 Apr 2025 16:12:58 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: References: Message-ID: On Sun, 30 Mar 2025 12:34:06 GMT, Markus KARG wrote: >> This Pull Request proposes an implementation for [JDK-8343110](https://bugs.openjdk.org/browse/JDK-8343110): Adding the new method `public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` to the `CharSequence` interface, providing a **bulk-read** facility including a default implementation iterating over `charAt(int)`. >> >> In addition, this Pull Request proposes to replace the implementation of `Reader.of(CharSequence).read(char[] cbuf, int off, int len)` to invoke `CharSequence.getChars(next, next + n, cbuf, off)` instead of utilizing pattern matching for switch. Also, this PR proposes to implement `CharBuffer.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` as an alias for `CharBuffer.get(srcBegin, dst, dstBegin, srcEnd - srcBegin)`. >> >> To ensure quality... >> * ...the method signature and JavaDocs are adapted from `AbstractStringBuilder.getChars(...)`. >> * ...this PR relies upon the existing tests for `Reader.of(CharSequence)`, as these provide sufficient coverage of all changes introduced by this PR. > > Markus KARG has updated the pull request incrementally with one additional commit since the last revision: > > Applied changes requested by Chen: 'We might need to specify the IOOBE behavior - when an IOOBE is thrown, some characters may be already transferred (this is important for concurrent char sequences)' src/java.base/share/classes/java/lang/CharSequence.java line 342: > 340: * @since 25 > 341: */ > 342: public default void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) { Hello Markus, given these new methods on `CharSequence` and the `CharBuffer`, we should add a jtreg test to verify that the default implementation of these methods do work as specified. Edit: I now see Chen too had a similar comment about adding a regression test. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/21730#discussion_r2047263593 From duke at openjdk.org Wed Apr 16 16:12:58 2025 From: duke at openjdk.org (Markus KARG) Date: Wed, 16 Apr 2025 16:12:58 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: References: Message-ID: On Wed, 16 Apr 2025 16:08:21 GMT, Jaikiran Pai wrote: >> Markus KARG has updated the pull request incrementally with one additional commit since the last revision: >> >> Applied changes requested by Chen: 'We might need to specify the IOOBE behavior - when an IOOBE is thrown, some characters may be already transferred (this is important for concurrent char sequences)' > > src/java.base/share/classes/java/lang/CharSequence.java line 342: > >> 340: * @since 25 >> 341: */ >> 342: public default void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) { > > Hello Markus, given these new methods on `CharSequence` and the `CharBuffer`, we should add a jtreg test to verify that the default implementation of these methods do work as specified. > > Edit: I now see Chen too had a similar comment about adding a regression test. This is already discussed in a separate thread. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/21730#discussion_r2047265794 From duke at openjdk.org Wed Apr 16 16:12:57 2025 From: duke at openjdk.org (Markus KARG) Date: Wed, 16 Apr 2025 16:12:57 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: References: Message-ID: On Sun, 30 Mar 2025 12:34:06 GMT, Markus KARG wrote: >> This Pull Request proposes an implementation for [JDK-8343110](https://bugs.openjdk.org/browse/JDK-8343110): Adding the new method `public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` to the `CharSequence` interface, providing a **bulk-read** facility including a default implementation iterating over `charAt(int)`. >> >> In addition, this Pull Request proposes to replace the implementation of `Reader.of(CharSequence).read(char[] cbuf, int off, int len)` to invoke `CharSequence.getChars(next, next + n, cbuf, off)` instead of utilizing pattern matching for switch. Also, this PR proposes to implement `CharBuffer.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` as an alias for `CharBuffer.get(srcBegin, dst, dstBegin, srcEnd - srcBegin)`. >> >> To ensure quality... >> * ...the method signature and JavaDocs are adapted from `AbstractStringBuilder.getChars(...)`. >> * ...this PR relies upon the existing tests for `Reader.of(CharSequence)`, as these provide sufficient coverage of all changes introduced by this PR. > > Markus KARG has updated the pull request incrementally with one additional commit since the last revision: > > Applied changes requested by Chen: 'We might need to specify the IOOBE behavior - when an IOOBE is thrown, some characters may be already transferred (this is important for concurrent char sequences)' Nevertheless, the tests are there, so no *new* ones are needed. We can duplicate them, if a majority thinks it is beneficial. ------------- PR Comment: https://git.openjdk.org/jdk/pull/21730#issuecomment-2810057394 From jpai at openjdk.org Wed Apr 16 16:31:59 2025 From: jpai at openjdk.org (Jaikiran Pai) Date: Wed, 16 Apr 2025 16:31:59 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: References: Message-ID: On Sun, 30 Mar 2025 12:34:06 GMT, Markus KARG wrote: >> This Pull Request proposes an implementation for [JDK-8343110](https://bugs.openjdk.org/browse/JDK-8343110): Adding the new method `public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` to the `CharSequence` interface, providing a **bulk-read** facility including a default implementation iterating over `charAt(int)`. >> >> In addition, this Pull Request proposes to replace the implementation of `Reader.of(CharSequence).read(char[] cbuf, int off, int len)` to invoke `CharSequence.getChars(next, next + n, cbuf, off)` instead of utilizing pattern matching for switch. Also, this PR proposes to implement `CharBuffer.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` as an alias for `CharBuffer.get(srcBegin, dst, dstBegin, srcEnd - srcBegin)`. >> >> To ensure quality... >> * ...the method signature and JavaDocs are adapted from `AbstractStringBuilder.getChars(...)`. >> * ...this PR relies upon the existing tests for `Reader.of(CharSequence)`, as these provide sufficient coverage of all changes introduced by this PR. > > Markus KARG has updated the pull request incrementally with one additional commit since the last revision: > > Applied changes requested by Chen: 'We might need to specify the IOOBE behavior - when an IOOBE is thrown, some characters may be already transferred (this is important for concurrent char sequences)' > Nevertheless, the tests are there, so no _new_ ones are needed. We can duplicate them, if a majority thinks it is beneficial. As noted in the contribution guide (https://openjdk.org/guide/#testing-the-jdk), regression tests are expected for a majority of changes that are done in the JDK. There are situations where regressions tests cannot be added, but this isn't one. I believe a new method with a default specified implementation in a public exported interface deserves a regression test of its own. ------------- PR Comment: https://git.openjdk.org/jdk/pull/21730#issuecomment-2810110015 From duke at openjdk.org Wed Apr 16 16:36:02 2025 From: duke at openjdk.org (Markus KARG) Date: Wed, 16 Apr 2025 16:36:02 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: References: Message-ID: On Wed, 16 Apr 2025 16:29:23 GMT, Jaikiran Pai wrote: > > Nevertheless, the tests are there, so no _new_ ones are needed. We can duplicate them, if a majority thinks it is beneficial. > > As noted in the contribution guide (https://openjdk.org/guide/#testing-the-jdk), regression tests are expected for a majority of changes that are done in the JDK. There are situations where regressions tests cannot be added, but this isn't one. I believe a new method with a default specified implementation in a public exported interface deserves a regression test of its own. The docs do not say that the regression test must be *separate*. Again: We *do have* testing covered. The question is *not* whether we need a test -we *do have one*-, but whether to *duplicate* it. ------------- PR Comment: https://git.openjdk.org/jdk/pull/21730#issuecomment-2810119199 From jpai at openjdk.org Wed Apr 16 16:50:01 2025 From: jpai at openjdk.org (Jaikiran Pai) Date: Wed, 16 Apr 2025 16:50:01 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: References: Message-ID: On Wed, 16 Apr 2025 16:33:29 GMT, Markus KARG wrote: > If duplication is wanted, I will do it. I am just waiting for a majority to clearly say that they want duplication. By duplication, do you mean copy pasting the `testReadBII(Reader reader)`, `testReadBIILenZero(Reader reader)`, `testReadDirectCharBuffer(Reader reader)` and similar such test methods from the existing `test/jdk/java/io/Reader/Of.java` test class? Including all those references to the `Reader`? Implementing a test that calls `Reader.of()` to verify the behaviour of an independent `CharSequence.getChars()` method isn't the kind of test I am proposing. It should be possible to just invoke `CharSequence.getChars()` on a `CharSequence` instance to verify that its default method does what it specifies. So these new tests won't be duplicating any existing test code. ------------- PR Comment: https://git.openjdk.org/jdk/pull/21730#issuecomment-2810153917 From duke at openjdk.org Wed Apr 16 17:01:58 2025 From: duke at openjdk.org (Markus KARG) Date: Wed, 16 Apr 2025 17:01:58 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: References: Message-ID: On Wed, 16 Apr 2025 16:47:33 GMT, Jaikiran Pai wrote: >It should be possible to just invoke `CharSequence.getChars()` on a `CharSequence` instance to verify that its default method does what it specifies. So these new tests won't be duplicating any existing test code. IIUC then you will be fine with a test that **solely** tests *the default implementation* of `CharSequence.getChars()`? ------------- PR Comment: https://git.openjdk.org/jdk/pull/21730#issuecomment-2810179689 From jpai at openjdk.org Wed Apr 16 17:07:01 2025 From: jpai at openjdk.org (Jaikiran Pai) Date: Wed, 16 Apr 2025 17:07:01 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: References: Message-ID: <9BsFYz2RyshIdK1liYcrQdIiJMf5yuhajoVSZ8V5LUQ=.23bc0d84-4f72-41d2-b5d1-753bc12c4e22@github.com> On Wed, 16 Apr 2025 16:58:50 GMT, Markus KARG wrote: > IIUC then you will be fine with a test that solely tests the default implementation of CharSequence.getChars()? Correct. And a similar separate test for `CharBuffer.getChars()` since that one too is a new default implementation method. I apologize if that wasn't clear in the discussion so far. ------------- PR Comment: https://git.openjdk.org/jdk/pull/21730#issuecomment-2810190843 From isipka at openjdk.org Thu Apr 17 11:53:44 2025 From: isipka at openjdk.org (Ivan =?UTF-8?B?xaBpcGth?=) Date: Thu, 17 Apr 2025 11:53:44 GMT Subject: RFR: 8351851: Update PmemTest to run on AMD64 In-Reply-To: References: <4ZBBW-YJlnEPdKPztUw-rVUcat5mcOMx_d_Y72RDmNU=.fdf74676-a172-46d0-be93-e49d93c741e3@github.com> Message-ID: On Wed, 16 Apr 2025 12:13:57 GMT, Andrew Dinn wrote: >>> > It would be preferable if we retained the current test structure and swap >>> > the x86_64 with amd64, as amd64 is the os.arch on which the test will be run >>> >>> When I wrote my previous comment I was under the impression that `@requires(os.arch == "x86_64")` selects Intel x86 64-bit only while `@requires(os.arch == "amd64")` selects either Intel x86 64-bit or AMD x86 64-bit. However, having looked through the code in files: >>> >>> ``` >>> test/jdk/jdk/internal/util/ArchTest.java >>> src/java.base/share/classes/jdk/internal/util/Architecture.java >>> src/java.base/share/classes/jdk/internal/util/PlatformProps.java >>> /make/modules/java.base/gensrc/GensrcMisc.gmk >>> ``` >>> >>> it appears to me that these two `@requires` clauses select the same thing i.e. either Intel x86 64-bit or AMD x86 64-bit. In which case the current config should mean that this test will run on AMD CPUs. Is that not the case? >> >> Thanks for the details above. Currently the main linux execution platforms are returning "amd64" for the OS arch, and that is not picked up by the current @requires (os.arch == "x86_64") >> to run on amd64 necessitates the removal of the @ignores directive >> so this is a pragmatic change to facilitate the manual execution of the most prevalent amd64 test environments. >> >> It was observed that there might be a separate issue for jtreg on the @requires and >> based on your feedback, and expectations there is a separate jtreg issue to investigate the consistency of @requires on the os.arch attribute. > > @msheppar Thanks for clarifying what is at stake here. I am afraid don't know enough about the mechanics of the test infrastructure to explain why it is working the way you describe. However, given what you have observed I agree with your suggestion above that the right solution is to keep the two test declarations but switch "amd64" for "x86_64" and vice versa. That should make the tests work on amd64 CPUs while leaving it clear how anyone wanting to test on an alternative CPU would need to modify the test. I'll be happy to review the PR if it includes that change. @adinn thank you for pointing out the additional relevant tests, the `test/jdk/jdk/internal/util/ArchTest.java` one is pure gold! @msheppar the issue on @requires directive consistency was suspected until the following observation was made on a machine with Intel Core i9 CPU (which is clearly x86_64 ISA) : $dpkg --print-architecture amd64 $gcc -dumpmachine x86_64-linux-gnu $uname -m x86_64 $arch x86_64 To the best of my understanding the jtreg @requires directive is based on platform-dependent `System.getProperty("os.arch")` which is, I am speculating, populated via flags set in build time and by querying system calls during JVM startup. Furthermore, [Oracle JDK releases for Linux](https://www.oracle.com/java/technologies/downloads/) list only `aarch64` and `x64` ISA's. Based on these facts (the architecture test and the releases) it is reasonable to conclude that `x86_64` and `amd64` are equivalent - as far as the JDK VM scope is concerned - researching the topic seems to point that there still are some exotic differences but namely regarding virtualization. Hence, in the general case any test that depends on the architecture should list `x86_64` and `amd64` together as it is uncertain (platform implementation dependent) what the exact string will be, e.g.: @requires ((os.arch == "x86_64")|(os.arch == "amd64")) If we are aiming specifically for mentioned test enviroment it can be `amd64` as we _know_ that is what is returned. In the case we want to proceed with two test cases - I suggest to introduce human readable ids (jtreg @id tag) so that we dont see automatically assigned `#id0` and `#id1`. Please advise. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24416#issuecomment-2812620053 From msheppar at openjdk.org Thu Apr 17 12:32:52 2025 From: msheppar at openjdk.org (Mark Sheppard) Date: Thu, 17 Apr 2025 12:32:52 GMT Subject: RFR: 8351851: Update PmemTest to run on AMD64 In-Reply-To: References: Message-ID: On Thu, 3 Apr 2025 14:48:41 GMT, Ivan ?ipka wrote: > Remove default OS platform linux x86_64, remove @ignores allowing amd64 as a viable OS platform selection changing the @requires in the main test to @requires ((os.arch == "x86_64")|(os.arch == "amd64")) seems reasonable and adding an id to each of the test cases is a good idea ------------- PR Comment: https://git.openjdk.org/jdk/pull/24416#issuecomment-2812719444 From isipka at openjdk.org Thu Apr 17 14:40:56 2025 From: isipka at openjdk.org (Ivan =?UTF-8?B?xaBpcGth?=) Date: Thu, 17 Apr 2025 14:40:56 GMT Subject: RFR: 8351851: Update PmemTest to run on AMD64 [v2] In-Reply-To: References: Message-ID: > Remove default OS platform linux x86_64, remove @ignores allowing amd64 as a viable OS platform selection Ivan ?ipka has updated the pull request incrementally with two additional commits since the last revision: - removing accidentally added files, reverting to two test cases bu removing @ignores directive and adding test ids - copyright update ------------- Changes: - all: https://git.openjdk.org/jdk/pull/24416/files - new: https://git.openjdk.org/jdk/pull/24416/files/f6822b82..eae29977 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=24416&range=01 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24416&range=00-01 Stats: 10 lines in 1 file changed: 1 ins; 0 del; 9 mod Patch: https://git.openjdk.org/jdk/pull/24416.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24416/head:pull/24416 PR: https://git.openjdk.org/jdk/pull/24416 From isipka at openjdk.org Thu Apr 17 14:46:42 2025 From: isipka at openjdk.org (Ivan =?UTF-8?B?xaBpcGth?=) Date: Thu, 17 Apr 2025 14:46:42 GMT Subject: RFR: 8351851: Update PmemTest to run on AMD64 [v2] In-Reply-To: References: Message-ID: <3LxqN8gv0EHI5bGJ6I7ZPiloS-_zKTNhZiu_Dj59KrU=.dba062e8-6525-4c13-ac85-201316415fee@github.com> On Thu, 17 Apr 2025 14:40:56 GMT, Ivan ?ipka wrote: >> Remove default OS platform linux x86_64, remove @ignores allowing amd64 as a viable OS platform selection > > Ivan ?ipka has updated the pull request incrementally with two additional commits since the last revision: > > - removing accidentally added files, reverting to two test cases bu removing @ignores directive and adding test ids > - copyright update changes: - removed @ignores tag and split to two test cases: - `@requires ((os.arch == "x86_64")|(os.arch == "amd64"))` with id `default_architecture_test_case` - `@requires ((os.arch == "aarch64")|(os.arch == "ppc64le"))` with id `other_architectures_test_case` local test shows that requires directive resolves properly as well as the test id is applied jtreg -version jtreg 7.6+1-12 Installed in /home/isipka/apps/jtreg/jtreg-7.6+1/lib/jtreg.jar Running on platform version 25-ea from /home/isipka/.sdkman/candidates/java/25.ea.9-open. Built with Java(TM) 2 SDK, Version 11.0.16+11-LTS-199 on February 06, 2025. Copyright (c) 1999, 2022, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. JT Harness, version 6.0 ea b24 (September 27, 2022) Java Assembler Tools, version 7.0 ea b09 (June 04, 2020) TestNG: testng-7.3.0.jar, jcommander-1.82.jar, guice-5.1.0.jar JUnit: junit-platform-console-standalone-1.11.0.jar jtreg -verbose:esa java/nio/MappedByteBuffer/PmemTest.java failed to get value for jdk.static java.lang.UnsatisfiedLinkError: 'boolean jdk.test.whitebox.WhiteBox.isStatic()' at jdk.test.whitebox.WhiteBox.isStatic(Native Method) at requires.VMProps.isStatic(VMProps.java:830) at requires.VMProps$SafeMap.put(VMProps.java:82) at requires.VMProps.call(VMProps.java:145) at requires.VMProps.call(VMProps.java:67) at com.sun.javatest.regtest.agent.GetJDKProperties.run(GetJDKProperties.java:80) at com.sun.javatest.regtest.agent.GetJDKProperties.main(GetJDKProperties.java:54) runner starting test: java/nio/MappedByteBuffer/PmemTest.java#default_architecture_test_case runner finished test: java/nio/MappedByteBuffer/PmemTest.java#default_architecture_test_case Failed. Execution failed: `main' threw exception: java.nio.file.NoSuchFileException: /mnt/pmem/test/pmemtest Test results: failed: 1; did not meet platform requirements: 1 Report written to /home/isipka/workspace/jdk/open/test/jdk/JTreport/html/report.html Results written to /home/isipka/workspace/jdk/open/test/jdk/JTwork Error: Some tests failed or other problems occurred. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24416#issuecomment-2813184298 From msheppar at openjdk.org Thu Apr 17 14:57:43 2025 From: msheppar at openjdk.org (Mark Sheppard) Date: Thu, 17 Apr 2025 14:57:43 GMT Subject: RFR: 8351851: Update PmemTest to run on AMD64 [v2] In-Reply-To: References: Message-ID: On Thu, 17 Apr 2025 14:40:56 GMT, Ivan ?ipka wrote: >> Remove default OS platform linux x86_64, remove @ignores allowing amd64 as a viable OS platform selection > > Ivan ?ipka has updated the pull request incrementally with two additional commits since the last revision: > > - removing accidentally added files, reverting to two test cases bu removing @ignores directive and adding test ids > - copyright update test/jdk/java/nio/MappedByteBuffer/PmemTest.java line 87: > 85: */ > 86: > 87: /* @test id=other_architectures_test_case we should to leave the @ignores for the 2nd test case the test will be run on amd64 environmenst , as such the addition of | (os.arch == "amd64") to the first test case is fine ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24416#discussion_r2049132553 From isipka at openjdk.org Thu Apr 17 15:07:16 2025 From: isipka at openjdk.org (Ivan =?UTF-8?B?xaBpcGth?=) Date: Thu, 17 Apr 2025 15:07:16 GMT Subject: RFR: 8351851: Update PmemTest to run on AMD64 [v2] In-Reply-To: References: Message-ID: On Thu, 17 Apr 2025 14:54:37 GMT, Mark Sheppard wrote: >> Ivan ?ipka has updated the pull request incrementally with two additional commits since the last revision: >> >> - removing accidentally added files, reverting to two test cases bu removing @ignores directive and adding test ids >> - copyright update > > test/jdk/java/nio/MappedByteBuffer/PmemTest.java line 87: > >> 85: */ >> 86: >> 87: /* @test id=other_architectures_test_case > > we should to leave the @ignores for the 2nd test case > the test will be run on amd64 environmenst , as such the addition of | (os.arch == "amd64") to the first test case is fine so just to confirm: we explitcitly want to ignore this test on `linux-aarch64` and `linux-ppc64le` regardless of is the required hardware present or not? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24416#discussion_r2049152149 From msheppar at openjdk.org Thu Apr 17 15:20:43 2025 From: msheppar at openjdk.org (Mark Sheppard) Date: Thu, 17 Apr 2025 15:20:43 GMT Subject: RFR: 8351851: Update PmemTest to run on AMD64 [v2] In-Reply-To: References: Message-ID: On Thu, 17 Apr 2025 15:04:05 GMT, Ivan ?ipka wrote: >> test/jdk/java/nio/MappedByteBuffer/PmemTest.java line 87: >> >>> 85: */ >>> 86: >>> 87: /* @test id=other_architectures_test_case >> >> we should to leave the @ignores for the 2nd test case >> the test will be run on amd64 environmenst , as such the addition of | (os.arch == "amd64") to the first test case is fine > > so just to confirm: we explitcitly want to ignore this test on `linux-aarch64` and `linux-ppc64le` regardless of is the required hardware present or not? yes, retain the @ignore in the second test case. The original aim of this issue is to change the default test case of os.arch == "x86_64" to os.arch == "amd64" as the test will by default be run in an amd64 environment. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24416#discussion_r2049180807 From isipka at openjdk.org Thu Apr 17 15:49:38 2025 From: isipka at openjdk.org (Ivan =?UTF-8?B?xaBpcGth?=) Date: Thu, 17 Apr 2025 15:49:38 GMT Subject: RFR: 8351851: Update PmemTest to run on AMD64 [v3] In-Reply-To: References: Message-ID: > Remove default OS platform linux x86_64, remove @ignores allowing amd64 as a viable OS platform selection Ivan ?ipka has updated the pull request incrementally with one additional commit since the last revision: retruning ignore directive to other_arch test case ------------- Changes: - all: https://git.openjdk.org/jdk/pull/24416/files - new: https://git.openjdk.org/jdk/pull/24416/files/eae29977..59209dd4 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=24416&range=02 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24416&range=01-02 Stats: 6 lines in 1 file changed: 5 ins; 1 del; 0 mod Patch: https://git.openjdk.org/jdk/pull/24416.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24416/head:pull/24416 PR: https://git.openjdk.org/jdk/pull/24416 From isipka at openjdk.org Thu Apr 17 15:53:02 2025 From: isipka at openjdk.org (Ivan =?UTF-8?B?xaBpcGth?=) Date: Thu, 17 Apr 2025 15:53:02 GMT Subject: RFR: 8351851: Update PmemTest to run on AMD64 [v3] In-Reply-To: References: Message-ID: On Thu, 17 Apr 2025 15:49:38 GMT, Ivan ?ipka wrote: >> Remove default OS platform linux x86_64, remove @ignores allowing amd64 as a viable OS platform selection > > Ivan ?ipka has updated the pull request incrementally with one additional commit since the last revision: > > retruning ignore directive to other_arch test case jtreg -ignore:quiet -verbose:esa java/nio/MappedByteBuffer/PmemTest.java failed to get value for jdk.static java.lang.UnsatisfiedLinkError: 'boolean jdk.test.whitebox.WhiteBox.isStatic()' at jdk.test.whitebox.WhiteBox.isStatic(Native Method) at requires.VMProps.isStatic(VMProps.java:830) at requires.VMProps$SafeMap.put(VMProps.java:82) at requires.VMProps.call(VMProps.java:145) at requires.VMProps.call(VMProps.java:67) at com.sun.javatest.regtest.agent.GetJDKProperties.run(GetJDKProperties.java:80) at com.sun.javatest.regtest.agent.GetJDKProperties.main(GetJDKProperties.java:54) runner starting test: java/nio/MappedByteBuffer/PmemTest.java#default_architecture_test_case runner finished test: java/nio/MappedByteBuffer/PmemTest.java#default_architecture_test_case Failed. Execution failed: `main' threw exception: java.nio.file.NoSuchFileException: /mnt/pmem/test/pmemtest Test results: failed: 1; did not match keywords: 1 Report written to /home/isipka/workspace/jdk/open/test/jdk/JTreport/html/report.html Results written to /home/isipka/workspace/jdk/open/test/jdk/JTwork Error: Some tests failed or other problems occurred. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24416#issuecomment-2813397799 From adinn at openjdk.org Thu Apr 17 19:15:59 2025 From: adinn at openjdk.org (Andrew Dinn) Date: Thu, 17 Apr 2025 19:15:59 GMT Subject: RFR: 8351851: Update PmemTest to run on AMD64 [v3] In-Reply-To: References: Message-ID: On Thu, 17 Apr 2025 15:49:38 GMT, Ivan ?ipka wrote: >> Remove default OS platform linux x86_64, remove @ignores allowing amd64 as a viable OS platform selection > > Ivan ?ipka has updated the pull request incrementally with one additional commit since the last revision: > > retruning ignore directive to other_arch test case Ok,that looks like a good solution ------------- Marked as reviewed by adinn (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/24416#pullrequestreview-2776688140 From adinn at openjdk.org Thu Apr 17 19:18:47 2025 From: adinn at openjdk.org (Andrew Dinn) Date: Thu, 17 Apr 2025 19:18:47 GMT Subject: RFR: 8351851: Update PmemTest to run on AMD64 [v3] In-Reply-To: References: Message-ID: On Thu, 17 Apr 2025 15:50:21 GMT, Ivan ?ipka wrote: >> Ivan ?ipka has updated the pull request incrementally with one additional commit since the last revision: >> >> retruning ignore directive to other_arch test case > > jtreg -ignore:quiet -verbose:esa java/nio/MappedByteBuffer/PmemTest.java > failed to get value for jdk.static > java.lang.UnsatisfiedLinkError: 'boolean jdk.test.whitebox.WhiteBox.isStatic()' > at jdk.test.whitebox.WhiteBox.isStatic(Native Method) > at requires.VMProps.isStatic(VMProps.java:830) > at requires.VMProps$SafeMap.put(VMProps.java:82) > at requires.VMProps.call(VMProps.java:145) > at requires.VMProps.call(VMProps.java:67) > at com.sun.javatest.regtest.agent.GetJDKProperties.run(GetJDKProperties.java:80) > at com.sun.javatest.regtest.agent.GetJDKProperties.main(GetJDKProperties.java:54) > runner starting test: java/nio/MappedByteBuffer/PmemTest.java#default_architecture_test_case > runner finished test: java/nio/MappedByteBuffer/PmemTest.java#default_architecture_test_case > Failed. Execution failed: `main' threw exception: java.nio.file.NoSuchFileException: /mnt/pmem/test/pmemtest > Test results: failed: 1; did not match keywords: 1 > Report written to /home/isipka/workspace/jdk/open/test/jdk/JTreport/html/report.html > Results written to /home/isipka/workspace/jdk/open/test/jdk/JTwork > Error: Some tests failed or other problems occurred. @frkator Try to integrate again and I will sponsor. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24416#issuecomment-2813819379 From duke at openjdk.org Thu Apr 17 21:29:21 2025 From: duke at openjdk.org (Markus KARG) Date: Thu, 17 Apr 2025 21:29:21 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v6] In-Reply-To: References: Message-ID: > This Pull Request proposes an implementation for [JDK-8343110](https://bugs.openjdk.org/browse/JDK-8343110): Adding the new method `public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` to the `CharSequence` interface, providing a **bulk-read** facility including a default implementation iterating over `charAt(int)`. > > In addition, this Pull Request proposes to replace the implementation of `Reader.of(CharSequence).read(char[] cbuf, int off, int len)` to invoke `CharSequence.getChars(next, next + n, cbuf, off)` instead of utilizing pattern matching for switch. Also, this PR proposes to implement `CharBuffer.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` as an alias for `CharBuffer.get(srcBegin, dst, dstBegin, srcEnd - srcBegin)`. > > To ensure quality... > * ...the method signature and JavaDocs are adapted from `AbstractStringBuilder.getChars(...)`. > * ...this PR relies upon the existing tests for `Reader.of(CharSequence)`, as these provide sufficient coverage of all changes introduced by this PR. Markus KARG has updated the pull request incrementally with one additional commit since the last revision: Applied changes requested by Chen and Jaikiran: Unit tests for default implementation of CharSequence.getChars() and for CharBuffer.getChars() ------------- Changes: - all: https://git.openjdk.org/jdk/pull/21730/files - new: https://git.openjdk.org/jdk/pull/21730/files/d2ccf42c..884e7dc1 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=21730&range=05 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=21730&range=04-05 Stats: 203 lines in 2 files changed: 203 ins; 0 del; 0 mod Patch: https://git.openjdk.org/jdk/pull/21730.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/21730/head:pull/21730 PR: https://git.openjdk.org/jdk/pull/21730 From duke at openjdk.org Thu Apr 17 21:33:58 2025 From: duke at openjdk.org (Markus KARG) Date: Thu, 17 Apr 2025 21:33:58 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: <9BsFYz2RyshIdK1liYcrQdIiJMf5yuhajoVSZ8V5LUQ=.23bc0d84-4f72-41d2-b5d1-753bc12c4e22@github.com> References: <9BsFYz2RyshIdK1liYcrQdIiJMf5yuhajoVSZ8V5LUQ=.23bc0d84-4f72-41d2-b5d1-753bc12c4e22@github.com> Message-ID: On Wed, 16 Apr 2025 17:04:07 GMT, Jaikiran Pai wrote: > > IIUC then you will be fine with a test that solely tests the default implementation of CharSequence.getChars()? > > Correct. And a similar separate test for `CharBuffer.getChars()` since that one too is a new default implementation method. I apologize if that wasn't clear in the discussion so far. I now have covered `CharSequence.getChars()` and `CharBuffer.getChars()` with *separate* basic unit testing. Does this fit? ? ------------- PR Comment: https://git.openjdk.org/jdk/pull/21730#issuecomment-2814062190 From liach at openjdk.org Thu Apr 17 22:25:46 2025 From: liach at openjdk.org (Chen Liang) Date: Thu, 17 Apr 2025 22:25:46 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v6] In-Reply-To: References: Message-ID: On Thu, 17 Apr 2025 21:29:21 GMT, Markus KARG wrote: >> This Pull Request proposes an implementation for [JDK-8343110](https://bugs.openjdk.org/browse/JDK-8343110): Adding the new method `public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` to the `CharSequence` interface, providing a **bulk-read** facility including a default implementation iterating over `charAt(int)`. >> >> In addition, this Pull Request proposes to replace the implementation of `Reader.of(CharSequence).read(char[] cbuf, int off, int len)` to invoke `CharSequence.getChars(next, next + n, cbuf, off)` instead of utilizing pattern matching for switch. Also, this PR proposes to implement `CharBuffer.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` as an alias for `CharBuffer.get(srcBegin, dst, dstBegin, srcEnd - srcBegin)`. >> >> To ensure quality... >> * ...the method signature and JavaDocs are adapted from `AbstractStringBuilder.getChars(...)`. >> * ...this PR relies upon the existing tests for `Reader.of(CharSequence)`, as these provide sufficient coverage of all changes introduced by this PR. > > Markus KARG has updated the pull request incrementally with one additional commit since the last revision: > > Applied changes requested by Chen and Jaikiran: Unit tests for default implementation of CharSequence.getChars() and for CharBuffer.getChars() The unit tests look good. ------------- Marked as reviewed by liach (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/21730#pullrequestreview-2777052617 From alanb at openjdk.org Fri Apr 18 06:06:52 2025 From: alanb at openjdk.org (Alan Bateman) Date: Fri, 18 Apr 2025 06:06:52 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v6] In-Reply-To: References: Message-ID: On Thu, 17 Apr 2025 21:29:21 GMT, Markus KARG wrote: >> This Pull Request proposes an implementation for [JDK-8343110](https://bugs.openjdk.org/browse/JDK-8343110): Adding the new method `public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` to the `CharSequence` interface, providing a **bulk-read** facility including a default implementation iterating over `charAt(int)`. >> >> In addition, this Pull Request proposes to replace the implementation of `Reader.of(CharSequence).read(char[] cbuf, int off, int len)` to invoke `CharSequence.getChars(next, next + n, cbuf, off)` instead of utilizing pattern matching for switch. Also, this PR proposes to implement `CharBuffer.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` as an alias for `CharBuffer.get(srcBegin, dst, dstBegin, srcEnd - srcBegin)`. >> >> To ensure quality... >> * ...the method signature and JavaDocs are adapted from `AbstractStringBuilder.getChars(...)`. >> * ...this PR relies upon the existing tests for `Reader.of(CharSequence)`, as these provide sufficient coverage of all changes introduced by this PR. > > Markus KARG has updated the pull request incrementally with one additional commit since the last revision: > > Applied changes requested by Chen and Jaikiran: Unit tests for default implementation of CharSequence.getChars() and for CharBuffer.getChars() test/jdk/java/nio/CharBuffer/GetChars.java line 34: > 32: * @run testng GetChars > 33: */ > 34: public class GetChars { The tests for buffers, including CharBuffer, are in test/jdk/java/nio/Buffer. Look at the existing Chars.java tests idea, and specifically the DataProvider "createCharBuffers" as it will show the different kinds of CharBuffers that can be tested. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/21730#discussion_r2050100315 From duke at openjdk.org Fri Apr 18 09:23:44 2025 From: duke at openjdk.org (duke) Date: Fri, 18 Apr 2025 09:23:44 GMT Subject: RFR: 8351851: Update PmemTest to run on AMD64 [v3] In-Reply-To: References: Message-ID: On Thu, 17 Apr 2025 15:49:38 GMT, Ivan ?ipka wrote: >> Remove default OS platform linux x86_64, remove @ignores allowing amd64 as a viable OS platform selection > > Ivan ?ipka has updated the pull request incrementally with one additional commit since the last revision: > > retruning ignore directive to other_arch test case @frkator Your change (at version 59209dd4c58c6fa455b7ce621d468fefcf88942b) is now ready to be sponsored by a Committer. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24416#issuecomment-2815048045 From isipka at openjdk.org Fri Apr 18 10:47:46 2025 From: isipka at openjdk.org (Ivan =?UTF-8?B?xaBpcGth?=) Date: Fri, 18 Apr 2025 10:47:46 GMT Subject: Integrated: 8351851: Update PmemTest to run on AMD64 In-Reply-To: References: Message-ID: On Thu, 3 Apr 2025 14:48:41 GMT, Ivan ?ipka wrote: > Remove default OS platform linux x86_64, remove @ignores allowing amd64 as a viable OS platform selection This pull request has now been integrated. Changeset: 0feecb7c Author: Ivan ?ipka Committer: Andrew Dinn URL: https://git.openjdk.org/jdk/commit/0feecb7c6a982e5c65df0242711ecdb0691cef87 Stats: 7 lines in 1 file changed: 0 ins; 1 del; 6 mod 8351851: Update PmemTest to run on AMD64 Reviewed-by: adinn ------------- PR: https://git.openjdk.org/jdk/pull/24416 From duke at openjdk.org Fri Apr 18 12:34:42 2025 From: duke at openjdk.org (Markus KARG) Date: Fri, 18 Apr 2025 12:34:42 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v7] In-Reply-To: References: Message-ID: > This Pull Request proposes an implementation for [JDK-8343110](https://bugs.openjdk.org/browse/JDK-8343110): Adding the new method `public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` to the `CharSequence` interface, providing a **bulk-read** facility including a default implementation iterating over `charAt(int)`. > > In addition, this Pull Request proposes to replace the implementation of `Reader.of(CharSequence).read(char[] cbuf, int off, int len)` to invoke `CharSequence.getChars(next, next + n, cbuf, off)` instead of utilizing pattern matching for switch. Also, this PR proposes to implement `CharBuffer.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` as an alias for `CharBuffer.get(srcBegin, dst, dstBegin, srcEnd - srcBegin)`. > > To ensure quality... > * ...the method signature and JavaDocs are adapted from `AbstractStringBuilder.getChars(...)`. > * ...this PR relies upon the existing tests for `Reader.of(CharSequence)`, as these provide sufficient coverage of all changes introduced by this PR. Markus KARG has updated the pull request incrementally with one additional commit since the last revision: Applied changes requestes by Alan: Aligning unit test for CharBuffer.getChars() with unit test for CharBuffer.chars() ------------- Changes: - all: https://git.openjdk.org/jdk/pull/21730/files - new: https://git.openjdk.org/jdk/pull/21730/files/884e7dc1..cb2a2efb Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=21730&range=06 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=21730&range=05-06 Stats: 301 lines in 2 files changed: 207 ins; 94 del; 0 mod Patch: https://git.openjdk.org/jdk/pull/21730.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/21730/head:pull/21730 PR: https://git.openjdk.org/jdk/pull/21730 From duke at openjdk.org Fri Apr 18 12:37:49 2025 From: duke at openjdk.org (Markus KARG) Date: Fri, 18 Apr 2025 12:37:49 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v6] In-Reply-To: References: Message-ID: On Fri, 18 Apr 2025 06:03:36 GMT, Alan Bateman wrote: >> Markus KARG has updated the pull request incrementally with one additional commit since the last revision: >> >> Applied changes requested by Chen and Jaikiran: Unit tests for default implementation of CharSequence.getChars() and for CharBuffer.getChars() > > test/jdk/java/nio/CharBuffer/GetChars.java line 34: > >> 32: * @run testng GetChars >> 33: */ >> 34: public class GetChars { > > The tests for buffers, including CharBuffer, are in test/jdk/java/nio/Buffer. Look at the existing Chars.java tests idea, and specifically the DataProvider "createCharBuffers" as it will show the different kinds of CharBuffers that can be tested. Thank you for this tip, Alan! I have move the unit test from `nio/CharBuffer` to `nio/Buffer`, and appended it with the randomized test found in `Buffer/Chars.java`. Hope it looks fine now? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/21730#discussion_r2050562477 From duke at openjdk.org Fri Apr 18 12:37:48 2025 From: duke at openjdk.org (Markus KARG) Date: Fri, 18 Apr 2025 12:37:48 GMT Subject: RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v5] In-Reply-To: References: <6dAYgfNcUgA3z3iid8wXPNo3qhdhZGDbCgOfbfA0skE=.8194c6ee-81df-4170-a983-0283c2234d0b@github.com> <5VoTSyeoyECVkqefMEk2IRs1y64sXHLvkjM_vRBVUKM=.c8a9d588-d203-4962-9cfd-be867d5d3807@github.com> Message-ID: On Wed, 16 Apr 2025 15:00:20 GMT, Roger Riggs wrote: >> Yeah, we already added this API to allow implementations to be more consistent under race condition. So for changing char sequences, this method's default implementation can throw IOOBE, but it is already specified so it is well-behaved even under race (as you can argue a read observed the shorter state of the CS that causes the failure) > > Omitting it is fine, it was just a reminder that an interface cannot make any definitive statements about its implementations and sometime should warn the unwary user. (We all expect them to adhere to the contract described in each method, but who knows.) > The statement in the implSpec is fine as it only applies to the default implementation, but can be mis-read and thought to apply to all implementations. YMMV. > And though I see consensus, I don't see any approvals yet, including the CSR. > Its good to see it settle down and make progress. Alan, I am a bit lost here. How to proceed: Change the JavaDocs, or keep them as found in the CSR? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/21730#discussion_r2050565025