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

Reply via email to