RFR 9+-: 8180582: The bind to rmiregistry is rejected by registryFilter even though registryFilter is set
Roger Riggs
roger.riggs at oracle.com
Thu Jun 1 02:09:02 UTC 2017
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
>>>>>
>>>>
>>>
>>
More information about the core-libs-dev
mailing list