On Wed, 19 Feb 2025 03:30:04 GMT, Dean Long <[email protected]> wrote:
>> Class.isInterface() can check modifier flags, Class.isArray() can check
>> whether component mirror is non-null and Class.isPrimitive() needs a new
>> final transient boolean in java.lang.Class that the JVM code initializes.
>> Tested with tier1-4 and performance tests.
>
> src/java.base/share/classes/java/lang/Class.java line 1287:
>
>> 1285: */
>> 1286: public Class<?> getComponentType() {
>> 1287: // Only return for array types. Storage may be reused for
>> Class for instance types.
>
> I don't see any changes to componentType related to reuse. So was this
> comment and the code below already obsolete?
It was. Before the componentType field was reused for the class initialization
monitor int array, and it caused problems with core reflection if a program
reflectively accesses this field after a few hundred times. See
[JDK-8337622](https://bugs.openjdk.org/browse/JDK-8337622).
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23572#discussion_r1961989175