Changeset 406 for trunk/openjdk/jdk/src/solaris
- Timestamp:
- Dec 21, 2012, 10:37:13 AM (13 years ago)
- Location:
- trunk/openjdk
- Files:
-
- 1 deleted
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/openjdk
- Property svn:mergeinfo changed
/branches/vendor/oracle/openjdk6/b27 (added) merged: 405 /branches/vendor/oracle/openjdk6/current merged: 404
- Property svn:mergeinfo changed
-
trunk/openjdk/jdk/src/solaris/classes/java/io/UnixFileSystem.java
r278 r406 1 1 /* 2 * Copyright (c) 1998, 20 05, Oracle and/or its affiliates. All rights reserved.2 * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. 3 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 4 * … … 254 254 /* -- File operations -- */ 255 255 256 public native boolean createFileExclusively(String path )256 public native boolean createFileExclusively(String path, boolean restrictive) 257 257 throws IOException; 258 258 public boolean delete(File f) { -
trunk/openjdk/jdk/src/solaris/classes/sun/awt/X11/XCheckboxMenuItemPeer.java
r278 r406 30 30 import java.awt.event.*; 31 31 32 import java.lang.reflect.Field; 33 import sun.awt.SunToolkit; 32 import sun.awt.AWTAccessor; 34 33 35 34 class XCheckboxMenuItemPeer extends XMenuItemPeer implements CheckboxMenuItemPeer { 36 37 /************************************************38 *39 * Data members40 *41 ************************************************/42 43 /*44 * CheckboxMenuItem's fields45 */46 private final static Field f_state;47 static {48 f_state = SunToolkit.getField(CheckboxMenuItem.class, "state");49 }50 35 51 36 /************************************************ … … 75 60 ************************************************/ 76 61 boolean getTargetState() { 77 MenuItem target = getTarget(); 78 if (target == null) { 79 return false; 80 } 81 try { 82 return f_state.getBoolean(target); 83 } catch (IllegalAccessException e) { 84 e.printStackTrace(); 85 } 86 return false; 62 return AWTAccessor.getCheckboxMenuItemAccessor() 63 .getState((CheckboxMenuItem)getTarget()); 87 64 } 88 65 -
trunk/openjdk/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java
r278 r406 32 32 import java.awt.Container; 33 33 import java.awt.Cursor; 34 import java.awt.DefaultKeyboardFocusManager;35 34 import java.awt.Dimension; 36 import java.awt.Event;37 35 import java.awt.Font; 38 36 import java.awt.FontMetrics; … … 41 39 import java.awt.Insets; 42 40 import java.awt.KeyboardFocusManager; 43 import java.awt.MenuBar;44 import java.awt.Point;45 41 import java.awt.Rectangle; 46 42 import java.awt.SystemColor; … … 61 57 import java.awt.image.ImageProducer; 62 58 import java.awt.image.VolatileImage; 63 import java.awt.peer.CanvasPeer;64 59 import java.awt.peer.ComponentPeer; 65 60 import java.awt.peer.ContainerPeer; 66 61 import java.awt.peer.LightweightPeer; 67 import java.awt.peer.PanelPeer;68 import java.awt.peer.WindowPeer;69 62 import java.lang.reflect.*; 70 63 import java.security.*; … … 398 391 } 399 392 400 static Method requestFocusWithCause;401 402 393 static void callRequestFocus(Component target, CausedFocusEvent.Cause cause) { 403 if (requestFocusWithCause == null) { 404 requestFocusWithCause = SunToolkit.getMethod(Component.class, "requestFocus", new Class[] {CausedFocusEvent.Cause.class}); 405 } 406 if (requestFocusWithCause != null) { 407 try { 408 requestFocusWithCause.invoke(target, new Object[] {cause}); 409 } catch (Exception e) { 410 e.printStackTrace(); 411 } 412 } 394 AWTAccessor.getComponentAccessor().requestFocus(target, cause); 413 395 } 414 396 -
trunk/openjdk/jdk/src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java
r278 r406 30 30 import java.awt.dnd.DropTargetListener; 31 31 import java.awt.event.*; 32 import java.awt.image.ColorModel;33 import java.awt.image.ImageObserver;34 import java.awt.image.ImageProducer;35 import java.awt.image.VolatileImage;36 import java.awt.peer.*;37 32 import sun.awt.*; 38 import sun.awt.motif.X11FontMetrics;39 import java.lang.reflect.*;40 33 import java.util.logging.*; 41 34 import java.util.*; … … 456 449 } 457 450 458 static Field bdataField;459 451 static byte[] getBData(KeyEvent e) { 460 try { 461 if (bdataField == null) { 462 bdataField = SunToolkit.getField(java.awt.AWTEvent.class, "bdata"); 463 } 464 return (byte[])bdataField.get(e); 465 } catch (IllegalAccessException ex) { 466 return null; 467 } 452 return AWTAccessor.getAWTEventAccessor().getBData(e); 468 453 } 469 454 -
trunk/openjdk/jdk/src/solaris/classes/sun/awt/X11/XEmbeddingContainer.java
r278 r406 29 29 import java.util.HashMap; 30 30 import java.awt.event.KeyEvent; 31 import java.lang.reflect.*; 32 import sun.awt.SunToolkit; 31 import sun.awt.AWTAccessor; 33 32 34 33 public class XEmbeddingContainer extends XEmbedHelper implements XEventDispatcher { … … 128 127 } 129 128 130 static Field bdata;131 byte[] getBData(KeyEvent e) {132 try {133 if (bdata == null) {134 bdata = SunToolkit.getField(java.awt.AWTEvent.class, "bdata");135 }136 return (byte[])bdata.get(e);137 } catch (IllegalAccessException ex) {138 return null;139 }140 }141 142 129 void forwardKeyEvent(long child, KeyEvent e) { 143 byte[] bdata = getBData(e);130 byte[] bdata = AWTAccessor.getAWTEventAccessor().getBData(e); 144 131 long data = Native.toData(bdata); 145 132 if (data == 0) { -
trunk/openjdk/jdk/src/solaris/classes/sun/awt/X11/XGlobalCursorManager.java
r278 r406 30 30 import java.awt.peer.LightweightPeer; 31 31 import java.lang.ref.WeakReference; 32 import java.lang.reflect.Field;33 import java.lang.reflect.Method;34 32 import sun.awt.ComponentAccessor; 35 33 36 34 import sun.awt.GlobalCursorManager; 37 import sun.awt. SunToolkit;35 import sun.awt.AWTAccessor; 38 36 39 37 public final class XGlobalCursorManager extends GlobalCursorManager { 40 41 private static Field field_pData;42 private static Field field_type;43 private static Class cursorClass;44 private static Method method_setPData;45 static {46 cursorClass = java.awt.Cursor.class;47 field_pData = SunToolkit.getField(cursorClass, "pData");48 field_type = SunToolkit.getField(cursorClass, "type");49 method_setPData = SunToolkit.getMethod(cursorClass, "setPData", new Class[] {long.class});50 if (field_pData == null || field_type == null || method_setPData == null) {51 System.out.println("Unable to initialize XGlobalCursorManager: ");52 Thread.dumpStack();53 54 }55 }56 57 38 58 39 // cached nativeContainer … … 217 198 int type = 0; 218 199 try { 219 pData = field_pData.getLong(c);220 type = field_type.getInt(c);200 pData = AWTAccessor.getCursorAccessor().getPData(c); 201 type = AWTAccessor.getCursorAccessor().getType(c); 221 202 } 222 203 catch (Exception e) … … 288 269 static void setPData(Cursor c, long pData) { 289 270 try { 290 method_setPData.invoke(c, pData);271 AWTAccessor.getCursorAccessor().setPData(c, pData); 291 272 } 292 273 catch (Exception e) -
trunk/openjdk/jdk/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java
r278 r406 33 33 import java.awt.peer.KeyboardFocusManagerPeer; 34 34 35 import java.lang.reflect.InvocationTargetException;36 import java.lang.reflect.Method;37 38 35 import java.util.logging.Level; 39 36 import java.util.logging.Logger; 40 37 41 38 import sun.awt.CausedFocusEvent; 42 import sun.awt. SunToolkit;39 import sun.awt.AWTAccessor; 43 40 44 41 public class XKeyboardFocusManagerPeer implements KeyboardFocusManagerPeer { … … 131 128 } 132 129 133 static Method shouldNativelyFocusHeavyweightMethod;134 135 130 static int shouldNativelyFocusHeavyweight(Component heavyweight, 136 131 Component descendant, boolean temporary, 137 132 boolean focusedWindowChangeAllowed, long time, CausedFocusEvent.Cause cause) 138 133 { 139 if (shouldNativelyFocusHeavyweightMethod == null) { 140 Class[] arg_types = 141 new Class[] { Component.class, 142 Component.class, 143 Boolean.TYPE, 144 Boolean.TYPE, 145 Long.TYPE, 146 CausedFocusEvent.Cause.class 147 }; 148 149 shouldNativelyFocusHeavyweightMethod = 150 SunToolkit.getMethod(KeyboardFocusManager.class, 151 "shouldNativelyFocusHeavyweight", 152 arg_types); 153 } 154 Object[] args = new Object[] { heavyweight, 155 descendant, 156 Boolean.valueOf(temporary), 157 Boolean.valueOf(focusedWindowChangeAllowed), 158 Long.valueOf(time), cause}; 159 160 int result = XComponentPeer.SNFH_FAILURE; 161 if (shouldNativelyFocusHeavyweightMethod != null) { 162 try { 163 result = ((Integer) shouldNativelyFocusHeavyweightMethod.invoke(null, args)).intValue(); 164 } 165 catch (IllegalAccessException e) { 166 assert false; 167 } 168 catch (InvocationTargetException e) { 169 assert false; 170 } 171 } 172 173 return result; 134 return AWTAccessor.getKeyboardFocusManagerAccessor() 135 .shouldNativelyFocusHeavyweight(heavyweight, 136 descendant, 137 temporary, 138 focusedWindowChangeAllowed, 139 time, 140 cause); 174 141 } 175 142 } -
trunk/openjdk/jdk/src/solaris/classes/sun/awt/X11/XMenuBarPeer.java
r278 r406 29 29 import java.awt.event.*; 30 30 31 import java.lang.reflect.Field;32 31 import java.util.Vector; 33 32 import java.util.logging.*; 34 import sun.awt. SunToolkit;33 import sun.awt.AWTAccessor; 35 34 36 35 public class XMenuBarPeer extends XBaseMenuWindow implements MenuBarPeer { … … 67 66 private final static int BAR_ITEM_MARGIN_TOP = 2; 68 67 private final static int BAR_ITEM_MARGIN_BOTTOM = 2; 69 70 //fields71 private static Field f_helpMenu;72 private static Field f_menus;73 74 static {75 f_helpMenu = SunToolkit.getField(MenuBar.class, "helpMenu");76 f_menus = SunToolkit.getField(MenuBar.class, "menus");77 }78 68 79 69 /************************************************ … … 205 195 void postInit(XCreateWindowParams params) { 206 196 super.postInit(params); 207 Vector targetMenuVector = null; 208 Menu targetHelpMenu = null; 209 try { 210 // Get menus from the target. 211 targetMenuVector = (Vector)f_menus.get(menuBarTarget); 212 targetHelpMenu = (Menu)f_helpMenu.get(menuBarTarget); 213 reloadItems(targetMenuVector); 214 } catch (IllegalAccessException iae) { 215 iae.printStackTrace(); 216 } 217 if (targetHelpMenu != null) { 218 addHelpMenu(targetHelpMenu); 219 } 197 // Get menus from the target. 198 Vector targetMenuVector = AWTAccessor.getMenuBarAccessor() 199 .getMenus(menuBarTarget); 200 Menu targetHelpMenu = AWTAccessor.getMenuBarAccessor() 201 .getHelpMenu(menuBarTarget); 202 reloadItems(targetMenuVector); 220 203 xSetVisible(true); 221 204 toFront(); -
trunk/openjdk/jdk/src/solaris/classes/sun/awt/X11/XMenuItemPeer.java
r278 r406 29 29 import java.awt.event.*; 30 30 31 import java.util.logging.*; 32 33 import java.lang.reflect.Field; 34 import java.lang.reflect.Method; 35 import java.lang.reflect.InvocationTargetException; 36 import sun.awt.SunToolkit; 31 import sun.awt.AWTAccessor; 37 32 38 33 public class XMenuItemPeer implements MenuItemPeer { … … 84 79 private final static int SEPARATOR_HEIGHT = 5; 85 80 86 /*87 * MenuItem's fields & methods88 */89 private final static Field f_enabled;90 private final static Field f_label;91 private final static Field f_shortcut;92 private final static Method m_getFont;93 private final static Method m_isItemEnabled;94 private final static Method m_getActionCommand;95 static {96 f_enabled = SunToolkit.getField(MenuItem.class, "enabled");97 f_label = SunToolkit.getField(MenuItem.class, "label");98 f_shortcut = SunToolkit.getField(MenuItem.class, "shortcut");99 100 m_getFont = SunToolkit.getMethod(MenuComponent.class, "getFont_NoClientCode", null);101 m_getActionCommand = SunToolkit.getMethod(MenuItem.class, "getActionCommandImpl", null);102 m_isItemEnabled = SunToolkit.getMethod(MenuItem.class, "isItemEnabled", null);103 }104 81 /************************************************ 105 82 * … … 219 196 return XWindow.defaultFont; 220 197 } 221 try { 222 return (Font)m_getFont.invoke(target, new Object[0]); 223 } catch (IllegalAccessException e) { 224 e.printStackTrace(); 225 } catch (InvocationTargetException e) { 226 e.printStackTrace(); 227 } 228 return XWindow.defaultFont; 198 return AWTAccessor.getMenuComponentAccessor().getFont_NoClientCode(target); 229 199 } 230 200 … … 233 203 return ""; 234 204 } 235 try { 236 String label = (String)f_label.get(target); 237 return (label == null) ? "" : label; 238 } catch (IllegalAccessException e) { 239 e.printStackTrace(); 240 } 241 return ""; 205 String label = AWTAccessor.getMenuItemAccessor().getLabel(target); 206 return (label == null) ? "" : label; 242 207 } 243 208 … … 246 211 return false; 247 212 } 248 try { 249 return f_enabled.getBoolean(target); 250 } catch (IllegalAccessException e) { 251 e.printStackTrace(); 252 } 253 return false; 213 return AWTAccessor.getMenuItemAccessor().isEnabled(target); 254 214 } 255 215 … … 263 223 return false; 264 224 } 265 try { 266 return ((Boolean)m_isItemEnabled.invoke(target, new Object[0])).booleanValue(); 267 } catch (IllegalAccessException e) { 268 e.printStackTrace(); 269 } catch (InvocationTargetException e) { 270 e.printStackTrace(); 271 } 272 return false; 225 return AWTAccessor.getMenuItemAccessor().isItemEnabled(target); 273 226 } 274 227 … … 277 230 return ""; 278 231 } 279 try { 280 return (String) m_getActionCommand.invoke(target,(Object[]) null); 281 } catch (IllegalAccessException e) { 282 e.printStackTrace(); 283 } catch (InvocationTargetException e) { 284 e.printStackTrace(); 285 } 286 return ""; 232 return AWTAccessor.getMenuItemAccessor().getActionCommandImpl(target); 287 233 } 288 234 … … 291 237 return null; 292 238 } 293 try { 294 return (MenuShortcut)f_shortcut.get(target); 295 } catch (IllegalAccessException e) { 296 e.printStackTrace(); 297 } 298 return null; 239 return AWTAccessor.getMenuItemAccessor().getShortcut(target); 299 240 } 300 241 -
trunk/openjdk/jdk/src/solaris/classes/sun/awt/X11/XMenuPeer.java
r278 r406 28 28 import java.awt.peer.*; 29 29 30 import java.lang.reflect.Field;31 30 import java.util.Vector; 32 31 import java.util.logging.*; 33 import sun.awt. SunToolkit;32 import sun.awt.AWTAccessor; 34 33 35 34 public class XMenuPeer extends XMenuItemPeer implements MenuPeer { … … 46 45 */ 47 46 XMenuWindow menuWindow; 48 49 50 /*51 * Menu's fields & methods52 */53 private final static Field f_items;54 55 static {56 f_items = SunToolkit.getField(Menu.class, "items");57 }58 47 59 48 /************************************************ … … 154 143 ************************************************/ 155 144 Vector getTargetItems() { 156 try { 157 return (Vector)f_items.get(getTarget()); 158 } catch (IllegalAccessException iae) { 159 iae.printStackTrace(); 160 return null; 161 } 145 return AWTAccessor.getMenuAccessor().getItems((Menu)getTarget()); 162 146 } 163 147 -
trunk/openjdk/jdk/src/solaris/classes/sun/awt/X11/XPopupMenuPeer.java
r278 r406 29 29 import java.awt.event.*; 30 30 31 import java.lang.reflect.Field;32 import java.lang.reflect.Method;33 import java.lang.reflect.InvocationTargetException;34 35 31 import java.util.Vector; 32 import sun.awt.AWTAccessor; 36 33 import java.util.logging.*; 37 38 import sun.awt.SunToolkit;39 34 40 35 public class XPopupMenuPeer extends XMenuWindow implements PopupMenuPeer { … … 66 61 private final static int CAPTION_MARGIN_TOP = 4; 67 62 private final static int CAPTION_SEPARATOR_HEIGHT = 6; 68 69 /*70 * Menu's fields & methods71 */72 //Fix for 6184485: Popup menu is not disabled on XToolkit even when calling setEnabled (false)73 private final static Field f_enabled;74 //Fix for 6267144: PIT: Popup menu label is not shown, XToolkit75 private final static Field f_label;76 private final static Method m_getFont;77 private final static Field f_items;78 79 static {80 f_enabled = SunToolkit.getField(MenuItem.class, "enabled");81 f_label = SunToolkit.getField(MenuItem.class, "label");82 f_items = SunToolkit.getField(Menu.class, "items");83 m_getFont = SunToolkit.getMethod(MenuComponent.class, "getFont_NoClientCode", null);84 }85 86 63 87 64 /************************************************ … … 190 167 return XWindow.defaultFont; 191 168 } 192 try { 193 return (Font)m_getFont.invoke(popupMenuTarget, new Object[0]); 194 } catch (IllegalAccessException e) { 195 e.printStackTrace(); 196 } catch (InvocationTargetException e) { 197 e.printStackTrace(); 198 } 199 return XWindow.defaultFont; 200 } 201 169 return AWTAccessor.getMenuComponentAccessor() 170 .getFont_NoClientCode(popupMenuTarget); 171 } 172 173 //Fix for 6267144: PIT: Popup menu label is not shown, XToolkit 202 174 String getTargetLabel() { 203 175 if (target == null) { 204 176 return ""; 205 177 } 206 try { 207 String label = (String)f_label.get(popupMenuTarget); 208 return (label == null) ? "" : label; 209 } catch (IllegalAccessException e) { 210 e.printStackTrace(); 211 } 212 return ""; 178 return AWTAccessor.getMenuItemAccessor().getLabel(popupMenuTarget); 213 179 } 214 180 … … 218 184 return false; 219 185 } 220 try { 221 return f_enabled.getBoolean(popupMenuTarget); 222 } catch (IllegalAccessException e) { 223 e.printStackTrace(); 224 } 225 return false; 186 return AWTAccessor.getMenuItemAccessor().isEnabled(popupMenuTarget); 226 187 } 227 188 228 189 Vector getMenuTargetItems() { 229 try { 230 return (Vector)f_items.get(popupMenuTarget); 231 } catch (IllegalAccessException iae) { 232 iae.printStackTrace(); 190 if (popupMenuTarget == null) { 233 191 return null; 234 192 } 193 return AWTAccessor.getMenuAccessor().getItems(popupMenuTarget); 235 194 } 236 195 -
trunk/openjdk/jdk/src/solaris/classes/sun/awt/X11/XScrollPanePeer.java
r278 r406 29 29 import java.awt.event.*; 30 30 import java.awt.peer.*; 31 import java.lang.reflect.*; 32 import sun.awt. SunToolkit;31 32 import sun.awt.AWTAccessor; 33 33 34 34 class XScrollPanePeer extends XComponentPeer implements ScrollPanePeer, XScrollbarClient { … … 42 42 public final static int HORIZONTAL = 1 << 1; 43 43 44 private static Method m_setValue;45 44 static { 46 m_setValue = SunToolkit.getMethod(ScrollPaneAdjustable.class, "setTypedValue", new Class[] {Integer.TYPE, Integer.TYPE});47 45 SCROLLBAR = XToolkit.getUIDefaults().getInt("ScrollBar.defaultWidth"); 48 46 } … … 317 315 318 316 void setAdjustableValue(ScrollPaneAdjustable adj, int value, int type) { 319 try { 320 m_setValue.invoke(adj, new Object[] {Integer.valueOf(value), Integer.valueOf(type)}); 321 } catch (IllegalAccessException iae) { 322 adj.setValue(value); 323 } catch (IllegalArgumentException iae2) { 324 adj.setValue(value); 325 } catch (InvocationTargetException ite) { 326 adj.setValue(value); 327 ite.getCause().printStackTrace(); 328 } 317 AWTAccessor.getScrollPaneAdjustableAccessor().setTypedValue(adj, value, 318 type); 329 319 } 330 320 -
trunk/openjdk/jdk/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java
r278 r406 62 62 import sun.awt.CausedFocusEvent; 63 63 import sun.awt.ComponentAccessor; 64 import sun.awt.AWTAccessor; 64 65 65 66 … … 986 987 public void setTransferHandler(TransferHandler newHandler) { 987 988 TransferHandler oldHandler = (TransferHandler) 988 getClientProperty(XTextTransferHelper.getTransferHandlerKey()); 989 putClientProperty(XTextTransferHelper.getTransferHandlerKey(), 989 getClientProperty(AWTAccessor.getClientPropertyKeyAccessor() 990 .getJComponent_TRANSFER_HANDLER()); 991 putClientProperty(AWTAccessor.getClientPropertyKeyAccessor() 992 .getJComponent_TRANSFER_HANDLER(), 990 993 newHandler); 991 994 -
trunk/openjdk/jdk/src/solaris/classes/sun/awt/X11/XTextFieldPeer.java
r278 r406 56 56 import sun.awt.CausedFocusEvent; 57 57 import sun.awt.ComponentAccessor; 58 import sun.awt.AWTAccessor; 58 59 59 60 public class XTextFieldPeer extends XComponentPeer implements TextFieldPeer { … … 715 716 public void setTransferHandler(TransferHandler newHandler) { 716 717 TransferHandler oldHandler = (TransferHandler) 717 getClientProperty(XTextTransferHelper.getTransferHandlerKey()); 718 putClientProperty(XTextTransferHelper.getTransferHandlerKey(), 718 getClientProperty(AWTAccessor.getClientPropertyKeyAccessor() 719 .getJComponent_TRANSFER_HANDLER()); 720 putClientProperty(AWTAccessor.getClientPropertyKeyAccessor() 721 .getJComponent_TRANSFER_HANDLER(), 719 722 newHandler); 720 723 -
trunk/openjdk/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java
r278 r406 50 50 import sun.print.PrintJob2D; 51 51 import sun.security.action.GetBooleanAction; 52 import java.lang.reflect.*;52 import sun.security.action.GetPropertyAction; 53 53 54 54 public class XToolkit extends UNIXToolkit implements Runnable, XConstants { … … 103 103 static long awt_defaultFg; // Pixel 104 104 private static XMouseInfoPeer xPeer; 105 private static Method m_removeSourceEvents;106 105 107 106 static { … … 121 120 setBackingStoreType(); 122 121 } 123 m_removeSourceEvents = SunToolkit.getMethod(EventQueue.class, "removeSourceEvents", new Class[] {Object.class, Boolean.TYPE}) ; 124 125 noisyAwtHandler = AccessController.doPrivileged(new GetBooleanAction("sun.awt.noisyerrorhandler"));122 123 noisyAwtHandler = AccessController.doPrivileged( 124 new GetBooleanAction("sun.awt.noisyerrorhandler")); 126 125 } 127 126 … … 204 203 static void initSecurityWarning() { 205 204 // Enable warning only for internal builds 206 String runtime = getSystemProperty("java.runtime.version"); 205 String runtime = AccessController.doPrivileged( 206 new GetPropertyAction("java.runtime.version")); 207 207 securityWarningEnabled = (runtime != null && runtime.contains("internal")); 208 208 } … … 1125 1125 awtUnlock(); 1126 1126 } 1127 }1128 1129 static String getSystemProperty(final String name) {1130 return (String)AccessController.doPrivileged(new PrivilegedAction() {1131 public Object run() {1132 return System.getProperty(name);1133 }1134 });1135 1127 } 1136 1128 … … 1895 1887 1896 1888 static void removeSourceEvents(EventQueue queue, Object source, boolean removeAllEvents) { 1897 try { 1898 m_removeSourceEvents.invoke(queue, source, removeAllEvents); 1899 } 1900 catch (IllegalAccessException e) 1901 { 1902 e.printStackTrace(); 1903 } 1904 catch (InvocationTargetException e) { 1905 e.printStackTrace(); 1906 } 1889 AWTAccessor.getEventQueueAccessor().removeSourceEvents(queue, source, removeAllEvents); 1907 1890 } 1908 1891 … … 1938 1921 1939 1922 private static void setBackingStoreType() { 1940 String prop = (String)AccessController.doPrivileged(1941 new sun.security.action.GetPropertyAction("sun.awt.backingStore"));1923 String prop = AccessController.doPrivileged( 1924 new GetPropertyAction("sun.awt.backingStore")); 1942 1925 1943 1926 if (prop == null) { -
trunk/openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindow.java
r278 r406 34 34 35 35 import java.lang.reflect.Field; 36 import java.lang.reflect.Method;37 36 38 37 import java.util.logging.Level; … … 109 108 private native static void initIDs(); 110 109 111 private static Field isPostedField;112 110 static { 113 111 initIDs(); … … 362 360 } 363 361 364 static Method m_sendMessage;365 362 static void sendEvent(final AWTEvent e) { 366 if (isPostedField == null) {367 isPostedField = SunToolkit.getField(AWTEvent.class, "isPosted");368 }369 363 PeerEvent pe = new PeerEvent(Toolkit.getDefaultToolkit(), new Runnable() { 370 364 public void run() { 371 try { 372 isPostedField.setBoolean(e, true); 373 } catch (IllegalArgumentException e) { 374 assert(false); 375 } catch (IllegalAccessException e) { 376 assert(false); 377 } 365 AWTAccessor.getAWTEventAccessor().setPosted(e); 378 366 ((Component)e.getSource()).dispatchEvent(e); 379 367 } … … 1251 1239 1252 1240 1253 static Field bdata;1254 1241 static void setBData(KeyEvent e, byte[] data) { 1255 try { 1256 if (bdata == null) { 1257 bdata = SunToolkit.getField(java.awt.AWTEvent.class, "bdata"); 1258 } 1259 bdata.set(e, data); 1260 } catch (IllegalAccessException ex) { 1261 assert false; 1262 } 1242 AWTAccessor.getAWTEventAccessor().setBData(e, data); 1263 1243 } 1264 1244 -
trunk/openjdk/jdk/src/solaris/classes/sun/awt/X11/XlibWrapper.java
r278 r406 27 27 28 28 import java.security.AccessController; 29 import java.security.PrivilegedAction;29 import sun.security.action.GetPropertyAction; 30 30 import sun.misc.*; 31 31 … … 563 563 564 564 static { 565 String dataModelProp = (String)AccessController.doPrivileged( 566 new PrivilegedAction() { 567 public Object run() { 568 return System.getProperty("sun.arch.data.model"); 569 } 570 }); 565 String dataModelProp = AccessController.doPrivileged(new GetPropertyAction("sun.arch.data.model")); 571 566 try { 572 567 dataModel = Integer.parseInt(dataModelProp); … … 611 606 612 607 private static boolean getBuildInternal() { 613 String javaVersion = XToolkit.getSystemProperty("java.version");608 String javaVersion = AccessController.doPrivileged(new GetPropertyAction("java.version")); 614 609 return javaVersion != null && javaVersion.contains("internal"); 615 610 } -
trunk/openjdk/jdk/src/solaris/classes/sun/awt/motif/MComponentPeer.java
r278 r406 401 401 402 402 static void callRequestFocusInWindow(Component target, CausedFocusEvent.Cause cause) { 403 if (requestFocusWithCause == null) { 404 requestFocusWithCause = SunToolkit.getMethod(Component.class, "requestFocusInWindow", new Class[] {CausedFocusEvent.Cause.class}); 405 } 406 if (requestFocusWithCause != null) { 407 try { 408 requestFocusWithCause.invoke(target, new Object[] {cause}); 409 } catch (Exception e) { 410 e.printStackTrace(); 411 } 412 } 403 AWTAccessor.getComponentAccessor().requestFocusInWindow(target, cause); 413 404 } 414 405 -
trunk/openjdk/jdk/src/solaris/classes/sun/print/UnixPrintJob.java
r278 r406 1 1 /* 2 * Copyright (c) 2000, 20 04, Oracle and/or its affiliates. All rights reserved.2 * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. 3 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 4 * … … 938 938 * removed when the VM exits. 939 939 */ 940 spoolFile = File.createTempFile("javaprint", ".ps", null);940 spoolFile = sun.misc.IOUtils.createTempFile("javaprint", ".ps", null); 941 941 spoolFile.deleteOnExit(); 942 942 } -
trunk/openjdk/jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java
r278 r406 1 1 /* 2 * Copyright (c) 2000, 20 06, Oracle and/or its affiliates. All rights reserved.2 * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. 3 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 4 * … … 713 713 Process proc; 714 714 BufferedReader bufferedReader = null; 715 File f = File.createTempFile("prn","xc");715 File f = sun.misc.IOUtils.createTempFile("prn","xc"); 716 716 cmd[2] = cmd[2]+">"+f.getAbsolutePath(); 717 717 -
trunk/openjdk/jdk/src/solaris/native/java/io/UnixFileSystem_md.c
r278 r406 1 1 /* 2 * Copyright (c) 1998, 20 06, Oracle and/or its affiliates. All rights reserved.2 * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. 3 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 4 * … … 311 311 JNIEXPORT jboolean JNICALL 312 312 Java_java_io_UnixFileSystem_createFileExclusively(JNIEnv *env, jclass cls, 313 jstring pathname) 313 jstring pathname, 314 jboolean restrictive) 314 315 { 315 316 jboolean rv = JNI_FALSE; … … 320 321 fd = JVM_EEXIST; /* The root directory always exists */ 321 322 } else { 322 fd = JVM_Open(path, JVM_O_RDWR | JVM_O_CREAT | JVM_O_EXCL, 0666); 323 jint mode = (restrictive == JNI_TRUE) ? 0600 : 0666; 324 fd = JVM_Open(path, JVM_O_RDWR | JVM_O_CREAT | JVM_O_EXCL, mode); 323 325 } 324 326 if (fd < 0) { -
trunk/openjdk/jdk/src/solaris/native/java/net/net_util_md.c
r278 r406 1 1 /* 2 * Copyright (c) 1997, 20 07, Oracle and/or its affiliates. All rights reserved.2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 3 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 4 * … … 65 65 66 66 /* 67 * EXCLBIND socket options only on Solaris 8 & 9.67 * EXCLBIND socket options only on Solaris 68 68 */ 69 69 #if defined(__solaris__) && !defined(TCP_EXCLBIND) … … 78 78 static int tcp_max_buf; 79 79 static int udp_max_buf; 80 static int useExclBind = 0; 80 81 81 82 /* … … 646 647 647 648 #endif 649 650 void parseExclusiveBindProperty(JNIEnv *env) { 651 #ifdef __solaris__ 652 jstring s, flagSet; 653 jclass iCls; 654 jmethodID mid; 655 656 s = (*env)->NewStringUTF(env, "sun.net.useExclusiveBind"); 657 CHECK_NULL(s); 658 iCls = (*env)->FindClass(env, "java/lang/System"); 659 CHECK_NULL(iCls); 660 mid = (*env)->GetStaticMethodID(env, iCls, "getProperty", 661 "(Ljava/lang/String;)Ljava/lang/String;"); 662 CHECK_NULL(mid); 663 flagSet = (*env)->CallStaticObjectMethod(env, iCls, mid, s); 664 if (flagSet != NULL) { 665 useExclBind = 1; 666 } 667 #endif 668 } 648 669 649 670 /* In the case of an IPv4 Inetaddress this method will return an … … 1223 1244 * caught. 1224 1245 * 1225 * On Solaris 8/9with IPv6 enabled we must use an exclusive1226 * bind to guarantee da unique port number across the IPv4 and1246 * On Solaris with IPv6 enabled we must use an exclusive 1247 * bind to guarantee a unique port number across the IPv4 and 1227 1248 * IPv6 port spaces. 1228 1249 * … … 1254 1275 #if defined(__solaris__) && defined(AF_INET6) 1255 1276 /* 1256 * Solaris 8/9 have seperate IPv4 and IPv6 port spaces so we1277 * Solaris has separate IPv4 and IPv6 port spaces so we 1257 1278 * use an exclusive bind when SO_REUSEADDR is not used to 1258 1279 * give the illusion of a unified port space. 1259 * This also avoid problems with IPv6 sockets connecting1280 * This also avoids problems with IPv6 sockets connecting 1260 1281 * to IPv4 mapped addresses whereby the socket conversion 1261 1282 * results in a late bind that fails because the … … 1266 1287 1267 1288 len = sizeof(arg); 1268 if ( getsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char *)&arg,1269 &len) == 0) {1270 if ( arg == 0) {1289 if (useExclBind || getsockopt(fd, SOL_SOCKET, SO_REUSEADDR, 1290 (char *)&arg, &len) == 0) { 1291 if (useExclBind || arg == 0) { 1271 1292 /* 1272 * SO_REUSEADDR is disabled so enable TCP_EXCLBIND or 1293 * SO_REUSEADDR is disabled or sun.net.useExclusiveBind 1294 * property is true so enable TCP_EXCLBIND or 1273 1295 * UDP_EXCLBIND 1274 1296 */
Note:
See TracChangeset
for help on using the changeset viewer.