OpenJDK / amber / amber
changeset 41371:8bbb518ca07f
Merge
author | lana |
---|---|
date | Thu, 06 Oct 2016 23:13:06 +0000 |
parents | fbd87101a6dd 5afe61bd32ea |
children | 893bf8209c04 |
files | jdk/make/Import.gmk |
diffstat | 83 files changed, 1700 insertions(+), 1221 deletions(-) [+] |
line wrap: on
line diff
--- a/jdk/make/CompileDemos.gmk Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/make/CompileDemos.gmk Thu Oct 06 23:13:06 2016 +0000 @@ -1,5 +1,5 @@ # -# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -338,6 +338,7 @@ OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/demos/native/jvmti/$1, \ OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/demos/image/jvmti/$1/lib, \ LIBRARY := $1, \ + STRIP_SYMBOLS := false, \ )) $1 += $$(BUILD_DEMO_JVMTI_NATIVE_$1) @@ -453,6 +454,7 @@ OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/demos/native/jni/Poller, \ OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/demos/native, \ LIBRARY := Poller, \ + STRIP_SYMBOLS := false, \ )) TARGETS += $(BUILD_DEMO_NATIVE_Poller)
--- a/jdk/make/Import.gmk Thu Oct 06 20:56:11 2016 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,225 +0,0 @@ -# -# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved. -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# This code is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 only, as -# published by the Free Software Foundation. Oracle designates this -# particular file as subject to the "Classpath" exception as provided -# by Oracle in the LICENSE file that accompanied this code. -# -# This code is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# version 2 for more details (a copy is included in the LICENSE file that -# accompanied this code). -# -# You should have received a copy of the GNU General Public License version -# 2 along with this work; if not, write to the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -# or visit www.oracle.com if you need additional information or have any -# questions. -# - -default: all - -include $(SPEC) -include MakeBase.gmk - -################################################################################ - -# Put the libraries here. Different locations for different target OS types. -ifneq ($(OPENJDK_TARGET_OS), windows) - HOTSPOT_LIB_DIR := $(HOTSPOT_DIST)/lib$(OPENJDK_TARGET_CPU_LIBDIR) - BASE_INSTALL_LIBRARIES_HERE := $(SUPPORT_OUTPUTDIR)/modules_libs/java.base$(OPENJDK_TARGET_CPU_LIBDIR) -else - HOTSPOT_LIB_DIR := $(HOTSPOT_DIST)/bin - BASE_INSTALL_LIBRARIES_HERE := $(SUPPORT_OUTPUTDIR)/modules_libs/java.base -endif - -################################################################################ -# -# Import hotspot -# - -# Don't import jsig library for static builds -ifneq ($(STATIC_BUILD), true) - JSIG_IMPORT = jsig.* -else - JSIG_IMPORT = -endif - -HOTSPOT_BASE_IMPORT_FILES := \ - $(addprefix $(LIBRARY_PREFIX), jvm.* $(JSIG_IMPORT) jvm_db.* jvm_dtrace.*) \ - Xusage.txt \ - # - -$(eval $(call SetupCopyFiles,COPY_HOTSPOT_BASE, \ - SRC := $(HOTSPOT_LIB_DIR), \ - DEST := $(BASE_INSTALL_LIBRARIES_HERE), \ - FILES := $(shell $(FIND) $(HOTSPOT_LIB_DIR) -type f \ - -a \( -name DUMMY $(addprefix -o$(SPACE)-name$(SPACE), $(HOTSPOT_BASE_IMPORT_FILES)) \) ))) - -ifeq ($(OPENJDK_TARGET_OS), windows) - $(eval $(call SetupCopyFiles,COPY_HOTSPOT_BASE_JVMLIB, \ - SRC := $(HOTSPOT_DIST)/lib, \ - DEST := $(BASE_INSTALL_LIBRARIES_HERE), \ - FILES := $(wildcard $(HOTSPOT_DIST)/lib/*.lib))) -endif - -BASE_TARGETS := $(COPY_HOTSPOT_BASE) $(COPY_HOTSPOT_BASE_JVMLIB) - -################################################################################ - -ifneq ($(STATIC_BUILD), true) - ifeq ($(OPENJDK_TARGET_OS), macosx) - JSIG_DEBUGINFO := $(strip $(wildcard $(HOTSPOT_DIST)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig$(SHARED_LIBRARY_SUFFIX).dSYM) \ - $(wildcard $(HOTSPOT_DIST)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig.diz) ) - else - JSIG_DEBUGINFO := $(strip $(wildcard $(HOTSPOT_DIST)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig.debuginfo) \ - $(wildcard $(HOTSPOT_DIST)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig.diz) ) - endif - - ifneq ($(OPENJDK_TARGET_OS), windows) - ifeq ($(call check-jvm-variant, server), true) - BASE_TARGETS += $(BASE_INSTALL_LIBRARIES_HERE)/server/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) - ifneq (, $(JSIG_DEBUGINFO)) - BASE_TARGETS += $(BASE_INSTALL_LIBRARIES_HERE)/server/$(foreach I,$(JSIG_DEBUGINFO),$(notdir $I)) - endif - endif - ifeq ($(call check-jvm-variant, client), true) - BASE_TARGETS += $(BASE_INSTALL_LIBRARIES_HERE)/client/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) - ifneq (, $(JSIG_DEBUGINFO)) - BASE_TARGETS += $(BASE_INSTALL_LIBRARIES_HERE)/client/$(foreach I,$(JSIG_DEBUGINFO),$(notdir $I)) - endif - endif - ifneq ($(OPENJDK_TARGET_OS), macosx) - ifeq ($(call check-jvm-variant, minimal), true) - BASE_TARGETS += $(BASE_INSTALL_LIBRARIES_HERE)/minimal/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) - ifneq (,$(JSIG_DEBUGINFO)) - BASE_TARGETS += $(BASE_INSTALL_LIBRARIES_HERE)/minimal/$(foreach I,$(JSIG_DEBUGINFO),$(notdir $I)) - endif - endif - endif - endif -endif - -$(BASE_INSTALL_LIBRARIES_HERE)/server/%$(SHARED_LIBRARY_SUFFIX): $(BASE_INSTALL_LIBRARIES_HERE)/%$(SHARED_LIBRARY_SUFFIX) - $(MKDIR) -p $(@D) - $(RM) $@ - $(LN) -s ../$(@F) $@ - -ifeq ($(OPENJDK_TARGET_OS), macosx) - $(BASE_INSTALL_LIBRARIES_HERE)/server/%.dSYM: - $(MKDIR) -p $(@D) - $(RM) $@ - $(LN) -s ../$(@F) $@ - - $(BASE_INSTALL_LIBRARIES_HERE)/server/%.diz : $(BASE_INSTALL_LIBRARIES_HERE)/%.diz - $(MKDIR) -p $(@D) - $(RM) $@ - $(RM) $@.tmp $(basename $@)$(SHARED_LIBRARY_SUFFIX).dSYM - $(LN) -s ../$(basename $(@F))$(SHARED_LIBRARY_SUFFIX).dSYM $(basename $@)$(SHARED_LIBRARY_SUFFIX).dSYM - $(CD) $(@D) && $(ZIP) -q -y $@.tmp $(basename $(@F))$(SHARED_LIBRARY_SUFFIX).dSYM - $(RM) $(basename $@)$(SHARED_LIBRARY_SUFFIX).dSYM - $(MV) $@.tmp $@ -else - $(BASE_INSTALL_LIBRARIES_HERE)/server/%.debuginfo: $(BASE_INSTALL_LIBRARIES_HERE)/%.debuginfo - $(MKDIR) -p $(@D) - $(RM) $@ - $(LN) -s ../$(@F) $@ - - $(BASE_INSTALL_LIBRARIES_HERE)/server/%.diz: $(BASE_INSTALL_LIBRARIES_HERE)/%.diz - $(MKDIR) -p $(@D) - $(RM) $@ - $(RM) $@.tmp $(basename $@).debuginfo - $(LN) -s ../$(basename $(@F)).debuginfo $(basename $@).debuginfo - $(CD) $(@D) && $(ZIP) -q -y $@.tmp $(basename $(@F)).debuginfo - $(RM) $(basename $@).debuginfo - $(MV) $@.tmp $@ -endif - -$(BASE_INSTALL_LIBRARIES_HERE)/client/%$(SHARED_LIBRARY_SUFFIX): $(BASE_INSTALL_LIBRARIES_HERE)/%$(SHARED_LIBRARY_SUFFIX) - $(MKDIR) -p $(@D) - $(RM) $@ - $(LN) -s ../$(@F) $@ - -ifeq ($(OPENJDK_TARGET_OS), macosx) - $(BASE_INSTALL_LIBRARIES_HERE)/client/%.dSYM : $(BASE_INSTALL_LIBRARIES_HERE)/%.dSYM - $(MKDIR) -p $(@D) - $(RM) $@ - $(LN) -s ../$(@F) $@ - - $(BASE_INSTALL_LIBRARIES_HERE)/client/%.diz : $(BASE_INSTALL_LIBRARIES_HERE)/%.diz - $(MKDIR) -p $(@D) - $(RM) $@ - $(RM) $@.tmp $(basename $@)$(SHARED_LIBRARY_SUFFIX).dSYM - $(LN) -s ../$(basename $(@F))$(SHARED_LIBRARY_SUFFIX).dSYM $(basename $@)$(SHARED_LIBRARY_SUFFIX).dSYM - $(CD) $(@D) && $(ZIP) -q -y $@.tmp $(basename $(@F))$(SHARED_LIBRARY_SUFFIX).dSYM - $(RM) $(basename $@)$(SHARED_LIBRARY_SUFFIX).dSYM - $(MV) $@.tmp $@ -else - $(BASE_INSTALL_LIBRARIES_HERE)/client/%.debuginfo: $(BASE_INSTALL_LIBRARIES_HERE)/%.debuginfo - $(MKDIR) -p $(@D) - $(RM) $@ - $(LN) -s ../$(@F) $@ - - $(BASE_INSTALL_LIBRARIES_HERE)/client/%.diz: $(BASE_INSTALL_LIBRARIES_HERE)/%.diz - $(MKDIR) -p $(@D) - $(RM) $@ - $(RM) $@.tmp $(basename $@).debuginfo - $(LN) -s ../$(basename $(@F)).debuginfo $(basename $@).debuginfo - $(CD) $(@D) && $(ZIP) -q -y $@.tmp $(basename $(@F)).debuginfo - $(RM) $(basename $@).debuginfo - $(MV) $@.tmp $@ -endif - -$(BASE_INSTALL_LIBRARIES_HERE)/minimal/%$(SHARED_LIBRARY_SUFFIX): $(BASE_INSTALL_LIBRARIES_HERE)/%$(SHARED_LIBRARY_SUFFIX) - $(MKDIR) -p $(@D) - $(RM) $@ - $(LN) -s ../$(@F) $@ - -ifneq ($(OPENJDK_TARGET_OS), macosx) - $(BASE_INSTALL_LIBRARIES_HERE)/minimal/%.debuginfo: $(BASE_INSTALL_LIBRARIES_HERE)/%.debuginfo - $(MKDIR) -p $(@D) - $(RM) $@ - $(LN) -s ../$(@F) $@ - - $(BASE_INSTALL_LIBRARIES_HERE)/minimal/%.diz: $(BASE_INSTALL_LIBRARIES_HERE)/%.diz - $(MKDIR) -p $(@D) - $(RM) $@ - $(RM) $@.tmp $(basename $@).debuginfo - $(LN) -s ../$(basename $(@F)).debuginfo $(basename $@).debuginfo - $(CD) $(@D) && $(ZIP) -q -y $@.tmp $(basename $(@F)).debuginfo - $(RM) $(basename $@).debuginfo - $(MV) $@.tmp $@ -endif - -################################################################################ - -ifeq ($(OPENJDK_TARGET_OS), windows) - $(eval $(call SetupCopyFiles,BASE_COPY_LIBS_BIN, \ - SRC := $(SUPPORT_OUTPUTDIR)/modules_libs/java.base, \ - DEST := $(JDK_OUTPUTDIR)/bin, \ - FILES := $(filter-out %.lib, $(BASE_TARGETS)))) - - $(eval $(call SetupCopyFiles,BASE_COPY_LIBS_LIB, \ - SRC := $(SUPPORT_OUTPUTDIR)/modules_libs/java.base, \ - DEST := $(JDK_OUTPUTDIR)/lib, \ - FILES := $(filter %.lib, $(BASE_TARGETS)))) - -else - $(eval $(call SetupCopyFiles,BASE_COPY_LIBS, \ - SRC := $(SUPPORT_OUTPUTDIR)/modules_libs/java.base, \ - DEST := $(JDK_OUTPUTDIR)/lib, \ - FILES := $(BASE_TARGETS))) -endif - -################################################################################ - -all: $(BASE_TARGETS) $(BASE_COPY_LIBS_BIN) $(BASE_COPY_LIBS_LIB) \ - $(BASE_COPY_LIBS) - -.PHONY: default all
--- a/jdk/make/data/tzdata/VERSION Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/make/data/tzdata/VERSION Thu Oct 06 23:13:06 2016 +0000 @@ -21,4 +21,4 @@ # or visit www.oracle.com if you need additional information or have any # questions. # -tzdata2016f +tzdata2016g
--- a/jdk/make/data/tzdata/africa Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/make/data/tzdata/africa Thu Oct 06 23:13:06 2016 +0000 @@ -487,7 +487,7 @@ # http://www.libyaherald.com/2013/10/24/correction-no-time-change-tomorrow/ # # From Paul Eggert (2013-10-25): -# For now, assume they're reverting to the pre-2012 rules of permanent UTC+2. +# For now, assume they're reverting to the pre-2012 rules of permanent UT +02. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Libya 1951 only - Oct 14 2:00 1:00 S
--- a/jdk/make/data/tzdata/antarctica Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/make/data/tzdata/antarctica Thu Oct 06 23:13:06 2016 +0000 @@ -33,9 +33,7 @@ # http://www.spri.cam.ac.uk/bob/periant.htm # for information. # Unless otherwise specified, we have no time zone information. -# -# Except for the French entries, -# I made up all time zone abbreviations mentioned here; corrections welcome! + # FORMAT is '-00' and GMTOFF is 0 for locations while uninhabited. # Argentina - year-round bases @@ -52,7 +50,7 @@ # previously sealers and scientific personnel wintered # Margaret Turner reports # http://web.archive.org/web/20021204222245/http://www.dstc.qut.edu.au/DST/marg/daylight.html -# (1999-09-30) that they're UTC+5, with no DST; +# (1999-09-30) that they're UT +05, with no DST; # presumably this is when they have visitors. # # year-round bases @@ -91,23 +89,22 @@ # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Antarctica/Casey 0 - -00 1969 - 8:00 - AWST 2009 Oct 18 2:00 - # Australian Western Std Time - 11:00 - CAST 2010 Mar 5 2:00 # Casey Time - 8:00 - AWST 2011 Oct 28 2:00 - 11:00 - CAST 2012 Feb 21 17:00u - 8:00 - AWST + 8:00 - +08 2009 Oct 18 2:00 + 11:00 - +11 2010 Mar 5 2:00 + 8:00 - +08 2011 Oct 28 2:00 + 11:00 - +11 2012 Feb 21 17:00u + 8:00 - +08 Zone Antarctica/Davis 0 - -00 1957 Jan 13 - 7:00 - DAVT 1964 Nov # Davis Time + 7:00 - +07 1964 Nov 0 - -00 1969 Feb - 7:00 - DAVT 2009 Oct 18 2:00 - 5:00 - DAVT 2010 Mar 10 20:00u - 7:00 - DAVT 2011 Oct 28 2:00 - 5:00 - DAVT 2012 Feb 21 20:00u - 7:00 - DAVT + 7:00 - +07 2009 Oct 18 2:00 + 5:00 - +05 2010 Mar 10 20:00u + 7:00 - +07 2011 Oct 28 2:00 + 5:00 - +05 2012 Feb 21 20:00u + 7:00 - +07 Zone Antarctica/Mawson 0 - -00 1954 Feb 13 - 6:00 - MAWT 2009 Oct 18 2:00 # Mawson Time - 5:00 - MAWT + 6:00 - +06 2009 Oct 18 2:00 + 5:00 - +05 # References: # Casey Weather (1998-02-26) # http://www.antdiv.gov.au/aad/exop/sfo/casey/casey_aws.html @@ -161,7 +158,7 @@ # # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Indian/Kerguelen 0 - -00 1950 # Port-aux-Français - 5:00 - TFT # ISO code TF Time + 5:00 - +05 # # year-round base in the main continent # Dumont d'Urville, Île des Pétrels, -6640+14001, since 1956-11 @@ -172,9 +169,9 @@ # # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Antarctica/DumontDUrville 0 - -00 1947 - 10:00 - PMT 1952 Jan 14 # Port-Martin Time + 10:00 - +10 1952 Jan 14 0 - -00 1956 Nov - 10:00 - DDUT # Dumont-d'Urville Time + 10:00 - +10 # France & Italy - year-round base # Concordia, -750600+1232000, since 2005 @@ -200,7 +197,7 @@ # station of Japan, it's appropriate for the principal location. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Antarctica/Syowa 0 - -00 1957 Jan 29 - 3:00 - SYOT # Syowa Time + 3:00 - +03 # See: # NIPR Antarctic Research Activities (1999-08-17) # http://www.nipr.ac.jp/english/ara01.html @@ -237,17 +234,17 @@ # correct, but they should be quite close to the actual dates. # # From Paul Eggert (2014-03-21): -# The CET-switching Troll rules require zic from tzcode 2014b or later, so as +# The CET-switching Troll rules require zic from tz 2014b or later, so as # suggested by Bengt-Inge Larsson comment them out for now, and approximate # with only UTC and CEST. Uncomment them when 2014b is more prevalent. # # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -#Rule Troll 2005 max - Mar 1 1:00u 1:00 CET -Rule Troll 2005 max - Mar lastSun 1:00u 2:00 CEST -#Rule Troll 2005 max - Oct lastSun 1:00u 1:00 CET -#Rule Troll 2004 max - Nov 7 1:00u 0:00 UTC +#Rule Troll 2005 max - Mar 1 1:00u 1:00 +01 +Rule Troll 2005 max - Mar lastSun 1:00u 2:00 +02 +#Rule Troll 2005 max - Oct lastSun 1:00u 1:00 +01 +#Rule Troll 2004 max - Nov 7 1:00u 0:00 +00 # Remove the following line when uncommenting the above '#Rule' lines. -Rule Troll 2004 max - Oct lastSun 1:00u 0:00 UTC +Rule Troll 2004 max - Oct lastSun 1:00u 0:00 +00 # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Antarctica/Troll 0 - -00 2005 Feb 12 0:00 Troll %s @@ -288,10 +285,10 @@ # changes during the year and does not necessarily correspond to mean # solar noon. So the Vostok time might have been whatever the clocks # happened to be during their visit. So we still don't really know what time -# it is at Vostok. But we'll guess UTC+6. +# it is at Vostok. But we'll guess +06. # Zone Antarctica/Vostok 0 - -00 1957 Dec 16 - 6:00 - VOST # Vostok time + 6:00 - +06 # S Africa - year-round bases # Marion Island, -4653+03752 @@ -324,7 +321,7 @@ # # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Antarctica/Rothera 0 - -00 1976 Dec 1 - -3:00 - ROTT # Rothera time + -3:00 - -03 # Uruguay - year round base # Artigas, King George Island, -621104-0585107
--- a/jdk/make/data/tzdata/asia Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/make/data/tzdata/asia Thu Oct 06 23:13:06 2016 +0000 @@ -139,13 +139,11 @@ # http://www.worldtimezone.com/dst_news/dst_news_armenia03.html # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2 - 3:00 - YERT 1957 Mar # Yerevan Time - 4:00 RussiaAsia YER%sT 1991 Mar 31 2:00s - 3:00 1:00 YERST 1991 Sep 23 # independence - 3:00 RussiaAsia AM%sT 1995 Sep 24 2:00s - 4:00 - AMT 1997 - 4:00 RussiaAsia AM%sT 2012 Feb 9 - 4:00 - AMT + 3:00 - +03 1957 Mar + 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s + 3:00 RussiaAsia +03/+04 1995 Sep 24 2:00s + 4:00 - +04 1997 + 4:00 RussiaAsia +04/+05 # Azerbaijan @@ -166,13 +164,12 @@ Rule Azer 1997 2015 - Oct lastSun 5:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Baku 3:19:24 - LMT 1924 May 2 - 3:00 - BAKT 1957 Mar # Baku Time - 4:00 RussiaAsia BAK%sT 1991 Mar 31 2:00s - 3:00 1:00 BAKST 1991 Aug 30 # independence - 3:00 RussiaAsia AZ%sT 1992 Sep lastSun 2:00s - 4:00 - AZT 1996 # Azerbaijan Time - 4:00 EUAsia AZ%sT 1997 - 4:00 Azer AZ%sT + 3:00 - +03 1957 Mar + 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s + 3:00 RussiaAsia +03/+04 1992 Sep lastSun 2:00s + 4:00 - +04 1996 + 4:00 EUAsia +04/+05 1997 + 4:00 Azer +04/+05 # Bahrain # See Asia/Qatar. @@ -291,7 +288,7 @@ # Milne says 6:24:40 was the meridian of the time ball observatory at Rangoon. # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Asia/Rangoon 6:24:40 - LMT 1880 # or Yangon +Zone Asia/Yangon 6:24:40 - LMT 1880 # or Rangoon 6:24:40 - RMT 1920 # Rangoon Mean Time? 6:30 - BURT 1942 May # Burma Time 9:00 - JST 1945 May 3 @@ -406,7 +403,7 @@ # Lewiston (ME) Daily Sun (1939-05-29), p 17, said "Even the time is # different - the occupied districts going by Tokyo time, an hour # ahead of that prevailing in the rest of Shanghai." Guess that the -# Xujiahui Observatory was under French control and stuck with UT+8. +# Xujiahui Observatory was under French control and stuck with UT +08. # # In earlier versions of this file, China had many separate Zone entries, but # this was based on what were apparently incorrect data in Shanks & Pottenger. @@ -415,26 +412,26 @@ # Proposed in 1918 and theoretically in effect until 1949 (although in practice # mainly observed in coastal areas), the five zones were: # -# Changbai Time ("Long-white Time", Long-white = Heilongjiang area) UT+8.5 +# Changbai Time ("Long-white Time", Long-white = Heilongjiang area) UT +08:30 # Asia/Harbin (currently a link to Asia/Shanghai) # Heilongjiang (except Mohe county), Jilin # -# Zhongyuan Time ("Central plain Time") UT+8 +# Zhongyuan Time ("Central plain Time") UT +08 # Asia/Shanghai # most of China # This currently represents most other zones as well, # as apparently these regions have been the same since 1970. # Milne gives 8:05:43.2 for Xujiahui Observatory time; round to nearest. -# Guo says Shanghai switched to UT+8 "from the end of the 19th century". +# Guo says Shanghai switched to UT +08 "from the end of the 19th century". # -# Long-shu Time (probably due to Long and Shu being two names of that area) UT+7 +# Long-shu Time (probably due to Long and Shu being two names of the area) UT +07 # Asia/Chongqing (currently a link to Asia/Shanghai) # Guangxi, Guizhou, Hainan, Ningxia, Sichuan, Shaanxi, and Yunnan; # most of Gansu; west Inner Mongolia; west Qinghai; and the Guangdong # counties Deqing, Enping, Kaiping, Luoding, Taishan, Xinxing, # Yangchun, Yangjiang, Yu'nan, and Yunfu. # -# Xin-zang Time ("Xinjiang-Tibet Time") UT+6 +# Xin-zang Time ("Xinjiang-Tibet Time") UT +06 # Asia/Urumqi # This currently represents Kunlun Time as well, # as apparently the two regions have been the same since 1970. @@ -447,7 +444,7 @@ # Shihezi, Changji, Yanqi, Heshuo, Tuokexun, Tulufan, Shanshan, Hami, # Fukang, Kuitun, Kumukuli, Miquan, Qitai, and Turfan. # -# Kunlun Time UT+5.5 +# Kunlun Time UT +05:30 # Asia/Kashgar (currently a link to Asia/Urumqi) # West Tibet, including Pulan, Aheqi, Shufu, Shule; # West Xinjiang, including Aksu, Atushi, Yining, Hetian, Cele, Luopu, Nileke, @@ -463,7 +460,7 @@ # # On the other hand, ethnic Uyghurs, who make up about half the # population of Xinjiang, typically use "Xinjiang time" which is two -# hours behind Beijing time, or UTC +0600. The government of the Xinjiang +# hours behind Beijing time, or UT +06. The government of the Xinjiang # Uyghur Autonomous Region, (XAUR, or just Xinjiang for short) as well as # local governments such as the Ürümqi city government use both times in # publications, referring to what is popularly called Xinjiang time as @@ -519,8 +516,8 @@ # having the same time as Beijing. # From Paul Eggert (2014-06-30): -# In the early days of the PRC, Tibet was given its own time zone (UT+6) but -# this was withdrawn in 1959 and never reinstated; see Tubten Khétsun, +# In the early days of the PRC, Tibet was given its own time zone (UT +06) +# but this was withdrawn in 1959 and never reinstated; see Tubten Khétsun, # Memories of life in Lhasa under Chinese Rule, Columbia U Press, ISBN # 978-0231142861 (2008), translator's introduction by Matthew Akester, p x. # As this is before our 1970 cutoff, Tibet doesn't need a separate zone. @@ -534,12 +531,12 @@ # Republics, the Soviet Union, the Kuomintang, and the People's Republic of # China, and tracking down all these organizations' timekeeping rules would be # quite a trick. Approximate this lost history by a transition from LMT to -# XJT at the start of 1928, the year of accession of the warlord Jin Shuren, +# UT +06 at the start of 1928, the year of accession of the warlord Jin Shuren, # which happens to be the date given by Shanks & Pottenger (no doubt as a -# guess) as the transition from LMT. Ignore the usage of UT+8 before -# 1986-02-01 under the theory that the transition date to UT+8 is unknown and +# guess) as the transition from LMT. Ignore the usage of +08 before +# 1986-02-01 under the theory that the transition date to +08 is unknown and # that the sort of users who prefer Asia/Urumqi now typically ignored the -# UT+8 mandate back then. +# +08 mandate back then. # Zone NAME GMTOFF RULES FORMAT [UNTIL] # Beijing time, used throughout China; represented by Shanghai. @@ -744,7 +741,7 @@ # be found from historical government announcement database. # From Paul Eggert (2014-07-03): -# As per Yu-Cheng Chuang, say that Taiwan was at UT+9 from 1937-10-01 +# As per Yu-Cheng Chuang, say that Taiwan was at UT +09 from 1937-10-01 # until 1945-09-21 at 01:00, overriding Shanks & Pottenger. # Likewise, use Yu-Cheng Chuang's data for DST in Taiwan. @@ -858,16 +855,15 @@ # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Tbilisi 2:59:11 - LMT 1880 2:59:11 - TBMT 1924 May 2 # Tbilisi Mean Time - 3:00 - TBIT 1957 Mar # Tbilisi Time - 4:00 RussiaAsia TBI%sT 1991 Mar 31 2:00s - 3:00 1:00 TBIST 1991 Apr 9 # independence - 3:00 RussiaAsia GE%sT 1992 # Georgia Time - 3:00 E-EurAsia GE%sT 1994 Sep lastSun - 4:00 E-EurAsia GE%sT 1996 Oct lastSun - 4:00 1:00 GEST 1997 Mar lastSun - 4:00 E-EurAsia GE%sT 2004 Jun 27 - 3:00 RussiaAsia GE%sT 2005 Mar lastSun 2:00 - 4:00 - GET + 3:00 - +03 1957 Mar + 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s + 3:00 RussiaAsia +03/+04 1992 + 3:00 E-EurAsia +03/+04 1994 Sep lastSun + 4:00 E-EurAsia +04/+05 1996 Oct lastSun + 4:00 1:00 +05 1997 Mar lastSun + 4:00 E-EurAsia +04/+05 2004 Jun 27 + 3:00 RussiaAsia +03/+04 2005 Mar lastSun 2:00 + 4:00 - +04 # East Timor @@ -944,7 +940,7 @@ # These would be the earliest possible times for a change. # Régimes horaires pour le monde entier, by Henri Le Corre, (Éditions # Traditionnelles, 1987, Paris) says that Java and Madura switched -# from JST to UTC+07:30 on 1945-09-23, and gives 1944-09-01 for Jayapura +# from UT +09 to +07:30 on 1945-09-23, and gives 1944-09-01 for Jayapura # (Hollandia). For now, assume all Indonesian locations other than Jayapura # switched on 1945-09-23. # @@ -955,11 +951,11 @@ # summary published by the Time and Frequency Laboratory of the # Research Center for Calibration, Instrumentation and Metrology, # Indonesia, <http://time.kim.lipi.go.id/time-eng.php> (2006-09-29). -# The abbreviations are: +# The time zone abbreviations and UT offsets are: # -# WIB - UTC+7 - Waktu Indonesia Barat (Indonesia western time) -# WITA - UTC+8 - Waktu Indonesia Tengah (Indonesia central time) -# WIT - UTC+9 - Waktu Indonesia Timur (Indonesia eastern time) +# WIB - +07 - Waktu Indonesia Barat (Indonesia western time) +# WITA - +08 - Waktu Indonesia Tengah (Indonesia central time) +# WIT - +09 - Waktu Indonesia Timur (Indonesia eastern time) # # Zone NAME GMTOFF RULES FORMAT [UNTIL] # Java, Sumatra @@ -1848,11 +1844,11 @@ Rule Kyrgyz 1997 2004 - Oct lastSun 2:30 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2 - 5:00 - FRUT 1930 Jun 21 # Frunze Time - 6:00 RussiaAsia FRU%sT 1991 Mar 31 2:00s - 5:00 1:00 FRUST 1991 Aug 31 2:00 # independence - 5:00 Kyrgyz KG%sT 2005 Aug 12 # Kyrgyzstan Time - 6:00 - KGT + 5:00 - +05 1930 Jun 21 + 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s + 5:00 RussiaAsia +05/+06 1991 Aug 31 2:00 + 5:00 Kyrgyz +05/+06 2005 Aug 12 + 6:00 - +06 ############################################################################### @@ -1891,25 +1887,24 @@ Rule ROK 1987 1988 - May Sun>=8 2:00 1:00 D Rule ROK 1987 1988 - Oct Sun>=8 3:00 0 S -# From Paul Eggert (2014-10-30): +# From Paul Eggert (2016-08-23): # The Korean Wikipedia entry gives the following sources for UT offsets: # -# 1908: Official Journal Article No. 3994 (Edict No. 5) +# 1908: Official Journal Article No. 3994 (decree No. 5) # 1912: Governor-General of Korea Official Gazette Issue No. 367 # (Announcement No. 338) # 1954: Presidential Decree No. 876 (1954-03-17) # 1961: Law No. 676 (1961-08-07) -# 1987: Law No. 3919 (1986-12-31) # -# The Wikipedia entry also has confusing information about a change -# to UT+9 in April 1910, but then what would be the point of the later change -# to UT+9 on 1912-01-01? Omit the 1910 change for now. +# (Another source "1987: Law No. 3919 (1986-12-31)" was in the 2014-10-30 +# edition of the Korean Wikipedia entry.) # # I guessed that time zone abbreviations through 1945 followed the same # rules as discussed under Taiwan, with nominal switches from JST to KST # when the respective cities were taken over by the Allies after WWII. # -# For Pyongyang we have no information; guess no changes since World War II. +# For Pyongyang, guess no changes from World War II until 2015, as we +# have no information otherwise. # From Steffen Thorsen (2015-08-07): # According to many news sources, North Korea is going to change to @@ -2069,7 +2064,7 @@ # Bill Bonnet (2005-05-19) reports that the US Embassy in Ulaanbaatar says # there is only one time zone and that DST is observed, citing Microsoft # Windows XP as the source. Risto Nykänen (2005-05-16) reports that -# travelmongolia.org says there are two time zones (UTC+7, UTC+8) with no DST. +# travelmongolia.org says there are two time zones (UT +07, +08) with no DST. # Oscar van Vlijmen (2005-05-20) reports that the Mongolian Embassy in # Washington, DC says there are two time zones, with DST observed. # He also found @@ -2705,7 +2700,7 @@ # earlier date. # # Shanks & Pottenger also state that until 1968-05-01 Saudi Arabia had two -# time zones; the other zone, at UTC+4, was in the far eastern part of +# time zones; the other zone, at UT +04, was in the far eastern part of # the country. Ignore this, as it's before our 1970 cutoff. # # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -2974,10 +2969,10 @@ # From Shanks & Pottenger. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2 - 5:00 - DUST 1930 Jun 21 # Dushanbe Time - 6:00 RussiaAsia DUS%sT 1991 Mar 31 2:00s - 5:00 1:00 DUSST 1991 Sep 9 2:00s - 5:00 - TJT # Tajikistan Time + 5:00 - +05 1930 Jun 21 + 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s + 5:00 1:00 +05/+06 1991 Sep 9 2:00s + 5:00 - +05 # Thailand # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -2991,11 +2986,10 @@ # From Shanks & Pottenger. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Ashgabat 3:53:32 - LMT 1924 May 2 # or Ashkhabad - 4:00 - ASHT 1930 Jun 21 # Ashkhabad Time - 5:00 RussiaAsia ASH%sT 1991 Mar 31 2:00 - 4:00 RussiaAsia ASH%sT 1991 Oct 27 # independence - 4:00 RussiaAsia TM%sT 1992 Jan 19 2:00 - 5:00 - TMT + 4:00 - +04 1930 Jun 21 + 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00 + 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00 + 5:00 - +05 # United Arab Emirates # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -3007,20 +3001,18 @@ # Byalokoz 1919 says Uzbekistan was 4:27:53. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Samarkand 4:27:53 - LMT 1924 May 2 - 4:00 - SAMT 1930 Jun 21 # Samarkand Time - 5:00 - SAMT 1981 Apr 1 - 5:00 1:00 SAMST 1981 Oct 1 - 6:00 - TAST 1982 Apr 1 # Tashkent Time - 5:00 RussiaAsia SAM%sT 1991 Sep 1 # independence - 5:00 RussiaAsia UZ%sT 1992 - 5:00 - UZT + 4:00 - +04 1930 Jun 21 + 5:00 - +05 1981 Apr 1 + 5:00 1:00 +06 1981 Oct 1 + 6:00 - +06 1982 Apr 1 + 5:00 RussiaAsia +05/+06 1992 + 5:00 - +05 # Milne says Tashkent was 4:37:10.8; round to nearest. Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2 - 5:00 - TAST 1930 Jun 21 # Tashkent Time - 6:00 RussiaAsia TAS%sT 1991 Mar 31 2:00 - 5:00 RussiaAsia TAS%sT 1991 Sep 1 # independence - 5:00 RussiaAsia UZ%sT 1992 - 5:00 - UZT + 5:00 - +05 1930 Jun 21 + 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00 + 5:00 RussiaAsia +05/+06 1992 + 5:00 - +05 # Vietnam
--- a/jdk/make/data/tzdata/australasia Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/make/data/tzdata/australasia Thu Oct 06 23:13:06 2016 +0000 @@ -568,7 +568,7 @@ # Base the Bougainville entry on the Arawa-Kieta region, which appears to have # the most people even though it was devastated in the Bougainville Civil War. # -# Although Shanks gives 1942-03-15 / 1943-11-01 for JST, these dates +# Although Shanks gives 1942-03-15 / 1943-11-01 for UT +09, these dates # are apparently rough guesswork from the starts of military campaigns. # The World War II entries below are instead based on Arawa-Kieta. # The Japanese occupied Kieta in July 1942, @@ -576,8 +576,8 @@ # http://pwencycl.kgbudge.com/B/o/Bougainville.htm # and seem to have controlled it until their 1945-08-21 surrender. # -# The Autonomous Region of Bougainville plans to switch from UTC+10 to UTC+11 -# on 2014-12-28 at 02:00. They call UTC+11 "Bougainville Standard Time"; +# The Autonomous Region of Bougainville switched from UT +10 to +11 +# on 2014-12-28 at 02:00. They call +11 "Bougainville Standard Time"; # abbreviate this as BST. See: # http://www.bougainville24.com/bougainville-issues/bougainville-gets-own-timezone/ # @@ -643,7 +643,7 @@ # From Paul Eggert (2014-06-27): # The International Date Line Act 2011 # http://www.parliament.gov.ws/images/ACTS/International_Date_Line_Act__2011_-_Eng.pdf -# changed Samoa from UTC-11 to UTC+13, effective "12 o'clock midnight, on +# changed Samoa from UT -11 to +13, effective "12 o'clock midnight, on # Thursday 29th December 2011". The International Date Line was adjusted # accordingly. @@ -738,7 +738,7 @@ # 1886-1891; Baker was similar but exact dates are not known. # Inhabited by civilians 1935-1942; U.S. military bases 1943-1944; # uninhabited thereafter. -# Howland observed Hawaii Standard Time (UT-10:30) in 1937; +# Howland observed Hawaii Standard Time (UT -10:30) in 1937; # see page 206 of Elgen M. Long and Marie K. Long, # Amelia Earhart: the Mystery Solved, Simon & Schuster (2000). # So most likely Howland and Baker observed Hawaii Time from 1935 @@ -1496,7 +1496,7 @@ # Zealand time. I understand that is the time they keep locally, anyhow." # For now, assume this practice goes back to the introduction of standard time # in New Zealand, as this would make Chatham Islands time almost exactly match -# LMT back when New Zealand was at UTC+11:30; also, assume Chatham Islands did +# LMT back when New Zealand was at UT +11:30; also, assume Chatham Islands did # not observe New Zealand's prewar DST. ############################################################################### @@ -1552,7 +1552,7 @@ # For now, we assume the Ladrones switched at the same time as the Philippines; # see Asia/Manila. -# US Public Law 106-564 (2000-12-23) made UTC+10 the official standard time, +# US Public Law 106-564 (2000-12-23) made UT +10 the official standard time, # under the name "Chamorro Standard Time". There is no official abbreviation, # but Congressman Robert A. Underwood, author of the bill that became law, # wrote in a press release (2000-12-27) that he will seek the use of "ChST". @@ -1564,15 +1564,15 @@ # "I am certain, having lived there for the past decade, that 'Truk' # (now properly known as Chuuk) ... is in the time zone GMT+10." # -# Shanks & Pottenger write that Truk switched from UTC+10 to UTC+11 +# Shanks & Pottenger write that Truk switched from UT +10 to +11 # on 1978-10-01; ignore this for now. # From Paul Eggert (1999-10-29): # The Federated States of Micronesia Visitors Board writes in # The Federated States of Micronesia - Visitor Information (1999-01-26) # http://www.fsmgov.org/info/clocks.html -# that Truk and Yap are UTC+10, and Ponape and Kosrae are UTC+11. -# We don't know when Kosrae switched from UTC+12; assume January 1 for now. +# that Truk and Yap are UT +10, and Ponape and Kosrae are +11. +# We don't know when Kosrae switched from +12; assume January 1 for now. # Midway @@ -1638,11 +1638,11 @@ # ordaining - by a masterpiece of diplomatic flattery - that # the Fourth of July should be celebrated twice in that year." -# Although Shanks & Pottenger says they both switched to UTC-11:30 -# in 1911, and to UTC-11 in 1950. many earlier sources give UTC-11 +# Although Shanks & Pottenger says they both switched to UT -11:30 +# in 1911, and to -11 in 1950. many earlier sources give -11 # for American Samoa, e.g., the US National Bureau of Standards # circular "Standard Time Throughout the World", 1932. -# Assume American Samoa switched to UTC-11 in 1911, not 1950, +# Assume American Samoa switched to -11 in 1911, not 1950, # and that after 1950 they agreed until (western) Samoa skipped a # day in 2011. Assume also that the Samoas follow the US and New # Zealand's "ST"/"DT" style of daylight-saving abbreviations.
--- a/jdk/make/data/tzdata/backward Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/make/data/tzdata/backward Thu Oct 06 23:13:06 2016 +0000 @@ -59,6 +59,7 @@ Link Asia/Urumqi Asia/Kashgar Link Asia/Kathmandu Asia/Katmandu Link Asia/Macau Asia/Macao +Link Asia/Yangon Asia/Rangoon Link Asia/Ho_Chi_Minh Asia/Saigon Link Asia/Jerusalem Asia/Tel_Aviv Link Asia/Thimphu Asia/Thimbu
--- a/jdk/make/data/tzdata/etcetera Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/make/data/tzdata/etcetera Thu Oct 06 23:13:06 2016 +0000 @@ -31,6 +31,13 @@ # need now for the entries that are not on UTC are for ships at sea # that cannot use POSIX TZ settings. +# Starting with POSIX 1003.1-2001, the entries below are all +# unnecessary as settings for the TZ environment variable. E.g., +# instead of TZ='Etc/GMT+4' one can use the POSIX setting TZ='<-04>+4'. +# +# Do not use a POSIX TZ setting like TZ='GMT+4', which is four hours +# behind GMT but uses the completely misleading abbreviation "GMT". + Zone Etc/GMT 0 - GMT Zone Etc/UTC 0 - UTC Zone Etc/UCT 0 - UCT @@ -49,23 +56,13 @@ Link Etc/GMT Etc/GMT+0 Link Etc/GMT Etc/GMT0 -# We use POSIX-style signs in the Zone names and the output abbreviations, +# Be consistent with POSIX TZ settings in the Zone names, # even though this is the opposite of what many people expect. # POSIX has positive signs west of Greenwich, but many people expect # positive signs east of Greenwich. For example, TZ='Etc/GMT+4' uses -# the abbreviation "GMT+4" and corresponds to 4 hours behind UT +# the abbreviation "-04" and corresponds to 4 hours behind UT # (i.e. west of Greenwich) even though many people would expect it to # mean 4 hours ahead of UT (i.e. east of Greenwich). -# -# In the draft 5 of POSIX 1003.1-200x, the angle bracket notation allows for -# TZ='<GMT-4>+4'; if you want time zone abbreviations conforming to -# ISO 8601 you can use TZ='<-0400>+4'. Thus the commonly-expected -# offset is kept within the angle bracket (and is used for display) -# while the POSIX sign is kept outside the angle bracket (and is used -# for calculation). -# -# Do not use a TZ setting like TZ='GMT+4', which is four hours behind -# GMT but uses the completely misleading abbreviation "GMT". # Earlier incarnations of this package were not POSIX-compliant, # and had lines such as @@ -74,30 +71,31 @@ # way does a # zic -l GMT-12 # so we moved the names into the Etc subdirectory. +# Also, the time zone abbreviations are now compatible with %z. -Zone Etc/GMT-14 14 - GMT-14 # 14 hours ahead of GMT -Zone Etc/GMT-13 13 - GMT-13 -Zone Etc/GMT-12 12 - GMT-12 -Zone Etc/GMT-11 11 - GMT-11 -Zone Etc/GMT-10 10 - GMT-10 -Zone Etc/GMT-9 9 - GMT-9 -Zone Etc/GMT-8 8 - GMT-8 -Zone Etc/GMT-7 7 - GMT-7 -Zone Etc/GMT-6 6 - GMT-6 -Zone Etc/GMT-5 5 - GMT-5 -Zone Etc/GMT-4 4 - GMT-4 -Zone Etc/GMT-3 3 - GMT-3 -Zone Etc/GMT-2 2 - GMT-2 -Zone Etc/GMT-1 1 - GMT-1 -Zone Etc/GMT+1 -1 - GMT+1 -Zone Etc/GMT+2 -2 - GMT+2 -Zone Etc/GMT+3 -3 - GMT+3 -Zone Etc/GMT+4 -4 - GMT+4 -Zone Etc/GMT+5 -5 - GMT+5 -Zone Etc/GMT+6 -6 - GMT+6 -Zone Etc/GMT+7 -7 - GMT+7 -Zone Etc/GMT+8 -8 - GMT+8 -Zone Etc/GMT+9 -9 - GMT+9 -Zone Etc/GMT+10 -10 - GMT+10 -Zone Etc/GMT+11 -11 - GMT+11 -Zone Etc/GMT+12 -12 - GMT+12 +Zone Etc/GMT-14 14 - +14 +Zone Etc/GMT-13 13 - +13 +Zone Etc/GMT-12 12 - +12 +Zone Etc/GMT-11 11 - +11 +Zone Etc/GMT-10 10 - +10 +Zone Etc/GMT-9 9 - +09 +Zone Etc/GMT-8 8 - +08 +Zone Etc/GMT-7 7 - +07 +Zone Etc/GMT-6 6 - +06 +Zone Etc/GMT-5 5 - +05 +Zone Etc/GMT-4 4 - +04 +Zone Etc/GMT-3 3 - +03 +Zone Etc/GMT-2 2 - +02 +Zone Etc/GMT-1 1 - +01 +Zone Etc/GMT+1 -1 - -01 +Zone Etc/GMT+2 -2 - -02 +Zone Etc/GMT+3 -3 - -03 +Zone Etc/GMT+4 -4 - -04 +Zone Etc/GMT+5 -5 - -05 +Zone Etc/GMT+6 -6 - -06 +Zone Etc/GMT+7 -7 - -07 +Zone Etc/GMT+8 -8 - -08 +Zone Etc/GMT+9 -9 - -09 +Zone Etc/GMT+10 -10 - -10 +Zone Etc/GMT+11 -11 - -11 +Zone Etc/GMT+12 -12 - -12
--- a/jdk/make/data/tzdata/europe Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/make/data/tzdata/europe Thu Oct 06 23:13:06 2016 +0000 @@ -98,8 +98,7 @@ # 1:00 CET CEST CEMT Central Europe # 1:00:14 SET Swedish (1879-1899)* # 2:00 EET EEST Eastern Europe -# 3:00 FET Further-eastern Europe (2011-2014)* -# 3:00 MSK MSD MSM* Minsk, Moscow +# 3:00 MSK MSD Moscow # From Peter Ilieve (1994-12-04), # The original six [EU members]: Belgium, France, (West) Germany, Italy, @@ -606,16 +605,33 @@ Rule E-Eur 1981 max - Mar lastSun 0:00 1:00 S Rule E-Eur 1996 max - Oct lastSun 0:00 0 - + +# Daylight saving time for Russia and the Soviet Union +# +# The 1917-1921 decree URLs are from Alexander Belopolsky (2016-08-23). + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Russia 1917 only - Jul 1 23:00 1:00 MST # Moscow Summer Time +# +# Decree No. 142 (1917-12-22) http://istmat.info/node/28137 Rule Russia 1917 only - Dec 28 0:00 0 MMT # Moscow Mean Time +# +# Decree No. 497 (1918-05-30) http://istmat.info/node/30001 Rule Russia 1918 only - May 31 22:00 2:00 MDST # Moscow Double Summer Time Rule Russia 1918 only - Sep 16 1:00 1:00 MST +# +# Decree No. 258 (1919-05-29) http://istmat.info/node/37949 Rule Russia 1919 only - May 31 23:00 2:00 MDST -Rule Russia 1919 only - Jul 1 2:00 1:00 MSD +# +Rule Russia 1919 only - Jul 1 0:00u 1:00 MSD Rule Russia 1919 only - Aug 16 0:00 0 MSK +# +# Decree No. 63 (1921-02-03) http://istmat.info/node/45840 Rule Russia 1921 only - Feb 14 23:00 1:00 MSD -Rule Russia 1921 only - Mar 20 23:00 2:00 MSM # Midsummer +# +# Decree No. 121 (1921-03-07) http://istmat.info/node/45949 +Rule Russia 1921 only - Mar 20 23:00 2:00 +05 +# Rule Russia 1921 only - Sep 1 0:00 1:00 MSD Rule Russia 1921 only - Oct 1 0:00 0 - # Act No. 925 of the Council of Ministers of the USSR (1980-10-24): @@ -798,8 +814,6 @@ # From Alexander Bokovoy (2014-10-09): # Belarussian government decided against changing to winter time.... # http://eng.belta.by/all_news/society/Belarus-decides-against-adjusting-time-in-Russias-wake_i_76335.html -# From Paul Eggert (2014-10-08): -# Hence Belarus can share time zone abbreviations with Moscow again. # # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Minsk 1:50:16 - LMT 1880 @@ -810,8 +824,7 @@ 3:00 Russia MSK/MSD 1990 3:00 - MSK 1991 Mar 31 2:00s 2:00 Russia EE%sT 2011 Mar 27 2:00s - 3:00 - FET 2014 Oct 26 1:00s - 3:00 - MSK + 3:00 - +03 # Belgium # @@ -1319,7 +1332,7 @@ # http://www.parlament-berlin.de/pds-fraktion.nsf/727459127c8b66ee8525662300459099/defc77cb784f180ac1256c2b0030274b/$FILE/bersarint.pdf # says that Bersarin issued an order to use Moscow time on May 20. # However, Moscow did not observe daylight saving in 1945, so -# this was equivalent to CEMT (GMT+3), not GMT+4. +# this was equivalent to UT +03, not +04. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S @@ -2283,7 +2296,6 @@ # http://www.worldtimezone.com/dst_news/dst_news_russia-map-2014-07.html # From Paul Eggert (2006-03-22): -# Except for Moscow after 1919-07-01, I invented the time zone abbreviations. # Moscow time zone abbreviations after 1919-07-01, and Moscow rules after 1991, # are from Andrey A. Chernov. The rest is from Shanks & Pottenger, # except we follow Chernov's report that 1992 DST transitions were Sat @@ -2359,7 +2371,7 @@ 2:00 Poland CE%sT 1946 3:00 Russia MSK/MSD 1989 Mar 26 2:00s 2:00 Russia EE%sT 2011 Mar 27 2:00s - 3:00 - FET 2014 Oct 26 2:00s + 3:00 - +03 2014 Oct 26 2:00s 2:00 - EET @@ -2412,6 +2424,16 @@ # 78 RU-SPE Saint Petersburg # 83 RU-NEN Nenets Autonomous Okrug +# From Paul Eggert (2016-08-23): +# The Soviets switched to UT-based time in 1919. Decree No. 59 +# (1919-02-08) http://istmat.info/node/35567 established UT-based time +# zones, and Decree No. 147 (1919-03-29) http://istmat.info/node/35854 +# specified a transition date of 1919-07-01, apparently at 00:00 UT. +# No doubt only the Soviet-controlled regions switched on that date; +# later transitions to UT-based time in other parts of Russia are +# taken from what appear to be guesses by Shanks. +# (Thanks to Alexander Belopolsky for pointers to the decrees.) + # From Stepan Golosunov (2016-03-07): # 11. Regions-violators, 1981-1982. # Wikipedia refers to @@ -2453,7 +2475,7 @@ # attributes the 1982 changes to the Act of the Council of Ministers # of the USSR No. 126 from 18.02.1982. 1980-925.txt also adds # Udmurtia to the list of affected territories and lists Khatangsky -# district separately from Taymyr Autonomous Okurg. Probably erroneously. +# district separately from Taymyr Autonomous Okrug. Probably erroneously. # # The affected territories are currently listed under Europe/Moscow, # Asia/Yekaterinburg and Asia/Krasnoyarsk. @@ -2513,7 +2535,7 @@ Zone Europe/Moscow 2:30:17 - LMT 1880 2:30:17 - MMT 1916 Jul 3 # Moscow Mean Time - 2:31:19 Russia %s 1919 Jul 1 2:00 + 2:31:19 Russia %s 1919 Jul 1 0:00u 3:00 Russia %s 1921 Oct 3:00 Russia MSK/MSD 1922 Oct 2:00 - EET 1930 Jun 21 @@ -2596,22 +2618,21 @@ # The 1988 transition is from USSR act No. 5 (1988-01-04). Zone Europe/Volgograd 2:57:40 - LMT 1920 Jan 3 - 3:00 - TSAT 1925 Apr 6 # Tsaritsyn Time - 3:00 - STAT 1930 Jun 21 # Stalingrad Time - 4:00 - STAT 1961 Nov 11 - 4:00 Russia VOL%sT 1988 Mar 27 2:00s # Volgograd T - 3:00 Russia VOL%sT 1991 Mar 31 2:00s - 4:00 - VOLT 1992 Mar 29 2:00s - 3:00 Russia MSK/MSD 2011 Mar 27 2:00s - 4:00 - MSK 2014 Oct 26 2:00s - 3:00 - MSK + 3:00 - +03 1930 Jun 21 + 4:00 - +04 1961 Nov 11 + 4:00 Russia +04/+05 1988 Mar 27 2:00s + 3:00 Russia +03/+04 1991 Mar 31 2:00s + 4:00 - +04 1992 Mar 29 2:00s + 3:00 Russia +03/+04 2011 Mar 27 2:00s + 4:00 - +04 2014 Oct 26 2:00s + 3:00 - +03 # From Paul Eggert (2016-03-18): # Europe/Kirov covers: # 43 RU-KIR Kirov Oblast # The 1989 transition is from USSR act No. 227 (1989-03-14). # -Zone Europe/Kirov 3:18:48 - LMT 1919 Jul 1 2:00 +Zone Europe/Kirov 3:18:48 - LMT 1919 Jul 1 0:00u 3:00 - +03 1930 Jun 21 4:00 Russia +04/+05 1989 Mar 26 2:00s 3:00 Russia +03/+04 1991 Mar 31 2:00s @@ -2629,16 +2650,16 @@ # Byalokoz 1919 says Samara was 3:20:20. # The 1989 transition is from USSR act No. 227 (1989-03-14). -Zone Europe/Samara 3:20:20 - LMT 1919 Jul 1 2:00 - 3:00 - SAMT 1930 Jun 21 # Samara Time - 4:00 - SAMT 1935 Jan 27 - 4:00 Russia KUY%sT 1989 Mar 26 2:00s # Kuybyshev - 3:00 Russia MSK/MSD 1991 Mar 31 2:00s - 2:00 Russia EE%sT 1991 Sep 29 2:00s - 3:00 - SAMT 1991 Oct 20 3:00 - 4:00 Russia SAM%sT 2010 Mar 28 2:00s - 3:00 Russia SAM%sT 2011 Mar 27 2:00s - 4:00 - SAMT +Zone Europe/Samara 3:20:20 - LMT 1919 Jul 1 0:00u + 3:00 - +03 1930 Jun 21 + 4:00 - +04 1935 Jan 27 + 4:00 Russia +04/+05 1989 Mar 26 2:00s + 3:00 Russia +03/+04 1991 Mar 31 2:00s + 2:00 Russia +02/+03 1991 Sep 29 2:00s + 3:00 - +03 1991 Oct 20 3:00 + 4:00 Russia +04/+05 2010 Mar 28 2:00s + 3:00 Russia +03/+04 2011 Mar 27 2:00s + 4:00 - +04 # From Paul Eggert (2016-03-18): # Europe/Ulyanovsk covers: @@ -2653,7 +2674,7 @@ # From Matt Johnson (2016-03-09): # http://publication.pravo.gov.ru/Document/View/0001201603090051 -Zone Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 2:00 +Zone Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 0:00u 3:00 - +03 1930 Jun 21 4:00 Russia +04/+05 1989 Mar 26 2:00s 3:00 Russia +03/+04 1991 Mar 31 2:00s @@ -2685,12 +2706,12 @@ Zone Asia/Yekaterinburg 4:02:33 - LMT 1916 Jul 3 3:45:05 - PMT 1919 Jul 15 4:00 - 4:00 - SVET 1930 Jun 21 # Sverdlovsk Time - 5:00 Russia SVE%sT 1991 Mar 31 2:00s - 4:00 Russia SVE%sT 1992 Jan 19 2:00s - 5:00 Russia YEK%sT 2011 Mar 27 2:00s - 6:00 - YEKT 2014 Oct 26 2:00s - 5:00 - YEKT + 4:00 - +04 1930 Jun 21 + 5:00 Russia +05/+06 1991 Mar 31 2:00s + 4:00 Russia +04/+05 1992 Jan 19 2:00s + 5:00 Russia +05/+06 2011 Mar 27 2:00s + 6:00 - +06 2014 Oct 26 2:00s + 5:00 - +05 # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): @@ -2700,12 +2721,12 @@ # Byalokoz 1919 says Omsk was 4:53:30. Zone Asia/Omsk 4:53:30 - LMT 1919 Nov 14 - 5:00 - OMST 1930 Jun 21 # Omsk Time - 6:00 Russia OMS%sT 1991 Mar 31 2:00s - 5:00 Russia OMS%sT 1992 Jan 19 2:00s - 6:00 Russia OMS%sT 2011 Mar 27 2:00s - 7:00 - OMST 2014 Oct 26 2:00s - 6:00 - OMST + 5:00 - +05 1930 Jun 21 + 6:00 Russia +06/+07 1991 Mar 31 2:00s + 5:00 Russia +05/+06 1992 Jan 19 2:00s + 6:00 Russia +06/+07 2011 Mar 27 2:00s + 7:00 - +07 2014 Oct 26 2:00s + 6:00 - +06 # From Paul Eggert (2016-02-22): # Asia/Barnaul covers: @@ -2785,7 +2806,7 @@ # Note that time belts (numbered from 2 (Moscow) to 12 according to their # GMT/UTC offset and having too many exceptions like regions formally # belonging to one belt but using time from another) were replaced -# with time zones in 2011 with different numberings (there was a +# with time zones in 2011 with different numbering (there was a # 2-hour gap between second and third zones in 2011-2014). # From Stepan Golosunov (2016-04-12): @@ -2868,12 +2889,12 @@ # Byalokoz 1919 says Krasnoyarsk was 6:11:26. Zone Asia/Krasnoyarsk 6:11:26 - LMT 1920 Jan 6 - 6:00 - KRAT 1930 Jun 21 # Krasnoyarsk Time - 7:00 Russia KRA%sT 1991 Mar 31 2:00s - 6:00 Russia KRA%sT 1992 Jan 19 2:00s - 7:00 Russia KRA%sT 2011 Mar 27 2:00s - 8:00 - KRAT 2014 Oct 26 2:00s - 7:00 - KRAT + 6:00 - +06 1930 Jun 21 + 7:00 Russia +07/+08 1991 Mar 31 2:00s + 6:00 Russia +06/+07 1992 Jan 19 2:00s + 7:00 Russia +07/+08 2011 Mar 27 2:00s + 8:00 - +08 2014 Oct 26 2:00s + 7:00 - +07 # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): @@ -2890,12 +2911,12 @@ Zone Asia/Irkutsk 6:57:05 - LMT 1880 6:57:05 - IMT 1920 Jan 25 # Irkutsk Mean Time - 7:00 - IRKT 1930 Jun 21 # Irkutsk Time - 8:00 Russia IRK%sT 1991 Mar 31 2:00s - 7:00 Russia IRK%sT 1992 Jan 19 2:00s - 8:00 Russia IRK%sT 2011 Mar 27 2:00s - 9:00 - IRKT 2014 Oct 26 2:00s - 8:00 - IRKT + 7:00 - +07 1930 Jun 21 + 8:00 Russia +08/+09 1991 Mar 31 2:00s + 7:00 Russia +07/+08 1992 Jan 19 2:00s + 8:00 Russia +08/+09 2011 Mar 27 2:00s + 9:00 - +09 2014 Oct 26 2:00s + 8:00 - +08 # From Tim Parenti (2014-07-06): @@ -2912,13 +2933,13 @@ # http://publication.pravo.gov.ru/Document/View/0001201512300107 Zone Asia/Chita 7:33:52 - LMT 1919 Dec 15 - 8:00 - YAKT 1930 Jun 21 # Yakutsk Time - 9:00 Russia YAK%sT 1991 Mar 31 2:00s - 8:00 Russia YAK%sT 1992 Jan 19 2:00s - 9:00 Russia YAK%sT 2011 Mar 27 2:00s - 10:00 - YAKT 2014 Oct 26 2:00s - 8:00 - IRKT 2016 Mar 27 2:00 - 9:00 - YAKT + 8:00 - +08 1930 Jun 21 + 9:00 Russia +09/+10 1991 Mar 31 2:00s + 8:00 Russia +08/+09 1992 Jan 19 2:00s + 9:00 Russia +09/+10 2011 Mar 27 2:00s + 10:00 - +10 2014 Oct 26 2:00s + 8:00 - +08 2016 Mar 27 2:00 + 9:00 - +09 # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29): @@ -2958,12 +2979,12 @@ # Byalokoz 1919 says Yakutsk was 8:38:58. Zone Asia/Yakutsk 8:38:58 - LMT 1919 Dec 15 - 8:00 - YAKT 1930 Jun 21 # Yakutsk Time - 9:00 Russia YAK%sT 1991 Mar 31 2:00s - 8:00 Russia YAK%sT 1992 Jan 19 2:00s - 9:00 Russia YAK%sT 2011 Mar 27 2:00s - 10:00 - YAKT 2014 Oct 26 2:00s - 9:00 - YAKT + 8:00 - +08 1930 Jun 21 + 9:00 Russia +09/+10 1991 Mar 31 2:00s + 8:00 Russia +08/+09 1992 Jan 19 2:00s + 9:00 Russia +09/+10 2011 Mar 27 2:00s + 10:00 - +10 2014 Oct 26 2:00s + 9:00 - +09 # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29): @@ -2981,12 +3002,12 @@ # Go with Byalokoz. Zone Asia/Vladivostok 8:47:31 - LMT 1922 Nov 15 - 9:00 - VLAT 1930 Jun 21 # Vladivostok Time - 10:00 Russia VLA%sT 1991 Mar 31 2:00s - 9:00 Russia VLA%sT 1992 Jan 19 2:00s - 10:00 Russia VLA%sT 2011 Mar 27 2:00s - 11:00 - VLAT 2014 Oct 26 2:00s - 10:00 - VLAT + 9:00 - +09 1930 Jun 21 + 10:00 Russia +10/+11 1991 Mar 31 2:00s + 9:00 Russia +09/+10 1992 Jan 19 2:00s + 10:00 Russia +10/+11 2011 Mar 27 2:00s + 11:00 - +11 2014 Oct 26 2:00s + 10:00 - +10 # From Tim Parenti (2014-07-03): @@ -3004,14 +3025,14 @@ # This transition is no doubt wrong, but we have no better info. Zone Asia/Khandyga 9:02:13 - LMT 1919 Dec 15 - 8:00 - YAKT 1930 Jun 21 # Yakutsk Time - 9:00 Russia YAK%sT 1991 Mar 31 2:00s - 8:00 Russia YAK%sT 1992 Jan 19 2:00s - 9:00 Russia YAK%sT 2004 - 10:00 Russia VLA%sT 2011 Mar 27 2:00s - 11:00 - VLAT 2011 Sep 13 0:00s # Decree 725? - 10:00 - YAKT 2014 Oct 26 2:00s - 9:00 - YAKT + 8:00 - +08 1930 Jun 21 + 9:00 Russia +09/+10 1991 Mar 31 2:00s + 8:00 Russia +08/+09 1992 Jan 19 2:00s + 9:00 Russia +09/+10 2004 + 10:00 Russia +10/+11 2011 Mar 27 2:00s + 11:00 - +11 2011 Sep 13 0:00s # Decree 725? + 10:00 - +10 2014 Oct 26 2:00s + 9:00 - +09 # From Tim Parenti (2014-07-03): @@ -3027,15 +3048,14 @@ # The Zone name should be Asia/Yuzhno-Sakhalinsk, but that's too long. Zone Asia/Sakhalin 9:30:48 - LMT 1905 Aug 23 - 9:00 - JCST 1937 Oct 1 - 9:00 - JST 1945 Aug 25 - 11:00 Russia SAK%sT 1991 Mar 31 2:00s # Sakhalin T - 10:00 Russia SAK%sT 1992 Jan 19 2:00s - 11:00 Russia SAK%sT 1997 Mar lastSun 2:00s - 10:00 Russia SAK%sT 2011 Mar 27 2:00s - 11:00 - SAKT 2014 Oct 26 2:00s - 10:00 - SAKT 2016 Mar 27 2:00s - 11:00 - SAKT + 9:00 - +09 1945 Aug 25 + 11:00 Russia +11/+12 1991 Mar 31 2:00s # Sakhalin T + 10:00 Russia +10/+11 1992 Jan 19 2:00s + 11:00 Russia +11/+12 1997 Mar lastSun 2:00s + 10:00 Russia +10/+11 2011 Mar 27 2:00s + 11:00 - +11 2014 Oct 26 2:00s + 10:00 - +10 2016 Mar 27 2:00s + 11:00 - +11 # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29): @@ -3058,13 +3078,13 @@ # http://publication.pravo.gov.ru/Document/View/0001201604050038 Zone Asia/Magadan 10:03:12 - LMT 1924 May 2 - 10:00 - MAGT 1930 Jun 21 # Magadan Time - 11:00 Russia MAG%sT 1991 Mar 31 2:00s - 10:00 Russia MAG%sT 1992 Jan 19 2:00s - 11:00 Russia MAG%sT 2011 Mar 27 2:00s - 12:00 - MAGT 2014 Oct 26 2:00s - 10:00 - MAGT 2016 Apr 24 2:00s - 11:00 - MAGT + 10:00 - +10 1930 Jun 21 # Magadan Time + 11:00 Russia +11/+12 1991 Mar 31 2:00s + 10:00 Russia +10/+11 1992 Jan 19 2:00s + 11:00 Russia +11/+12 2011 Mar 27 2:00s + 12:00 - +12 2014 Oct 26 2:00s + 10:00 - +10 2016 Apr 24 2:00s + 11:00 - +11 # From Tim Parenti (2014-07-06): @@ -3107,17 +3127,14 @@ # in Russian.) In addition, Srednekolymsk appears to be a much older # settlement and the population of Zyryanka seems to be declining. # Go with Srednekolymsk. -# -# Since Magadan Oblast moves to UTC+10 on 2014-10-26, we cannot keep using MAGT -# as the abbreviation. Use SRET instead. Zone Asia/Srednekolymsk 10:14:52 - LMT 1924 May 2 - 10:00 - MAGT 1930 Jun 21 # Magadan Time - 11:00 Russia MAG%sT 1991 Mar 31 2:00s - 10:00 Russia MAG%sT 1992 Jan 19 2:00s - 11:00 Russia MAG%sT 2011 Mar 27 2:00s - 12:00 - MAGT 2014 Oct 26 2:00s - 11:00 - SRET # Srednekolymsk Time + 10:00 - +10 1930 Jun 21 + 11:00 Russia +11/+12 1991 Mar 31 2:00s + 10:00 Russia +10/+11 1992 Jan 19 2:00s + 11:00 Russia +11/+12 2011 Mar 27 2:00s + 12:00 - +12 2014 Oct 26 2:00s + 11:00 - +11 # From Tim Parenti (2014-07-03): @@ -3135,14 +3152,14 @@ # UTC+12 since at least then, too. Zone Asia/Ust-Nera 9:32:54 - LMT 1919 Dec 15 - 8:00 - YAKT 1930 Jun 21 # Yakutsk Time - 9:00 Russia YAKT 1981 Apr 1 - 11:00 Russia MAG%sT 1991 Mar 31 2:00s - 10:00 Russia MAG%sT 1992 Jan 19 2:00s - 11:00 Russia MAG%sT 2011 Mar 27 2:00s - 12:00 - MAGT 2011 Sep 13 0:00s # Decree 725? - 11:00 - VLAT 2014 Oct 26 2:00s - 10:00 - VLAT + 8:00 - +08 1930 Jun 21 + 9:00 Russia +09/+10 1981 Apr 1 + 11:00 Russia +11/+12 1991 Mar 31 2:00s + 10:00 Russia +10/+11 1992 Jan 19 2:00s + 11:00 Russia +11/+12 2011 Mar 27 2:00s + 12:00 - +12 2011 Sep 13 0:00s # Decree 725? + 11:00 - +11 2014 Oct 26 2:00s + 10:00 - +10 # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): @@ -3155,12 +3172,12 @@ # The Zone name should be Asia/Petropavlovsk-Kamchatski or perhaps # Asia/Petropavlovsk-Kamchatsky, but these are too long. Zone Asia/Kamchatka 10:34:36 - LMT 1922 Nov 10 - 11:00 - PETT 1930 Jun 21 # P-K Time - 12:00 Russia PET%sT 1991 Mar 31 2:00s - 11:00 Russia PET%sT 1992 Jan 19 2:00s - 12:00 Russia PET%sT 2010 Mar 28 2:00s - 11:00 Russia PET%sT 2011 Mar 27 2:00s - 12:00 - PETT + 11:00 - +11 1930 Jun 21 + 12:00 Russia +12/+13 1991 Mar 31 2:00s + 11:00 Russia +11/+12 1992 Jan 19 2:00s + 12:00 Russia +12/+13 2010 Mar 28 2:00s + 11:00 Russia +11/+12 2011 Mar 27 2:00s + 12:00 - +12 # From Tim Parenti (2014-07-03): @@ -3168,13 +3185,13 @@ # 87 RU-CHU Chukotka Autonomous Okrug Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2 - 12:00 - ANAT 1930 Jun 21 # Anadyr Time - 13:00 Russia ANA%sT 1982 Apr 1 0:00s - 12:00 Russia ANA%sT 1991 Mar 31 2:00s - 11:00 Russia ANA%sT 1992 Jan 19 2:00s - 12:00 Russia ANA%sT 2010 Mar 28 2:00s - 11:00 Russia ANA%sT 2011 Mar 27 2:00s - 12:00 - ANAT + 12:00 - +12 1930 Jun 21 + 13:00 Russia +13/+14 1982 Apr 1 0:00s + 12:00 Russia +12/+13 1991 Mar 31 2:00s + 11:00 Russia +11/+12 1992 Jan 19 2:00s + 12:00 Russia +12/+13 2010 Mar 28 2:00s + 11:00 Russia +11/+12 2011 Mar 27 2:00s + 12:00 - +12 # San Marino @@ -3495,6 +3512,14 @@ # Engineered Standard Time," said Twitter user @aysekarahasan. # http://www.bbc.com/news/world-europe-34631326 +# From Burak AYDIN (2016-09-08): +# Turkey will stay in Daylight Saving Time even in winter.... +# http://www.resmigazete.gov.tr/eskiler/2016/09/20160908-2.pdf +# +# From Paul Eggert (2016-09-07): +# The change is permanent, so this is the new standard time in Turkey. +# It takes effect today, which is not much notice. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Turkey 1916 only - May 1 0:00 1:00 S Rule Turkey 1916 only - Oct 1 0:00 0 - @@ -3558,7 +3583,7 @@ Zone Europe/Istanbul 1:55:52 - LMT 1880 1:56:56 - IMT 1910 Oct # Istanbul Mean Time? 2:00 Turkey EE%sT 1978 Oct 15 - 3:00 Turkey TR%sT 1985 Apr 20 # Turkey Time + 3:00 Turkey +03/+04 1985 Apr 20 2:00 Turkey EE%sT 2007 2:00 EU EE%sT 2011 Mar 27 1:00u 2:00 - EET 2011 Mar 28 1:00u @@ -3566,7 +3591,8 @@ 2:00 - EET 2014 Mar 31 1:00u 2:00 EU EE%sT 2015 Oct 25 1:00u 2:00 1:00 EEST 2015 Nov 8 1:00u - 2:00 EU EE%sT + 2:00 EU EE%sT 2016 Sep 7 + 3:00 - +03 Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. # Ukraine
--- a/jdk/make/data/tzdata/factory Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/make/data/tzdata/factory Thu Oct 06 23:13:06 2016 +0000 @@ -24,9 +24,10 @@ # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. -# For companies who don't want to put time zone specification in -# their installation procedures. When users run date, they'll get the message. -# Also useful for the "comp.sources" version. +# For distributors who don't want to put time zone specification in +# their installation procedures. Users that run 'date' will get the +# time zone abbreviation "-00", indicating that the actual time zone +# is unknown. # Zone NAME GMTOFF RULES FORMAT -Zone Factory 0 - "Local time zone must be set--see zic manual page" +Zone Factory 0 - -00
--- a/jdk/make/data/tzdata/leapseconds Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/make/data/tzdata/leapseconds Thu Oct 06 23:13:06 2016 +0000 @@ -79,6 +79,7 @@ Leap 2008 Dec 31 23:59:60 + S Leap 2012 Jun 30 23:59:60 + S Leap 2015 Jun 30 23:59:60 + S +Leap 2016 Dec 31 23:59:60 + S -# Updated through IERS Bulletin C51 -# File expires on: 28 December 2016 +# Updated through IERS Bulletin C52 +# File expires on: 28 June 2017
--- a/jdk/make/data/tzdata/northamerica Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/make/data/tzdata/northamerica Thu Oct 06 23:13:06 2016 +0000 @@ -436,11 +436,42 @@ # north of the Salmon River, and the towns of Burgdorf and Warren), # Nevada (except West Wendover), Oregon (except the northern 3/4 of # Malheur county), and Washington + +# From Paul Eggert (2016-08-20): +# In early February 1948, in response to California's electricity shortage, +# PG&E changed power frequency from 60 to 59.5 Hz during daylight hours, +# causing electric clocks to lose six minutes per day. (This did not change +# legal time, and is not part of the data here.) See: +# Ross SA. An energy crisis from the past: Northern California in 1948. +# Working Paper No. 8, Institute of Governmental Studies, UC Berkeley, +# 1973-11. http://escholarship.org/uc/item/8x22k30c +# +# In another measure to save electricity, DST was instituted from 1948-03-14 +# at 02:01 to 1949-01-16 at 02:00, with the governor having the option to move +# the fallback transition earlier. See pages 3-4 of: +# http://clerk.assembly.ca.gov/sites/clerk.assembly.ca.gov/files/archive/Statutes/1948/48Vol1_Chapters.pdf +# +# In response: +# +# Governor Warren received a torrent of objecting mail, and it is not too much +# to speculate that the objections to Daylight Saving Time were one important +# factor in the defeat of the Dewey-Warren Presidential ticket in California. +# -- Ross, p 25 +# +# On December 8 the governor exercised the option, setting the date to January 1 +# (LA Times 1948-12-09). The transition time was 02:00 (LA Times 1949-01-01). +# +# Despite the controversy, in 1949 California voters approved Proposition 12, +# which established DST from April's last Sunday at 01:00 until September's +# last Sunday at 02:00. This was amended by 1962's Proposition 6, which changed +# the fall-back date to October's last Sunday. See: +# http://repository.uchastings.edu/cgi/viewcontent.cgi?article=1501&context=ca_ballot_props +# http://repository.uchastings.edu/cgi/viewcontent.cgi?article=1636&context=ca_ballot_props # # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER -Rule CA 1948 only - Mar 14 2:00 1:00 D +Rule CA 1948 only - Mar 14 2:01 1:00 D Rule CA 1949 only - Jan 1 2:00 0 S -Rule CA 1950 1966 - Apr lastSun 2:00 1:00 D +Rule CA 1950 1966 - Apr lastSun 1:00 1:00 D Rule CA 1950 1961 - Sep lastSun 2:00 0 S Rule CA 1962 1966 - Oct lastSun 2:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -3304,7 +3335,7 @@ # indicating that the normal ET rules are followed. # # From Paul Eggert (2014-08-19): -# The 2014-08-13 Cabinet meeting decided to stay on UTC-4 year-round. See: +# The 2014-08-13 Cabinet meeting decided to stay on UT -04 year-round. See: # http://tcweeklynews.com/daylight-savings-time-to-be-maintained-p5353-127.htm # Model this as a switch from EST/EDT to AST ... # From Chris Walton (2014-11-04):
--- a/jdk/make/data/tzdata/southamerica Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/make/data/tzdata/southamerica Thu Oct 06 23:13:06 2016 +0000 @@ -433,9 +433,9 @@ # stuck on Summer daylight savings time even though the summer is over. # From Paul Eggert (2013-09-05): -# Perhaps San Luis operates on the legal fiction that it is at UTC-4 +# Perhaps San Luis operates on the legal fiction that it is at -04 # with perpetual summer time, but ordinary usage typically seems to -# just say it's at UTC-3; see, for example, +# just say it's at -03; see, for example, # http://es.wikipedia.org/wiki/Hora_oficial_argentina # We've documented similar situations as being plain changes to # standard time, so let's do that here too. This does not change UTC
--- a/jdk/make/data/tzdata/zone.tab Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/make/data/tzdata/zone.tab Thu Oct 06 23:13:06 2016 +0000 @@ -284,7 +284,7 @@ MH +0905+16720 Pacific/Kwajalein Kwajalein MK +4159+02126 Europe/Skopje ML +1239-00800 Africa/Bamako -MM +1647+09610 Asia/Rangoon +MM +1647+09610 Asia/Yangon MN +4755+10653 Asia/Ulaanbaatar Mongolia (most areas) MN +4801+09139 Asia/Hovd Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan MN +4804+11430 Asia/Choibalsan Dornod, Sukhbaatar
--- a/jdk/make/lib/CoreLibraries.gmk Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/make/lib/CoreLibraries.gmk Thu Oct 06 23:13:06 2016 +0000 @@ -218,7 +218,7 @@ $(call SET_SHARED_LIBRARY_ORIGIN), \ LDFLAGS_windows := -export:ZIP_Open -export:ZIP_Close -export:ZIP_FindEntry \ -export:ZIP_ReadEntry -export:ZIP_GetNextEntry \ - -export:ZIP_InflateFully -export:ZIP_CRC32, \ + -export:ZIP_InflateFully -export:ZIP_CRC32 -export:ZIP_FreeEntry, \ LIBS_unix := -ljvm -ljava $(LIBZ), \ LIBS_solaris := -lc, \ LIBS_windows := jvm.lib $(WIN_JAVA_LIB), \
--- a/jdk/make/mapfiles/libzip/mapfile-vers Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/make/mapfiles/libzip/mapfile-vers Thu Oct 06 23:13:06 2016 +0000 @@ -1,5 +1,5 @@ # -# Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -49,6 +49,7 @@ Java_java_util_zip_Inflater_setDictionary; ZIP_Close; ZIP_CRC32; + ZIP_FreeEntry; ZIP_FindEntry; ZIP_GetEntry; ZIP_GetNextEntry;
--- a/jdk/src/java.base/share/classes/java/lang/Math.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/java.base/share/classes/java/lang/Math.java Thu Oct 06 23:13:06 2016 +0000 @@ -1626,7 +1626,7 @@ * * @since 9 */ - // @HotSpotIntrinsicCandidate + @HotSpotIntrinsicCandidate public static double fma(double a, double b, double c) { /* * Infinity and NaN arithmetic is not quite the same with two @@ -1743,7 +1743,7 @@ * * @since 9 */ - // @HotSpotIntrinsicCandidate + @HotSpotIntrinsicCandidate public static float fma(float a, float b, float c) { /* * Since the double format has more than twice the precision
--- a/jdk/src/java.base/share/classes/java/lang/module/ModulePath.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/java.base/share/classes/java/lang/module/ModulePath.java Thu Oct 06 23:13:06 2016 +0000 @@ -56,6 +56,8 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipFile; +import jdk.internal.jmod.JmodFile; +import jdk.internal.jmod.JmodFile.Section; import jdk.internal.module.ConfigurableModuleFinder; import jdk.internal.perf.PerfCounter; @@ -294,11 +296,11 @@ // -- jmod files -- - private Set<String> jmodPackages(ZipFile zf) { - return zf.stream() - .filter(e -> e.getName().startsWith("classes/") && - e.getName().endsWith(".class")) - .map(e -> toPackageName(e.getName().substring(8))) + private Set<String> jmodPackages(JmodFile jf) { + return jf.stream() + .filter(e -> e.section() == Section.CLASSES) + .map(JmodFile.Entry::name) + .map(this::toPackageName) .filter(pkg -> pkg.length() > 0) // module-info .collect(Collectors.toSet()); } @@ -311,14 +313,10 @@ * @throws InvalidModuleDescriptorException */ private ModuleReference readJMod(Path file) throws IOException { - try (ZipFile zf = new ZipFile(file.toString())) { - ZipEntry ze = zf.getEntry("classes/" + MODULE_INFO); - if (ze == null) { - throw new IOException(MODULE_INFO + " is missing: " + file); - } + try (JmodFile jf = new JmodFile(file)) { ModuleDescriptor md; - try (InputStream in = zf.getInputStream(ze)) { - md = ModuleDescriptor.read(in, () -> jmodPackages(zf)); + try (InputStream in = jf.getInputStream(Section.CLASSES, MODULE_INFO)) { + md = ModuleDescriptor.read(in, () -> jmodPackages(jf)); } return ModuleReferences.newJModModule(md, file); }
--- a/jdk/src/java.base/share/classes/java/time/format/ZoneName.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/java.base/share/classes/java/time/format/ZoneName.java Thu Oct 06 23:13:06 2016 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,11 +25,8 @@ package java.time.format; import java.util.HashMap; -import java.util.HashSet; import java.util.Locale; import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; /** * A helper class to map a zone name to metazone and back to the @@ -335,6 +332,7 @@ "America/Eirunepe", "Amazon", "America/Manaus", "Africa/Nairobi", "Africa_Eastern", "Africa/Nairobi", "Asia/Yakutsk", "Yakutsk", "Asia/Yakutsk", + "Asia/Yangon", "Myanmar", "Asia/Rangoon", "America/Goose_Bay", "Atlantic", "America/Halifax", "Africa/Maseru", "Africa_Southern", "Africa/Johannesburg", "America/Swift_Current", "America_Central", "America/Chicago", @@ -770,6 +768,7 @@ "America/Indianapolis", "America/Indiana/Indianapolis", "Europe/Belfast", "Europe/London", "America/Kralendijk", "America/Curacao", + "Asia/Rangoon", "Asia/Yangon", }; private static final Map<String, String> zidToMzone = new HashMap<>();
--- a/jdk/src/java.base/share/classes/java/util/ArrayList.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/java.base/share/classes/java/util/ArrayList.java Thu Oct 06 23:13:06 2016 +0000 @@ -876,6 +876,7 @@ int lastRet = -1; // index of last element returned; -1 if no such int expectedModCount = modCount; + // prevent creating a synthetic constructor Itr() {} public boolean hasNext() {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/src/java.base/share/classes/jdk/internal/jmod/JmodFile.java Thu Oct 06 23:13:06 2016 +0000 @@ -0,0 +1,206 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package jdk.internal.jmod; + +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.stream.Stream; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; + +/** + * Helper class to read JMOD file + */ +public class JmodFile implements AutoCloseable { + // jmod magic number and version number + public static final int JMOD_MAJOR_VERSION = 0x01; + public static final int JMOD_MINOR_VERSION = 0x00; + public static final byte[] JMOD_MAGIC_NUMBER = { + 0x4A, 0x4D, /* JM */ + JMOD_MAJOR_VERSION, JMOD_MINOR_VERSION, /* version 1.0 */ + }; + + public static void checkMagic(Path file) throws IOException { + try (InputStream in = Files.newInputStream(file); + BufferedInputStream bis = new BufferedInputStream(in)) { + // validate the header + byte[] magic = new byte[4]; + bis.read(magic); + if (magic[0] != JMOD_MAGIC_NUMBER[0] || + magic[1] != JMOD_MAGIC_NUMBER[1]) { + throw new IOException("Invalid jmod file: " + file.toString()); + } + if (magic[2] > JMOD_MAJOR_VERSION || + (magic[2] == JMOD_MAJOR_VERSION && magic[3] > JMOD_MINOR_VERSION)) { + throw new IOException("Unsupported jmod version: " + + magic[2] + "." + magic[3] + " in " + file.toString()); + } + } + } + + /** + * JMOD sections + */ + public static enum Section { + NATIVE_LIBS("native"), + NATIVE_CMDS("bin"), + CLASSES("classes"), + CONFIG("conf"); + + private final String jmodDir; + private Section(String jmodDir) { + this.jmodDir = jmodDir; + } + + /** + * Returns the directory name in the JMOD file corresponding to + * this section + */ + public String jmodDir() { return jmodDir; } + + } + + /** + * JMOD file entry. + * + * Each entry corresponds to a ZipEntry whose name is: + * Section::jmodDir + '/' + name + */ + public static class Entry { + private final ZipEntry zipEntry; + private final Section section; + private final String name; + + private Entry(ZipEntry e) { + String name = e.getName(); + int i = name.indexOf('/'); + if (i <= 1) { + throw new RuntimeException("invalid jmod entry: " + name); + } + + this.zipEntry = e; + this.section = section(name); + this.name = name.substring(i+1); + } + + /** + * Returns the section of this entry. + */ + public Section section() { + return section; + } + + /** + * Returns the name of this entry. + */ + public String name() { + return name; + } + + /** + * Returns the size of this entry. + */ + public long size() { + return zipEntry.getSize(); + } + + public ZipEntry zipEntry() { + return zipEntry; + } + + @Override + public String toString() { + return section.jmodDir() + "/" + name; + } + + static Section section(String name) { + int i = name.indexOf('/'); + String s = name.substring(0, i); + switch (s) { + case "native": + return Section.NATIVE_LIBS; + case "bin": + return Section.NATIVE_CMDS; + case "classes": + return Section.CLASSES; + case "conf": + return Section.CONFIG; + default: + throw new IllegalArgumentException("invalid section: " + s); + } + } + } + + private final Path file; + private final ZipFile zipfile; + + /** + * Constructs a {@code JmodFile} from a given path. + */ + public JmodFile(Path file) throws IOException { + checkMagic(file); + this.file = file; + this.zipfile = new ZipFile(file.toFile()); + } + + /** + * Opens an {@code InputStream} for reading the named entry of the given + * section in this jmod file. + * + * @throws IOException if the named entry is not found, or I/O error + * occurs when reading it + */ + public InputStream getInputStream(Section section, String name) + throws IOException + { + + String entry = section.jmodDir() + "/" + name; + ZipEntry e = zipfile.getEntry(entry); + if (e == null) { + throw new IOException(name + " not found: " + file); + } + return zipfile.getInputStream(e); + } + + /** + * Returns a stream of non-directory entries in this jmod file. + */ + public Stream<Entry> stream() { + return zipfile.stream() + .filter(e -> !e.isDirectory()) + .map(Entry::new); + } + + @Override + public void close() throws IOException { + if (zipfile != null) { + zipfile.close(); + } + } +}
--- a/jdk/src/java.base/share/classes/jdk/internal/module/ModuleInfoExtender.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/java.base/share/classes/jdk/internal/module/ModuleInfoExtender.java Thu Oct 06 23:13:06 2016 +0000 @@ -163,6 +163,16 @@ * be discarded. */ public void write(OutputStream out) throws IOException { + // emit to the output stream + out.write(toByteArray()); + } + + /** + * Returns the bytes of the modified module-info.class. + * Once this method has been called then the Extender object should + * be discarded. + */ + public byte[] toByteArray() throws IOException { ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS + ClassWriter.COMPUTE_FRAMES); @@ -197,8 +207,7 @@ // add any attributes that didn't replace previous attributes cv.finish(); - // emit to the output stream - out.write(cw.toByteArray()); + return cw.toByteArray(); } /**
--- a/jdk/src/java.base/share/classes/module-info.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/java.base/share/classes/module-info.java Thu Oct 06 23:13:06 2016 +0000 @@ -124,6 +124,9 @@ jdk.jlink; exports jdk.internal.jimage.decompressor to jdk.jlink; + exports jdk.internal.jmod to + jdk.compiler, + jdk.jlink; exports jdk.internal.logger to java.logging; exports jdk.internal.org.objectweb.asm to
--- a/jdk/src/java.base/share/classes/sun/util/resources/TimeZoneNames.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/java.base/share/classes/sun/util/resources/TimeZoneNames.java Thu Oct 06 23:13:06 2016 +0000 @@ -188,6 +188,9 @@ String MHT[] = new String[] {"Marshall Islands Time", "MHT", "Marshall Islands Summer Time", "MHST", "Marshall Islands Time", "MHT"}; + String MMT[] = new String[] {"Myanmar Time", "MMT", + "Myanmar Summer Time", "MMST", + "Myanmar Time", "MMT"}; String MSK[] = new String[] {"Moscow Standard Time", "MSK", "Moscow Daylight Time", "MSD", "Moscow Time", "MT"}; @@ -683,9 +686,7 @@ {"Asia/Qyzylorda", new String[] {"Qyzylorda Time", "QYZT", "Qyzylorda Summer Time", "QYZST", "Qyzylorda Time", "QYZT"}}, - {"Asia/Rangoon", new String[] {"Myanmar Time", "MMT", - "Myanmar Summer Time", "MMST", - "Myanmar Time", "MMT"}}, + {"Asia/Rangoon", MMT}, {"Asia/Riyadh", ARAST}, {"Asia/Saigon", ICT}, {"Asia/Sakhalin", new String[] {"Sakhalin Time", "SAKT", @@ -718,6 +719,7 @@ "Vladivostok Summer Time", "VLAST", "Vladivostok Time", "VLAT"}}, {"Asia/Yakutsk", YAKT}, + {"Asia/Yangon", MMT}, {"Asia/Yekaterinburg", new String[] {"Yekaterinburg Time", "YEKT", "Yekaterinburg Summer Time", "YEKST", "Yekaterinburg Time", "YEKT"}},
--- a/jdk/src/java.base/share/conf/security/java.policy Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/java.base/share/conf/security/java.policy Thu Oct 06 23:13:06 2016 +0000 @@ -1,5 +1,18 @@ +// +// This system policy file grants a set of default permissions to all domains +// and can be configured to grant additional permissions to modules and other +// code sources. The code source URL scheme for modules linked into a +// run-time image is "jrt". +// +// For example, to grant permission to read the "foo" property to the module +// "com.greetings", the grant entry is: +// +// grant codeBase "jrt:/com.greetings" { +// permission java.util.PropertyPermission "foo", "read"; +// }; +// + // default permissions granted to all domains - grant { // allows anyone to listen on dynamic ports permission java.net.SocketPermission "localhost:0", "listen";
--- a/jdk/src/java.base/share/native/libzip/zip_util.c Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/java.base/share/native/libzip/zip_util.c Thu Oct 06 23:13:06 2016 +0000 @@ -1094,7 +1094,7 @@ * jzentry for each zip. This optimizes a common access pattern. */ -void +void JNICALL ZIP_FreeEntry(jzfile *jz, jzentry *ze) { jzentry *last;
--- a/jdk/src/java.base/share/native/libzip/zip_util.h Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/java.base/share/native/libzip/zip_util.h Thu Oct 06 23:13:06 2016 +0000 @@ -270,7 +270,8 @@ void ZIP_Lock(jzfile *zip); void ZIP_Unlock(jzfile *zip); jint ZIP_Read(jzfile *zip, jzentry *entry, jlong pos, void *buf, jint len); -void ZIP_FreeEntry(jzfile *zip, jzentry *ze); +void JNICALL +ZIP_FreeEntry(jzfile *zip, jzentry *ze); jlong ZIP_GetEntryDataOffset(jzfile *zip, jzentry *entry); jzentry * ZIP_GetEntry2(jzfile *zip, char *name, jint ulen, jboolean addSlash);
--- a/jdk/src/java.instrument/share/native/libinstrument/JPLISAgent.c Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/java.instrument/share/native/libinstrument/JPLISAgent.c Thu Oct 06 23:13:06 2016 +0000 @@ -790,9 +790,10 @@ pkg_name_buf[len] = '\0'; err = (*jvmti)->GetNamedModule(jvmti, loaderObject, pkg_name_buf, &moduleObject); + free((void*)pkg_name_buf); + check_phase_ret_blob(err, NULL); jplis_assert_msg(err == JVMTI_ERROR_NONE, "error in the JVMTI GetNamedModule"); - free((void*)pkg_name_buf); return moduleObject; }
--- a/jdk/src/jdk.jdwp.agent/share/native/libjdwp/invoker.c Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/jdk.jdwp.agent/share/native/libjdwp/invoker.c Thu Oct 06 23:13:06 2016 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -343,6 +343,35 @@ debugMonitorExit(invokerLock); } +/* + * Check that method is in the specified clazz or one of its super classes. + * We have to enforce this check at the JDWP layer because the JNI layer + * has different requirements. + */ +static jvmtiError check_methodClass(JNIEnv *env, jclass clazz, jmethodID method) +{ + jclass containing_class = NULL; + jvmtiError error; + + error = JVMTI_FUNC_PTR(gdata->jvmti,GetMethodDeclaringClass) + (gdata->jvmti, method, &containing_class); + if (error != JVMTI_ERROR_NONE) { + return JVMTI_ERROR_NONE; /* Bad jmethodID ? This will be handled elsewhere */ + } + + if (JNI_FUNC_PTR(env,IsSameObject)(env, clazz, containing_class)) { + return JVMTI_ERROR_NONE; + } + + // If not the same class then check that containing_class is a superclass of + // clazz (not a superinterface). + if (JNI_FUNC_PTR(env,IsAssignableFrom)(env, clazz, containing_class) && + referenceTypeTag(containing_class) != JDWP_TYPE_TAG(INTERFACE)) { + return JVMTI_ERROR_NONE; + } + return JVMTI_ERROR_INVALID_METHODID; +} + jvmtiError invoker_requestInvoke(jbyte invokeType, jbyte options, jint id, jthread thread, jclass clazz, jmethodID method, @@ -353,6 +382,13 @@ InvokeRequest *request; jvmtiError error = JVMTI_ERROR_NONE; + if (invokeType == INVOKE_STATIC) { + error = check_methodClass(env, clazz, method); + if (error != JVMTI_ERROR_NONE) { + return error; + } + } + debugMonitorEnter(invokerLock); request = threadControl_getInvokeRequest(thread); if (request != NULL) {
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/Archive.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/Archive.java Thu Oct 06 23:13:06 2016 +0000 @@ -55,6 +55,13 @@ private final Archive archive; private final String path; + /** + * Constructs an entry of the given archive + * @param archive archive + * @param path + * @param name an entry name that does not contain the module name + * @param type + */ public Entry(Archive archive, String path, String name, EntryType type) { this.archive = Objects.requireNonNull(archive); this.path = Objects.requireNonNull(path); @@ -62,25 +69,29 @@ this.type = Objects.requireNonNull(type); } - public Archive archive() { + public final Archive archive() { return archive; } - public String path() { - return path; - } - - public EntryType type() { + public final EntryType type() { return type; } - /* + /** * Returns the name of this entry. */ - public String name() { + public final String name() { return name; } + /** + * Returns the name representing a ResourcePoolEntry in the form of: + * /$MODULE/$ENTRY_NAME + */ + public final String getResourcePoolEntryName() { + return "/" + archive.moduleName() + "/" + name; + } + @Override public String toString() { return "type " + type.name() + " path " + path;
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/DirArchive.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/DirArchive.java Thu Oct 06 23:13:06 2016 +0000 @@ -50,7 +50,7 @@ FileEntry(Path path, String name) { super(DirArchive.this, getPathName(path), name, - Archive.Entry.EntryType.CLASS_OR_RESOURCE); + Archive.Entry.EntryType.CLASS_OR_RESOURCE); this.path = path; try { size = Files.size(path); @@ -124,13 +124,7 @@ return null; } String name = getPathName(p).substring(chop); - if (name.startsWith("_")) { - return null; - } log.accept(moduleName + "/" + name); - if (name.equals(MODULE_INFO)) { - name = moduleName + "/" + MODULE_INFO; - } return new FileEntry(p, name); }
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/ImageFileCreator.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/ImageFileCreator.java Thu Oct 06 23:13:06 2016 +0000 @@ -40,6 +40,7 @@ import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; + import jdk.tools.jlink.internal.Archive.Entry; import jdk.tools.jlink.internal.Archive.Entry.EntryType; import jdk.tools.jlink.internal.ResourcePoolManager.CompressedModuleData; @@ -122,10 +123,6 @@ }); } - public static boolean isClassPackage(String path) { - return path.endsWith(".class") && !path.endsWith("module-info.class"); - } - public static void recreateJimage(Path jimageFile, Set<Archive> archives, ImagePluginStack pluginSupport) @@ -265,26 +262,13 @@ return writer.getString(id); } }); + for (Archive archive : archives) { String mn = archive.moduleName(); - for (Entry entry : entriesForModule.get(mn)) { - String path; - if (entry.type() == EntryType.CLASS_OR_RESOURCE) { - // Removal of "classes/" radical. - path = entry.name(); - if (path.endsWith("module-info.class")) { - path = "/" + path; - } else { - path = "/" + mn + "/" + path; - } - } else { - // Entry.path() contains the kind of file native, conf, bin, ... - // Keep it to avoid naming conflict (eg: native/jvm.cfg and config/jvm.cfg - path = "/" + mn + "/" + entry.path(); - } - - resources.add(new ArchiveEntryResourcePoolEntry(mn, path, entry)); - } + entriesForModule.get(mn).stream() + .map(e -> new ArchiveEntryResourcePoolEntry(mn, + e.getResourcePoolEntryName(), e)) + .forEach(resources::add); } return resources; } @@ -320,6 +304,20 @@ return result.toArray(array); } + /** + * Returns the path of the resource. + */ + public static String resourceName(String path) { + Objects.requireNonNull(path); + String s = path.substring(1); + int index = s.indexOf("/"); + return s.substring(index + 1); + } + + public static String toPackage(String name) { + return toPackage(name, false); + } + private static String toPackage(String name, boolean log) { int index = name.lastIndexOf('/'); if (index > 0) {
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/JarArchive.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/JarArchive.java Thu Oct 06 23:13:06 2016 +0000 @@ -43,7 +43,7 @@ /** * An entry located in a jar file. */ - private class JarEntry extends Entry { + public class JarEntry extends Entry { private final long size; private final ZipEntry entry; @@ -70,12 +70,10 @@ } } - private static final String MODULE_INFO = "module-info.class"; - private final Path file; private final String moduleName; // currently processed ZipFile - private ZipFile zipFile; + protected ZipFile zipFile; protected JarArchive(String mn, Path file) { Objects.requireNonNull(mn); @@ -110,21 +108,7 @@ abstract String getFileName(String entryName); - private Entry toEntry(ZipEntry ze) { - String name = ze.getName(); - String fn = getFileName(name); - - if (ze.isDirectory() || fn.startsWith("_")) { - return null; - } - - EntryType rt = toEntryType(name); - - if (fn.equals(MODULE_INFO)) { - fn = moduleName + "/" + MODULE_INFO; - } - return new JarEntry(ze.getName(), fn, rt, zipFile, ze); - } + abstract Entry toEntry(ZipEntry ze); @Override public void close() throws IOException {
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/JmodArchive.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/JmodArchive.java Thu Oct 06 23:13:06 2016 +0000 @@ -25,34 +25,106 @@ package jdk.tools.jlink.internal; +import java.io.IOException; +import java.io.InputStream; +import java.io.UncheckedIOException; import java.nio.file.Path; import java.util.Objects; +import java.util.stream.Stream; + +import jdk.internal.jmod.JmodFile; import jdk.tools.jlink.internal.Archive.Entry.EntryType; /** * An Archive backed by a jmod file. */ -public class JmodArchive extends JarArchive { - +public class JmodArchive implements Archive { private static final String JMOD_EXT = ".jmod"; - private static final String MODULE_NAME = "module"; - private static final String MODULE_INFO = "module-info.class"; - private static final String CLASSES = "classes"; - private static final String NATIVE_LIBS = "native"; - private static final String NATIVE_CMDS = "bin"; - private static final String CONFIG = "conf"; + + /** + * An entry located in a jmod file. + */ + public class JmodEntry extends Entry { + private final JmodFile.Entry entry; + + JmodEntry(String path, String name, EntryType type, + JmodFile.Entry entry) { + super(JmodArchive.this, path, name, type); + this.entry = Objects.requireNonNull(entry); + } + + /** + * Returns the number of uncompressed bytes for this entry. + */ + @Override + public long size() { + return entry.size(); + } + + @Override + public InputStream stream() throws IOException { + return jmodFile.getInputStream(entry.section(), entry.name()); + } + } + + private final Path file; + private final String moduleName; + private JmodFile jmodFile; public JmodArchive(String mn, Path jmod) { - super(mn, jmod); - String filename = Objects.requireNonNull(jmod.getFileName()).toString(); + Objects.requireNonNull(mn); + Objects.requireNonNull(jmod.getFileName()); + String filename = jmod.toString(); if (!filename.endsWith(JMOD_EXT)) { throw new UnsupportedOperationException("Unsupported format: " + filename); } + this.moduleName = mn; + this.file = jmod; + } + + @Override + public String moduleName() { + return moduleName; + } + + @Override + public Path getPath() { + return file; + } + + @Override + public Stream<Entry> entries() { + ensureOpen(); + return jmodFile.stream() + .map(this::toEntry); } @Override - EntryType toEntryType(String entryName) { - String section = getSection(entryName.replace('\\', '/')); + public void open() throws IOException { + if (jmodFile != null) { + jmodFile.close(); + } + this.jmodFile = new JmodFile(file); + } + + @Override + public void close() throws IOException { + if (jmodFile != null) { + jmodFile.close(); + } + } + + private void ensureOpen() { + if (jmodFile == null) { + try { + open(); + } catch(IOException ioe){ + throw new UncheckedIOException(ioe); + } + } + } + + private EntryType toEntryType(JmodFile.Section section) { switch (section) { case CLASSES: return EntryType.CLASS_OR_RESOURCE; @@ -62,26 +134,23 @@ return EntryType.NATIVE_CMD; case CONFIG: return EntryType.CONFIG; - case MODULE_NAME: - return EntryType.MODULE_NAME; default: throw new InternalError("unexpected entry: " + section); } } - private static String getSection(String entryName) { - int i = entryName.indexOf('/'); - // Unnamed section. - String section = ""; - if (i > 0) { - section = entryName.substring(0, entryName.indexOf('/')); + private Entry toEntry(JmodFile.Entry entry) { + EntryType type = toEntryType(entry.section()); + String name = entry.name(); + String path = entry.section().jmodDir() + "/" + name; + + // Entry.path() contains the kind of file native, conf, bin, ... + // Keep it to avoid naming conflict (eg: native/jvm.cfg and config/jvm.cfg + String resourceName = name; + if (type != EntryType.CLASS_OR_RESOURCE) { + resourceName = path; } - return section; - } - @Override - String getFileName(String entryName) { - entryName = entryName.replace('\\', '/'); - return entryName.substring(entryName.indexOf('/') + 1); + return new JmodEntry(path, resourceName, type, entry); } }
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/ModularJarArchive.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/ModularJarArchive.java Thu Oct 06 23:13:06 2016 +0000 @@ -27,6 +27,8 @@ import java.nio.file.Path; import java.util.Objects; +import java.util.zip.ZipEntry; + import jdk.tools.jlink.internal.Archive.Entry.EntryType; /** @@ -35,6 +37,7 @@ public class ModularJarArchive extends JarArchive { private static final String JAR_EXT = ".jar"; + private static final String MODULE_INFO = "module-info.class"; public ModularJarArchive(String mn, Path jmod) { super(mn, jmod); @@ -50,6 +53,17 @@ } @Override + Entry toEntry(ZipEntry ze) { + if (ze.isDirectory()) { + return null; + } + + String name = ze.getName(); + EntryType type = toEntryType(name); + return new JarEntry(ze.getName(), getFileName(name), type, zipFile, ze); + } + + @Override String getFileName(String entryName) { return entryName; }
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/ResourcePoolManager.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/ResourcePoolManager.java Thu Oct 06 23:13:06 2016 +0000 @@ -27,15 +27,12 @@ import java.lang.module.ModuleDescriptor; import java.nio.ByteBuffer; import java.nio.ByteOrder; -import java.util.Collections; -import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.Map; import java.util.Objects; import java.util.Optional; import java.util.Set; -import java.util.function.Function; import java.util.stream.Stream; import jdk.internal.jimage.decompressor.CompressedResourceHeader; import jdk.tools.jlink.plugin.ResourcePool; @@ -44,7 +41,6 @@ import jdk.tools.jlink.plugin.ResourcePoolModule; import jdk.tools.jlink.plugin.ResourcePoolModuleView; import jdk.tools.jlink.plugin.PluginException; -import jdk.tools.jlink.internal.plugins.FileCopierPlugin; /** * A manager for pool of resources. @@ -100,17 +96,17 @@ @Override public Set<String> packages() { Set<String> pkgs = new HashSet<>(); - moduleContent.values().stream().filter(m -> m.type(). - equals(ResourcePoolEntry.Type.CLASS_OR_RESOURCE)).forEach(res -> { - // Module metadata only contains packages with .class files - if (ImageFileCreator.isClassPackage(res.path())) { - String[] split = ImageFileCreator.splitPath(res.path()); - String pkg = split[1]; - if (pkg != null && !pkg.isEmpty()) { - pkgs.add(pkg); + moduleContent.values().stream() + .filter(m -> m.type() == ResourcePoolEntry.Type.CLASS_OR_RESOURCE) + .forEach(res -> { + String name = ImageFileCreator.resourceName(res.path()); + if (name.endsWith(".class") && !name.endsWith("module-info.class")) { + String pkg = ImageFileCreator.toPackage(name); + if (!pkg.isEmpty()) { + pkgs.add(pkg); + } } - } - }); + }); return pkgs; }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jmod/JmodOutputStream.java Thu Oct 06 23:13:06 2016 +0000 @@ -0,0 +1,116 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package jdk.tools.jmod; + +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.UncheckedIOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +import static jdk.internal.jmod.JmodFile.*; + +/** + * Output stream to write to JMOD file + */ +class JmodOutputStream extends OutputStream implements AutoCloseable { + /** + * This method creates (or overrides, if exists) the JMOD file, + * returning the the output stream to write to the JMOD file. + */ + static JmodOutputStream newOutputStream(Path file) throws IOException { + OutputStream out = Files.newOutputStream(file); + BufferedOutputStream bos = new BufferedOutputStream(out); + return new JmodOutputStream(bos); + } + + private final ZipOutputStream zos; + private JmodOutputStream(OutputStream out) { + this.zos = new ZipOutputStream(out); + try { + out.write(JMOD_MAGIC_NUMBER); + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } + + /** + * Writes the input stream to the named entry of the given section. + */ + public void writeEntry(InputStream in, Section section, String name) + throws IOException + { + ZipEntry ze = newEntry(section, name); + zos.putNextEntry(ze); + in.transferTo(zos); + zos.closeEntry(); + } + + /** + * Writes the given bytes to the named entry of the given section. + */ + public void writeEntry(byte[] bytes, Section section, String path) + throws IOException + { + ZipEntry ze = newEntry(section, path); + zos.putNextEntry(ze); + zos.write(bytes); + zos.closeEntry(); + } + + /** + * Writes the given entry to the given input stream. + */ + public void writeEntry(InputStream in, Entry e) throws IOException { + zos.putNextEntry(e.zipEntry()); + zos.write(in.readAllBytes()); + zos.closeEntry(); + } + + private ZipEntry newEntry(Section section, String path) { + String prefix = section.jmodDir(); + String name = Paths.get(prefix, path).toString() + .replace(File.separatorChar, '/'); + return new ZipEntry(name); + } + + @Override + public void write(int b) throws IOException { + zos.write(b); + } + + @Override + public void close() throws IOException { + zos.close(); + } +} +
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jmod/JmodTask.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jmod/JmodTask.java Thu Oct 06 23:13:06 2016 +0000 @@ -25,8 +25,6 @@ package jdk.tools.jmod; -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; @@ -60,7 +58,6 @@ import java.text.MessageFormat; import java.util.ArrayDeque; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Comparator; @@ -80,15 +77,16 @@ import java.util.function.Supplier; import java.util.jar.JarEntry; import java.util.jar.JarFile; +import java.util.jar.JarOutputStream; import java.util.stream.Collectors; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; import java.util.zip.ZipEntry; import java.util.zip.ZipException; import java.util.zip.ZipFile; -import java.util.zip.ZipInputStream; -import java.util.zip.ZipOutputStream; +import jdk.internal.jmod.JmodFile; +import jdk.internal.jmod.JmodFile.Section; import jdk.internal.joptsimple.BuiltinHelpFormatter; import jdk.internal.joptsimple.NonOptionArgumentSpec; import jdk.internal.joptsimple.OptionDescriptor; @@ -250,23 +248,14 @@ } private boolean describe() throws IOException { - ZipFile zip = null; - try { - try { - zip = new ZipFile(options.jmodFile.toFile()); - } catch (IOException x) { - throw new IOException("error opening jmod file", x); + try (JmodFile jf = new JmodFile(options.jmodFile)) { + try (InputStream in = jf.getInputStream(Section.CLASSES, MODULE_INFO)) { + ModuleDescriptor md = ModuleDescriptor.read(in); + printModuleDescriptor(md); + return true; + } catch (IOException e) { + throw new CommandException("err.module.descriptor.not.found"); } - - try (InputStream in = Files.newInputStream(options.jmodFile)) { - boolean found = printModuleDescriptor(in); - if (!found) - throw new CommandException("err.module.descriptor.not.found"); - return found; - } - } finally { - if (zip != null) - zip.close(); } } @@ -278,65 +267,52 @@ private static final JavaLangModuleAccess JLMA = SharedSecrets.getJavaLangModuleAccess(); - private boolean printModuleDescriptor(InputStream in) + private void printModuleDescriptor(ModuleDescriptor md) throws IOException { - final String mi = Section.CLASSES.jmodDir() + "/" + MODULE_INFO; - try (BufferedInputStream bis = new BufferedInputStream(in); - ZipInputStream zis = new ZipInputStream(bis)) { - - ZipEntry e; - while ((e = zis.getNextEntry()) != null) { - if (e.getName().equals(mi)) { - ModuleDescriptor md = ModuleDescriptor.read(zis); - StringBuilder sb = new StringBuilder(); - sb.append("\n").append(md.toNameAndVersion()); + StringBuilder sb = new StringBuilder(); + sb.append("\n").append(md.toNameAndVersion()); - md.requires().stream() - .sorted(Comparator.comparing(Requires::name)) - .forEach(r -> { - sb.append("\n requires "); - if (!r.modifiers().isEmpty()) - sb.append(toString(r.modifiers())).append(" "); - sb.append(r.name()); - }); + md.requires().stream() + .sorted(Comparator.comparing(Requires::name)) + .forEach(r -> { + sb.append("\n requires "); + if (!r.modifiers().isEmpty()) + sb.append(toString(r.modifiers())).append(" "); + sb.append(r.name()); + }); - md.uses().stream().sorted() - .forEach(s -> sb.append("\n uses ").append(s)); + md.uses().stream().sorted() + .forEach(s -> sb.append("\n uses ").append(s)); - md.exports().stream() - .sorted(Comparator.comparing(Exports::source)) - .forEach(p -> sb.append("\n exports ").append(p)); + md.exports().stream() + .sorted(Comparator.comparing(Exports::source)) + .forEach(p -> sb.append("\n exports ").append(p)); + + md.conceals().stream().sorted() + .forEach(p -> sb.append("\n conceals ").append(p)); - md.conceals().stream().sorted() - .forEach(p -> sb.append("\n conceals ").append(p)); + md.provides().values().stream() + .sorted(Comparator.comparing(Provides::service)) + .forEach(p -> sb.append("\n provides ").append(p.service()) + .append(" with ") + .append(toString(p.providers()))); - md.provides().values().stream() - .sorted(Comparator.comparing(Provides::service)) - .forEach(p -> sb.append("\n provides ").append(p.service()) - .append(" with ") - .append(toString(p.providers()))); + md.mainClass().ifPresent(v -> sb.append("\n main-class " + v)); - md.mainClass().ifPresent(v -> sb.append("\n main-class " + v)); - - md.osName().ifPresent(v -> sb.append("\n operating-system-name " + v)); - - md.osArch().ifPresent(v -> sb.append("\n operating-system-architecture " + v)); + md.osName().ifPresent(v -> sb.append("\n operating-system-name " + v)); - md.osVersion().ifPresent(v -> sb.append("\n operating-system-version " + v)); + md.osArch().ifPresent(v -> sb.append("\n operating-system-architecture " + v)); + + md.osVersion().ifPresent(v -> sb.append("\n operating-system-version " + v)); - JLMA.hashes(md).ifPresent( - hashes -> hashes.names().stream().sorted().forEach( - mod -> sb.append("\n hashes ").append(mod).append(" ") - .append(hashes.algorithm()).append(" ") - .append(hashes.hashFor(mod)))); + JLMA.hashes(md).ifPresent( + hashes -> hashes.names().stream().sorted().forEach( + mod -> sb.append("\n hashes ").append(mod).append(" ") + .append(hashes.algorithm()).append(" ") + .append(hashes.hashFor(mod)))); - out.println(sb.toString()); - return true; - } - } - } - return false; + out.println(sb.toString()); } private boolean create() throws IOException { @@ -347,9 +323,8 @@ Path target = options.jmodFile; Path tempTarget = target.resolveSibling(target.getFileName() + ".tmp"); try { - try (OutputStream out = Files.newOutputStream(tempTarget); - BufferedOutputStream bos = new BufferedOutputStream(out)) { - jmod.write(bos); + try (JmodOutputStream jos = JmodOutputStream.newOutputStream(tempTarget)) { + jmod.write(jos); } Files.move(tempTarget, target); } catch (Exception e) { @@ -383,19 +358,16 @@ /** * Writes the jmod to the given output stream. */ - void write(OutputStream out) throws IOException { - try (ZipOutputStream zos = new ZipOutputStream(out)) { - - // module-info.class - writeModuleInfo(zos, findPackages(classpath)); + void write(JmodOutputStream out) throws IOException { + // module-info.class + writeModuleInfo(out, findPackages(classpath)); - // classes - processClasses(zos, classpath); + // classes + processClasses(out, classpath); - processSection(zos, Section.NATIVE_CMDS, cmds); - processSection(zos, Section.NATIVE_LIBS, libs); - processSection(zos, Section.CONFIG, configs); - } + processSection(out, Section.NATIVE_CMDS, cmds); + processSection(out, Section.NATIVE_LIBS, libs); + processSection(out, Section.CONFIG, configs); } /** @@ -441,7 +413,7 @@ * then the corresponding class file attributes are added to the * module-info here. */ - void writeModuleInfo(ZipOutputStream zos, Set<String> packages) + void writeModuleInfo(JmodOutputStream out, Set<String> packages) throws IOException { Supplier<InputStream> miSupplier = newModuleInfoSupplier(); @@ -492,11 +464,7 @@ } // write the (possibly extended or modified) module-info.class - String e = Section.CLASSES.jmodDir() + "/" + MODULE_INFO; - ZipEntry ze = new ZipEntry(e); - zos.putNextEntry(ze); - extender.write(zos); - zos.closeEntry(); + out.writeEntry(extender.toByteArray(), Section.CLASSES, MODULE_INFO); } } @@ -627,7 +595,7 @@ return ""; } - void processClasses(ZipOutputStream zos, List<Path> classpaths) + void processClasses(JmodOutputStream zos, List<Path> classpaths) throws IOException { if (classpaths == null) @@ -645,7 +613,7 @@ } } - void processSection(ZipOutputStream zos, Section section, List<Path> paths) + void processSection(JmodOutputStream zos, Section section, List<Path> paths) throws IOException { if (paths == null) @@ -655,11 +623,9 @@ processSection(zos, section, p); } - void processSection(ZipOutputStream zos, Section section, Path top) + void processSection(JmodOutputStream out, Section section, Path top) throws IOException { - final String prefix = section.jmodDir(); - Files.walkFileTree(top, new SimpleFileVisitor<Path>() { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) @@ -667,13 +633,19 @@ { Path relPath = top.relativize(file); if (relPath.toString().equals(MODULE_INFO) - && !Section.CLASSES.equals(section)) + && !Section.CLASSES.equals(section)) warning("warn.ignore.entry", MODULE_INFO, section); if (!relPath.toString().equals(MODULE_INFO) - && !matches(relPath, excludes)) { + && !matches(relPath, excludes)) { try (InputStream in = Files.newInputStream(file)) { - writeZipEntry(zos, in, prefix, relPath.toString()); + out.writeEntry(in, section, relPath.toString()); + } catch (IOException x) { + if (x.getMessage().contains("duplicate entry")) { + warning("warn.ignore.duplicate.entry", relPath.toString(), section); + return FileVisitResult.CONTINUE; + } + throw x; } } return FileVisitResult.CONTINUE; @@ -691,36 +663,17 @@ return false; } - void writeZipEntry(ZipOutputStream zos, InputStream in, String prefix, String other) - throws IOException - { - String name = Paths.get(prefix, other).toString() - .replace(File.separatorChar, '/'); - ZipEntry ze = new ZipEntry(name); - try { - zos.putNextEntry(ze); - in.transferTo(zos); - zos.closeEntry(); - } catch (ZipException x) { - if (x.getMessage().contains("duplicate entry")) { - warning("warn.ignore.duplicate.entry", name, prefix); - return; - } - throw x; - } - } - class JarEntryConsumer implements Consumer<JarEntry>, Predicate<JarEntry> { - final ZipOutputStream zos; + final JmodOutputStream out; final JarFile jarfile; - JarEntryConsumer(ZipOutputStream zos, JarFile jarfile) { - this.zos = zos; + JarEntryConsumer(JmodOutputStream out, JarFile jarfile) { + this.out = out; this.jarfile = jarfile; } @Override public void accept(JarEntry je) { try (InputStream in = jarfile.getInputStream(je)) { - writeZipEntry(zos, in, Section.CLASSES.jmodDir(), je.getName()); + out.writeEntry(in, Section.CLASSES, je.getName()); } catch (IOException e) { throw new UncheckedIOException(e); } @@ -947,29 +900,11 @@ { Path target = moduleNameToPath.get(name); Path tempTarget = target.resolveSibling(target.getFileName() + ".tmp"); - ZipFile zip = new ZipFile(target.toFile()); try { - try (OutputStream out = Files.newOutputStream(tempTarget); - ZipOutputStream zos = new ZipOutputStream(out)) { - zip.stream().forEach(e -> { - try { - InputStream in = zip.getInputStream(e); - if (e.getName().equals(MODULE_INFO) || - e.getName().equals(Section.CLASSES.jmodDir() + "/" + MODULE_INFO)) { - ZipEntry ze = new ZipEntry(e.getName()); - ze.setTime(System.currentTimeMillis()); - zos.putNextEntry(ze); - recordHashes(in, zos, moduleHashes); - zos.closeEntry(); - } else { - zos.putNextEntry(e); - zos.write(in.readAllBytes()); - zos.closeEntry(); - } - } catch (IOException x) { - throw new UncheckedIOException(x); - } - }); + if (target.getFileName().toString().endsWith(".jmod")) { + updateJmodFile(target, tempTarget, moduleHashes); + } else { + updateModularJar(target, tempTarget, moduleHashes); } } catch (IOException|RuntimeException e) { if (Files.exists(tempTarget)) { @@ -980,13 +915,67 @@ } } throw e; - } finally { - zip.close(); } + out.println(getMessage("module.hashes.recorded", name)); Files.move(tempTarget, target, StandardCopyOption.REPLACE_EXISTING); } + private void updateModularJar(Path target, Path tempTarget, + ModuleHashes moduleHashes) + throws IOException + { + try (JarFile jf = new JarFile(target.toFile()); + OutputStream out = Files.newOutputStream(tempTarget); + JarOutputStream jos = new JarOutputStream(out)) + { + jf.stream().forEach(e -> { + try (InputStream in = jf.getInputStream(e)) { + if (e.getName().equals(MODULE_INFO)) { + // what about module-info.class in versioned entries? + ZipEntry ze = new ZipEntry(e.getName()); + ze.setTime(System.currentTimeMillis()); + jos.putNextEntry(ze); + recordHashes(in, jos, moduleHashes); + jos.closeEntry(); + } else { + jos.putNextEntry(e); + jos.write(in.readAllBytes()); + jos.closeEntry(); + } + } catch (IOException x) { + throw new UncheckedIOException(x); + } + }); + } + } + + private void updateJmodFile(Path target, Path tempTarget, + ModuleHashes moduleHashes) + throws IOException + { + + try (JmodFile jf = new JmodFile(target); + JmodOutputStream jos = JmodOutputStream.newOutputStream(tempTarget)) + { + jf.stream().forEach(e -> { + try (InputStream in = jf.getInputStream(e.section(), e.name())) { + if (e.name().equals(MODULE_INFO)) { + // replace module-info.class + ModuleInfoExtender extender = + ModuleInfoExtender.newExtender(in); + extender.hashes(moduleHashes); + jos.writeEntry(extender.toByteArray(), e.section(), e.name()); + } else { + jos.writeEntry(in, e); + } + } catch (IOException x) { + throw new UncheckedIOException(x); + } + }); + } + } + private Path moduleToPath(String name) { ModuleReference mref = moduleFinder.find(name).orElseThrow( () -> new InternalError("Selected module " + name + " not on module path")); @@ -1001,22 +990,6 @@ } } - enum Section { - NATIVE_LIBS("native"), - NATIVE_CMDS("bin"), - CLASSES("classes"), - CONFIG("conf"), - UNKNOWN("unknown"); - - private final String jmodDir; - - Section(String jmodDir) { - this.jmodDir = jmodDir; - } - - String jmodDir() { return jmodDir; } - } - static class ClassPathConverter implements ValueConverter<Path> { static final ValueConverter<Path> INSTANCE = new ClassPathConverter();
--- a/jdk/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_de.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_de.java Thu Oct 06 23:13:06 2016 +0000 @@ -189,6 +189,9 @@ String MHT[] = new String[] {"Marshallinseln Zeit", "MHT", "Marshallinseln Sommerzeit", "MHST", "Marshallinseln Zeit", "MHT"}; + String MMT[] = new String[] {"Myanmar Zeit", "MMT", + "Myanmar Sommerzeit", "MMST", + "Myanmar Zeit", "MMT"}; String MSK[] = new String[] {"Moskauer Normalzeit", "MSK", "Moskauer Sommerzeit", "MSD", "Zeitzone f\u00FCr Moskau", "MT"}; @@ -684,9 +687,7 @@ {"Asia/Qyzylorda", new String[] {"Qyzylorda Zeit", "QYZT", "Qyzylorda Sommerzeit", "QYZST", "Qyzylorda Zeit", "QYZT"}}, - {"Asia/Rangoon", new String[] {"Myanmar Zeit", "MMT", - "Myanmar Sommerzeit", "MMST", - "Myanmar Zeit", "MMT"}}, + {"Asia/Rangoon", MMT}, {"Asia/Riyadh", ARAST}, {"Asia/Saigon", ICT}, {"Asia/Sakhalin", new String[] {"Sakhalin Zeit", "SAKT", @@ -719,6 +720,7 @@ "Wladiwostok Sommerzeit", "VLAST", "Wladiwostok Zeit", "VLAT"}}, {"Asia/Yakutsk", YAKT}, + {"Asia/Yangon", MMT}, {"Asia/Yekaterinburg", new String[] {"Jekaterinburger Zeit", "YEKT", "Jekaterinburger Sommerzeit", "YEKST", "Jekaterinburger Zeit", "YEKT"}},
--- a/jdk/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_es.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_es.java Thu Oct 06 23:13:06 2016 +0000 @@ -189,6 +189,9 @@ String MHT[] = new String[] {"Hora de las Islas Marshall", "MHT", "Hora de verano de las Islas Marshall", "MHST", "Hora de Islas Marshall", "MHT"}; + String MMT[] = new String[] {"Hora de Myanmar", "MMT", + "Hora de verano de Myanmar", "MMST", + "Hora de Myanmar", "MMT"}; String MSK[] = new String[] {"Hora est\u00e1ndar de Mosc\u00fa", "MSK", "Hora de verano de Mosc\u00fa", "MSD", "Hora de Mosc\u00FA", "MT"}; @@ -684,9 +687,7 @@ {"Asia/Qyzylorda", new String[] {"Hora de Qyzylorda", "QYZT", "Hora de verano de Qyzylorda", "QYZST", "Hora de Qyzylorda", "QYZT"}}, - {"Asia/Rangoon", new String[] {"Hora de Myanmar", "MMT", - "Hora de verano de Myanmar", "MMST", - "Hora de Myanmar", "MMT"}}, + {"Asia/Rangoon", MMT}, {"Asia/Riyadh", ARAST}, {"Asia/Saigon", ICT}, {"Asia/Sakhalin", new String[] {"Hora de Sajalin", "SAKT", @@ -719,6 +720,7 @@ "Hora de verano de Vladivostok", "VLAST", "Hora de Vladivostok", "VLAT"}}, {"Asia/Yakutsk", YAKT}, + {"Asia/Yangon", MMT}, {"Asia/Yekaterinburg", new String[] {"Hora de Ekaterinburgo", "YEKT", "Hora de verano de Ekaterinburgo", "YEKST", "Hora de Ekaterinburgo", "YEKT"}},
--- a/jdk/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_fr.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_fr.java Thu Oct 06 23:13:06 2016 +0000 @@ -189,6 +189,9 @@ String MHT[] = new String[] {"Heure des Iles Marshall", "MHT", "Heure d'\u00e9t\u00e9 des Iles Marshall", "MHST", "Heure des Iles Marshall", "MHT"}; + String MMT[] = new String[] {"Heure de Myanmar", "MMT", + "Heure d'\u00e9t\u00e9 de Myanmar", "MMST", + "Heure de Myanmar", "MMT"}; String MSK[] = new String[] {"Heure standard de Moscou", "MSK", "Heure avanc\u00e9e de Moscou", "MSD", "Moscou", "MT"}; @@ -684,9 +687,7 @@ {"Asia/Qyzylorda", new String[] {"Heure de Kyzylorda", "QYZT", "Heure d'\u00e9t\u00e9 de Kyzylorda", "QYZST", "Heure de Kyzylorda", "QYZT"}}, - {"Asia/Rangoon", new String[] {"Heure de Myanmar", "MMT", - "Heure d'\u00e9t\u00e9 de Myanmar", "MMST", - "Heure de Myanmar", "MMT"}}, + {"Asia/Rangoon", MMT}, {"Asia/Riyadh", ARAST}, {"Asia/Saigon", ICT}, {"Asia/Sakhalin", new String[] {"Heure de Sakhalin", "SAKT", @@ -719,6 +720,7 @@ "Heure d'\u00e9t\u00e9 de Vladivostok", "VLAST", "Heure de Vladivostok", "VLAT"}}, {"Asia/Yakutsk", YAKT}, + {"Asia/Yangon", MMT}, {"Asia/Yekaterinburg", new String[] {"Heure de Yekaterinburg", "YEKT", "Heure d'\u00e9t\u00e9 de Yekaterinburg", "YEKST", "Heure de Yekaterinburg", "YEKT"}},
--- a/jdk/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_it.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_it.java Thu Oct 06 23:13:06 2016 +0000 @@ -189,6 +189,9 @@ String MHT[] = new String[] {"Ora delle Isole Marshall", "MHT", "Ora estiva delle Isole Marshall", "MHST", "Ora delle Isole Marshall", "MHT"}; + String MMT[] = new String[] {"Ora della Birmania/Myanmar", "MMT", + "Ora estiva della Birmania/Myanmar", "MMST", + "Ora della Birmania/Myanmar", "MMT"}; String MSK[] = new String[] {"Ora standard di Mosca", "MSK", "Ora legale di Mosca", "MSD", "Ora Mosca", "MT"}; @@ -684,9 +687,7 @@ {"Asia/Qyzylorda", new String[] {"Ora di Qyzylorda", "QYZT", "Ora estiva di Qyzylorda", "QYZST", "Ora di Qyzylorda", "QYZT"}}, - {"Asia/Rangoon", new String[] {"Ora della Birmania/Myanmar", "MMT", - "Ora estiva della Birmania/Myanmar", "MMST", - "Ora della Birmania/Myanmar", "MMT"}}, + {"Asia/Rangoon", MMT}, {"Asia/Riyadh", ARAST}, {"Asia/Saigon", ICT}, {"Asia/Sakhalin", new String[] {"Ora di Sakhalin", "SAKT", @@ -719,6 +720,7 @@ "Ora estiva di Vladivostok", "VLAST", "Ora di Vladivostok", "VLAT"}}, {"Asia/Yakutsk", YAKT}, + {"Asia/Yangon", MMT}, {"Asia/Yekaterinburg", new String[] {"Ora di Ekaterinburg", "YEKT", "Ora estiva di Ekaterinburg", "YEKST", "Ora di Ekaterinburg", "YEKT"}},
--- a/jdk/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_ja.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_ja.java Thu Oct 06 23:13:06 2016 +0000 @@ -189,6 +189,9 @@ String MHT[] = new String[] {"\u30de\u30fc\u30b7\u30e3\u30eb\u5cf6\u6642\u9593", "MHT", "\u30de\u30fc\u30b7\u30e3\u30eb\u5cf6\u590f\u6642\u9593", "MHST", "\u30DE\u30FC\u30B7\u30E3\u30EB\u8AF8\u5CF6\u6642\u9593", "MHT"}; + String MMT[] = new String[] {"\u30df\u30e3\u30f3\u30de\u30fc\u6642\u9593", "MMT", + "\u30df\u30e3\u30f3\u30de\u30fc\u590f\u6642\u9593", "MMST", + "\u30DF\u30E3\u30F3\u30DE\u30FC\u6642\u9593", "MMT"}; String MSK[] = new String[] {"\u30e2\u30b9\u30af\u30ef\u6a19\u6e96\u6642", "MSK", "\u30e2\u30b9\u30af\u30ef\u590f\u6642\u9593", "MSD", "\u30E2\u30B9\u30AF\u30EF\u6642\u9593", "MT"}; @@ -684,9 +687,7 @@ {"Asia/Qyzylorda", new String[] {"\u30ad\u30b8\u30eb\u30aa\u30eb\u30c0\u6642\u9593", "QYZT", "\u30ad\u30b8\u30eb\u30aa\u30eb\u30c0\u590f\u6642\u9593", "QYZST", "\u30AF\u30BA\u30ED\u30EB\u30C0\u6642\u9593", "QYZT"}}, - {"Asia/Rangoon", new String[] {"\u30df\u30e3\u30f3\u30de\u30fc\u6642\u9593", "MMT", - "\u30df\u30e3\u30f3\u30de\u30fc\u590f\u6642\u9593", "MMST", - "\u30DF\u30E3\u30F3\u30DE\u30FC\u6642\u9593", "MMT"}}, + {"Asia/Rangoon", MMT}, {"Asia/Riyadh", ARAST}, {"Asia/Saigon", ICT}, {"Asia/Sakhalin", new String[] {"\u6a3a\u592a\u6642\u9593", "SAKT", @@ -719,6 +720,7 @@ "\u30a6\u30e9\u30b8\u30aa\u30b9\u30c8\u30af\u590f\u6642\u9593", "VLAST", "\u30A6\u30E9\u30B8\u30AA\u30B9\u30C8\u30AF\u6642\u9593", "VLAT"}}, {"Asia/Yakutsk", YAKT}, + {"Asia/Yangon", MMT}, {"Asia/Yekaterinburg", new String[] {"\u30a8\u30ab\u30c6\u30ea\u30f3\u30d6\u30eb\u30b0\u6642\u9593", "YEKT", "\u30a8\u30ab\u30c6\u30ea\u30f3\u30d6\u30eb\u30b0\u590f\u6642\u9593", "YEKST", "\u30A8\u30AB\u30C6\u30EA\u30F3\u30D6\u30EB\u30AF\u6642\u9593", "YEKT"}},
--- a/jdk/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_ko.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_ko.java Thu Oct 06 23:13:06 2016 +0000 @@ -189,6 +189,9 @@ String MHT[] = new String[] {"\ub9c8\uc15c\uc81c\ub3c4 \uc2dc\uac04", "MHT", "\ub9c8\uc15c\uc81c\ub3c4 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "MHST", "\uB9C8\uC15C \uC81C\uB3C4 \uD45C\uC900\uC2DC", "MHT"}; + String MMT[] = new String[] {"\ubbf8\uc580\ub9c8 \uc2dc\uac04", "MMT", + "\ubbf8\uc580\ub9c8 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "MMST", + "\uBBF8\uC580\uB9C8 \uD45C\uC900\uC2DC", "MMT"}; String MSK[] = new String[] {"\ubaa8\uc2a4\ud06c\ubc14 \ud45c\uc900\uc2dc", "MSK", "\ubaa8\uc2a4\ud06c\ubc14 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "MSD", "\uBAA8\uC2A4\uD06C\uBC14 \uD45C\uC900\uC2DC", "MT"}; @@ -684,9 +687,7 @@ {"Asia/Qyzylorda", new String[] {"Qyzylorda \ud45c\uc900\uc2dc", "QYZT", "Qyzylorda \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "QYZST", "\uD0A4\uC9C8\uB85C\uB974\uB2E4 \uD45C\uC900\uC2DC", "QYZT"}}, - {"Asia/Rangoon", new String[] {"\ubbf8\uc580\ub9c8 \uc2dc\uac04", "MMT", - "\ubbf8\uc580\ub9c8 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "MMST", - "\uBBF8\uC580\uB9C8 \uD45C\uC900\uC2DC", "MMT"}}, + {"Asia/Rangoon", MMT}, {"Asia/Riyadh", ARAST}, {"Asia/Saigon", ICT}, {"Asia/Sakhalin", new String[] {"\uc0ac\ud560\ub9b0 \uc2dc\uac04", "SAKT", @@ -719,6 +720,7 @@ "\ube14\ub77c\ub514\ubcf4\uc2a4\ud1a1 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "VLAST", "\uBE14\uB77C\uB514\uBCF4\uC2A4\uD1A1 \uD45C\uC900\uC2DC", "VLAT"}}, {"Asia/Yakutsk", YAKT}, + {"Asia/Yangon", MMT}, {"Asia/Yekaterinburg", new String[] {"\uc608\uce74\ud14c\ub9b0\ubc84\uadf8 \uc2dc\uac04", "YEKT", "\uc608\uce74\ud14c\ub9b0\ubc84\uadf8 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "YEKST", "\uC608\uCE74\uD14C\uB9B0\uBD80\uB974\uD06C \uD45C\uC900\uC2DC", "YEKT"}},
--- a/jdk/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_pt_BR.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_pt_BR.java Thu Oct 06 23:13:06 2016 +0000 @@ -189,6 +189,9 @@ String MSK[] = new String[] {"Fuso hor\u00e1rio padr\u00e3o de Moscou", "MSK", "Hor\u00e1rio de luz natural de Moscou", "MSD", "Hor\u00E1rio de Moscou", "MT"}; + String MMT[] = new String[] {"Fuso hor\u00e1rio de Mianmar", "MMT", + "Fuso hor\u00e1rio de ver\u00e3o de Mianmar", "MMST", + "Hor\u00E1rio de Mianmar", "MMT"}; String MST[] = new String[] {"Fuso hor\u00e1rio padr\u00e3o das montanhas", "MST", "Hor\u00e1rio de luz natural das montanhas", "MDT", "Hor\u00E1rio das Montanhas Rochosas", "MT"}; @@ -684,9 +687,7 @@ {"Asia/Qyzylorda", new String[] {"Fuso hor\u00e1rio de Kizil-Orda", "QYZT", "Fuso hor\u00e1rio de ver\u00e3o de Kizil-Orda", "QYZST", "Hor\u00E1rio de Qyzylorda", "QYZT"}}, - {"Asia/Rangoon", new String[] {"Fuso hor\u00e1rio de Mianmar", "MMT", - "Fuso hor\u00e1rio de ver\u00e3o de Mianmar", "MMST", - "Hor\u00E1rio de Mianmar", "MMT"}}, + {"Asia/Rangoon", MMT}, {"Asia/Riyadh", ARAST}, {"Asia/Saigon", ICT}, {"Asia/Sakhalin", new String[] {"Fuso hor\u00e1rio de Sakhalina", "SAKT", @@ -719,6 +720,7 @@ "Fuso hor\u00e1rio de ver\u00e3o de Vladivostok", "VLAST", "Hor\u00E1rio de Vladivostok", "VLAT"}}, {"Asia/Yakutsk", YAKT}, + {"Asia/Yangon", MMT}, {"Asia/Yekaterinburg", new String[] {"Fuso hor\u00e1rio de Yekaterinburgo", "YEKT", "Fuso hor\u00e1rio de ver\u00e3o de Yekaterinburgo", "YEKST", "Hor\u00E1rio de Yekaterinburg", "YEKT"}},
--- a/jdk/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_sv.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_sv.java Thu Oct 06 23:13:06 2016 +0000 @@ -189,6 +189,9 @@ String MHT[] = new String[] {"Marshall\u00f6arna, normaltid", "MHT", "Marshall\u00f6arna, sommartid", "MHST", "Marshall\u00F6arna-tid", "MHT"}; + String MMT[] = new String[] {"Myanmar, normaltid", "MMT", + "Myanmar, sommartid", "MMST", + "Myanmar-tid", "MMT"}; String MSK[] = new String[] {"Moskva, normaltid", "MSK", "Moskva, sommartid", "MSD", "Moskvas tid", "MT"}; @@ -684,9 +687,7 @@ {"Asia/Qyzylorda", new String[] {"Qyzylorda, normaltid", "QYZT", "Qyzylorda, sommartid", "QYZST", "Qyzylorda-tid", "QYZT"}}, - {"Asia/Rangoon", new String[] {"Myanmar, normaltid", "MMT", - "Myanmar, sommartid", "MMST", - "Myanmar-tid", "MMT"}}, + {"Asia/Rangoon", MMT}, {"Asia/Riyadh", ARAST}, {"Asia/Saigon", ICT}, {"Asia/Sakhalin", new String[] {"Sakhalin, normaltid", "SAKT", @@ -719,6 +720,7 @@ "Vladivostok, sommartid", "VLAST", "Vladivostok-tid", "VLAT"}}, {"Asia/Yakutsk", YAKT}, + {"Asia/Yangon", MMT}, {"Asia/Yekaterinburg", new String[] {"Jekaterinburg, normaltid", "YEKT", "Jekaterinburg, sommartid", "YEKST", "Jekaterinburg-tid", "YEKT"}},
--- a/jdk/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_zh_CN.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_zh_CN.java Thu Oct 06 23:13:06 2016 +0000 @@ -189,6 +189,9 @@ String MHT[] = new String[] {"\u9a6c\u7ecd\u5c14\u7fa4\u5c9b\u65f6\u95f4", "MHT", "\u9a6c\u7ecd\u5c14\u7fa4\u5c9b\u590f\u4ee4\u65f6", "MHST", "\u9A6C\u7ECD\u5C14\u7FA4\u5C9B\u65F6\u95F4", "MHT"}; + String MMT[] = new String[] {"\u7f05\u7538\u65f6\u95f4", "MMT", + "\u7f05\u7538\u590f\u4ee4\u65f6", "MMST", + "\u7F05\u7538\u65F6\u95F4", "MMT"}; String MSK[] = new String[] {"\u83ab\u65af\u79d1\u6807\u51c6\u65f6\u95f4", "MSK", "\u83ab\u65af\u79d1\u590f\u4ee4\u65f6", "MSD", "\u83AB\u65AF\u79D1\u65F6\u95F4", "MT"}; @@ -684,9 +687,7 @@ {"Asia/Qyzylorda", new String[] {"Qyzylorda \u65f6\u95f4", "QYZT", "Qyzylorda \u590f\u4ee4\u65f6", "QYZST", "Qyzylorda \u65F6\u95F4", "QYZT"}}, - {"Asia/Rangoon", new String[] {"\u7f05\u7538\u65f6\u95f4", "MMT", - "\u7f05\u7538\u590f\u4ee4\u65f6", "MMST", - "\u7F05\u7538\u65F6\u95F4", "MMT"}}, + {"Asia/Rangoon", MMT}, {"Asia/Riyadh", ARAST}, {"Asia/Saigon", ICT}, {"Asia/Sakhalin", new String[] {"\u5e93\u9875\u5c9b\u65f6\u95f4", "SAKT", @@ -719,6 +720,7 @@ "\u6d77\u53c2\u5d34\u590f\u4ee4\u65f6", "VLAST", "\u6D77\u53C2\u5D34\u65F6\u95F4", "VLAT"}}, {"Asia/Yakutsk", YAKT}, + {"Asia/Yangon", MMT}, {"Asia/Yekaterinburg", new String[] {"Yekaterinburg \u65f6\u95f4", "YEKT", "Yekaterinburg \u590f\u4ee4\u65f6", "YEKST", "Yekaterinburg \u65F6\u95F4", "YEKT"}},
--- a/jdk/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_zh_TW.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_zh_TW.java Thu Oct 06 23:13:06 2016 +0000 @@ -189,6 +189,9 @@ String MHT[] = new String[] {"\u99ac\u7d39\u723e\u7fa4\u5cf6\u6642\u9593", "MHT", "\u99ac\u7d39\u723e\u7fa4\u5cf6\u590f\u4ee4\u6642\u9593", "MHST", "\u99AC\u7D39\u723E\u7FA4\u5CF6\u6642\u9593", "MHT"}; + String MMT[] = new String[] {"\u7dec\u7538\u6642\u9593", "MMT", + "\u7dec\u7538\u590f\u4ee4\u6642\u9593", "MMST", + "\u7DEC\u7538\u6642\u9593", "MMT"}; String MSK[] = new String[] {"\u83ab\u65af\u79d1\u6a19\u6e96\u6642\u9593", "MSK", "\u83ab\u65af\u79d1\u65e5\u5149\u7bc0\u7d04\u6642\u9593", "MSD", "\u83AB\u65AF\u79D1\u6642\u9593", "MT"}; @@ -684,9 +687,7 @@ {"Asia/Qyzylorda", new String[] {"Qyzylorda \u6642\u9593", "QYZT", "Qyzylorda \u590f\u4ee4\u6642\u9593", "QYZST", "\u514B\u5B5C\u6D1B\u723E\u9054\u6642\u9593", "QYZT"}}, - {"Asia/Rangoon", new String[] {"\u7dec\u7538\u6642\u9593", "MMT", - "\u7dec\u7538\u590f\u4ee4\u6642\u9593", "MMST", - "\u7DEC\u7538\u6642\u9593", "MMT"}}, + {"Asia/Rangoon", MMT}, {"Asia/Riyadh", ARAST}, {"Asia/Saigon", ICT}, {"Asia/Sakhalin", new String[] {"\u5eab\u9801\u5cf6\u6642\u9593", "SAKT", @@ -721,6 +722,7 @@ "\u6d77\u53c3\u5d34\u590f\u4ee4\u6642\u9593", "VLAST", "\u6D77\u53C3\u5D34\u6642\u9593", "VLAT"}}, {"Asia/Yakutsk", YAKT}, + {"Asia/Yangon", MMT}, {"Asia/Yekaterinburg", new String[] {"Yekaterinburg \u6642\u9593", "YEKT", "Yekaterinburg \u590f\u4ee4\u6642\u9593", "YEKST", "\u8449\u5361\u6377\u7433\u5821\u6642\u9593", "YEKT"}},
--- a/jdk/test/ProblemList.txt Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/ProblemList.txt Thu Oct 06 23:13:06 2016 +0000 @@ -134,8 +134,6 @@ java/lang/instrument/BootClassPath/BootClassPathTest.sh 8072130 macosx-all -java/lang/instrument/DaemonThread/TestDaemonThread.java 8161225 generic-all - java/lang/instrument/DaemonThread/TestDaemonThread.java 8167001 generic-all java/lang/management/MemoryMXBean/Pending.java 8158837 generic-all
--- a/jdk/test/com/sun/crypto/provider/Cipher/PBE/TestCipherPBECons.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/com/sun/crypto/provider/Cipher/PBE/TestCipherPBECons.java Thu Oct 06 23:13:06 2016 +0000 @@ -36,7 +36,6 @@ * @author Yun Ke * @author Bill Situ * @author Yu-Ching (Valerie) PENG - * @run main TestCipherKeyWrapperPBEKey */ public class TestCipherPBECons {
--- a/jdk/test/com/sun/jdi/InterfaceMethodsTest.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/com/sun/jdi/InterfaceMethodsTest.java Thu Oct 06 23:13:06 2016 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -197,14 +197,18 @@ // invoke interface static method A testInvokePos(ifaceClass, null, "staticMethodA", "()I", vm().mirrorOf(RESULT_A)); - // try to invoke static method A on the instance - testInvokePos(ifaceClass, ref, "staticMethodA", "()I", vm().mirrorOf(RESULT_A)); + // invoking static method A on the instance fails because static method A is + // not inherited by TargetClass. + testInvokeNeg(ifaceClass, ref, "staticMethodA", "()I", vm().mirrorOf(RESULT_A), + "Invalid MethodID"); // invoke interface static method B testInvokePos(ifaceClass, null, "staticMethodB", "()I", vm().mirrorOf(RESULT_A)); - // try to invoke static method B on the instance - testInvokePos(ifaceClass, ref, "staticMethodB", "()I", vm().mirrorOf(RESULT_A)); + // invoking static method B on the instance fails because static method B is + // not inherited by TargetClass. + testInvokeNeg(ifaceClass, ref, "staticMethodB", "()I", vm().mirrorOf(RESULT_A), + "Invalid MethodID"); // try to invoke a virtual method testInvokePos(ifaceClass, ref, "implementedMethod", "()I", vm().mirrorOf(RESULT_A), true); @@ -239,21 +243,25 @@ testInvokeNeg(ifaceClass, null, "staticMethodA", "()I", vm().mirrorOf(RESULT_A), "Static interface methods are not inheritable"); - // however it is possible to call "staticMethodA" on the actual instance + // "staticMethodA" is not inherited by InterfaceB even from an actual instance testInvokeNeg(ifaceClass, ref, "staticMethodA", "()I", vm().mirrorOf(RESULT_A), "Static interface methods are not inheritable"); - // "staticMethodB" is overridden in InterfaceB + // "staticMethodB" is re-defined in InterfaceB testInvokePos(ifaceClass, null, "staticMethodB", "()I", vm().mirrorOf(RESULT_B)); - // the instance invokes the overriden form of "staticMethodB" from InterfaceB - testInvokePos(ifaceClass, ref, "staticMethodB", "()I", vm().mirrorOf(RESULT_B)); + // the instance fails to invoke the re-defined form of "staticMethodB" from + // InterfaceB because staticMethodB is not inherited by TargetClass + testInvokeNeg(ifaceClass, ref, "staticMethodB", "()I", vm().mirrorOf(RESULT_B), + "Invalid MethodID"); // "staticMethodC" is present only in InterfaceB testInvokePos(ifaceClass, null, "staticMethodC", "()I", vm().mirrorOf(RESULT_B)); - // "staticMethodC" should be reachable from the instance too - testInvokePos(ifaceClass, ref, "staticMethodC", "()I", vm().mirrorOf(RESULT_B)); + // "staticMethodC" is not reachable from the instance because staticMethodC + // is not inherited by TargetClass. + testInvokeNeg(ifaceClass, ref, "staticMethodC", "()I", vm().mirrorOf(RESULT_B), + "Invalid MethodID"); } private void testImplementationClass(ReferenceType targetClass, ObjectReference thisObject) {
--- a/jdk/test/java/lang/Math/FusedMultiplyAddTests.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/java/lang/Math/FusedMultiplyAddTests.java Thu Oct 06 23:13:06 2016 +0000 @@ -221,6 +221,9 @@ {Double.MIN_VALUE, -0.0, +0.0, +0.0}, + + {1.0+Math.ulp(1.0), 1.0+Math.ulp(1.0), -1.0-2.0*Math.ulp(1.0), + Math.ulp(1.0)*Math.ulp(1.0)}, }; for (double[] testCase: testCases) @@ -344,6 +347,9 @@ {Float.MAX_VALUE, 2.0f, 1.0f, InfinityF}, + + {1.0f+Math.ulp(1.0f), 1.0f+Math.ulp(1.0f), -1.0f-2.0f*Math.ulp(1.0f), + Math.ulp(1.0f)*Math.ulp(1.0f)}, }; for (float[] testCase: testCases)
--- a/jdk/test/java/lang/instrument/DaemonThread/TestDaemonThreadLauncher.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/java/lang/instrument/DaemonThread/TestDaemonThreadLauncher.java Thu Oct 06 23:13:06 2016 +0000 @@ -1,6 +1,6 @@ /* * Copyright 2014 Goldman Sachs. - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,6 +32,7 @@ ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-javaagent:DummyAgent.jar", "TestDaemonThread", "."); OutputAnalyzer analyzer = ProcessTools.executeProcess(pb); analyzer.shouldNotContain("ASSERTION FAILED"); + analyzer.shouldHaveExitValue(0); } } }
--- a/jdk/test/java/net/httpclient/http2/ErrorTest.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/java/net/httpclient/http2/ErrorTest.java Thu Oct 06 23:13:06 2016 +0000 @@ -28,6 +28,7 @@ * @library /lib/testlibrary * @build jdk.testlibrary.SimpleSSLContext * @modules java.httpclient + * java.security.jgss * @compile/module=java.httpclient java/net/http/BodyOutputStream.java * @compile/module=java.httpclient java/net/http/BodyInputStream.java * @compile/module=java.httpclient java/net/http/EchoHandler.java @@ -41,18 +42,21 @@ * @summary check exception thrown when bad TLS parameters selected */ -import java.io.*; -import java.net.*; -import java.net.http.*; -import static java.net.http.HttpClient.Version.HTTP_2; -import javax.net.ssl.*; -import java.nio.file.*; -import java.util.concurrent.*; +import java.io.IOException; +import java.net.URI; +import java.net.http.EchoHandler; +import java.net.http.HttpClient; +import java.net.http.Http2TestServer; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.concurrent.ExecutorService; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLParameters; import jdk.testlibrary.SimpleSSLContext; +import org.testng.annotations.Test; -import org.testng.annotations.Test; -import org.testng.annotations.Parameters; +import static java.net.http.HttpClient.Version.HTTP_2; /** * When selecting an unacceptable cipher suite the TLS handshake will fail.
--- a/jdk/test/java/net/httpclient/http2/HpackDriver.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/java/net/httpclient/http2/HpackDriver.java Thu Oct 06 23:13:06 2016 +0000 @@ -33,7 +33,6 @@ * @run testng/othervm java.httpclient/sun.net.httpclient.hpack.CircularBufferTest * @run testng/othervm java.httpclient/sun.net.httpclient.hpack.DecoderTest * @run testng/othervm java.httpclient/sun.net.httpclient.hpack.EncoderTest - * @run testng/othervm java.httpclient/sun.net.httpclient.hpack.HeaderTableTest * @run testng/othervm java.httpclient/sun.net.httpclient.hpack.HuffmanTest * @run testng/othervm java.httpclient/sun.net.httpclient.hpack.TestHelper */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/net/httpclient/http2/HpackDriverHeaderTable.java Thu Oct 06 23:13:06 2016 +0000 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8153353 + * @modules java.httpclient/sun.net.httpclient.hpack + * jdk.localedata + * @key randomness + * @compile/module=java.httpclient sun/net/httpclient/hpack/SpecHelper.java + * @compile/module=java.httpclient sun/net/httpclient/hpack/TestHelper.java + * @compile/module=java.httpclient sun/net/httpclient/hpack/BuffersTestingKit.java + * @run testng/othervm java.httpclient/sun.net.httpclient.hpack.HeaderTableTest + */ +public class HpackDriverHeaderTable { }
--- a/jdk/test/java/net/httpclient/security/Driver.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/java/net/httpclient/security/Driver.java Thu Oct 06 23:13:06 2016 +0000 @@ -23,10 +23,12 @@ * questions. */ -/** +/* * @test * @bug 8087112 * @library /lib/testlibrary/ + * @modules java.httpclient + * jdk.httpserver * @build jdk.testlibrary.SimpleSSLContext jdk.testlibrary.Utils * @compile ../../../../com/sun/net/httpserver/LogFilter.java * @compile ../../../../com/sun/net/httpserver/FileServerHandler.java @@ -43,11 +45,14 @@ * The tests are in Security.java and port number supplied in -Dport.number * and -Dport.number1 for tests that require a second free port */ +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; -import java.io.*; -import java.net.*; import jdk.testlibrary.OutputAnalyzer; import jdk.testlibrary.Utils;
--- a/jdk/test/java/net/spi/URLStreamHandlerProvider/Basic.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/java/net/spi/URLStreamHandlerProvider/Basic.java Thu Oct 06 23:13:06 2016 +0000 @@ -21,11 +21,19 @@ * questions. */ -import java.io.*; +import java.io.File; +import java.io.FileWriter; +import java.io.Reader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.SequenceInputStream; +import java.io.StringWriter; +import java.io.Writer; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.*; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; @@ -46,6 +54,7 @@ * @test * @bug 8064924 * @modules java.compiler + * jdk.compiler * @summary Basic test for URLStreamHandlerProvider * @library /lib/testlibrary * @build jdk.testlibrary.FileUtils jdk.testlibrary.JDKToolFinder
--- a/jdk/test/java/time/test/java/time/format/TestZoneTextPrinterParser.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/java/time/test/java/time/format/TestZoneTextPrinterParser.java Thu Oct 06 23:13:06 2016 +0000 @@ -49,7 +49,7 @@ /* * @test - * @bug 8081022 8151876 + * @bug 8081022 8151876 8166875 * @key randomness */
--- a/jdk/test/java/time/test/java/time/format/ZoneName.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/java/time/test/java/time/format/ZoneName.java Thu Oct 06 23:13:06 2016 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -378,6 +378,7 @@ "Europe/Helsinki", "Europe_Eastern", "Europe/Bucharest", "America/Nome", "Alaska", "America/Juneau", "Asia/Yakutsk", "Yakutsk", "Asia/Yakutsk", + "Asia/Yangon", "Myanmar", "Asia/Rangoon", "Africa/Conakry", "GMT", "Atlantic/Reykjavik", "Asia/Seoul", "Korea", "Asia/Seoul", "America/Antigua", "Atlantic", "America/Halifax", @@ -747,6 +748,7 @@ "NZ", "Pacific/Auckland", "Asia/Tel_Aviv", "Asia/Jerusalem", "Hongkong", "Asia/Hong_Kong", + "Asia/Rangoon", "Asia/Yangon", }; private static final Map<String, String> zidToMzone = new HashMap<>();
--- a/jdk/test/java/util/TimeZone/TimeZoneTest.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/java/util/TimeZone/TimeZoneTest.java Thu Oct 06 23:13:06 2016 +0000 @@ -24,7 +24,7 @@ /* * @test * @bug 4028006 4044013 4096694 4107276 4107570 4112869 4130885 7039469 7126465 7158483 - * 8008577 8077685 8098547 8133321 8138716 8148446 8151876 8159684 + * 8008577 8077685 8098547 8133321 8138716 8148446 8151876 8159684 8166875 * @modules java.base/sun.util.resources * @library /java/text/testlib * @summary test TimeZone
--- a/jdk/test/jdk/internal/misc/Unsafe/CopyMemory.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/jdk/internal/misc/Unsafe/CopyMemory.java Thu Oct 06 23:13:06 2016 +0000 @@ -22,7 +22,6 @@ */ import jdk.internal.misc.Unsafe; -import java.lang.reflect.Field; /* * @test @@ -40,7 +39,6 @@ */ private void testPositive() { testSmallCopy(false); - testLargeCopy(false); } /**
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/jdk/internal/misc/Unsafe/CopyMemoryLarge.java Thu Oct 06 23:13:06 2016 +0000 @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import jdk.internal.misc.Unsafe; + +/* + * @test + * @summary Test Unsafe.copyMemory + * @modules java.base/jdk.internal.misc + * @requires os.maxMemory > 8G + */ +public class CopyMemoryLarge extends CopyCommon { + private CopyMemoryLarge() { + } + + /** + * Run positive tests + * + * @throws RuntimeException if an error is found + */ + private void testPositive() { + testLargeCopy(false); + } + + /** + * Run all tests + * + * @throws RuntimeException if an error is found + */ + private void test() { + testPositive(); + } + + public static void main(String[] args) { + CopyMemoryLarge cs = new CopyMemoryLarge(); + cs.test(); + } +}
--- a/jdk/test/jdk/internal/misc/Unsafe/CopySwap.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/jdk/internal/misc/Unsafe/CopySwap.java Thu Oct 06 23:13:06 2016 +0000 @@ -22,7 +22,6 @@ */ import jdk.internal.misc.Unsafe; -import java.lang.reflect.Field; /* * @test @@ -40,7 +39,6 @@ */ private void testPositive() { testSmallCopy(true); - testLargeCopy(true); } /**
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/jdk/internal/misc/Unsafe/CopySwapLarge.java Thu Oct 06 23:13:06 2016 +0000 @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import jdk.internal.misc.Unsafe; + +/* + * @test + * @summary Test Unsafe.copySwapMemory + * @modules java.base/jdk.internal.misc + * @requires os.maxMemory > 8G + */ +public class CopySwapLarge extends CopyCommon { + private CopySwapLarge() { + } + + /** + * Run positive tests + * + * @throws RuntimeException if an error is found + */ + private void testPositive() { + testLargeCopy(true); + } + + /** + * Run all tests + * + * @throws RuntimeException if an error is found + */ + private void test() { + testPositive(); + } + + public static void main(String[] args) { + CopySwapLarge cs = new CopySwapLarge(); + cs.test(); + } +}
--- a/jdk/test/sun/java2d/cmm/ColorConvertOp/RGBColorConvertTest.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/sun/java2d/cmm/ColorConvertOp/RGBColorConvertTest.java Thu Oct 06 23:13:06 2016 +0000 @@ -26,7 +26,6 @@ * @bug 6279846 * @summary Verifies that transform between the same ICC color spaces does not * change pixels - * @run main ColorConvertTest */ import java.awt.image.*;
--- a/jdk/test/sun/net/www/protocol/jar/MultiReleaseJarURLConnection.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/sun/net/www/protocol/jar/MultiReleaseJarURLConnection.java Thu Oct 06 23:13:06 2016 +0000 @@ -27,6 +27,7 @@ * @summary Test that URL connections to multi-release jars can be runtime versioned * @library /lib/testlibrary/java/util/jar * @modules java.compiler + * jdk.compiler * jdk.httpserver * jdk.jartool * @build Compiler JarBuilder CreateMultiReleaseTestJars SimpleHttpServer
--- a/jdk/test/sun/util/calendar/zi/tzdata/VERSION Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/sun/util/calendar/zi/tzdata/VERSION Thu Oct 06 23:13:06 2016 +0000 @@ -21,4 +21,4 @@ # or visit www.oracle.com if you need additional information or have any # questions. # -tzdata2016f +tzdata2016g
--- a/jdk/test/sun/util/calendar/zi/tzdata/africa Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/sun/util/calendar/zi/tzdata/africa Thu Oct 06 23:13:06 2016 +0000 @@ -487,7 +487,7 @@ # http://www.libyaherald.com/2013/10/24/correction-no-time-change-tomorrow/ # # From Paul Eggert (2013-10-25): -# For now, assume they're reverting to the pre-2012 rules of permanent UTC+2. +# For now, assume they're reverting to the pre-2012 rules of permanent UT +02. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Libya 1951 only - Oct 14 2:00 1:00 S
--- a/jdk/test/sun/util/calendar/zi/tzdata/antarctica Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/sun/util/calendar/zi/tzdata/antarctica Thu Oct 06 23:13:06 2016 +0000 @@ -33,9 +33,7 @@ # http://www.spri.cam.ac.uk/bob/periant.htm # for information. # Unless otherwise specified, we have no time zone information. -# -# Except for the French entries, -# I made up all time zone abbreviations mentioned here; corrections welcome! + # FORMAT is '-00' and GMTOFF is 0 for locations while uninhabited. # Argentina - year-round bases @@ -52,7 +50,7 @@ # previously sealers and scientific personnel wintered # Margaret Turner reports # http://web.archive.org/web/20021204222245/http://www.dstc.qut.edu.au/DST/marg/daylight.html -# (1999-09-30) that they're UTC+5, with no DST; +# (1999-09-30) that they're UT +05, with no DST; # presumably this is when they have visitors. # # year-round bases @@ -91,23 +89,22 @@ # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Antarctica/Casey 0 - -00 1969 - 8:00 - AWST 2009 Oct 18 2:00 - # Australian Western Std Time - 11:00 - CAST 2010 Mar 5 2:00 # Casey Time - 8:00 - AWST 2011 Oct 28 2:00 - 11:00 - CAST 2012 Feb 21 17:00u - 8:00 - AWST + 8:00 - +08 2009 Oct 18 2:00 + 11:00 - +11 2010 Mar 5 2:00 + 8:00 - +08 2011 Oct 28 2:00 + 11:00 - +11 2012 Feb 21 17:00u + 8:00 - +08 Zone Antarctica/Davis 0 - -00 1957 Jan 13 - 7:00 - DAVT 1964 Nov # Davis Time + 7:00 - +07 1964 Nov 0 - -00 1969 Feb - 7:00 - DAVT 2009 Oct 18 2:00 - 5:00 - DAVT 2010 Mar 10 20:00u - 7:00 - DAVT 2011 Oct 28 2:00 - 5:00 - DAVT 2012 Feb 21 20:00u - 7:00 - DAVT + 7:00 - +07 2009 Oct 18 2:00 + 5:00 - +05 2010 Mar 10 20:00u + 7:00 - +07 2011 Oct 28 2:00 + 5:00 - +05 2012 Feb 21 20:00u + 7:00 - +07 Zone Antarctica/Mawson 0 - -00 1954 Feb 13 - 6:00 - MAWT 2009 Oct 18 2:00 # Mawson Time - 5:00 - MAWT + 6:00 - +06 2009 Oct 18 2:00 + 5:00 - +05 # References: # Casey Weather (1998-02-26) # http://www.antdiv.gov.au/aad/exop/sfo/casey/casey_aws.html @@ -161,7 +158,7 @@ # # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Indian/Kerguelen 0 - -00 1950 # Port-aux-Français - 5:00 - TFT # ISO code TF Time + 5:00 - +05 # # year-round base in the main continent # Dumont d'Urville, Île des Pétrels, -6640+14001, since 1956-11 @@ -172,9 +169,9 @@ # # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Antarctica/DumontDUrville 0 - -00 1947 - 10:00 - PMT 1952 Jan 14 # Port-Martin Time + 10:00 - +10 1952 Jan 14 0 - -00 1956 Nov - 10:00 - DDUT # Dumont-d'Urville Time + 10:00 - +10 # France & Italy - year-round base # Concordia, -750600+1232000, since 2005 @@ -200,7 +197,7 @@ # station of Japan, it's appropriate for the principal location. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Antarctica/Syowa 0 - -00 1957 Jan 29 - 3:00 - SYOT # Syowa Time + 3:00 - +03 # See: # NIPR Antarctic Research Activities (1999-08-17) # http://www.nipr.ac.jp/english/ara01.html @@ -237,17 +234,17 @@ # correct, but they should be quite close to the actual dates. # # From Paul Eggert (2014-03-21): -# The CET-switching Troll rules require zic from tzcode 2014b or later, so as +# The CET-switching Troll rules require zic from tz 2014b or later, so as # suggested by Bengt-Inge Larsson comment them out for now, and approximate # with only UTC and CEST. Uncomment them when 2014b is more prevalent. # # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -#Rule Troll 2005 max - Mar 1 1:00u 1:00 CET -Rule Troll 2005 max - Mar lastSun 1:00u 2:00 CEST -#Rule Troll 2005 max - Oct lastSun 1:00u 1:00 CET -#Rule Troll 2004 max - Nov 7 1:00u 0:00 UTC +#Rule Troll 2005 max - Mar 1 1:00u 1:00 +01 +Rule Troll 2005 max - Mar lastSun 1:00u 2:00 +02 +#Rule Troll 2005 max - Oct lastSun 1:00u 1:00 +01 +#Rule Troll 2004 max - Nov 7 1:00u 0:00 +00 # Remove the following line when uncommenting the above '#Rule' lines. -Rule Troll 2004 max - Oct lastSun 1:00u 0:00 UTC +Rule Troll 2004 max - Oct lastSun 1:00u 0:00 +00 # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Antarctica/Troll 0 - -00 2005 Feb 12 0:00 Troll %s @@ -288,10 +285,10 @@ # changes during the year and does not necessarily correspond to mean # solar noon. So the Vostok time might have been whatever the clocks # happened to be during their visit. So we still don't really know what time -# it is at Vostok. But we'll guess UTC+6. +# it is at Vostok. But we'll guess +06. # Zone Antarctica/Vostok 0 - -00 1957 Dec 16 - 6:00 - VOST # Vostok time + 6:00 - +06 # S Africa - year-round bases # Marion Island, -4653+03752 @@ -324,7 +321,7 @@ # # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Antarctica/Rothera 0 - -00 1976 Dec 1 - -3:00 - ROTT # Rothera time + -3:00 - -03 # Uruguay - year round base # Artigas, King George Island, -621104-0585107
--- a/jdk/test/sun/util/calendar/zi/tzdata/asia Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/sun/util/calendar/zi/tzdata/asia Thu Oct 06 23:13:06 2016 +0000 @@ -139,13 +139,11 @@ # http://www.worldtimezone.com/dst_news/dst_news_armenia03.html # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2 - 3:00 - YERT 1957 Mar # Yerevan Time - 4:00 RussiaAsia YER%sT 1991 Mar 31 2:00s - 3:00 1:00 YERST 1991 Sep 23 # independence - 3:00 RussiaAsia AM%sT 1995 Sep 24 2:00s - 4:00 - AMT 1997 - 4:00 RussiaAsia AM%sT 2012 Feb 9 - 4:00 - AMT + 3:00 - +03 1957 Mar + 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s + 3:00 RussiaAsia +03/+04 1995 Sep 24 2:00s + 4:00 - +04 1997 + 4:00 RussiaAsia +04/+05 # Azerbaijan @@ -166,13 +164,12 @@ Rule Azer 1997 2015 - Oct lastSun 5:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Baku 3:19:24 - LMT 1924 May 2 - 3:00 - BAKT 1957 Mar # Baku Time - 4:00 RussiaAsia BAK%sT 1991 Mar 31 2:00s - 3:00 1:00 BAKST 1991 Aug 30 # independence - 3:00 RussiaAsia AZ%sT 1992 Sep lastSun 2:00s - 4:00 - AZT 1996 # Azerbaijan Time - 4:00 EUAsia AZ%sT 1997 - 4:00 Azer AZ%sT + 3:00 - +03 1957 Mar + 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s + 3:00 RussiaAsia +03/+04 1992 Sep lastSun 2:00s + 4:00 - +04 1996 + 4:00 EUAsia +04/+05 1997 + 4:00 Azer +04/+05 # Bahrain # See Asia/Qatar. @@ -291,7 +288,7 @@ # Milne says 6:24:40 was the meridian of the time ball observatory at Rangoon. # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Asia/Rangoon 6:24:40 - LMT 1880 # or Yangon +Zone Asia/Yangon 6:24:40 - LMT 1880 # or Rangoon 6:24:40 - RMT 1920 # Rangoon Mean Time? 6:30 - BURT 1942 May # Burma Time 9:00 - JST 1945 May 3 @@ -406,7 +403,7 @@ # Lewiston (ME) Daily Sun (1939-05-29), p 17, said "Even the time is # different - the occupied districts going by Tokyo time, an hour # ahead of that prevailing in the rest of Shanghai." Guess that the -# Xujiahui Observatory was under French control and stuck with UT+8. +# Xujiahui Observatory was under French control and stuck with UT +08. # # In earlier versions of this file, China had many separate Zone entries, but # this was based on what were apparently incorrect data in Shanks & Pottenger. @@ -415,26 +412,26 @@ # Proposed in 1918 and theoretically in effect until 1949 (although in practice # mainly observed in coastal areas), the five zones were: # -# Changbai Time ("Long-white Time", Long-white = Heilongjiang area) UT+8.5 +# Changbai Time ("Long-white Time", Long-white = Heilongjiang area) UT +08:30 # Asia/Harbin (currently a link to Asia/Shanghai) # Heilongjiang (except Mohe county), Jilin # -# Zhongyuan Time ("Central plain Time") UT+8 +# Zhongyuan Time ("Central plain Time") UT +08 # Asia/Shanghai # most of China # This currently represents most other zones as well, # as apparently these regions have been the same since 1970. # Milne gives 8:05:43.2 for Xujiahui Observatory time; round to nearest. -# Guo says Shanghai switched to UT+8 "from the end of the 19th century". +# Guo says Shanghai switched to UT +08 "from the end of the 19th century". # -# Long-shu Time (probably due to Long and Shu being two names of that area) UT+7 +# Long-shu Time (probably due to Long and Shu being two names of the area) UT +07 # Asia/Chongqing (currently a link to Asia/Shanghai) # Guangxi, Guizhou, Hainan, Ningxia, Sichuan, Shaanxi, and Yunnan; # most of Gansu; west Inner Mongolia; west Qinghai; and the Guangdong # counties Deqing, Enping, Kaiping, Luoding, Taishan, Xinxing, # Yangchun, Yangjiang, Yu'nan, and Yunfu. # -# Xin-zang Time ("Xinjiang-Tibet Time") UT+6 +# Xin-zang Time ("Xinjiang-Tibet Time") UT +06 # Asia/Urumqi # This currently represents Kunlun Time as well, # as apparently the two regions have been the same since 1970. @@ -447,7 +444,7 @@ # Shihezi, Changji, Yanqi, Heshuo, Tuokexun, Tulufan, Shanshan, Hami, # Fukang, Kuitun, Kumukuli, Miquan, Qitai, and Turfan. # -# Kunlun Time UT+5.5 +# Kunlun Time UT +05:30 # Asia/Kashgar (currently a link to Asia/Urumqi) # West Tibet, including Pulan, Aheqi, Shufu, Shule; # West Xinjiang, including Aksu, Atushi, Yining, Hetian, Cele, Luopu, Nileke, @@ -463,7 +460,7 @@ # # On the other hand, ethnic Uyghurs, who make up about half the # population of Xinjiang, typically use "Xinjiang time" which is two -# hours behind Beijing time, or UTC +0600. The government of the Xinjiang +# hours behind Beijing time, or UT +06. The government of the Xinjiang # Uyghur Autonomous Region, (XAUR, or just Xinjiang for short) as well as # local governments such as the Ürümqi city government use both times in # publications, referring to what is popularly called Xinjiang time as @@ -519,8 +516,8 @@ # having the same time as Beijing. # From Paul Eggert (2014-06-30): -# In the early days of the PRC, Tibet was given its own time zone (UT+6) but -# this was withdrawn in 1959 and never reinstated; see Tubten Khétsun, +# In the early days of the PRC, Tibet was given its own time zone (UT +06) +# but this was withdrawn in 1959 and never reinstated; see Tubten Khétsun, # Memories of life in Lhasa under Chinese Rule, Columbia U Press, ISBN # 978-0231142861 (2008), translator's introduction by Matthew Akester, p x. # As this is before our 1970 cutoff, Tibet doesn't need a separate zone. @@ -534,12 +531,12 @@ # Republics, the Soviet Union, the Kuomintang, and the People's Republic of # China, and tracking down all these organizations' timekeeping rules would be # quite a trick. Approximate this lost history by a transition from LMT to -# XJT at the start of 1928, the year of accession of the warlord Jin Shuren, +# UT +06 at the start of 1928, the year of accession of the warlord Jin Shuren, # which happens to be the date given by Shanks & Pottenger (no doubt as a -# guess) as the transition from LMT. Ignore the usage of UT+8 before -# 1986-02-01 under the theory that the transition date to UT+8 is unknown and +# guess) as the transition from LMT. Ignore the usage of +08 before +# 1986-02-01 under the theory that the transition date to +08 is unknown and # that the sort of users who prefer Asia/Urumqi now typically ignored the -# UT+8 mandate back then. +# +08 mandate back then. # Zone NAME GMTOFF RULES FORMAT [UNTIL] # Beijing time, used throughout China; represented by Shanghai. @@ -744,7 +741,7 @@ # be found from historical government announcement database. # From Paul Eggert (2014-07-03): -# As per Yu-Cheng Chuang, say that Taiwan was at UT+9 from 1937-10-01 +# As per Yu-Cheng Chuang, say that Taiwan was at UT +09 from 1937-10-01 # until 1945-09-21 at 01:00, overriding Shanks & Pottenger. # Likewise, use Yu-Cheng Chuang's data for DST in Taiwan. @@ -858,16 +855,15 @@ # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Tbilisi 2:59:11 - LMT 1880 2:59:11 - TBMT 1924 May 2 # Tbilisi Mean Time - 3:00 - TBIT 1957 Mar # Tbilisi Time - 4:00 RussiaAsia TBI%sT 1991 Mar 31 2:00s - 3:00 1:00 TBIST 1991 Apr 9 # independence - 3:00 RussiaAsia GE%sT 1992 # Georgia Time - 3:00 E-EurAsia GE%sT 1994 Sep lastSun - 4:00 E-EurAsia GE%sT 1996 Oct lastSun - 4:00 1:00 GEST 1997 Mar lastSun - 4:00 E-EurAsia GE%sT 2004 Jun 27 - 3:00 RussiaAsia GE%sT 2005 Mar lastSun 2:00 - 4:00 - GET + 3:00 - +03 1957 Mar + 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s + 3:00 RussiaAsia +03/+04 1992 + 3:00 E-EurAsia +03/+04 1994 Sep lastSun + 4:00 E-EurAsia +04/+05 1996 Oct lastSun + 4:00 1:00 +05 1997 Mar lastSun + 4:00 E-EurAsia +04/+05 2004 Jun 27 + 3:00 RussiaAsia +03/+04 2005 Mar lastSun 2:00 + 4:00 - +04 # East Timor @@ -944,7 +940,7 @@ # These would be the earliest possible times for a change. # Régimes horaires pour le monde entier, by Henri Le Corre, (Éditions # Traditionnelles, 1987, Paris) says that Java and Madura switched -# from JST to UTC+07:30 on 1945-09-23, and gives 1944-09-01 for Jayapura +# from UT +09 to +07:30 on 1945-09-23, and gives 1944-09-01 for Jayapura # (Hollandia). For now, assume all Indonesian locations other than Jayapura # switched on 1945-09-23. # @@ -955,11 +951,11 @@ # summary published by the Time and Frequency Laboratory of the # Research Center for Calibration, Instrumentation and Metrology, # Indonesia, <http://time.kim.lipi.go.id/time-eng.php> (2006-09-29). -# The abbreviations are: +# The time zone abbreviations and UT offsets are: # -# WIB - UTC+7 - Waktu Indonesia Barat (Indonesia western time) -# WITA - UTC+8 - Waktu Indonesia Tengah (Indonesia central time) -# WIT - UTC+9 - Waktu Indonesia Timur (Indonesia eastern time) +# WIB - +07 - Waktu Indonesia Barat (Indonesia western time) +# WITA - +08 - Waktu Indonesia Tengah (Indonesia central time) +# WIT - +09 - Waktu Indonesia Timur (Indonesia eastern time) # # Zone NAME GMTOFF RULES FORMAT [UNTIL] # Java, Sumatra @@ -1848,11 +1844,11 @@ Rule Kyrgyz 1997 2004 - Oct lastSun 2:30 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2 - 5:00 - FRUT 1930 Jun 21 # Frunze Time - 6:00 RussiaAsia FRU%sT 1991 Mar 31 2:00s - 5:00 1:00 FRUST 1991 Aug 31 2:00 # independence - 5:00 Kyrgyz KG%sT 2005 Aug 12 # Kyrgyzstan Time - 6:00 - KGT + 5:00 - +05 1930 Jun 21 + 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s + 5:00 RussiaAsia +05/+06 1991 Aug 31 2:00 + 5:00 Kyrgyz +05/+06 2005 Aug 12 + 6:00 - +06 ############################################################################### @@ -1891,25 +1887,24 @@ Rule ROK 1987 1988 - May Sun>=8 2:00 1:00 D Rule ROK 1987 1988 - Oct Sun>=8 3:00 0 S -# From Paul Eggert (2014-10-30): +# From Paul Eggert (2016-08-23): # The Korean Wikipedia entry gives the following sources for UT offsets: # -# 1908: Official Journal Article No. 3994 (Edict No. 5) +# 1908: Official Journal Article No. 3994 (decree No. 5) # 1912: Governor-General of Korea Official Gazette Issue No. 367 # (Announcement No. 338) # 1954: Presidential Decree No. 876 (1954-03-17) # 1961: Law No. 676 (1961-08-07) -# 1987: Law No. 3919 (1986-12-31) # -# The Wikipedia entry also has confusing information about a change -# to UT+9 in April 1910, but then what would be the point of the later change -# to UT+9 on 1912-01-01? Omit the 1910 change for now. +# (Another source "1987: Law No. 3919 (1986-12-31)" was in the 2014-10-30 +# edition of the Korean Wikipedia entry.) # # I guessed that time zone abbreviations through 1945 followed the same # rules as discussed under Taiwan, with nominal switches from JST to KST # when the respective cities were taken over by the Allies after WWII. # -# For Pyongyang we have no information; guess no changes since World War II. +# For Pyongyang, guess no changes from World War II until 2015, as we +# have no information otherwise. # From Steffen Thorsen (2015-08-07): # According to many news sources, North Korea is going to change to @@ -2069,7 +2064,7 @@ # Bill Bonnet (2005-05-19) reports that the US Embassy in Ulaanbaatar says # there is only one time zone and that DST is observed, citing Microsoft # Windows XP as the source. Risto Nykänen (2005-05-16) reports that -# travelmongolia.org says there are two time zones (UTC+7, UTC+8) with no DST. +# travelmongolia.org says there are two time zones (UT +07, +08) with no DST. # Oscar van Vlijmen (2005-05-20) reports that the Mongolian Embassy in # Washington, DC says there are two time zones, with DST observed. # He also found @@ -2705,7 +2700,7 @@ # earlier date. # # Shanks & Pottenger also state that until 1968-05-01 Saudi Arabia had two -# time zones; the other zone, at UTC+4, was in the far eastern part of +# time zones; the other zone, at UT +04, was in the far eastern part of # the country. Ignore this, as it's before our 1970 cutoff. # # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -2974,10 +2969,10 @@ # From Shanks & Pottenger. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2 - 5:00 - DUST 1930 Jun 21 # Dushanbe Time - 6:00 RussiaAsia DUS%sT 1991 Mar 31 2:00s - 5:00 1:00 DUSST 1991 Sep 9 2:00s - 5:00 - TJT # Tajikistan Time + 5:00 - +05 1930 Jun 21 + 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s + 5:00 1:00 +05/+06 1991 Sep 9 2:00s + 5:00 - +05 # Thailand # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -2991,11 +2986,10 @@ # From Shanks & Pottenger. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Ashgabat 3:53:32 - LMT 1924 May 2 # or Ashkhabad - 4:00 - ASHT 1930 Jun 21 # Ashkhabad Time - 5:00 RussiaAsia ASH%sT 1991 Mar 31 2:00 - 4:00 RussiaAsia ASH%sT 1991 Oct 27 # independence - 4:00 RussiaAsia TM%sT 1992 Jan 19 2:00 - 5:00 - TMT + 4:00 - +04 1930 Jun 21 + 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00 + 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00 + 5:00 - +05 # United Arab Emirates # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -3007,20 +3001,18 @@ # Byalokoz 1919 says Uzbekistan was 4:27:53. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Samarkand 4:27:53 - LMT 1924 May 2 - 4:00 - SAMT 1930 Jun 21 # Samarkand Time - 5:00 - SAMT 1981 Apr 1 - 5:00 1:00 SAMST 1981 Oct 1 - 6:00 - TAST 1982 Apr 1 # Tashkent Time - 5:00 RussiaAsia SAM%sT 1991 Sep 1 # independence - 5:00 RussiaAsia UZ%sT 1992 - 5:00 - UZT + 4:00 - +04 1930 Jun 21 + 5:00 - +05 1981 Apr 1 + 5:00 1:00 +06 1981 Oct 1 + 6:00 - +06 1982 Apr 1 + 5:00 RussiaAsia +05/+06 1992 + 5:00 - +05 # Milne says Tashkent was 4:37:10.8; round to nearest. Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2 - 5:00 - TAST 1930 Jun 21 # Tashkent Time - 6:00 RussiaAsia TAS%sT 1991 Mar 31 2:00 - 5:00 RussiaAsia TAS%sT 1991 Sep 1 # independence - 5:00 RussiaAsia UZ%sT 1992 - 5:00 - UZT + 5:00 - +05 1930 Jun 21 + 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00 + 5:00 RussiaAsia +05/+06 1992 + 5:00 - +05 # Vietnam
--- a/jdk/test/sun/util/calendar/zi/tzdata/australasia Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/sun/util/calendar/zi/tzdata/australasia Thu Oct 06 23:13:06 2016 +0000 @@ -568,7 +568,7 @@ # Base the Bougainville entry on the Arawa-Kieta region, which appears to have # the most people even though it was devastated in the Bougainville Civil War. # -# Although Shanks gives 1942-03-15 / 1943-11-01 for JST, these dates +# Although Shanks gives 1942-03-15 / 1943-11-01 for UT +09, these dates # are apparently rough guesswork from the starts of military campaigns. # The World War II entries below are instead based on Arawa-Kieta. # The Japanese occupied Kieta in July 1942, @@ -576,8 +576,8 @@ # http://pwencycl.kgbudge.com/B/o/Bougainville.htm # and seem to have controlled it until their 1945-08-21 surrender. # -# The Autonomous Region of Bougainville plans to switch from UTC+10 to UTC+11 -# on 2014-12-28 at 02:00. They call UTC+11 "Bougainville Standard Time"; +# The Autonomous Region of Bougainville switched from UT +10 to +11 +# on 2014-12-28 at 02:00. They call +11 "Bougainville Standard Time"; # abbreviate this as BST. See: # http://www.bougainville24.com/bougainville-issues/bougainville-gets-own-timezone/ # @@ -643,7 +643,7 @@ # From Paul Eggert (2014-06-27): # The International Date Line Act 2011 # http://www.parliament.gov.ws/images/ACTS/International_Date_Line_Act__2011_-_Eng.pdf -# changed Samoa from UTC-11 to UTC+13, effective "12 o'clock midnight, on +# changed Samoa from UT -11 to +13, effective "12 o'clock midnight, on # Thursday 29th December 2011". The International Date Line was adjusted # accordingly. @@ -738,7 +738,7 @@ # 1886-1891; Baker was similar but exact dates are not known. # Inhabited by civilians 1935-1942; U.S. military bases 1943-1944; # uninhabited thereafter. -# Howland observed Hawaii Standard Time (UT-10:30) in 1937; +# Howland observed Hawaii Standard Time (UT -10:30) in 1937; # see page 206 of Elgen M. Long and Marie K. Long, # Amelia Earhart: the Mystery Solved, Simon & Schuster (2000). # So most likely Howland and Baker observed Hawaii Time from 1935 @@ -1496,7 +1496,7 @@ # Zealand time. I understand that is the time they keep locally, anyhow." # For now, assume this practice goes back to the introduction of standard time # in New Zealand, as this would make Chatham Islands time almost exactly match -# LMT back when New Zealand was at UTC+11:30; also, assume Chatham Islands did +# LMT back when New Zealand was at UT +11:30; also, assume Chatham Islands did # not observe New Zealand's prewar DST. ############################################################################### @@ -1552,7 +1552,7 @@ # For now, we assume the Ladrones switched at the same time as the Philippines; # see Asia/Manila. -# US Public Law 106-564 (2000-12-23) made UTC+10 the official standard time, +# US Public Law 106-564 (2000-12-23) made UT +10 the official standard time, # under the name "Chamorro Standard Time". There is no official abbreviation, # but Congressman Robert A. Underwood, author of the bill that became law, # wrote in a press release (2000-12-27) that he will seek the use of "ChST". @@ -1564,15 +1564,15 @@ # "I am certain, having lived there for the past decade, that 'Truk' # (now properly known as Chuuk) ... is in the time zone GMT+10." # -# Shanks & Pottenger write that Truk switched from UTC+10 to UTC+11 +# Shanks & Pottenger write that Truk switched from UT +10 to +11 # on 1978-10-01; ignore this for now. # From Paul Eggert (1999-10-29): # The Federated States of Micronesia Visitors Board writes in # The Federated States of Micronesia - Visitor Information (1999-01-26) # http://www.fsmgov.org/info/clocks.html -# that Truk and Yap are UTC+10, and Ponape and Kosrae are UTC+11. -# We don't know when Kosrae switched from UTC+12; assume January 1 for now. +# that Truk and Yap are UT +10, and Ponape and Kosrae are +11. +# We don't know when Kosrae switched from +12; assume January 1 for now. # Midway @@ -1638,11 +1638,11 @@ # ordaining - by a masterpiece of diplomatic flattery - that # the Fourth of July should be celebrated twice in that year." -# Although Shanks & Pottenger says they both switched to UTC-11:30 -# in 1911, and to UTC-11 in 1950. many earlier sources give UTC-11 +# Although Shanks & Pottenger says they both switched to UT -11:30 +# in 1911, and to -11 in 1950. many earlier sources give -11 # for American Samoa, e.g., the US National Bureau of Standards # circular "Standard Time Throughout the World", 1932. -# Assume American Samoa switched to UTC-11 in 1911, not 1950, +# Assume American Samoa switched to -11 in 1911, not 1950, # and that after 1950 they agreed until (western) Samoa skipped a # day in 2011. Assume also that the Samoas follow the US and New # Zealand's "ST"/"DT" style of daylight-saving abbreviations.
--- a/jdk/test/sun/util/calendar/zi/tzdata/backward Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/sun/util/calendar/zi/tzdata/backward Thu Oct 06 23:13:06 2016 +0000 @@ -59,6 +59,7 @@ Link Asia/Urumqi Asia/Kashgar Link Asia/Kathmandu Asia/Katmandu Link Asia/Macau Asia/Macao +Link Asia/Yangon Asia/Rangoon Link Asia/Ho_Chi_Minh Asia/Saigon Link Asia/Jerusalem Asia/Tel_Aviv Link Asia/Thimphu Asia/Thimbu
--- a/jdk/test/sun/util/calendar/zi/tzdata/etcetera Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/sun/util/calendar/zi/tzdata/etcetera Thu Oct 06 23:13:06 2016 +0000 @@ -31,6 +31,13 @@ # need now for the entries that are not on UTC are for ships at sea # that cannot use POSIX TZ settings. +# Starting with POSIX 1003.1-2001, the entries below are all +# unnecessary as settings for the TZ environment variable. E.g., +# instead of TZ='Etc/GMT+4' one can use the POSIX setting TZ='<-04>+4'. +# +# Do not use a POSIX TZ setting like TZ='GMT+4', which is four hours +# behind GMT but uses the completely misleading abbreviation "GMT". + Zone Etc/GMT 0 - GMT Zone Etc/UTC 0 - UTC Zone Etc/UCT 0 - UCT @@ -49,23 +56,13 @@ Link Etc/GMT Etc/GMT+0 Link Etc/GMT Etc/GMT0 -# We use POSIX-style signs in the Zone names and the output abbreviations, +# Be consistent with POSIX TZ settings in the Zone names, # even though this is the opposite of what many people expect. # POSIX has positive signs west of Greenwich, but many people expect # positive signs east of Greenwich. For example, TZ='Etc/GMT+4' uses -# the abbreviation "GMT+4" and corresponds to 4 hours behind UT +# the abbreviation "-04" and corresponds to 4 hours behind UT # (i.e. west of Greenwich) even though many people would expect it to # mean 4 hours ahead of UT (i.e. east of Greenwich). -# -# In the draft 5 of POSIX 1003.1-200x, the angle bracket notation allows for -# TZ='<GMT-4>+4'; if you want time zone abbreviations conforming to -# ISO 8601 you can use TZ='<-0400>+4'. Thus the commonly-expected -# offset is kept within the angle bracket (and is used for display) -# while the POSIX sign is kept outside the angle bracket (and is used -# for calculation). -# -# Do not use a TZ setting like TZ='GMT+4', which is four hours behind -# GMT but uses the completely misleading abbreviation "GMT". # Earlier incarnations of this package were not POSIX-compliant, # and had lines such as @@ -74,30 +71,31 @@ # way does a # zic -l GMT-12 # so we moved the names into the Etc subdirectory. +# Also, the time zone abbreviations are now compatible with %z. -Zone Etc/GMT-14 14 - GMT-14 # 14 hours ahead of GMT -Zone Etc/GMT-13 13 - GMT-13 -Zone Etc/GMT-12 12 - GMT-12 -Zone Etc/GMT-11 11 - GMT-11 -Zone Etc/GMT-10 10 - GMT-10 -Zone Etc/GMT-9 9 - GMT-9 -Zone Etc/GMT-8 8 - GMT-8 -Zone Etc/GMT-7 7 - GMT-7 -Zone Etc/GMT-6 6 - GMT-6 -Zone Etc/GMT-5 5 - GMT-5 -Zone Etc/GMT-4 4 - GMT-4 -Zone Etc/GMT-3 3 - GMT-3 -Zone Etc/GMT-2 2 - GMT-2 -Zone Etc/GMT-1 1 - GMT-1 -Zone Etc/GMT+1 -1 - GMT+1 -Zone Etc/GMT+2 -2 - GMT+2 -Zone Etc/GMT+3 -3 - GMT+3 -Zone Etc/GMT+4 -4 - GMT+4 -Zone Etc/GMT+5 -5 - GMT+5 -Zone Etc/GMT+6 -6 - GMT+6 -Zone Etc/GMT+7 -7 - GMT+7 -Zone Etc/GMT+8 -8 - GMT+8 -Zone Etc/GMT+9 -9 - GMT+9 -Zone Etc/GMT+10 -10 - GMT+10 -Zone Etc/GMT+11 -11 - GMT+11 -Zone Etc/GMT+12 -12 - GMT+12 +Zone Etc/GMT-14 14 - +14 +Zone Etc/GMT-13 13 - +13 +Zone Etc/GMT-12 12 - +12 +Zone Etc/GMT-11 11 - +11 +Zone Etc/GMT-10 10 - +10 +Zone Etc/GMT-9 9 - +09 +Zone Etc/GMT-8 8 - +08 +Zone Etc/GMT-7 7 - +07 +Zone Etc/GMT-6 6 - +06 +Zone Etc/GMT-5 5 - +05 +Zone Etc/GMT-4 4 - +04 +Zone Etc/GMT-3 3 - +03 +Zone Etc/GMT-2 2 - +02 +Zone Etc/GMT-1 1 - +01 +Zone Etc/GMT+1 -1 - -01 +Zone Etc/GMT+2 -2 - -02 +Zone Etc/GMT+3 -3 - -03 +Zone Etc/GMT+4 -4 - -04 +Zone Etc/GMT+5 -5 - -05 +Zone Etc/GMT+6 -6 - -06 +Zone Etc/GMT+7 -7 - -07 +Zone Etc/GMT+8 -8 - -08 +Zone Etc/GMT+9 -9 - -09 +Zone Etc/GMT+10 -10 - -10 +Zone Etc/GMT+11 -11 - -11 +Zone Etc/GMT+12 -12 - -12
--- a/jdk/test/sun/util/calendar/zi/tzdata/europe Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/sun/util/calendar/zi/tzdata/europe Thu Oct 06 23:13:06 2016 +0000 @@ -98,8 +98,7 @@ # 1:00 CET CEST CEMT Central Europe # 1:00:14 SET Swedish (1879-1899)* # 2:00 EET EEST Eastern Europe -# 3:00 FET Further-eastern Europe (2011-2014)* -# 3:00 MSK MSD MSM* Minsk, Moscow +# 3:00 MSK MSD Moscow # From Peter Ilieve (1994-12-04), # The original six [EU members]: Belgium, France, (West) Germany, Italy, @@ -606,16 +605,33 @@ Rule E-Eur 1981 max - Mar lastSun 0:00 1:00 S Rule E-Eur 1996 max - Oct lastSun 0:00 0 - + +# Daylight saving time for Russia and the Soviet Union +# +# The 1917-1921 decree URLs are from Alexander Belopolsky (2016-08-23). + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Russia 1917 only - Jul 1 23:00 1:00 MST # Moscow Summer Time +# +# Decree No. 142 (1917-12-22) http://istmat.info/node/28137 Rule Russia 1917 only - Dec 28 0:00 0 MMT # Moscow Mean Time +# +# Decree No. 497 (1918-05-30) http://istmat.info/node/30001 Rule Russia 1918 only - May 31 22:00 2:00 MDST # Moscow Double Summer Time Rule Russia 1918 only - Sep 16 1:00 1:00 MST +# +# Decree No. 258 (1919-05-29) http://istmat.info/node/37949 Rule Russia 1919 only - May 31 23:00 2:00 MDST -Rule Russia 1919 only - Jul 1 2:00 1:00 MSD +# +Rule Russia 1919 only - Jul 1 0:00u 1:00 MSD Rule Russia 1919 only - Aug 16 0:00 0 MSK +# +# Decree No. 63 (1921-02-03) http://istmat.info/node/45840 Rule Russia 1921 only - Feb 14 23:00 1:00 MSD -Rule Russia 1921 only - Mar 20 23:00 2:00 MSM # Midsummer +# +# Decree No. 121 (1921-03-07) http://istmat.info/node/45949 +Rule Russia 1921 only - Mar 20 23:00 2:00 +05 +# Rule Russia 1921 only - Sep 1 0:00 1:00 MSD Rule Russia 1921 only - Oct 1 0:00 0 - # Act No. 925 of the Council of Ministers of the USSR (1980-10-24): @@ -798,8 +814,6 @@ # From Alexander Bokovoy (2014-10-09): # Belarussian government decided against changing to winter time.... # http://eng.belta.by/all_news/society/Belarus-decides-against-adjusting-time-in-Russias-wake_i_76335.html -# From Paul Eggert (2014-10-08): -# Hence Belarus can share time zone abbreviations with Moscow again. # # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Minsk 1:50:16 - LMT 1880 @@ -810,8 +824,7 @@ 3:00 Russia MSK/MSD 1990 3:00 - MSK 1991 Mar 31 2:00s 2:00 Russia EE%sT 2011 Mar 27 2:00s - 3:00 - FET 2014 Oct 26 1:00s - 3:00 - MSK + 3:00 - +03 # Belgium # @@ -1319,7 +1332,7 @@ # http://www.parlament-berlin.de/pds-fraktion.nsf/727459127c8b66ee8525662300459099/defc77cb784f180ac1256c2b0030274b/$FILE/bersarint.pdf # says that Bersarin issued an order to use Moscow time on May 20. # However, Moscow did not observe daylight saving in 1945, so -# this was equivalent to CEMT (GMT+3), not GMT+4. +# this was equivalent to UT +03, not +04. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S @@ -2283,7 +2296,6 @@ # http://www.worldtimezone.com/dst_news/dst_news_russia-map-2014-07.html # From Paul Eggert (2006-03-22): -# Except for Moscow after 1919-07-01, I invented the time zone abbreviations. # Moscow time zone abbreviations after 1919-07-01, and Moscow rules after 1991, # are from Andrey A. Chernov. The rest is from Shanks & Pottenger, # except we follow Chernov's report that 1992 DST transitions were Sat @@ -2359,7 +2371,7 @@ 2:00 Poland CE%sT 1946 3:00 Russia MSK/MSD 1989 Mar 26 2:00s 2:00 Russia EE%sT 2011 Mar 27 2:00s - 3:00 - FET 2014 Oct 26 2:00s + 3:00 - +03 2014 Oct 26 2:00s 2:00 - EET @@ -2412,6 +2424,16 @@ # 78 RU-SPE Saint Petersburg # 83 RU-NEN Nenets Autonomous Okrug +# From Paul Eggert (2016-08-23): +# The Soviets switched to UT-based time in 1919. Decree No. 59 +# (1919-02-08) http://istmat.info/node/35567 established UT-based time +# zones, and Decree No. 147 (1919-03-29) http://istmat.info/node/35854 +# specified a transition date of 1919-07-01, apparently at 00:00 UT. +# No doubt only the Soviet-controlled regions switched on that date; +# later transitions to UT-based time in other parts of Russia are +# taken from what appear to be guesses by Shanks. +# (Thanks to Alexander Belopolsky for pointers to the decrees.) + # From Stepan Golosunov (2016-03-07): # 11. Regions-violators, 1981-1982. # Wikipedia refers to @@ -2453,7 +2475,7 @@ # attributes the 1982 changes to the Act of the Council of Ministers # of the USSR No. 126 from 18.02.1982. 1980-925.txt also adds # Udmurtia to the list of affected territories and lists Khatangsky -# district separately from Taymyr Autonomous Okurg. Probably erroneously. +# district separately from Taymyr Autonomous Okrug. Probably erroneously. # # The affected territories are currently listed under Europe/Moscow, # Asia/Yekaterinburg and Asia/Krasnoyarsk. @@ -2513,7 +2535,7 @@ Zone Europe/Moscow 2:30:17 - LMT 1880 2:30:17 - MMT 1916 Jul 3 # Moscow Mean Time - 2:31:19 Russia %s 1919 Jul 1 2:00 + 2:31:19 Russia %s 1919 Jul 1 0:00u 3:00 Russia %s 1921 Oct 3:00 Russia MSK/MSD 1922 Oct 2:00 - EET 1930 Jun 21 @@ -2596,22 +2618,21 @@ # The 1988 transition is from USSR act No. 5 (1988-01-04). Zone Europe/Volgograd 2:57:40 - LMT 1920 Jan 3 - 3:00 - TSAT 1925 Apr 6 # Tsaritsyn Time - 3:00 - STAT 1930 Jun 21 # Stalingrad Time - 4:00 - STAT 1961 Nov 11 - 4:00 Russia VOL%sT 1988 Mar 27 2:00s # Volgograd T - 3:00 Russia VOL%sT 1991 Mar 31 2:00s - 4:00 - VOLT 1992 Mar 29 2:00s - 3:00 Russia MSK/MSD 2011 Mar 27 2:00s - 4:00 - MSK 2014 Oct 26 2:00s - 3:00 - MSK + 3:00 - +03 1930 Jun 21 + 4:00 - +04 1961 Nov 11 + 4:00 Russia +04/+05 1988 Mar 27 2:00s + 3:00 Russia +03/+04 1991 Mar 31 2:00s + 4:00 - +04 1992 Mar 29 2:00s + 3:00 Russia +03/+04 2011 Mar 27 2:00s + 4:00 - +04 2014 Oct 26 2:00s + 3:00 - +03 # From Paul Eggert (2016-03-18): # Europe/Kirov covers: # 43 RU-KIR Kirov Oblast # The 1989 transition is from USSR act No. 227 (1989-03-14). # -Zone Europe/Kirov 3:18:48 - LMT 1919 Jul 1 2:00 +Zone Europe/Kirov 3:18:48 - LMT 1919 Jul 1 0:00u 3:00 - +03 1930 Jun 21 4:00 Russia +04/+05 1989 Mar 26 2:00s 3:00 Russia +03/+04 1991 Mar 31 2:00s @@ -2629,16 +2650,16 @@ # Byalokoz 1919 says Samara was 3:20:20. # The 1989 transition is from USSR act No. 227 (1989-03-14). -Zone Europe/Samara 3:20:20 - LMT 1919 Jul 1 2:00 - 3:00 - SAMT 1930 Jun 21 # Samara Time - 4:00 - SAMT 1935 Jan 27 - 4:00 Russia KUY%sT 1989 Mar 26 2:00s # Kuybyshev - 3:00 Russia MSK/MSD 1991 Mar 31 2:00s - 2:00 Russia EE%sT 1991 Sep 29 2:00s - 3:00 - SAMT 1991 Oct 20 3:00 - 4:00 Russia SAM%sT 2010 Mar 28 2:00s - 3:00 Russia SAM%sT 2011 Mar 27 2:00s - 4:00 - SAMT +Zone Europe/Samara 3:20:20 - LMT 1919 Jul 1 0:00u + 3:00 - +03 1930 Jun 21 + 4:00 - +04 1935 Jan 27 + 4:00 Russia +04/+05 1989 Mar 26 2:00s + 3:00 Russia +03/+04 1991 Mar 31 2:00s + 2:00 Russia +02/+03 1991 Sep 29 2:00s + 3:00 - +03 1991 Oct 20 3:00 + 4:00 Russia +04/+05 2010 Mar 28 2:00s + 3:00 Russia +03/+04 2011 Mar 27 2:00s + 4:00 - +04 # From Paul Eggert (2016-03-18): # Europe/Ulyanovsk covers: @@ -2653,7 +2674,7 @@ # From Matt Johnson (2016-03-09): # http://publication.pravo.gov.ru/Document/View/0001201603090051 -Zone Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 2:00 +Zone Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 0:00u 3:00 - +03 1930 Jun 21 4:00 Russia +04/+05 1989 Mar 26 2:00s 3:00 Russia +03/+04 1991 Mar 31 2:00s @@ -2685,12 +2706,12 @@ Zone Asia/Yekaterinburg 4:02:33 - LMT 1916 Jul 3 3:45:05 - PMT 1919 Jul 15 4:00 - 4:00 - SVET 1930 Jun 21 # Sverdlovsk Time - 5:00 Russia SVE%sT 1991 Mar 31 2:00s - 4:00 Russia SVE%sT 1992 Jan 19 2:00s - 5:00 Russia YEK%sT 2011 Mar 27 2:00s - 6:00 - YEKT 2014 Oct 26 2:00s - 5:00 - YEKT + 4:00 - +04 1930 Jun 21 + 5:00 Russia +05/+06 1991 Mar 31 2:00s + 4:00 Russia +04/+05 1992 Jan 19 2:00s + 5:00 Russia +05/+06 2011 Mar 27 2:00s + 6:00 - +06 2014 Oct 26 2:00s + 5:00 - +05 # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): @@ -2700,12 +2721,12 @@ # Byalokoz 1919 says Omsk was 4:53:30. Zone Asia/Omsk 4:53:30 - LMT 1919 Nov 14 - 5:00 - OMST 1930 Jun 21 # Omsk Time - 6:00 Russia OMS%sT 1991 Mar 31 2:00s - 5:00 Russia OMS%sT 1992 Jan 19 2:00s - 6:00 Russia OMS%sT 2011 Mar 27 2:00s - 7:00 - OMST 2014 Oct 26 2:00s - 6:00 - OMST + 5:00 - +05 1930 Jun 21 + 6:00 Russia +06/+07 1991 Mar 31 2:00s + 5:00 Russia +05/+06 1992 Jan 19 2:00s + 6:00 Russia +06/+07 2011 Mar 27 2:00s + 7:00 - +07 2014 Oct 26 2:00s + 6:00 - +06 # From Paul Eggert (2016-02-22): # Asia/Barnaul covers: @@ -2785,7 +2806,7 @@ # Note that time belts (numbered from 2 (Moscow) to 12 according to their # GMT/UTC offset and having too many exceptions like regions formally # belonging to one belt but using time from another) were replaced -# with time zones in 2011 with different numberings (there was a +# with time zones in 2011 with different numbering (there was a # 2-hour gap between second and third zones in 2011-2014). # From Stepan Golosunov (2016-04-12): @@ -2868,12 +2889,12 @@ # Byalokoz 1919 says Krasnoyarsk was 6:11:26. Zone Asia/Krasnoyarsk 6:11:26 - LMT 1920 Jan 6 - 6:00 - KRAT 1930 Jun 21 # Krasnoyarsk Time - 7:00 Russia KRA%sT 1991 Mar 31 2:00s - 6:00 Russia KRA%sT 1992 Jan 19 2:00s - 7:00 Russia KRA%sT 2011 Mar 27 2:00s - 8:00 - KRAT 2014 Oct 26 2:00s - 7:00 - KRAT + 6:00 - +06 1930 Jun 21 + 7:00 Russia +07/+08 1991 Mar 31 2:00s + 6:00 Russia +06/+07 1992 Jan 19 2:00s + 7:00 Russia +07/+08 2011 Mar 27 2:00s + 8:00 - +08 2014 Oct 26 2:00s + 7:00 - +07 # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): @@ -2890,12 +2911,12 @@ Zone Asia/Irkutsk 6:57:05 - LMT 1880 6:57:05 - IMT 1920 Jan 25 # Irkutsk Mean Time - 7:00 - IRKT 1930 Jun 21 # Irkutsk Time - 8:00 Russia IRK%sT 1991 Mar 31 2:00s - 7:00 Russia IRK%sT 1992 Jan 19 2:00s - 8:00 Russia IRK%sT 2011 Mar 27 2:00s - 9:00 - IRKT 2014 Oct 26 2:00s - 8:00 - IRKT + 7:00 - +07 1930 Jun 21 + 8:00 Russia +08/+09 1991 Mar 31 2:00s + 7:00 Russia +07/+08 1992 Jan 19 2:00s + 8:00 Russia +08/+09 2011 Mar 27 2:00s + 9:00 - +09 2014 Oct 26 2:00s + 8:00 - +08 # From Tim Parenti (2014-07-06): @@ -2912,13 +2933,13 @@ # http://publication.pravo.gov.ru/Document/View/0001201512300107 Zone Asia/Chita 7:33:52 - LMT 1919 Dec 15 - 8:00 - YAKT 1930 Jun 21 # Yakutsk Time - 9:00 Russia YAK%sT 1991 Mar 31 2:00s - 8:00 Russia YAK%sT 1992 Jan 19 2:00s - 9:00 Russia YAK%sT 2011 Mar 27 2:00s - 10:00 - YAKT 2014 Oct 26 2:00s - 8:00 - IRKT 2016 Mar 27 2:00 - 9:00 - YAKT + 8:00 - +08 1930 Jun 21 + 9:00 Russia +09/+10 1991 Mar 31 2:00s + 8:00 Russia +08/+09 1992 Jan 19 2:00s + 9:00 Russia +09/+10 2011 Mar 27 2:00s + 10:00 - +10 2014 Oct 26 2:00s + 8:00 - +08 2016 Mar 27 2:00 + 9:00 - +09 # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29): @@ -2958,12 +2979,12 @@ # Byalokoz 1919 says Yakutsk was 8:38:58. Zone Asia/Yakutsk 8:38:58 - LMT 1919 Dec 15 - 8:00 - YAKT 1930 Jun 21 # Yakutsk Time - 9:00 Russia YAK%sT 1991 Mar 31 2:00s - 8:00 Russia YAK%sT 1992 Jan 19 2:00s - 9:00 Russia YAK%sT 2011 Mar 27 2:00s - 10:00 - YAKT 2014 Oct 26 2:00s - 9:00 - YAKT + 8:00 - +08 1930 Jun 21 + 9:00 Russia +09/+10 1991 Mar 31 2:00s + 8:00 Russia +08/+09 1992 Jan 19 2:00s + 9:00 Russia +09/+10 2011 Mar 27 2:00s + 10:00 - +10 2014 Oct 26 2:00s + 9:00 - +09 # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29): @@ -2981,12 +3002,12 @@ # Go with Byalokoz. Zone Asia/Vladivostok 8:47:31 - LMT 1922 Nov 15 - 9:00 - VLAT 1930 Jun 21 # Vladivostok Time - 10:00 Russia VLA%sT 1991 Mar 31 2:00s - 9:00 Russia VLA%sT 1992 Jan 19 2:00s - 10:00 Russia VLA%sT 2011 Mar 27 2:00s - 11:00 - VLAT 2014 Oct 26 2:00s - 10:00 - VLAT + 9:00 - +09 1930 Jun 21 + 10:00 Russia +10/+11 1991 Mar 31 2:00s + 9:00 Russia +09/+10 1992 Jan 19 2:00s + 10:00 Russia +10/+11 2011 Mar 27 2:00s + 11:00 - +11 2014 Oct 26 2:00s + 10:00 - +10 # From Tim Parenti (2014-07-03): @@ -3004,14 +3025,14 @@ # This transition is no doubt wrong, but we have no better info. Zone Asia/Khandyga 9:02:13 - LMT 1919 Dec 15 - 8:00 - YAKT 1930 Jun 21 # Yakutsk Time - 9:00 Russia YAK%sT 1991 Mar 31 2:00s - 8:00 Russia YAK%sT 1992 Jan 19 2:00s - 9:00 Russia YAK%sT 2004 - 10:00 Russia VLA%sT 2011 Mar 27 2:00s - 11:00 - VLAT 2011 Sep 13 0:00s # Decree 725? - 10:00 - YAKT 2014 Oct 26 2:00s - 9:00 - YAKT + 8:00 - +08 1930 Jun 21 + 9:00 Russia +09/+10 1991 Mar 31 2:00s + 8:00 Russia +08/+09 1992 Jan 19 2:00s + 9:00 Russia +09/+10 2004 + 10:00 Russia +10/+11 2011 Mar 27 2:00s + 11:00 - +11 2011 Sep 13 0:00s # Decree 725? + 10:00 - +10 2014 Oct 26 2:00s + 9:00 - +09 # From Tim Parenti (2014-07-03): @@ -3027,15 +3048,14 @@ # The Zone name should be Asia/Yuzhno-Sakhalinsk, but that's too long. Zone Asia/Sakhalin 9:30:48 - LMT 1905 Aug 23 - 9:00 - JCST 1937 Oct 1 - 9:00 - JST 1945 Aug 25 - 11:00 Russia SAK%sT 1991 Mar 31 2:00s # Sakhalin T - 10:00 Russia SAK%sT 1992 Jan 19 2:00s - 11:00 Russia SAK%sT 1997 Mar lastSun 2:00s - 10:00 Russia SAK%sT 2011 Mar 27 2:00s - 11:00 - SAKT 2014 Oct 26 2:00s - 10:00 - SAKT 2016 Mar 27 2:00s - 11:00 - SAKT + 9:00 - +09 1945 Aug 25 + 11:00 Russia +11/+12 1991 Mar 31 2:00s # Sakhalin T + 10:00 Russia +10/+11 1992 Jan 19 2:00s + 11:00 Russia +11/+12 1997 Mar lastSun 2:00s + 10:00 Russia +10/+11 2011 Mar 27 2:00s + 11:00 - +11 2014 Oct 26 2:00s + 10:00 - +10 2016 Mar 27 2:00s + 11:00 - +11 # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29): @@ -3058,13 +3078,13 @@ # http://publication.pravo.gov.ru/Document/View/0001201604050038 Zone Asia/Magadan 10:03:12 - LMT 1924 May 2 - 10:00 - MAGT 1930 Jun 21 # Magadan Time - 11:00 Russia MAG%sT 1991 Mar 31 2:00s - 10:00 Russia MAG%sT 1992 Jan 19 2:00s - 11:00 Russia MAG%sT 2011 Mar 27 2:00s - 12:00 - MAGT 2014 Oct 26 2:00s - 10:00 - MAGT 2016 Apr 24 2:00s - 11:00 - MAGT + 10:00 - +10 1930 Jun 21 # Magadan Time + 11:00 Russia +11/+12 1991 Mar 31 2:00s + 10:00 Russia +10/+11 1992 Jan 19 2:00s + 11:00 Russia +11/+12 2011 Mar 27 2:00s + 12:00 - +12 2014 Oct 26 2:00s + 10:00 - +10 2016 Apr 24 2:00s + 11:00 - +11 # From Tim Parenti (2014-07-06): @@ -3107,17 +3127,14 @@ # in Russian.) In addition, Srednekolymsk appears to be a much older # settlement and the population of Zyryanka seems to be declining. # Go with Srednekolymsk. -# -# Since Magadan Oblast moves to UTC+10 on 2014-10-26, we cannot keep using MAGT -# as the abbreviation. Use SRET instead. Zone Asia/Srednekolymsk 10:14:52 - LMT 1924 May 2 - 10:00 - MAGT 1930 Jun 21 # Magadan Time - 11:00 Russia MAG%sT 1991 Mar 31 2:00s - 10:00 Russia MAG%sT 1992 Jan 19 2:00s - 11:00 Russia MAG%sT 2011 Mar 27 2:00s - 12:00 - MAGT 2014 Oct 26 2:00s - 11:00 - SRET # Srednekolymsk Time + 10:00 - +10 1930 Jun 21 + 11:00 Russia +11/+12 1991 Mar 31 2:00s + 10:00 Russia +10/+11 1992 Jan 19 2:00s + 11:00 Russia +11/+12 2011 Mar 27 2:00s + 12:00 - +12 2014 Oct 26 2:00s + 11:00 - +11 # From Tim Parenti (2014-07-03): @@ -3135,14 +3152,14 @@ # UTC+12 since at least then, too. Zone Asia/Ust-Nera 9:32:54 - LMT 1919 Dec 15 - 8:00 - YAKT 1930 Jun 21 # Yakutsk Time - 9:00 Russia YAKT 1981 Apr 1 - 11:00 Russia MAG%sT 1991 Mar 31 2:00s - 10:00 Russia MAG%sT 1992 Jan 19 2:00s - 11:00 Russia MAG%sT 2011 Mar 27 2:00s - 12:00 - MAGT 2011 Sep 13 0:00s # Decree 725? - 11:00 - VLAT 2014 Oct 26 2:00s - 10:00 - VLAT + 8:00 - +08 1930 Jun 21 + 9:00 Russia +09/+10 1981 Apr 1 + 11:00 Russia +11/+12 1991 Mar 31 2:00s + 10:00 Russia +10/+11 1992 Jan 19 2:00s + 11:00 Russia +11/+12 2011 Mar 27 2:00s + 12:00 - +12 2011 Sep 13 0:00s # Decree 725? + 11:00 - +11 2014 Oct 26 2:00s + 10:00 - +10 # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): @@ -3155,12 +3172,12 @@ # The Zone name should be Asia/Petropavlovsk-Kamchatski or perhaps # Asia/Petropavlovsk-Kamchatsky, but these are too long. Zone Asia/Kamchatka 10:34:36 - LMT 1922 Nov 10 - 11:00 - PETT 1930 Jun 21 # P-K Time - 12:00 Russia PET%sT 1991 Mar 31 2:00s - 11:00 Russia PET%sT 1992 Jan 19 2:00s - 12:00 Russia PET%sT 2010 Mar 28 2:00s - 11:00 Russia PET%sT 2011 Mar 27 2:00s - 12:00 - PETT + 11:00 - +11 1930 Jun 21 + 12:00 Russia +12/+13 1991 Mar 31 2:00s + 11:00 Russia +11/+12 1992 Jan 19 2:00s + 12:00 Russia +12/+13 2010 Mar 28 2:00s + 11:00 Russia +11/+12 2011 Mar 27 2:00s + 12:00 - +12 # From Tim Parenti (2014-07-03): @@ -3168,13 +3185,13 @@ # 87 RU-CHU Chukotka Autonomous Okrug Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2 - 12:00 - ANAT 1930 Jun 21 # Anadyr Time - 13:00 Russia ANA%sT 1982 Apr 1 0:00s - 12:00 Russia ANA%sT 1991 Mar 31 2:00s - 11:00 Russia ANA%sT 1992 Jan 19 2:00s - 12:00 Russia ANA%sT 2010 Mar 28 2:00s - 11:00 Russia ANA%sT 2011 Mar 27 2:00s - 12:00 - ANAT + 12:00 - +12 1930 Jun 21 + 13:00 Russia +13/+14 1982 Apr 1 0:00s + 12:00 Russia +12/+13 1991 Mar 31 2:00s + 11:00 Russia +11/+12 1992 Jan 19 2:00s + 12:00 Russia +12/+13 2010 Mar 28 2:00s + 11:00 Russia +11/+12 2011 Mar 27 2:00s + 12:00 - +12 # San Marino @@ -3495,6 +3512,14 @@ # Engineered Standard Time," said Twitter user @aysekarahasan. # http://www.bbc.com/news/world-europe-34631326 +# From Burak AYDIN (2016-09-08): +# Turkey will stay in Daylight Saving Time even in winter.... +# http://www.resmigazete.gov.tr/eskiler/2016/09/20160908-2.pdf +# +# From Paul Eggert (2016-09-07): +# The change is permanent, so this is the new standard time in Turkey. +# It takes effect today, which is not much notice. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Turkey 1916 only - May 1 0:00 1:00 S Rule Turkey 1916 only - Oct 1 0:00 0 - @@ -3558,7 +3583,7 @@ Zone Europe/Istanbul 1:55:52 - LMT 1880 1:56:56 - IMT 1910 Oct # Istanbul Mean Time? 2:00 Turkey EE%sT 1978 Oct 15 - 3:00 Turkey TR%sT 1985 Apr 20 # Turkey Time + 3:00 Turkey +03/+04 1985 Apr 20 2:00 Turkey EE%sT 2007 2:00 EU EE%sT 2011 Mar 27 1:00u 2:00 - EET 2011 Mar 28 1:00u @@ -3566,7 +3591,8 @@ 2:00 - EET 2014 Mar 31 1:00u 2:00 EU EE%sT 2015 Oct 25 1:00u 2:00 1:00 EEST 2015 Nov 8 1:00u - 2:00 EU EE%sT + 2:00 EU EE%sT 2016 Sep 7 + 3:00 - +03 Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. # Ukraine
--- a/jdk/test/sun/util/calendar/zi/tzdata/factory Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/sun/util/calendar/zi/tzdata/factory Thu Oct 06 23:13:06 2016 +0000 @@ -24,9 +24,10 @@ # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. -# For companies who don't want to put time zone specification in -# their installation procedures. When users run date, they'll get the message. -# Also useful for the "comp.sources" version. +# For distributors who don't want to put time zone specification in +# their installation procedures. Users that run 'date' will get the +# time zone abbreviation "-00", indicating that the actual time zone +# is unknown. # Zone NAME GMTOFF RULES FORMAT -Zone Factory 0 - "Local time zone must be set--see zic manual page" +Zone Factory 0 - -00
--- a/jdk/test/sun/util/calendar/zi/tzdata/leapseconds Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/sun/util/calendar/zi/tzdata/leapseconds Thu Oct 06 23:13:06 2016 +0000 @@ -79,6 +79,7 @@ Leap 2008 Dec 31 23:59:60 + S Leap 2012 Jun 30 23:59:60 + S Leap 2015 Jun 30 23:59:60 + S +Leap 2016 Dec 31 23:59:60 + S -# Updated through IERS Bulletin C51 -# File expires on: 28 December 2016 +# Updated through IERS Bulletin C52 +# File expires on: 28 June 2017
--- a/jdk/test/sun/util/calendar/zi/tzdata/northamerica Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/sun/util/calendar/zi/tzdata/northamerica Thu Oct 06 23:13:06 2016 +0000 @@ -436,11 +436,42 @@ # north of the Salmon River, and the towns of Burgdorf and Warren), # Nevada (except West Wendover), Oregon (except the northern 3/4 of # Malheur county), and Washington + +# From Paul Eggert (2016-08-20): +# In early February 1948, in response to California's electricity shortage, +# PG&E changed power frequency from 60 to 59.5 Hz during daylight hours, +# causing electric clocks to lose six minutes per day. (This did not change +# legal time, and is not part of the data here.) See: +# Ross SA. An energy crisis from the past: Northern California in 1948. +# Working Paper No. 8, Institute of Governmental Studies, UC Berkeley, +# 1973-11. http://escholarship.org/uc/item/8x22k30c +# +# In another measure to save electricity, DST was instituted from 1948-03-14 +# at 02:01 to 1949-01-16 at 02:00, with the governor having the option to move +# the fallback transition earlier. See pages 3-4 of: +# http://clerk.assembly.ca.gov/sites/clerk.assembly.ca.gov/files/archive/Statutes/1948/48Vol1_Chapters.pdf +# +# In response: +# +# Governor Warren received a torrent of objecting mail, and it is not too much +# to speculate that the objections to Daylight Saving Time were one important +# factor in the defeat of the Dewey-Warren Presidential ticket in California. +# -- Ross, p 25 +# +# On December 8 the governor exercised the option, setting the date to January 1 +# (LA Times 1948-12-09). The transition time was 02:00 (LA Times 1949-01-01). +# +# Despite the controversy, in 1949 California voters approved Proposition 12, +# which established DST from April's last Sunday at 01:00 until September's +# last Sunday at 02:00. This was amended by 1962's Proposition 6, which changed +# the fall-back date to October's last Sunday. See: +# http://repository.uchastings.edu/cgi/viewcontent.cgi?article=1501&context=ca_ballot_props +# http://repository.uchastings.edu/cgi/viewcontent.cgi?article=1636&context=ca_ballot_props # # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER -Rule CA 1948 only - Mar 14 2:00 1:00 D +Rule CA 1948 only - Mar 14 2:01 1:00 D Rule CA 1949 only - Jan 1 2:00 0 S -Rule CA 1950 1966 - Apr lastSun 2:00 1:00 D +Rule CA 1950 1966 - Apr lastSun 1:00 1:00 D Rule CA 1950 1961 - Sep lastSun 2:00 0 S Rule CA 1962 1966 - Oct lastSun 2:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -3304,7 +3335,7 @@ # indicating that the normal ET rules are followed. # # From Paul Eggert (2014-08-19): -# The 2014-08-13 Cabinet meeting decided to stay on UTC-4 year-round. See: +# The 2014-08-13 Cabinet meeting decided to stay on UT -04 year-round. See: # http://tcweeklynews.com/daylight-savings-time-to-be-maintained-p5353-127.htm # Model this as a switch from EST/EDT to AST ... # From Chris Walton (2014-11-04):
--- a/jdk/test/sun/util/calendar/zi/tzdata/southamerica Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/sun/util/calendar/zi/tzdata/southamerica Thu Oct 06 23:13:06 2016 +0000 @@ -433,9 +433,9 @@ # stuck on Summer daylight savings time even though the summer is over. # From Paul Eggert (2013-09-05): -# Perhaps San Luis operates on the legal fiction that it is at UTC-4 +# Perhaps San Luis operates on the legal fiction that it is at -04 # with perpetual summer time, but ordinary usage typically seems to -# just say it's at UTC-3; see, for example, +# just say it's at -03; see, for example, # http://es.wikipedia.org/wiki/Hora_oficial_argentina # We've documented similar situations as being plain changes to # standard time, so let's do that here too. This does not change UTC
--- a/jdk/test/sun/util/calendar/zi/tzdata/zone.tab Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/sun/util/calendar/zi/tzdata/zone.tab Thu Oct 06 23:13:06 2016 +0000 @@ -284,7 +284,7 @@ MH +0905+16720 Pacific/Kwajalein Kwajalein MK +4159+02126 Europe/Skopje ML +1239-00800 Africa/Bamako -MM +1647+09610 Asia/Rangoon +MM +1647+09610 Asia/Yangon MN +4755+10653 Asia/Ulaanbaatar Mongolia (most areas) MN +4801+09139 Asia/Hovd Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan MN +4804+11430 Asia/Choibalsan Dornod, Sukhbaatar
--- a/jdk/test/tools/jlink/JLinkNegativeTest.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/tools/jlink/JLinkNegativeTest.java Thu Oct 06 23:13:06 2016 +0000 @@ -191,7 +191,7 @@ .output(imageFile) .addMods("not_zip") .modulePath(helper.defaultModulePath()) - .call().assertFailure("Error: java.util.zip.ZipException: zip file is empty"); + .call().assertFailure("Error: java.io.IOException: Invalid jmod file"); } finally { deleteDirectory(jmod); } @@ -236,13 +236,10 @@ JImageGenerator.addFiles(module, new InMemoryFile("unknown/A.class", new byte[0])); try { Result result = helper.generateDefaultImage(moduleName); - if (result.getExitCode() != 4) { + System.err.println(result.getMessage()); + if (result.getExitCode() == 0) { throw new AssertionError("Crash expected"); } - if (!result.getMessage().contains("java.lang.InternalError: unexpected entry: unknown")) { - System.err.println(result.getMessage()); - throw new AssertionError("InternalError expected"); - } } finally { deleteDirectory(module); } @@ -250,7 +247,7 @@ @Test(enabled = true) public void testSectionsAreFiles() throws IOException { - String moduleName = "module"; + String moduleName = "hacked4"; Path jmod = helper.generateDefaultJModule(moduleName).assertSuccess(); JImageGenerator.addFiles(jmod, new InMemoryFile("/native", new byte[0]), @@ -258,13 +255,10 @@ new InMemoryFile("/bin", new byte[0])); try { Result result = helper.generateDefaultImage(moduleName); - if (result.getExitCode() != 4) { + System.err.println(result.getMessage()); + if (result.getExitCode() == 0) { throw new AssertionError("Crash expected"); } - if (!result.getMessage().contains("java.lang.InternalError: unexpected entry: ")) { - System.err.println(result.getMessage()); - throw new AssertionError("InternalError expected"); - } } finally { deleteDirectory(jmod); }
--- a/jdk/test/tools/jlink/JLinkTest.java Thu Oct 06 20:56:11 2016 +0000 +++ b/jdk/test/tools/jlink/JLinkTest.java Thu Oct 06 23:13:06 2016 +0000 @@ -122,15 +122,6 @@ } { - String moduleName = "filter"; - Path jmod = helper.generateDefaultJModule(moduleName).assertSuccess(); - String className = "_A.class"; - JImageGenerator.addFiles(jmod, new InMemoryFile(className, new byte[0])); - Path image = helper.generateDefaultImage(moduleName).assertSuccess(); - helper.checkImage(image, moduleName, new String[] {"/" + moduleName + "/" + className}, null); - } - - { String moduleName = "m"; // 8163382 Path jmod = helper.generateDefaultJModule(moduleName).assertSuccess(); JImageGenerator.getJLinkTask()