Nestmates: JEP 181 CSR request is ready for review
David Holmes
david.holmes at oracle.com
Thu Mar 8 20:45:15 UTC 2018
Thanks Mandy. We'll take the javadoc editing discussion off-list and
I'll come back to the EG when any changes are made.
David
On 9/03/2018 5:33 AM, mandy chung wrote:
>
>
> On 3/7/18 11:28 PM, David Holmes wrote:
>>
>> That's an interesting point. Should they also be @CallerSensitive?
>>
>
> Yes.
>
> I hope SM::checkPackageAccess check will be removed some day as we now
> have strong encapsulation. The security team has considered this and
> requires further investigation.
>
>> It may be we have to perform the SM check, but throwing
>> SecurityException is somewhat contrary to the "no exceptions" approach
>> of getNestHost().
>>
>
> The SecurityException will only be thrown when security manager is
> installed and permission denies. Users are responsible to configure
> the security policy to grant proper permission.
>
>> I filed an issue to track this:
>>
>> https://bugs.openjdk.java.net/browse/JDK-8199309
>>
>
>>> I suggest to make @apiNote in Class::getNestHost as just part of
>>> javadoc.
>>> It can define a section like "Nest Membership" that can be referenced
>>
>> My understanding is that @apiNote et al were introduced to more
>> clearly distinguish between the actual specification part of the
>> Javadoc and other non-normative text. As this is non-normative then
>> @apiNote seems most appropriate. I presume we can still add a tag to
>> allow cross-referencing from inside Class itself.
>
> The definition of a nest is a specification that has no issue to include
> in the javadoc.
>>
>>> by Lookup class spec.
>>
>> Cross-referencing internal text fragments across distinct javadoc is
>> something I thought was not done. ??
>>
>
>
>
>>> I also have some suggested edits that you can
>>> consider:
>>>
>>> http://cr.openjdk.java.net/~mchung/valhalla/webrevs/nestmates-spec/
>>
>> Some of these are okay but this part:
>>
>> * The source language compiler is responsible for deciding which
>> classes
>> * and interfaces are nestmates. For example, the {@code javac} compiler
>>
>> is quite significant and should not be lost. A source compiler is free
>> to chose not to use the new attributes (and of course not benefit from
>> the new access control rules but continue to rely on access-bridges.)
>> So the user of the API has to be aware of this.
>>
>
> This can be retained in @apiNote.
>
>> And in MethodHandles I know there is a dislike of versioning text
>> "Since JDK 11 ..." (though I see this as no different to using
>> @since!), but again this new behaviour may or may not be present
>> depending on the version of the classfiles and the compiler used to
>> create them, so it is critical to me that this is very clearly stated.
>> I suppose this could be re-stated in the form:
>>
>> "If the relationship between nested types is expressed directly
>> through the {@code NestHost} and {@code NestMembers} attributes (see
>> the Java Virtual Machine Specification, sections 4.7.28 and 4.7.29),
>> then the associated {@code Lookup} object provides direct access to
>> the lookup class and all of its nestmates. Otherwise, access between
>> nested classes is obtained by the Java compiler creating a wrapper
>> method to ..."
>>
>
> This is fine too. I still think a @linkplain to Class#nestmates would
> be useful.
>
> Mandy
>
>> Thanks,
>> David
>>
>>> Mandy
>>>
>>> On 3/6/18 10:12 PM, David Holmes wrote:
>>>> The Nestmates CSR request:
>>>>
>>>> https://bugs.openjdk.java.net/browse/JDK-8197445
>>>>
>>>> has been prepared by Dan Smith and myself. Before Proposing this CSR
>>>> request it needs to have Reviewers add themselves to it.
>>>>
>>>> (The first reviewer will need to edit the issue to enter their
>>>> OpenJDK user name in the "Reviewed by" field. Subsequent reviewers
>>>> can simply click on the "Reviewed by" field in the "People" section
>>>> and add their user name.
>>>>
>>>> The CSR contains links to all the updated specification documents,
>>>> all of which have been previously sent out for review/comment to the
>>>> EG (and observers).
>>>>
>>>> Thanks,
>>>> David
>>>
>
More information about the valhalla-spec-observers
mailing list