RFR 8170900: Issue with FilePermission::implies for wildcard flag(-)
Wang Weijun
weijun.wang at oracle.com
Thu Dec 22 00:23:11 UTC 2016
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