--- 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) {