<AWT Dev> [7u6] Review request for 7124239: [macosx] sun.awt.SunToolkit.InfiniteLoop exception in realSync called from SwingTestHelper

Anthony Petrov anthony.petrov at oracle.com
Thu Jun 14 08:12:14 PDT 2012


Hi Leonid,

1. In NSApplicationAWT: the NSLog("Here...") statements. I use such 
debugging output, too! :) However, for production code please either 
replace them with meaningful messages, or remove them altogether.

2.
>  344 - (void)sendEvent:(NSEvent *)event

I'm afraid that using the NSApplicationDefined and just skipping it may 
conflict with other native toolkits, such as SWT, or some custom native 
libraries. I think we should let such events go through the [super 
sendEvent].

3. Isn't the loop in LWCToolkit.m too tight? There's an issue with 
performSelector on the Mac in that selectors are processed strictly 
before processing events. If the queue is flooded with posted selectors, 
the event may never have a chance to be handled.

--
best regards,
Anthony

On 06/14/12 08:25, Leonid Romanov wrote:
> Hi,
> Please review a fix for 7124239: [macosx] sun.awt.SunToolkit.InfiniteLoop exception in realSync called from SwingTestHelper.
> The problem is that syncNativeQueue() doesn't fully sync the native queue. For example, if there are, say, 25 events in the native queue waiting to be processed, nativeSyncQueue might return after only one event has been processed. realSync() calls syncNativeQueue() in a loop until nativeSyncQueue() reports that no native events have been processed as the result of the call or the maximum number of iterations (which is 20) has been exceeded (which leads to the exception). And since there are more than 20 events in the native queue, we get the exception.
>
> Bug:  http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7124239
> Webrev: http://cr.openjdk.java.net/~leonidr/7124239/webrev.00/
>
> Thanks,
> Leonid.


More information about the macosx-port-dev mailing list