[PATCH] 7168064: SwingUtilities.sharedOwnerFrame multiplies window close event (original) (raw)

Anthony Petrov anthony.petrov at oracle.com
Wed May 8 12:29:32 UTC 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 WINDOWCLOSED 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 swing-dev mailing list