<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 20 05:26:31 UTC 2017


Hi Sergey,


On 9/18/2017 11:57 PM, Sergey Bylokhov wrote:
> Hi, Prasanta.
>  - In this version it is unclear what is a purpose of the 
> "fxCheckSequenceThread.start()". This code will start the thread and 
> will continue execution, it will not wait when the thread will stop.
>  - The DefaultKeyboardFocusManager also should check for 
> "javafx.embed.singleThread"
>
Please find modified webrev catering to both comments
http://cr.openjdk.java.net/~psadhukhan/8088132/webrev.04/

Regards
Prasanta
>
> On 9/13/17 03:11, Prasanta Sadhukhan wrote:
>> 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 openjfx-dev mailing list