<AWT Dev> <Swing Dev> [PATCH] 7168064: SwingUtilities.sharedOwnerFrame multiplies window close event

Anthony Petrov anthony.petrov at oracle.com
Wed May 8 05:29:32 PDT 2013


Hi,

This indeed looks like a bug in AWT. I'm BCC'ing swing-dev@, and CC'ing 
awt-dev@ instead (please subscribe to this mailing list before posting 
to it).

Here's a question: why do we consider this issue affects child windows 
only? If you call dispose() on a regular window several times in a row, 
you'll receive that many WINDOW_CLOSED events. Isn't it the real bug 
here actually?

Note that simply guarding a call to dispose()/disposeImpl() with a check 
is not the best option because it changes the behavior. If user code 
overrides certain methods, they may be stopped being called after your 
fix, and this may break that code.

Since the DisposeAction is executed synchronously anyway, perhaps it 
should set a flag based on which the doDispose() method would decide to 
send this event or not. What do you think? Also, have you run existing 
jtreg tests (in jdk/test/java/awt/) to verify that this fix doesn't 
introduce a regression?

PS. I can't find the bug filed by you in our bug database. I'll file a 
new one once we review your fix on this mailing list.

--
best regards,
Anthony

On 05/06/2013 12:28 PM, Jose Luis Martin wrote:
> Hello,
>
> I reported this issue one year ago but seems that it has been removed
> from the public bug database and is still not fixed so I try now to
> speak directly with you to see if this really is a bug or not.
>
> The problem that I see is that a child window already disposed is
> re-disposed when the owner frame is disposed, multiplying the
> WINDOW_CLOSED events.
>
> I guess that it could be fixed by testing if the child window is
> displayable before disposing it in the Window dispose action. (May be
> better in the dispose method itself).
>
> I attach patch over last jdk8 repository and a test case for the issue.
>
> Thanks,
>
> Best Regards.
>
>
> -- Jose Luis Martin
>


More information about the awt-dev mailing list