[OpenJDK 2D-Dev] Fwd: Re: <Swing Dev> [11] JDK-8153732: Windows remote printer changes do not reflect in lookupPrintServices()

Philip Race philip.race at oracle.com
Thu Jun 21 00:07:35 UTC 2018


The main concern I have is we now have a busy thread burning CPU ..
bad for laptops .. and if we add a delay we have less prompt notification
of a new local printer.

I think the compromise is that the existing thread maybe kept as is,
and we add a new thread that pools every 10 minutes for a remote printer.

If we can make the existing thread wake up from its wait and do that, 
even better.

-phil.

-------- Original Message --------
Subject: 	Re: [11] JDK-8153732: Windows remote printer changes do not 
reflect in lookupPrintServices()
Date: 	Wed, 20 Jun 2018 17:03:56 -0700
From: 	Philip Race <philip.race at oracle.com>
Organization: 	Oracle Corporation
To: 	Shashidhara Veerabhadraiah <shashidhara.veerabhadraiah at oracle.com>
CC: 	awt-dev at openjdk.java.net, swing-dev at openjdk.java.net



This is on the wrong lists. Not Swing. Not AWT. Should be 2d.
I'll forward it there and continue there. Consider the AWT+Swing threads 
dead.

-phil.

On 6/20/18, 3:12 AM, Shashidhara Veerabhadraiah wrote:
>
> Hi All, Please review this code changes for the below enhancement.
>
> Enhancement: https://bugs.openjdk.java.net/browse/JDK-8153732
>
> Webrev: http://cr.openjdk.java.net/~sveerabhadra/8153732/webrev.00/ 
> <http://cr.openjdk.java.net/%7Esveerabhadra/8153732/webrev.00/>
>
> Details of the changes: Windows provides *PrinterChangeNotification* 
> functions that provides information about printer status changes of 
> the local printers(subset) but not network printers.
> Alternatively, Windows provides a way thro' which one can get the 
> network printer status changes by using WMI, RegistryKeyChange 
> combination, which is a slightly complex mechanism.
> The Windows WMI offers an async and sync method to read thro' registry 
> via the WQL query. The async method is considered dangerous as it 
> leaves open a channel until we close it. But the async method has the 
> advantage of being notified of a change in registry by calling 
> callback without polling for it. The sync method uses the polling 
> mechanism to notify.
> RegistryValueChange cannot be used in combination with WMI to get 
> registry value change notification because of an error that may be 
> generated because the scope of the query would be too big to handle(at 
> times).
> Hence an alternative mechanism is choosen via the EnumPrinters by 
> polling for the count of printer status changes(add\remove) and based 
> on it update the printers list(both local and remote printers - superset).
>
> Thanks and regards,
>
> Shashi
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/2d-dev/attachments/20180620/425ceb72/attachment.html>


More information about the 2d-dev mailing list