diff -r 3cfc595ac892 -r 57ec8171fcd5 jdk/src/share/classes/javax/swing/plaf/basic/BasicLabelUI.java --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicLabelUI.java Wed Nov 04 10:13:52 2009 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicLabelUI.java Fri Nov 06 19:48:09 2009 +0300 @@ -28,6 +28,8 @@ import sun.swing.SwingUtilities2; import sun.swing.DefaultLookup; import sun.swing.UIAction; +import sun.awt.AppContext; + import javax.swing.*; import javax.swing.plaf.*; import javax.swing.text.View; @@ -63,7 +65,7 @@ * name in defaults table under the key "LabelUI". */ protected static BasicLabelUI labelUI = new BasicLabelUI(); - private final static BasicLabelUI SAFE_BASIC_LABEL_UI = new BasicLabelUI(); + private static final Object BASIC_LABEL_UI_KEY = new Object(); private Rectangle paintIconR = new Rectangle(); private Rectangle paintTextR = new Rectangle(); @@ -394,10 +396,16 @@ public static ComponentUI createUI(JComponent c) { if (System.getSecurityManager() != null) { - return SAFE_BASIC_LABEL_UI; - } else { - return labelUI; + AppContext appContext = AppContext.getAppContext(); + BasicLabelUI safeBasicLabelUI = + (BasicLabelUI) appContext.get(BASIC_LABEL_UI_KEY); + if (safeBasicLabelUI == null) { + safeBasicLabelUI = new BasicLabelUI(); + appContext.put(BASIC_LABEL_UI_KEY, safeBasicLabelUI); + } + return safeBasicLabelUI; } + return labelUI; } public void propertyChange(PropertyChangeEvent e) {