+1 to everything Sean said, and just to add ...

This change will prevent an SSLContext from giving out socket
factories when it has been configured with DTLS. What about
SSL[Server]SocketFactory::getDefault when the default SSL
context is DTLS? I don’t see that getDefault can throw an UOE,
should it?    Or should / could this be resolved at the socket 
factory level, when trying to create new sockets rather than at
the factory retrieval time?

-Chris.

> On 8 Aug 2018, at 15:46, Sean Mullan <sean.mul...@oracle.com> wrote:
> 
> On 8/7/18 8:05 PM, Xuelei Fan wrote:
>> Hi Tony,
>> The Specification section looks more like the implementation details. We may 
>> change the implementation details again in the future.  It may be more 
>> suitable to move it to the Solution section, or just remove it. 
> 
> I agree, I would omit the diffs and put N/A for the Specification section.
> 
>> In the Specification section, I may just say something like, "No APIs 
>> changes.  The SunJSSE provider is updated to throw 
>> UnsupportedOperationException if  SSLContext.SSLServerSocketFactory() or 
>> SSLContext.SSLSocketFactory() get called for DTLS algorithms SSLContext".
> 
> I think the CSR should also say that the SunJSSE implementation of the 
> engineGetSocketFactory and engineGetServerSocketFactory methods of 
> SSLContextSpi have been changed to throw UnsupportedOperationException. That 
> is the specific API behavior change.
> 
> A few other comments on the CSR:
> 
> "SSLContext.getSSLSocketFactory() and SSLContext.getSSLServerSocketFactory()"
> 
> Typo, there is no "SSL" in the method names.
> 
> The Compatibility Risk field has several typos ("there" -> "their", "how -> 
> now", ...) and is a bit hard to understand. Wasn't TLS being used before 
> instead of DTLS in certain scenarios? Because the API silently passed in 
> certain cases, and now we will be throwing an Exception, maybe it might be 
> better to say the risk is low.
> 
> In the Summary section, it says "..., but it is not documented." I suggest 
> opening a docs bug to improve the DTLS documentation so that it is more clear 
> this scenario is not supported.
> 
> I think the Interface Kind should be Java API since we are changing the 
> behavior of an implementation of a standard API. I asked Joe Darcy this 
> question yesterday, and he agreed.
> 
> --Sean
> 
>> Thanks,
>> Xuelei
>> On 8/7/2018 4:14 PM, Anthony Scarpino wrote:
>>> Hi Xuelei,
>>> 
>>> I have updated the csr and I believe I have addressed your comments.
>>> 
>>> thanks
>>> 
>>> Tony
>>> 
>>> On 08/07/2018 01:43 PM, Xuelei Fan wrote:
>>>> Hi Tony,
>>>> 
>>>> Would you mind make it clear that this impact the JDK JSSE provider only?  
>>>> Third party's provider may be able to support DTLS with SSLSocket.
>>>> 
>>>> I think there may be no specification change.  The 
>>>> SSLContext.getServerSocketFactory() and SSLContext.getSocketFactory() 
>>>> defines the spec if the algorithm is not supported by the underlying 
>>>> provider, "UnsupportedOperationException - if the underlying provider does 
>>>> not implement the operation.".  I may prefer to make it clear that this is 
>>>> just a behavior change of the JDK JSSE provider (SunJSSE).  The SunJSSE 
>>>> provider now throws UnsupportedOperationException for creating 
>>>> SSL(Server)SocketFactory with DTLS SSLContext, because it does not 
>>>> actually support DTLS SSLSocket.
>>>> 
>>>> In Solution section, "Throwing a UnsupportedOperationException when 
>>>> getting a socket from the SSLServerSocketFactory or SSLSocketFactory for 
>>>> DTLS."   I guess you meant, throwing a UOE when calling 
>>>> SSLContext.getServerSocketFactory() and SSLContext.getSocketFactory()?
>>>> 
>>>> Thanks,
>>>> Xuelei
>>>> 
>>>> On 8/7/2018 12:17 PM, Anthony Scarpino wrote:
>>>>> I need a review of a CSR for SSLSocket should throw an exception when 
>>>>> configuring DTLS.  We are targeting this for 12 right now.
>>>>> 
>>>>> https://bugs.openjdk.java.net/browse/JDK-8209031
>>>>> 
>>>>> thanks
>>>>> 
>>>>> Tony
>>>>> 
>>> 

Reply via email to