aboutsummaryrefslogtreecommitdiff
path: root/src/windows
diff options
context:
space:
mode:
authorlana <none@none>2010-04-30 11:03:38 -0700
committerlana <none@none>2010-04-30 11:03:38 -0700
commit4db4a453fb2d30c404684df914cedeadae0efda0 (patch)
tree6b7ba9504f75fbd7946b39b459dc8c525fb42d24 /src/windows
parente498a737c8ed3e5801aeca1d8064c87a4b618bc4 (diff)
parent6e3c87180dc4bde0c44113375565c6a516516fc2 (diff)
Merge
Diffstat (limited to 'src/windows')
-rw-r--r--src/windows/classes/sun/awt/windows/WToolkit.java36
-rw-r--r--src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java18
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;
}