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