Code Review Request JDK-8215443: The use of TransportContext.fatal() leads to bad coding style

Anthony Scarpino anthony.scarpino at oracle.com
Tue Dec 18 17:18:36 UTC 2018


On 12/17/18 5:26 PM, Xue-Lei Fan wrote:
> On 12/17/2018 1:17 PM, Anthony Scarpino wrote:
>> It looks like in TransportContext.java:68, you had a mistype that 
>> added "fa" to the end of a comment.
>>
> Oops, I will update it.
> 
>> Also in fatal():267, did you plan to return the exception and have the 
>> calling method throw the exception?  As is, the exception is never 
>> return and fatal() continues to throw the exceptions.
>>
> I considered to return the exception.  I'm not very confident with if I 
> searched out all use of the fatal() methods.  For safe, I kept to use 
> thrown exception instead. If the method is updated later that there is a 
> case that now exception get thrown, there will be a compiling issue. Are 
> you OK with it?

Since the stacktrace is based on the exception's creation and not where 
it's thrown, I guess there's no reason to return the value.  As you have 
it now should be fine.

Tony

> 
> Thanks,
> Xuelei
> 
>> Tony
>>
>> On 12/15/18 7:51 AM, Xue-Lei Fan wrote:
>>> Hi,
>>>
>>> Could I have the update reviewed?
>>>     http://cr.openjdk.java.net/~xuelei/8215443/webrev.00/
>>>
>>> The TransportContext.fatal() methods always throw exception. While 
>>> the compiler does not aware of it, and may not happy without 
>>> following a return statement.  Currently, a lot never executable 
>>> return statements are inserted.  As make the code hard to read 
>>> (thanks for Jamil and Tony's points).  For example:
>>>
>>>      shc.conContext.fatal(Alert.UNEXPECTED_MESSAGE, ...);
>>>      return null;    // fatal() always throws, make the compiler happy.
>>>
>>> In this update, I changed the fatal() method with a return value:
>>>
>>> -    void fatal(Alert alert, ...
>>> +    SSLException fatal(Alert alert, ...
>>>
>>> Then we can change the use of method as:
>>>
>>> -    shc.conContext.fatal(Alert.UNEXPECTED_MESSAGE, ...);
>>> -    return null;    // fatal() always throws, make the compiler happy.
>>> +    throw shc.conContext.fatal(Alert.UNEXPECTED_MESSAGE, ...);
>>>
>>> The changeset is mostly about removing the never executed return 
>>> statements and add the 'throw' keyword to lines that use the fatal() 
>>> methods.
>>>
>>> Thanks,
>>> Xuelei
>>



More information about the security-dev mailing list