关闭JOptionPane会导致Java Swing死锁

Ell*_*ott 3 java swing deadlock

我有一个在大多数网站运行正常的应用程序.但是,在Citrix Box上托管应用程序的一个站点似乎存在死锁问题.我在会议上运行了一个分析器并收到了惊喜.导致死锁的语句似乎是关闭JOptionPane对话框的语句.请参阅随附的显示屏.

所以我有三个问题:

  1. 我的解释是否正确?
  2. 知道为什么会这样.
  3. 我可以在代码中做些什么来防止这种情况发生?

预先感谢您的帮助.

埃利奥特Profiler显示

Gro*_*uez 5

Swing不是线程安全的.也许您的应用程序正在从事件调度线程之外调用Swing GUI方法.

如果您可以将此减少到仍然可以重现问题的最小样本,您将1)在此过程中自己找到原因,或者2)最终获得其他人获得帮助的机会更大.