Looks fine.

On 26/03/2019 13:22, Alexey Ivanov wrote:
Please see the updated webrev:
http://cr.openjdk.java.net/~aivanov/8221412/webrev.1/

The difference between .0 and .1 is in some minor white-space adjustments, like 
parameter alignment.

On 26/03/2019 17:01, Alexey Ivanov wrote:
Hi,

Please review the fix for jdk 13:

bug: https://bugs.openjdk.java.net/browse/JDK-8221412
webrev: http://cr.openjdk.java.net/~aivanov/8221412/webrev.0/

Description:
The list of printers is not updated in the situation where there are no remote 
printers on the system and later the user adds a remote printer.

Root cause:
JDK-8153732 [1] added a new thread which polls remote printers on the system 
and updates the list if it detects a change. In this case it does not update 
the print services because of this condition:
449 if (prevRemotePrinters != null && prevRemotePrinters.length > 0)
prevRemotePrinters is not null but its length is zero because no remote 
printers were initially present on the system.

Fix:
I removed this if. We have to update the list printers if doCompare() returns 
true. Either prevRemotePrinters or currentRemotePrinters, or both can be null; 
doCompare() handles this situation gracefully after JDK-8212202 [2].

The listener called getRemotePrintersNames() twice: in constructor and in run() 
before entering the first sleep. Now it's done only once.

I consolidated the implementation of getAllPrinterNames() and 
getRemotePrintersNames(). They were very similar. The old implementation of 
getRemotePrintersNames() got the list of both local and remote printers and 
then filtered out local ones. The new implementation gets the list of remote 
printers only. So the difference between the two is limited to the flags passed 
to EnumPrinters.

If there are no remote printers, the new version getRemotePrintersNames() 
returns null instead of empty array. As mentioned earlier, doCompare() handles 
this situation.

I'll add the bugid (8221412) to the regression test when fixing JDK-8221263 
[3]. I'm currently working on it.


Thank you in advance.

Regards,
Alexey

[1] https://bugs.openjdk.java.net/browse/JDK-8153732
[2] https://bugs.openjdk.java.net/browse/JDK-8212202
[3] https://bugs.openjdk.java.net/browse/JDK-8221263


--
Best regards, Sergey.

Reply via email to