Hi Stuart,

Good suggestions on the regex, but it will be simpler, as you suggest, to use a separate
command line property.

The webrev is updated in place.
http://cr.openjdk.java.net/~rriggs/webrev-depth-max-8180582/index.html

Thanks, Roger



On 5/31/17 7:09 PM, Stuart Marks wrote:
Hi Roger,

RegistryImpl change looks fine. I have a quibble on the regex used in the test.

 162         Matcher m = Pattern
 163                 .compile(".*maxdepth=(\\d*)")
 164 .matcher(Objects.requireNonNullElse(registryFilter, ""));
165 int depthOverride = m.find() ? Integer.parseInt(m.group(1)) : REGISTRY_MAX_DEPTH;

Since Matcher.find() is called, the pattern can be found anywhere in the input string, so the leading ".*" is unnecessary. I'd suggest replacing it with "\\b" to match a word boundary immediately preceding "maxdepth". Also, "\\d*" will match zero characters, which could cause the subsequent parseInt() to fail.

These issues aren't of immediate concern, as the test works as it stands. They may make the test a bit harder to maintain, though.

But I think the main concern is that if the regex were modified by future maintenance, it might not match, which would cause the test to test REGISTRY_MAX_DEPTH redundantly instead of the depth the filter is attempting to specify. This problem wouldn't be completely silent, but it'd be easy to miss. You'd have to inspect the log pretty carefully to see what's going on. So maybe it would be good to have something like a command-line argument that specifies the expected value of maxdepth. Yes, this is redundant, but it's a useful cross-check, I think.

There are several identical lines of code starting at line 184. Maybe these could be extracted into a common method.

These are all cleanup issues, so it's up to you how much additional work you want to put into this before it gets into 9.

s'marks



On 5/31/17 7:02 AM, Roger Riggs wrote:
Thanks Daniel for the review and corrected link.

On 5/30/2017 7:04 PM, Daniel Fuchs wrote:
Hi Roger,

On 30/05/17 19:26, Roger Riggs wrote:
Hi Daniel,

Fixed, there is no need for the unbind since the registry is not reused and
it might
cause a spurious success.

(Also corrected the exception error message @ 151 and 153).

Webrev updated in place.
...

I assume you meant
http://cr.openjdk.java.net/~rriggs/webrev-depth-max-8180582/index.html
which is what I reviewed ;-)

Looks good!

-- danel


Thanks, Roger


On 5/30/2017 2:00 PM, Daniel Fuchs wrote:
Hi Roger,

Looks good! Just one nit with the test:

 194             registry.unbind(name);
195 Assert.fail("Registry filter should have rejected depth: "
+ depthOverride + 1);

Technically, the test will also pass if bind() succeed but
unbind() fails - for some unforeseen reason.

best regards,

-- daniel

On 25/05/17 16:31, Roger Riggs wrote:
Please review an update to the RMI Registry built-in serial filter
implementation limit on the depth
of a instance that can be bound in the registry. The initial depth limit
was 5 and it was too limiting
for some existing applications. It limit is updated to depth = 20 and
should be more than adequate.

Webrev:
http://cr.openjdk.java.net/~rriggs/webrev-depth-max-8180582/index.html

Issue:
https://bugs.openjdk.java.net/browse/JDK-8180582

Thanks, Roger





Reply via email to