On Tue, 23 Mar 2021 13:45:33 GMT, Alexey Ivanov <aiva...@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 
119:

> 117:             // In Windows it is safe to assume no default if printers == 
> null so we
> 118:             // don't get the default.
> 119:             invalidateServices();

The default printer service, `defaultPrintService`, is usually in 
`printServices` array. It's possible that it's not in the array; in this case 
getDefaultPrintService() will reset it to `null` when accessed.

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

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

Reply via email to