Lookup::accessClass sets the precedence to return Class for method chaining.  So this new method follows the existing convention.

Mandy

On 6/4/20 12:31 PM, Florent Guillaume wrote:
Hi,

Why can't it just return void?

Florent

On Thu, Jun 4, 2020 at 9:22 PM Mandy Chung <mandy.ch...@oracle.com <mailto:mandy.ch...@oracle.com>> wrote:



    On 6/4/20 9:43 AM, Chris Hegarty wrote:
    > Mandy,
    >
    > I think this looks good. Just a few minor comments...
    >
    > The spec wording is hard, since the method is offering a
    conditional initialization. I guess I expected to see something
    like “initializes targetClass, if it has not been initialized
    already”, or some such.

    I added:
        "This method causes {@code targetClass} to be initialized if
    it has
    not been already initialized."

    to make it clear.
    >
    > The input and output is the same class instance. I don’t quite
    get that from the spec. Can these be coupled together more
    obviously by their descriptions? Maybe "@return targetClass, that
    is initialized"

    @return the class that has been initialized.

    I changed it to:
              * @return {@code targetClass} that has been initialized

    Mandy
    >
    > -Chris.
    >
    >> On 4 Jun 2020, at 00:16, Mandy Chung <mandy.ch...@oracle.com
    <mailto:mandy.ch...@oracle.com>> wrote:
    >>
    >> This proposes a new `Lookup::ensureClassInitialized` API as a
    replacement
    >> for `sun.misc.Unsafe::ensureClassInitialized`.The Lookup object
    must have
    >> the access to the given class being initialized.
    >>
    >> CSR: https://bugs.openjdk.java.net/browse/JDK-8245871
    >>
    >> webrev:
    >> http://cr.openjdk.java.net/~mchung/jdk15/webrevs/8235521/webrev.01/
    >>
    >> This patch converts the JDK use of
    `jdk.internal.misc.Unsafe::ensureClassInitialized` to
    >> call this new API where appropriate.
    `Unsafe::ensureClassInitialized` remains for java.lang.invoke.*
    internal implementation use.
    >>
    >> A framework can use `Lookup::privateLookupIn` to access a class
    in another module if the module authorizes it by opening the
    packages for it to access. Or a user can produce a less privileged
    lookup by Lookup::dropLookupMode and pass it to the framework.
    >>
    >> `Class::ensureInitialized` was considered as an alternative.
    The downside for this option is that it would be caller sensitive
    in order to ensure the caller has the proper access to this
    class.  And it may not work for frameworks which have no access to
    user classes. It would have to fallback toClass::forName` limited
    solution.
    >>
    >> Thanks
    >> Mandy
    >>



--
Nuxeo Logo <https://www.nuxeo.com/>       

Florent Guillaume Head of R&D LinkedIn <https://www.linkedin.com/in/fguillaume/> Twitter <https://twitter.com/efge> Github <https://github.com/efge>

Nuxeo Content Services Platform. Stay ahead.


Reply via email to