Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4645584

Invoking modal dialog while performing DnD freezes application.

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 1.4.1
    • 1.4.0
    • client-libs
    • None
    • hopper
    • generic
    • generic
    • Verified

      I experience it reproducbly on NetBeans while tring to implement DnD.
      I believe it would be the same on other apps.

      Scenario:
      1) Start drag operation.
      2) Let invoke modal dialog to be shown (programatically) while still
      doing the drag.
      3) The dialog is poped up. The cursor is changed to normal one, but no drapDropFinished on DragSourceContextPeer was made, consequentelly no dragDropEnd on DragSourceListener. Thus the DnD sys prevents any key/mouse event
      to be propagated to the dialog, while also the DnD istelf is not able to finish.
      4) The app freezes.

      Additional comments.
      I also tried programatically to close the dialog in that case, and the app seemed to be working, even still the DragSourceDropEvent wasn't propagated.
      But that not the acceptable workaround.
      I don't see the needed one, at least there is needed ability to programatically cancell of processed DnD, but seems it is internal thing of the DragSourceContextPeer.
      ===============================


      Here is the testcase, (tescase.zip ), extract to default dir compile and execute the Test. It is your example of DnD published on jdc with added button on the bottom which invokes the modal dialog from separate thread in 3 sec. Whithin the time you start do the drag and wait. Dialog appears and you can nothing to do neither from keyboard nor by mouse.
      I came closer to the problem, in the testcase the dialog has default close operation DO_NOTHING_ON_CLOSE, which prevents the dialog to be closed by "x" button. But thats the problem of DnD it doesn't let pass other event to the dialog only to the "x" button, thus when the dialog is supposed to be closed on
      "Close" button it is not propagated there.
      I hope this will help enough.

      I also want to point out why there was required testcase. Didn't I describe the problem clearly enough. I guess there shouldn't be a problem for to create a testcase according the description?

      ###@###.### 2002-03-04
      ==================================

      The above commnent with the DO_NOTHING_ON_CLOSE is not valid, it just helps
      in seldom cases. Thus the bug is much more serious.
      ###@###.### 2002-03-21
      =================================

            dassunw Das Das (Inactive)
            duke J. Duke
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: