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