diff options
author | lana <none@none> | 2010-04-30 11:03:38 -0700 |
---|---|---|
committer | lana <none@none> | 2010-04-30 11:03:38 -0700 |
commit | 4db4a453fb2d30c404684df914cedeadae0efda0 (patch) | |
tree | 6b7ba9504f75fbd7946b39b459dc8c525fb42d24 /src/windows | |
parent | e498a737c8ed3e5801aeca1d8064c87a4b618bc4 (diff) | |
parent | 6e3c87180dc4bde0c44113375565c6a516516fc2 (diff) |
Merge
Diffstat (limited to 'src/windows')
-rw-r--r-- | src/windows/classes/sun/awt/windows/WToolkit.java | 36 | ||||
-rw-r--r-- | src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java | 18 |
2 files changed, 25 insertions, 29 deletions
diff --git a/src/windows/classes/sun/awt/windows/WToolkit.java b/src/windows/classes/sun/awt/windows/WToolkit.java index b822cf654..002da43e7 100644 --- a/src/windows/classes/sun/awt/windows/WToolkit.java +++ b/src/windows/classes/sun/awt/windows/WToolkit.java @@ -266,27 +266,25 @@ public class WToolkit extends SunToolkit implements Runnable { boolean startPump = init(); if (startPump) { - ThreadGroup mainTG = (ThreadGroup)AccessController.doPrivileged( - new PrivilegedAction() { - public Object run() { - ThreadGroup currentTG = - Thread.currentThread().getThreadGroup(); - ThreadGroup parentTG = currentTG.getParent(); - while (parentTG != null) { - currentTG = parentTG; - parentTG = currentTG.getParent(); - } - return currentTG; + AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + ThreadGroup currentTG = + Thread.currentThread().getThreadGroup(); + ThreadGroup parentTG = currentTG.getParent(); + while (parentTG != null) { + currentTG = parentTG; + parentTG = currentTG.getParent(); } + Thread shutdown = new Thread(currentTG, new Runnable() { + public void run() { + shutdown(); + } + }); + shutdown.setContextClassLoader(null); + Runtime.getRuntime().addShutdownHook(shutdown); + return null; + } }); - - Runtime.getRuntime().addShutdownHook( - new Thread(mainTG, new Runnable() { - public void run() { - shutdown(); - } - }) - ); } synchronized(this) { diff --git a/src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java b/src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java index 53ae895dd..db506b49d 100644 --- a/src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java +++ b/src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java @@ -101,17 +101,15 @@ public class D3DScreenUpdateManager extends ScreenUpdateManager currentTG = parentTG; parentTG = currentTG.getParent(); } + Thread shutdown = new Thread(currentTG, new Runnable() { + public void run() { + done = true; + wakeUpUpdateThread(); + } + }); + shutdown.setContextClassLoader(null); try { - Runtime.getRuntime().addShutdownHook( - new Thread(currentTG, - new Runnable() { - public void run() { - done = true; - wakeUpUpdateThread(); - } - } - ) - ); + Runtime.getRuntime().addShutdownHook(shutdown); } catch (Exception e) { done = true; } |