6878284: Sometimes test/javax/swing/system/6799345/TestShutdown.java "hangs"
Reviewed-by: art, ant
This commit is contained in:
parent
0d7e36485c
commit
d091c784ed
@ -843,7 +843,8 @@ public class EventQueue {
|
|||||||
|
|
||||||
final void initDispatchThread() {
|
final void initDispatchThread() {
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
if (dispatchThread == null && !threadGroup.isDestroyed()) {
|
AppContext appContext = AppContext.getAppContext();
|
||||||
|
if (dispatchThread == null && !threadGroup.isDestroyed() && !appContext.isDisposed()) {
|
||||||
dispatchThread = (EventDispatchThread)
|
dispatchThread = (EventDispatchThread)
|
||||||
AccessController.doPrivileged(new PrivilegedAction() {
|
AccessController.doPrivileged(new PrivilegedAction() {
|
||||||
public Object run() {
|
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.
|
* Add a specified thread to the set of busy event dispatch threads.
|
||||||
* If this set already contains the specified thread, the call leaves
|
* If this set already contains the specified thread or the thread is null,
|
||||||
* this set unchanged and returns silently.
|
* the call leaves this set unchanged and returns silently.
|
||||||
*
|
*
|
||||||
* @param thread thread to be added to this set, if not present.
|
* @param thread thread to be added to this set, if not present.
|
||||||
* @see AWTAutoShutdown#notifyThreadFree
|
* @see AWTAutoShutdown#notifyThreadFree
|
||||||
* @see AWTAutoShutdown#isReadyToShutdown
|
* @see AWTAutoShutdown#isReadyToShutdown
|
||||||
*/
|
*/
|
||||||
public void notifyThreadBusy(final Thread thread) {
|
public void notifyThreadBusy(final Thread thread) {
|
||||||
|
if (thread == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
synchronized (activationLock) {
|
synchronized (activationLock) {
|
||||||
synchronized (mainLock) {
|
synchronized (mainLock) {
|
||||||
if (blockerThread == null) {
|
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.
|
* Remove a specified thread from the set of busy event dispatch threads.
|
||||||
* If this set doesn't contain the specified thread, the call leaves
|
* If this set doesn't contain the specified thread or the thread is null,
|
||||||
* this set unchanged and returns silently.
|
* the call leaves this set unchanged and returns silently.
|
||||||
*
|
*
|
||||||
* @param thread thread to be removed from this set, if present.
|
* @param thread thread to be removed from this set, if present.
|
||||||
* @see AWTAutoShutdown#notifyThreadBusy
|
* @see AWTAutoShutdown#notifyThreadBusy
|
||||||
* @see AWTAutoShutdown#isReadyToShutdown
|
* @see AWTAutoShutdown#isReadyToShutdown
|
||||||
*/
|
*/
|
||||||
public void notifyThreadFree(final Thread thread) {
|
public void notifyThreadFree(final Thread thread) {
|
||||||
|
if (thread == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
synchronized (activationLock) {
|
synchronized (activationLock) {
|
||||||
synchronized (mainLock) {
|
synchronized (mainLock) {
|
||||||
busyThreadSet.remove(thread);
|
busyThreadSet.remove(thread);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user