On Mon, 14 Feb 2022 08:01:38 GMT, Peter Levart <plev...@openjdk.org> wrote:
>> src/java.base/share/classes/jdk/internal/reflect/ReflectionFactory.java line >> 620: >> >>> 618: * The configurations exist as an object to avoid race conditions. >>> 619: * See bug 8261407. The object methods backed by indy may not be >>> available. >>> 620: */ >> >> This comment is a bit unclear. With the suggestion of moving the static >> `ReflectionFactory::config()` method and the comment I suggest below, I >> think that should be adequate to understand. If not, we should improve the >> comment rather than relying on the readers to read the bug report. >> >> Maybe the comment can be: >> >> Configuration for core reflection which is configurable via system >> properties. >> The user-configured settings are not available during early VM startup. >> >> Note that the object methods of this Config record are called via indy which >> is >> available to use after initPhase1. We can workaround that limitation by >> implementing the object methods. > >> Note that the object methods of this Config record are called via indy which >> is >> available to use after initPhase1. We can workaround that limitation by >> implementing the object methods. > > "Note that the object methods of this Config record are called via indy" is > not very precise. They are called as any other method AFAIU. It's their > implementation that uses indy, right? So perhaps, a better wording: > > "Note that synthetic object methods of this Config record (toString, equals, > hashCode) use indy in their implementation which is available to use after > initPhase1. These methods are currently not used, but should they be needed, > a workaround is to explicitly (re)implement them." "uses indy" is the right description. Minor tweak: s/synthetic/the default implementation of/ ------------- PR: https://git.openjdk.java.net/jdk/pull/6889