Thanks Peter, your variant looks cute!
Let's keep this code in mind as a candidate for refactoring once the
switch expression will make its way to the standard.
I would hesitate to allow using experimental features in building the
JDK just for that code :)
With kind regards,
Ivan
On 10/2/19 11:40 PM, Peter Levart wrote:
Hi Ivan,
On 10/1/19 10:26 PM, Ivan Gerasimov wrote:
Hello!
The constructors of SocketPermission and FilePermission expect a
String argument with comma-separated list of actions.
If the list is malformed, then the constructors throw
IllegalArgumentException.
It turns out that the current implementation fails to throw IAE if
the list starts with a leading comma.
Would you please help review a simple fix, which will make the
behavior more consistent?
BUGURL: https://bugs.openjdk.java.net/browse/JDK-8230407
WEBREV: http://cr.openjdk.java.net/~igerasim/8230407/00/webrev/
With new switch expressions the logic could be a little clearer. For
example:
for (boolean seencomma = false; i >= matchlen &&
!seencomma; i--) {
seencomma = switch (a[i - matchlen]) {
case ' ', '\r', '\n', '\f', '\t': yield false;
case ',': if (i > matchlen) yield true;
default: throw new IllegalArgumentException(
"invalid permission: " + actions);
};
}
This is still experimental, but I think it will be proposed to be
standard soon.
If you want to backport it later, then maybe you don't want to do that
now.
Regards, Peter
--
With kind regards,
Ivan Gerasimov