<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