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

Alexey Ivanov alexey.ivanov at oracle.com
Mon Jun 24 21:50:43 UTC 2019

Hi Sergey,

On 18/06/2019 21:37, Sergey Bylokhov wrote:
> Hi, Alexey.
> I guess that the change in doCompare() passed a review because it was 
> assumed that the code inside will take care of unordered arrays. if we 
> will drop the doCompare() then probably we need to sort the content of 
> the arrays before Arrays.equals()?

I can't see where doCompare() handled unordered arrays; quite the 
opposite: doCompare(new String[]{"a", "b"}, new String[]{"a", "b"}) 
returns true (that is the arrays are *not equal*) whereas the arrays are 

While I run the test, the list of printers always has the same order. We 
do not sort the array returned by getAllPrinterNames() in 
PrintServiceLookupProvider.refreshServices(), so I assume Windows 
returns the installed printers in the same order. Therefore I think 
sorting the array is not necessary in this case.

> On 14/06/2019 11:07, Alexey Ivanov wrote:
>> Hi,
>> Please review the following fix for JDK 13:
>> bug: https://bugs.openjdk.java.net/browse/JDK-8222108
>> webrev: http://cr.openjdk.java.net/~aivanov/8222108/webrev.00/
>> The main goal of this bug was to reduce the minimum refresh time for 
>> updating remote printer list to facilitate testing.
>> While working on this bug, I've also done some refactoring. The most 
>> prominent one is replacing doCompare() with Arrays.equals(). The 
>> former gives wrong result for equal arrays if the array length is 
>> greater than 2. Thus this bug can be considered as regression.
>> Arrays.equals() accepts null parameters and null elements in the 
>> arrays and always returns the correct result.

More information about the 2d-dev mailing list