Code Review Request JDK-8146387, Test SSLSession/SessionCacheSizeTests socket accept timed out

Wang Weijun weijun.wang at oracle.com
Mon Jan 11 11:51:16 UTC 2016


> On Jan 11, 2016, at 7:02 PM, Xuelei Fan <xuelei.fan at oracle.com> wrote:
> 
> On 1/11/2016 5:43 PM, Wang Weijun wrote:
>> 
>>>> 
>>>>> You want to start a server on the same port on and on?
>>>>> 
>>>> Not actually.  Different port are used for different server socket.  The
>>>> logic looks like:
>>>>  // define four slots for the ports
>>>>  int serverPorts[] = new int[]{0, 0, 0, 0};
>>>> 
>>>>  // for each slot, create a server socket,
>>>>  // and assign the actually used port for each slot.
>>>>  for each slots run a thread {
>>>>     SSLServerSocket sslServerSocket = ...
>>>>     serverPorts[nextPort] = sslServerSocket.getLocalPort();
>>>>                 ^^^^^^^^
>>>>  }
>>>> 
>>>>  // use the actual port for each slot in client side
>>>>  if (server ready) {
>>>>     connect to the server socket (host:port)
>>>>  }
>> 
>> Why do you need a serverPort parameter in doServerSide()? Can it just always be 0?
>> 
> It is always 0 before the server socket generated.  But after the server
> socket generated,  need to remember the actual port so that client can
> connect to the port.

Can you hard code zero?

  (SSLServerSocket) sslssf.createServerSocket(0)

Then those startServer() calls does not need to pass serverPorts[i] at all.

--Max

> 
>>>> 
>>>> This fix is trying to increase the createdPorts value properly.  It is
>>>> not actually need to synchronize serverPorts.
>> 
>> I see. Why not just synchronized on this and add a small comment?
>> 
> Synchronized on any object is OK.  I will add a comment like:
>    // set the server port and increase the count synchronized
> 
> Thanks,
> Xuelei




More information about the security-dev mailing list