[OpenJDK 2D-Dev] [13] RFR 8222108: Reduce minRefreshTime for updating remote printer list on Windows

Alexey Ivanov alexey.ivanov at oracle.com
Fri Aug 16 12:23:34 UTC 2019

Hi Phil, Sergey,

Do you have any other comments?
The latest webrev:

Does anybody have any additional comments?

I looked through the code once again, and I think there should be no 
null values in the array returned by getPrinterNames() unless 
::EnumPrinters could return null printer names. The documentation for 
EnumPrinters [1] and for PRINTER_INFO_4 [2] does not mention if 
pPrinterName can be null or not.

Anyway the custom comparator does handle null values in the printer list 
if there are any.


[1] https://docs.microsoft.com/en-us/windows/win32/printdocs/enumprinters
[2] https://docs.microsoft.com/en-us/windows/win32/printdocs/printer-info-4

On 03/07/2019 19:46, Alexey Ivanov wrote:
> Hi Phil,
> Thank you for your review! That's a valid point!
> Please see the updated webrev:
> http://cr.openjdk.java.net/~aivanov/8222108/webrev.02/
> I implemented a custom comparator which handles null values in the 
> printer list.
> However, I wonder if the list of printers can ever contain a null 
> value. The method refreshServices() does not check if printers[p] is 
> null.
> On 03/07/2019 00:13, Philip Race wrote:
>> I thought we had the checks for null in doCompare there for a reason.
>> Arrays.sort won't be very happy with a null element.
>> You said in the first review email of the v0 webrev :
>> > Arrays.equals() accepts null parameters and null elements in the 
>> arrays and always returns the correct result.
>> but that webrev didn't use Arrays.sort and that requirement seems to 
>> have been forgotten
>> when adding it.
>>  public class Sort {
>>   public static void main(String[] args) {
>>     String[] a1 = { "a", null, "a" };
>>     java.util.Arrays.sort(a1);
>>   }
>> }
>> java Sort
>> Exception in thread "main" java.lang.NullPointerException
>>     at 
>> java.util.ComparableTimSort.countRunAndMakeAscending(ComparableTimSort.java:320)
>>     at java.util.ComparableTimSort.sort(ComparableTimSort.java:188)
>>     at java.util.Arrays.sort(Arrays.java:1246)
>>     at Sort.main(Sort.java:4)
>> -phil.

More information about the 2d-dev mailing list