jdk/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPrinterDialogPeer.java
changeset 29922 7b9c1e1532cf
parent 25859 3317bb8137f4
child 31653 d88ff422c7fb
--- a/jdk/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPrinterDialogPeer.java	Fri Aug 01 13:31:03 2014 +0200
+++ b/jdk/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPrinterDialogPeer.java	Fri Apr 03 17:17:36 2015 +0300
@@ -29,6 +29,7 @@
 import java.awt.dnd.*;
 
 import sun.lwawt.*;
+import sun.misc.ManagedLocalsThread;
 
 public class CPrinterDialogPeer extends LWWindowPeer {
     static {
@@ -53,13 +54,16 @@
 
     public void setVisible(boolean visible) {
         if (visible) {
-            new Thread(new Runnable() {
-                public void run() {
-                    CPrinterDialog printerDialog = (CPrinterDialog)fTarget;
-                    printerDialog.setRetVal(printerDialog.showDialog());
-                    printerDialog.setVisible(false);
-                }
-            }).start();
+            Runnable task = () -> {
+                CPrinterDialog printerDialog = (CPrinterDialog)fTarget;
+                printerDialog.setRetVal(printerDialog.showDialog());
+                printerDialog.setVisible(false);
+            };
+            if (System.getSecurityManager() == null) {
+                new Thread(task).start();
+            } else {
+                new ManagedLocalsThread(task).start();
+            }
         }
     }