OpenJDK / bsd-port / bsd-port / jdk
changeset 7537:24b7c3d09427 jdk7u66-b13
Merge
author | asaha |
---|---|
date | Mon, 19 May 2014 09:00:00 -0700 |
parents | 486aa993e8b4 69698344d0a1 |
children | 8568a6b22ca7 |
files | |
diffstat | 5 files changed, 89 insertions(+), 43 deletions(-) [+] |
line wrap: on
line diff
--- a/make/sun/javazic/tzdata/VERSION Tue May 13 16:00:43 2014 -0700 +++ b/make/sun/javazic/tzdata/VERSION Mon May 19 09:00:00 2014 -0700 @@ -21,4 +21,4 @@ # or visit www.oracle.com if you need additional information or have any # questions. # -tzdata2014b +tzdata2014c
--- a/make/sun/javazic/tzdata/africa Tue May 13 16:00:43 2014 -0700 +++ b/make/sun/javazic/tzdata/africa Mon May 19 09:00:00 2014 -0700 @@ -358,11 +358,54 @@ # http://www.worldtimezone.com/dst_news/dst_news_egypt02.html # </a> +# From Ahmad El-Dardiry (2014-05-07): +# Egypt is to change back to Daylight system on May 15 +# http://english.ahram.org.eg/NewsContent/1/64/100735/Egypt/Politics-/Egypts-government-to-reapply-daylight-saving-time-.aspx + +# From Gunther Vermier (2015-05-13): +# our Egypt office confirms that the change will be at 15 May "midnight" (24:00) + +# From Paul Eggert (2014-05-13): +# Sarah El Deeb and Lee Keath of AP report that the Egyptian government says +# the change is because of blackouts in Cairo, even though Ahram Online (cited +# above) says DST had no affect on electricity consumption. The AP story says +# DST will not be observed during Ramadan. There is no information about when +# DST will end. See: +# http://abcnews.go.com/International/wireStory/el-sissi-pushes-egyptians-line-23614833 +# +# For now, guess that later transitions will use 2010's rules, and that +# Egypt will agree with Morocco (see below) about the date Ramadan starts and +# ends, though (unlike Morocco) it will switch at 00:00 standard time. In +# Egypt the spring-forward transitions are removed for 2020-2022, when the +# guessed spring-forward date falls during the estimated Ramadan, and all +# transitions removed for 2023-2038, where the estimated Ramadan falls entirely +# outside the guessed daylight-saving time. Ramadan intrudes on the guessed +# DST starting in 2039, but that's beyond our somewhat-arbitrary cutoff. + Rule Egypt 2008 only - Aug lastThu 23:00s 0 - Rule Egypt 2009 only - Aug 20 23:00s 0 - Rule Egypt 2010 only - Aug 11 0:00 0 - Rule Egypt 2010 only - Sep 10 0:00 1:00 S Rule Egypt 2010 only - Sep lastThu 23:00s 0 - +Rule Egypt 2014 only - May 15 24:00 1:00 S +Rule Egypt 2014 only - Jun 29 0:00s 0 - +Rule Egypt 2014 only - Jul 29 0:00s 1:00 S +Rule Egypt 2014 max - Sep lastThu 23:00s 0 - +Rule Egypt 2015 2019 - Apr lastFri 0:00s 1:00 S +Rule Egypt 2015 only - Jun 18 0:00s 0 - +Rule Egypt 2015 only - Jul 18 0:00s 1:00 S +Rule Egypt 2016 only - Jun 7 0:00s 0 - +Rule Egypt 2016 only - Jul 7 0:00s 1:00 S +Rule Egypt 2017 only - May 27 0:00s 0 - +Rule Egypt 2017 only - Jun 26 0:00s 1:00 S +Rule Egypt 2018 only - May 16 0:00s 0 - +Rule Egypt 2018 only - Jun 15 0:00s 1:00 S +Rule Egypt 2019 only - May 6 0:00s 0 - +Rule Egypt 2019 only - Jun 5 0:00s 1:00 S +Rule Egypt 2020 only - May 24 0:00s 1:00 S +Rule Egypt 2021 only - May 13 0:00s 1:00 S +Rule Egypt 2022 only - May 3 0:00s 1:00 S +Rule Egypt 2023 max - Apr lastFri 0:00s 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Cairo 2:05:09 - LMT 1900 Oct
--- a/make/sun/javazic/tzdata/asia Tue May 13 16:00:43 2014 -0700 +++ b/make/sun/javazic/tzdata/asia Mon May 19 09:00:00 2014 -0700 @@ -1370,22 +1370,6 @@ # "Jordan will switch to winter time on Friday, October 27". # -# From Phil Pizzey (2009-04-02): -# ...I think I may have spotted an error in the timezone data for -# Jordan. -# The current (2009d) asia file shows Jordan going to daylight -# saving -# time on the last Thursday in March. -# -# Rule Jordan 2000 max - Mar lastThu 0:00s 1:00 S -# -# However timeanddate.com, which I usually find reliable, shows Jordan -# going to daylight saving time on the last Friday in March since 2002. -# Please see -# <a href="http://www.timeanddate.com/worldclock/timezone.html?n=11"> -# http://www.timeanddate.com/worldclock/timezone.html?n=11 -# </a> - # From Steffen Thorsen (2009-04-02): # This single one might be good enough, (2009-03-24, Arabic): # <a href="http://petra.gov.jo/Artical.aspx?Lng=2&Section=8&Artical=95279">
--- a/make/sun/javazic/tzdata/europe Tue May 13 16:00:43 2014 -0700 +++ b/make/sun/javazic/tzdata/europe Mon May 19 09:00:00 2014 -0700 @@ -2989,6 +2989,10 @@ # From Alexander Krivenyshev (2014-03-17): # time change at 2:00 (2am) on March 30, 2014 # http://vz.ru/news/2014/3/17/677464.html +# From Paul Eggert (2014-03-30): +# Simferopol and Sevastopol reportedly changed their central town clocks +# late the previous day, but this appears to have been ceremonial +# and the discrepancies are small enough to not worry about. 2:00 EU EE%sT 2014 Mar 30 2:00 4:00 - MSK
--- a/src/share/classes/java/awt/KeyboardFocusManager.java Tue May 13 16:00:43 2014 -0700 +++ b/src/share/classes/java/awt/KeyboardFocusManager.java Mon May 19 09:00:00 2014 -0700 @@ -248,15 +248,7 @@ public static void setCurrentKeyboardFocusManager( KeyboardFocusManager newManager) throws SecurityException { - SecurityManager security = System.getSecurityManager(); - if (security != null) { - if (replaceKeyboardFocusManagerPermission == null) { - replaceKeyboardFocusManagerPermission = - new AWTPermission("replaceKeyboardFocusManager"); - } - security. - checkPermission(replaceKeyboardFocusManagerPermission); - } + checkReplaceKFMPermission(); KeyboardFocusManager oldManager = null; @@ -508,7 +500,7 @@ */ protected Component getGlobalFocusOwner() throws SecurityException { synchronized (KeyboardFocusManager.class) { - checkCurrentKFMSecurity(); + checkKFMSecurity(); return focusOwner; } } @@ -543,7 +535,7 @@ if (focusOwner == null || focusOwner.isFocusable()) { synchronized (KeyboardFocusManager.class) { - checkCurrentKFMSecurity(); + checkKFMSecurity(); oldFocusOwner = getFocusOwner(); @@ -595,7 +587,7 @@ */ public void clearGlobalFocusOwner() { synchronized (KeyboardFocusManager.class) { - checkCurrentKFMSecurity(); + checkKFMSecurity(); } if (!GraphicsEnvironment.isHeadless()) { // Toolkit must be fully initialized, otherwise @@ -676,7 +668,7 @@ throws SecurityException { synchronized (KeyboardFocusManager.class) { - checkCurrentKFMSecurity(); + checkKFMSecurity(); return permanentFocusOwner; } } @@ -712,7 +704,7 @@ if (permanentFocusOwner == null || permanentFocusOwner.isFocusable()) { synchronized (KeyboardFocusManager.class) { - checkCurrentKFMSecurity(); + checkKFMSecurity(); oldPermanentFocusOwner = getPermanentFocusOwner(); @@ -779,7 +771,7 @@ */ protected Window getGlobalFocusedWindow() throws SecurityException { synchronized (KeyboardFocusManager.class) { - checkCurrentKFMSecurity(); + checkKFMSecurity(); return focusedWindow; } } @@ -811,7 +803,7 @@ if (focusedWindow == null || focusedWindow.isFocusableWindow()) { synchronized (KeyboardFocusManager.class) { - checkCurrentKFMSecurity(); + checkKFMSecurity(); oldFocusedWindow = getFocusedWindow(); @@ -879,7 +871,7 @@ */ protected Window getGlobalActiveWindow() throws SecurityException { synchronized (KeyboardFocusManager.class) { - checkCurrentKFMSecurity(); + checkKFMSecurity(); return activeWindow; } } @@ -909,7 +901,7 @@ protected void setGlobalActiveWindow(Window activeWindow) { Window oldActiveWindow; synchronized (KeyboardFocusManager.class) { - checkCurrentKFMSecurity(); + checkKFMSecurity(); oldActiveWindow = getActiveWindow(); if (focusLog.isLoggable(PlatformLogger.FINER)) { @@ -1205,7 +1197,7 @@ throws SecurityException { synchronized (KeyboardFocusManager.class) { - checkCurrentKFMSecurity(); + checkKFMSecurity(); return currentFocusCycleRoot; } } @@ -1230,7 +1222,7 @@ Container oldFocusCycleRoot; synchronized (KeyboardFocusManager.class) { - checkCurrentKFMSecurity(); + checkKFMSecurity(); oldFocusCycleRoot = getCurrentFocusCycleRoot(); currentFocusCycleRoot = newFocusCycleRoot; @@ -3051,13 +3043,36 @@ } } - private void checkCurrentKFMSecurity() { + private static void checkReplaceKFMPermission() + throws SecurityException + { + SecurityManager security = System.getSecurityManager(); + if (security != null) { + if (replaceKeyboardFocusManagerPermission == null) { + replaceKeyboardFocusManagerPermission = + new AWTPermission("replaceKeyboardFocusManager"); + } + security. + checkPermission(replaceKeyboardFocusManagerPermission); + } + } + + // Checks if this KeyboardFocusManager instance is the current KFM, + // or otherwise checks if the calling thread has "replaceKeyboardFocusManager" + // permission. Here's the reasoning to do so: + // + // A system KFM instance (which is the current KFM by default) may have no + // "replaceKFM" permission when a client code is on the call stack beneath, + // but still it should be able to execute the methods protected by this check + // due to the system KFM is trusted (and so it does like "privileged"). + // + // If this KFM instance is not the current KFM but the client code has all + // permissions we can't throw SecurityException because it would contradict + // the security concepts. In this case the trusted client code is responsible + // for calling the secured methods from KFM instance which is not current. + private void checkKFMSecurity() { if (this != getCurrentKeyboardFocusManager()) { - if (focusLog.isLoggable(PlatformLogger.FINER)) { - focusLog.finer("This manager is " + this + - ", current is " + getCurrentKeyboardFocusManager()); - } - throw new SecurityException(notPrivileged); + checkReplaceKFMPermission(); } } }