RFR: 8155928: Remove hardcoded port numbers from httpclient/Security.java test

Michael McMahon michael.x.mcmahon at oracle.com
Wed May 4 20:52:11 UTC 2016


Hi Chris,

The problem is that the port number needs to be allocated outside the 
test VM
because it needs to be specified as a system property given to the test VM.
This system property is then evaluated in the policy file to give permission
to that port.

I can't think of an easy way to close the window completely as the http 
server
creates its own server sockets and there would be no way to guarantee 
that any
particular port is free at that moment.

Maybe, one possibility is to catch the BindException, and return a 
specific error
code from the child process which forces a retry?

- Michael

On 04/05/16 19:12, Chris Hegarty wrote:
> Michael,
>
> getFreePort follows a failed pattern. There is no guarantee that the port will
> be “free” when you actually require it. It will only reduce the likelihood of
> failure.     Is there any way that the actual tests needing the port can
> create it themselves ( i understand that this will be more work, and possibly
> require some refactoring ).
>
> -Chris.
>
>
> On 4 May 2016, at 17:06, Michael McMahon <michael.x.mcmahon at oracle.com> wrote:
>
>> Hi Roger,
>>
>> Thanks for the review. That permission is not actually required for the
>> test. But, it did make me look closer at it, and I realised that permission
>> checking of the request URI port number was not being tested. So, that led me
>> down a couple of rat holes which is why I haven't replied till now.
>>
>> So, I have updated the webrev at:
>>
>> http://cr.openjdk.java.net/~michaelm/8155928/webrev.2/
>>
>> to remove the redundant permission check and also the following changes
>>
>> 1) There was a bug in the permission check where the host part of the URI
>>     was checked, but should have been the entire authority field. (Utils.java)
>>
>> 2) Add explicit test for a request URI and a real (randomly chosen) port number
>>     (test 1 in Security.java)
>>
>> 3) Fixed another strange issue in the Security test which causes failures if the jtreg
>>     work directory is not empty prior to running the test. (change in Security.moveFile)
>>
>> Thanks,
>> Michael
>>
>> On 03/05/16 15:47, Roger Riggs wrote:
>>> Hi Michael,
>>>
>>> test/java/net/httpclient/security/15.policy: line 15:
>>>
>>>   - Should this policy file include the substitution for the ${port.number}?
>>>
>>> Otherwise, it still looks like it has a fixed port #.
>>>
>>> Roger
>>>
>>>
>>> On 5/3/2016 7:44 AM, Michael McMahon wrote:
>>>> Some tests with hardcoded port numbers were included in the initial http tests.
>>>>
>>>> The fix uses a driver to allocate a free port and pass it into the existing
>>>> security test through a system property.
>>>>
>>>> http://cr.openjdk.java.net/~michaelm/8155928/webrev.1/index.html
>>>>
>>>> Thanks,
>>>> Michael



More information about the net-dev mailing list