RFR 8170900: Issue with FilePermission::implies for wildcard flag(-)

Roger Riggs Roger.Riggs at Oracle.com
Tue Jan 3 18:23:25 UTC 2017


Hi Max,

Sorry for the delay.
Since this not part of the specification of the behavior I'm ok with the 
informal descriptions.

Roger


On 1/2/2017 10:40 PM, Wang Weijun wrote:
> Ping again.
>
>> On Dec 22, 2016, at 8:23 AM, Wang Weijun <weijun.wang at oracle.com> wrote:
>>
>> Hi Roger
>>
>>> On Dec 20, 2016, at 11:49 PM, Roger Riggs <Roger.Riggs at oracle.com> wrote:
>>>
>>> Hi Max,
>>>
>>> Comments:
>>>
>>> - Is there a better term/phrase to use other than "foo"; it does not appear elsewhere in the @implNote.
>> It appears in the spec of this method:
>>
>> * <li> <i>p</i>'s pathname is implied by this object's
>> *      pathname. For example, "/tmp/*" implies "/tmp/foo", since
>> *      "/tmp/*" encompasses all files in the "/tmp" directory,
>> *      including the one named "foo".
>>
>>>   The use of "cpath" and "npath" implies that someone is reading the source code.
>> Not really. They also appears in the @implNote of the spec of FilePermission::<init>(String,String):
>>
>> * If the value of the system property is set to {@code true}, {@code path}
>> * is canonicalized and stored as a String object named {@code cpath}.
>> * This means a relative path is converted to an absolute path, a Windows
>> * DOS-style 8.3 path is expanded to a long path, and a symbolic link is
>> * resolved to its target, etc.
>> * <P>
>> * If the value of the system property is set to {@code false}, {@code path}
>> * is converted to a {@link java.nio.file.Path} object named {@code npath}
>> * after {@link Path#normalize() normalization}. No canonicalization is
>> * performed which means the underlying file system is not accessed.
>> * If an {@link InvalidPathException} is thrown during the conversion,
>> * this {@code FilePermission} will be labeled as invalid.
>>
>> I think using the same name in all @implNote is more precise.
>>
>>>   The description of the behavior of the implementation should use the same terminology as the spec.
>>>
>>> - The use of "Note" weakens the text as specification language.  It can be omitted.
>> OK.
>>
>> I'll use take Xuelei's advice to expand this line to
>>
>>   This means "/-" implies "/foo" but not "foo".
>>
>>> - To make the source version more readable, I would keep each statement on its own line.
>> OK.
>>
>> Thanks
>> Max
>>
>>>    Note that this means "/-" does not imply "foo".
>>>    An invalid {@code FilePermission} does not imply any object except for itself.
>>>
>>> Thanks, Roger
>>>
>>> On 12/20/2016 2:25 AM, Wang Weijun wrote:
>>>> Ping again.
>>>>
>>>>> On Dec 14, 2016, at 1:53 PM, Wang Weijun <weijun.wang at oracle.com> wrote:
>>>>>
>>>>> An clarification is added to FilePermission::implies:
>>>>>
>>>>>      * @implNote
>>>>>        ....
>>>>>      * a simple {@code npath} is recursively inside a wildcard {@code npath}
>>>>>      * if and only if {@code simple_npath.relativize(wildcard_npath)}
>>>>> -     * is a series of one or more "..". An invalid {@code FilePermission} does
>>>>> +     * is a series of one or more "..". Note that this means "/-" does not
>>>>> +     * imply "foo". An invalid {@code FilePermission} does
>>>>>      * not imply any object except for itself.
>>>>>
>>>>> The newly added sentence is
>>>>>
>>>>> Note that this means "/-" does not imply "foo".
>>>>>
>>>>> JCK has agreed to update their test.
>>>>>
>>>>> Since this is just a clarification inside an @implNote and no spec is updated, I suppose no CCC is needed. Please confirm.
>>>>>
>>>>> Thanks
>>>>> Max
>>>>>



More information about the core-libs-dev mailing list