On Thu, 1 Apr 2021 06:04:32 GMT, Jayathirth D V <[email protected]> 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