On Tue, 16 Jul 2024 13:35:50 GMT, Alan Bateman <al...@openjdk.org> wrote:

>> Please review this patch that address the reflection member filtering flaws.
>> 
>> 1. Remove a pointless bootstrap check to ensure no filter is accidentally 
>> bypassed due to class-loading order.
>> 2. Clarify the scenarios for filtering, and the correct filter actions for 
>> each scenario.
>> 3. Remove the filter in `sun.misc.Unsafe`; users are already using other 
>> ways to steal this instance, bypassing the filtered getter. The 
>> `jdk.internal.misc.Unsafe`'s filter was already removed in JDK-8161129, so 
>> this filter is meaningless.
>
> src/java.base/share/classes/jdk/internal/reflect/Reflection.java line 58:
> 
>> 56:         // 3 filter scenarios:
>> 57:         // 1. Classes loaded before Reflection, may (System) or may not
>> 58:         //    (ConstantPool) be initialized before main call: below
> 
> This comment is confusing. I assume you want to say that these classes may or 
> may not be loaded before the application main method. It may be simpler to 
> just drop the proposed comments as they beg too many questions.

Let's put these 4 points in time: class A load, A init, Reflection init, main 
run. (If an event is after "main run", it may be completely optional)

There can be these arrangements:
1. A load, Reflection init, main run; subcases include:
   a. A load, A init, Reflection init, main run (System)
   b. A load, Reflection init, A init, main run (none known yet)
   c. A load, Reflection init, main run, A init (ConstantPool)
   Handling: register in Reflection static block
2. Reflection init, A load, A init, main run (MethodHandles.Lookup)
   Handling: register in their own static block
3. Reflection init, main run, A init; subcases incldue:
   a. Reflection init, A load, main run, A init (none known yet)
   b. Reflection init, main run, A load, A init (sun.misc.Unsafe)
   Handling: Quite hard, easily causing extra class loading

How should I phrase my comments?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20058#discussion_r1679515927

Reply via email to