On Fri, 1 Aug 2025 16:16:01 GMT, Chen Liang <li...@openjdk.org> wrote:

>> Unsafe throws IAE for misusing static vs instance fields, and it's revealed 
>> that AtomicXxxFieldUpdaters are using this mechanism to reject static 
>> fields. This is not a good practice, but we can at least document this so we 
>> don't accidentally introduce problems.
>
> Chen Liang has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Test update advised by volkan

src/java.base/share/classes/jdk/internal/misc/Unsafe.java line 1093:

> 1091:      * startup.  This should not be used to find fields in non-trusted 
> code.
> 1092:      * Use the {@link #objectFieldOffset(Field) Field}-accepting 
> version for
> 1093:      * arbitrary fields instead.

It’s also used to obtain offsets of fields in classes which have their fields 
filtered from reflection using `Reflection​::registerFieldsToFilter(…)`, such 
as fields in `java.lang.ClassLoader` or `java.lang.Module`.

src/java.base/share/classes/jdk/internal/misc/Unsafe.java line 1108:

> 1106:         if (result < 0) {
> 1107:             String type = switch ((int) result) {
> 1108:                 case -2 -> "a static field";

Suggestion:

                case -2 -> "is a static field";

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/25945#discussion_r2248635899
PR Review Comment: https://git.openjdk.org/jdk/pull/25945#discussion_r2248630006

Reply via email to