<AWT Dev> [10] RFR JDK-8088132:[Swing, singleThread] ClassCastException in nested event loop when showing multiple message dialogs in SwingNode

Prasanta Sadhukhan prasanta.sadhukhan at oracle.com
Wed Sep 13 10:11:17 UTC 2017


Hi Sergey,

I have modified the fix to not use SecondaryLoop and not to create one 
thread per dispatch
http://cr.openjdk.java.net/~psadhukhan/8088132/webrev.03/

Regards
Prasanta
On 8/30/2017 11:41 AM, Sergey Bylokhov wrote:
> Hi, Prasanta.
> Can you please provide some description on how the SecondaryLoop will work when it will run on Appkit thread? Is it possible to get a deadlock here, since appkit will be blocked?
>
>> sequence, ie if the event is not first in sequence, then it will made
>> to
>> wait till it is the first event or till it is disposed.
> Note that the new code (unlike lines 139-150) also waits 1 second, so we can get a situation when only one event will be dispatched per second, which is not we want to do.
> I am not sure how often we create SequencedEvent but creating one thread per dispatch look inefficient.
>
>
>> Modified webrev
>> http://cr.openjdk.java.net/~psadhukhan/fx/8088132/webrev.02/
>>
>> Regards
>> Prasanta
>> On 8/23/2017 9:31 PM, Sergey Bylokhov wrote:
>>> Hi, Prasanta.
>>>
>>> On 16.08.2017 3:33, Prasanta Sadhukhan wrote:
>>>> Now, since here FX App thread itself is the dispatch thread, we can
>>>> be sure the events are dispatched in sequence and dispose is
>> checked
>>>> below after EDT.
>>> Why we can sure about this? If the SequencedEvents were created in
>> one
>>> order but dispatch() for each were called in other order then the
>>> sequenced will not be preserved?
>>>
>>>> I have tested with couple of singleThread testcase without any
>> issue.
>>>> Regards
>>>> Prasanta
>>>> On 8/14/2017 10:07 PM, Sergey Bylokhov wrote:
>>>>> Hi, Prasanta, Kevin.
>>>>>
>>>>> I have two notes.
>>>>>    - Does this option is really supported? If it is supported we
>>>>> should evaluate all usage of EventDispatchThread because in this
>>>>> mode the dispatch thread is not EDT. For example I am not sure
>> that
>>>>> we can skip the code which expects EventDispatchThread.
>>>>>    - We have the similar pattern: "EventQueue.isDispatchThread() ->
>>>>> cast(EventDispatchThread)" in some other places like in
>>>>> DefaultKeyboardFocusManager.
>>>>>
>>>>> -----prasanta.sadhukhan at oracle.com  wrote:
>>>>>
>>>>>> Hi All,
>>>>>>
>>>>>> Please review this fix
>>>>>> http://cr.openjdk.java.net/~psadhukhan/fx/8088132/webrev.00/
>>>>>> for an fx issue
>>>>>> https://bugs.openjdk.java.net/browse/JDK-8088132
>>>>>>
>>>>>> More info in JBS.
>>>>>>
>>>>>> Regards
>>>>>> Prasanta
>>>



More information about the awt-dev mailing list