On Thu, 1 Apr 2021 06:04:32 GMT, Jayathirth D V <j...@openjdk.org> wrote:

>> When `getAllPrinterNames()` returns null, the list of `printServices` is 
>> assigned a new empty array without invalidating old services which were in 
>> the array before.
>> 
>> The old print services should be invalidated.
>
> src/java.desktop/windows/classes/sun/print/PrintServiceLookupProvider.java 
> line 159:
> 
>> 157:             for (int j=0; j < printServices.length; j++) {
>> 158:                 if ((printServices[j] instanceof Win32PrintService) &&
>> 159:                             
>> (!printServices[j].equals(defaultPrintService))) {
> 
> Is this indentation right? I thought we always map newline additional 
> conditions and not add extra indentation.

Is it not right?
I admit I don't understand what you mean by _map_ here.

When the code is written like it was:
                if ((printServices[j] instanceof Win32PrintService) &&
                    (!printServices[j].equals(defaultPrintService))) {
                    ((Win32PrintService)printServices[j]).invalidateService();
                }
it's hard to scan: it's not clear what is part of the condition and what is the 
statement inside the if block.

I'd prefer to write it like this:
                if ((printServices[j] instanceof Win32PrintService)
                    && (!printServices[j].equals(defaultPrintService))) {

                    ((Win32PrintService)printServices[j]).invalidateService();
                }
That is moving the operator to the continuation line which makes it obvious it 
is a continuation line of the condition and adding a blank line before the 
statement in the code. It's still not perfect, however; and it changes the 
author in `blame` output.

I indented the continuation line by additional 8 spaces, which is also a common 
practice in Java, to visually separate the condition and the statement. In 
fact, it's IDE that updated the formatting, I decided to keep it because it 
makes the code clearer.

I can revert the change to this line if you like.
Or I can just add a blank line between the condition and the statement.

What is your preference?

-------------

PR: https://git.openjdk.java.net/jdk/pull/3151

Reply via email to