提交 21172bb2 编写于 作者: D dcherepanov

6878284: Sometimes test/javax/swing/system/6799345/TestShutdown.java "hangs"

Reviewed-by: art, ant
上级 3c328faa
......@@ -843,7 +843,8 @@ public class EventQueue {
final void initDispatchThread() {
synchronized (this) {
if (dispatchThread == null && !threadGroup.isDestroyed()) {
AppContext appContext = AppContext.getAppContext();
if (dispatchThread == null && !threadGroup.isDestroyed() && !appContext.isDisposed()) {
dispatchThread = (EventDispatchThread)
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
......
......@@ -154,14 +154,17 @@ public final class AWTAutoShutdown implements Runnable {
/**
* Add a specified thread to the set of busy event dispatch threads.
* If this set already contains the specified thread, the call leaves
* this set unchanged and returns silently.
* If this set already contains the specified thread or the thread is null,
* the call leaves this set unchanged and returns silently.
*
* @param thread thread to be added to this set, if not present.
* @see AWTAutoShutdown#notifyThreadFree
* @see AWTAutoShutdown#isReadyToShutdown
*/
public void notifyThreadBusy(final Thread thread) {
if (thread == null) {
return;
}
synchronized (activationLock) {
synchronized (mainLock) {
if (blockerThread == null) {
......@@ -177,14 +180,17 @@ public final class AWTAutoShutdown implements Runnable {
/**
* Remove a specified thread from the set of busy event dispatch threads.
* If this set doesn't contain the specified thread, the call leaves
* this set unchanged and returns silently.
* If this set doesn't contain the specified thread or the thread is null,
* the call leaves this set unchanged and returns silently.
*
* @param thread thread to be removed from this set, if present.
* @see AWTAutoShutdown#notifyThreadBusy
* @see AWTAutoShutdown#isReadyToShutdown
*/
public void notifyThreadFree(final Thread thread) {
if (thread == null) {
return;
}
synchronized (activationLock) {
synchronized (mainLock) {
busyThreadSet.remove(thread);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册