diff --git a/corba/src/share/classes/com/sun/corba/se/impl/orbutil/ORBConstants.java b/corba/src/share/classes/com/sun/corba/se/impl/orbutil/ORBConstants.java index 68a901fd60e..a621d88aa43 100644 --- a/corba/src/share/classes/com/sun/corba/se/impl/orbutil/ORBConstants.java +++ b/corba/src/share/classes/com/sun/corba/se/impl/orbutil/ORBConstants.java @@ -317,6 +317,8 @@ public static int makePersistent( int scid ) public static final String DYNAMIC_STUB_FACTORY_FACTORY_CLASS = SUN_PREFIX + "ORBDynamicStubFactoryFactoryClass" ; + public static final String ALLOW_DESERIALIZE_OBJECT = SUN_PREFIX + "ORBAllowDeserializeObject" ; + // Constants for NameService properties ************************************ public static final int DEFAULT_INITIAL_PORT = 900; diff --git a/corba/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Stub.java b/corba/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Stub.java index c305ada5b24..89c809672e7 100644 --- a/corba/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Stub.java +++ b/corba/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Stub.java @@ -342,6 +342,11 @@ protected void writeSerializationMethods () stream.println (" private void readObject (java.io.ObjectInputStream s) throws java.io.IOException"); stream.println (" {"); stream.println (" String str = s.readUTF ();"); + if ("DynAnyFactory".equals (i.name ())) { + stream.println (" if (!str.startsWith(com.sun.corba.se.impl.orbutil.ORBConstants.STRINGIFY_PREFIX) &&"); + stream.println (" !Boolean.getBoolean(com.sun.corba.se.impl.orbutil.ORBConstants.ALLOW_DESERIALIZE_OBJECT))"); + stream.println (" throw new java.io.InvalidObjectException(\"IOR: expected\");"); + } stream.println (" String[] args = null;"); stream.println (" java.util.Properties props = null;"); stream.println (" org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init (args, props);"); diff --git a/hotspot/src/os_cpu/aix_ppc/vm/os_aix_ppc.cpp b/hotspot/src/os_cpu/aix_ppc/vm/os_aix_ppc.cpp index 0d46c1c948e..42659f533fc 100644 --- a/hotspot/src/os_cpu/aix_ppc/vm/os_aix_ppc.cpp +++ b/hotspot/src/os_cpu/aix_ppc/vm/os_aix_ppc.cpp @@ -214,7 +214,7 @@ JVM_handle_aix_signal(int sig, siginfo_t* info, void* ucVoid, int abort_if_unrec // SafeFetch 32 handling: // - make it work if _thread is null // - make it use the standard os::...::ucontext_get/set_pc APIs - if (uc) { + if ((sig == SIGSEGV || sig == SIGBUS) && uc) { address const pc = os::Aix::ucontext_get_pc(uc); if (pc && StubRoutines::is_safefetch_fault(pc)) { os::Aix::ucontext_set_pc(uc, StubRoutines::continuation_for_safefetch_fault(pc)); diff --git a/hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp b/hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp index bfa4243f754..cecaf5202df 100644 --- a/hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp +++ b/hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp @@ -462,13 +462,13 @@ JVM_handle_bsd_signal(int sig, if (info != NULL && uc != NULL && thread != NULL) { pc = (address) os::Bsd::ucontext_get_pc(uc); - if (StubRoutines::is_safefetch_fault(pc)) { - uc->context_pc = intptr_t(StubRoutines::continuation_for_safefetch_fault(pc)); - return 1; - } - - // Handle ALL stack overflow variations here if (sig == SIGSEGV || sig == SIGBUS) { + if (StubRoutines::is_safefetch_fault(pc)) { + uc->context_pc = intptr_t(StubRoutines::continuation_for_safefetch_fault(pc)); + return 1; + } + + // Handle ALL stack overflow variations here address addr = (address) info->si_addr; // check if fault address is within thread stack diff --git a/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp b/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp index 82e36d27f89..db1cb10499d 100644 --- a/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp +++ b/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp @@ -251,7 +251,7 @@ JVM_handle_linux_signal(int sig, if (info != NULL && uc != NULL && thread != NULL) { pc = (address) os::Linux::ucontext_get_pc(uc); - if (StubRoutines::is_safefetch_fault(pc)) { + if ((sig == SIGSEGV || sig == SIGBUS) && StubRoutines::is_safefetch_fault(pc)) { uc->uc_mcontext.pc = intptr_t(StubRoutines::continuation_for_safefetch_fault(pc)); return 1; } diff --git a/hotspot/src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp b/hotspot/src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp index 1fb993ec197..ffee3b50898 100644 --- a/hotspot/src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp +++ b/hotspot/src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp @@ -214,7 +214,7 @@ JVM_handle_linux_signal(int sig, // Moved SafeFetch32 handling outside thread!=NULL conditional block to make // it work if no associated JavaThread object exists. - if (uc) { + if ((sig == SIGSEGV || sig == SIGBUS) && uc) { address const pc = os::Linux::ucontext_get_pc(uc); if (pc && StubRoutines::is_safefetch_fault(pc)) { uc->uc_mcontext.regs->nip = (unsigned long)StubRoutines::continuation_for_safefetch_fault(pc); diff --git a/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp b/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp index 16a0686a6cc..fa4cca1c182 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp @@ -602,7 +602,7 @@ JVM_handle_linux_signal(int sig, return 1; } - if (checkPrefetch(uc, pc)) { + if ((sig == SIGSEGV || sig == SIGBUS) && checkPrefetch(uc, pc)) { return 1; } diff --git a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp index 65c3165ca18..12b5ca0acd6 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp +++ b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp @@ -277,7 +277,7 @@ JVM_handle_linux_signal(int sig, if (info != NULL && uc != NULL && thread != NULL) { pc = (address) os::Linux::ucontext_get_pc(uc); - if (StubRoutines::is_safefetch_fault(pc)) { + if ((sig == SIGSEGV || sig == SIGBUS) && StubRoutines::is_safefetch_fault(pc)) { uc->uc_mcontext.gregs[REG_PC] = intptr_t(StubRoutines::continuation_for_safefetch_fault(pc)); return 1; } diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp b/hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp index 77fcc52e685..224ee0840e7 100644 --- a/hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp +++ b/hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp @@ -378,7 +378,7 @@ JVM_handle_solaris_signal(int sig, siginfo_t* info, void* ucVoid, npc = (address) uc->uc_mcontext.gregs[REG_nPC]; // SafeFetch() support - if (StubRoutines::is_safefetch_fault(pc)) { + if ((sig == SIGSEGV || sig == SIGBUS) && StubRoutines::is_safefetch_fault(pc)) { uc->uc_mcontext.gregs[REG_PC] = intptr_t(StubRoutines::continuation_for_safefetch_fault(pc)); uc->uc_mcontext.gregs[REG_nPC] = uc->uc_mcontext.gregs[REG_PC] + 4; return 1; diff --git a/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp b/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp index 21c4570005b..3c24d3af5bc 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp @@ -433,7 +433,7 @@ JVM_handle_solaris_signal(int sig, siginfo_t* info, void* ucVoid, // factor me: getPCfromContext pc = (address) uc->uc_mcontext.gregs[REG_PC]; - if (StubRoutines::is_safefetch_fault(pc)) { + if ((sig == SIGSEGV || sig == SIGBUS) && StubRoutines::is_safefetch_fault(pc)) { uc->uc_mcontext.gregs[REG_PC] = intptr_t(StubRoutines::continuation_for_safefetch_fault(pc)); return true; } diff --git a/hotspot/src/share/vm/jfr/recorder/checkpoint/jfrCheckpointManager.cpp b/hotspot/src/share/vm/jfr/recorder/checkpoint/jfrCheckpointManager.cpp index 69a4ccfef8d..ad5f288e311 100644 --- a/hotspot/src/share/vm/jfr/recorder/checkpoint/jfrCheckpointManager.cpp +++ b/hotspot/src/share/vm/jfr/recorder/checkpoint/jfrCheckpointManager.cpp @@ -156,7 +156,9 @@ bool JfrCheckpointManager::is_locked() const { } static void assert_free_lease(const BufferPtr buffer) { - assert(buffer != NULL, "invariant"); + if (buffer == NULL) { + return; + } assert(buffer->acquired_by_self(), "invariant"); assert(buffer->lease(), "invariant"); } diff --git a/hotspot/src/share/vm/jfr/recorder/storage/jfrBuffer.cpp b/hotspot/src/share/vm/jfr/recorder/storage/jfrBuffer.cpp index 120ea38c449..eaf9a62a5de 100644 --- a/hotspot/src/share/vm/jfr/recorder/storage/jfrBuffer.cpp +++ b/hotspot/src/share/vm/jfr/recorder/storage/jfrBuffer.cpp @@ -38,11 +38,13 @@ JfrBuffer::JfrBuffer() : _next(NULL), _top(NULL), _flags(0), _header_size(0), - _size(0) {} + _size(0) + LP64_ONLY(COMMA _pad(0)) {} bool JfrBuffer::initialize(size_t header_size, size_t size, const void* id /* NULL */) { - _header_size = (u2)header_size; - _size = (u4)(size / BytesPerWord); + assert(header_size <= max_jushort, "invariant"); + _header_size = static_cast(header_size); + _size = size; assert(_identity == NULL, "invariant"); _identity = id; set_pos(start()); diff --git a/hotspot/src/share/vm/jfr/recorder/storage/jfrBuffer.hpp b/hotspot/src/share/vm/jfr/recorder/storage/jfrBuffer.hpp index f97d50fabae..39a6b74953e 100644 --- a/hotspot/src/share/vm/jfr/recorder/storage/jfrBuffer.hpp +++ b/hotspot/src/share/vm/jfr/recorder/storage/jfrBuffer.hpp @@ -52,9 +52,10 @@ class JfrBuffer { const void* volatile _identity; u1* _pos; mutable const u1* volatile _top; - u2 _flags; + size_t _size; u2 _header_size; - u4 _size; + u2 _flags; + LP64_ONLY(const u4 _pad;) const u1* stable_top() const; @@ -124,7 +125,7 @@ class JfrBuffer { } size_t size() const { - return _size * BytesPerWord; + return _size; } size_t total_size() const { diff --git a/hotspot/src/share/vm/jfr/recorder/storage/jfrMemorySpace.hpp b/hotspot/src/share/vm/jfr/recorder/storage/jfrMemorySpace.hpp index 8e9508b0c1b..22c7aa5953c 100644 --- a/hotspot/src/share/vm/jfr/recorder/storage/jfrMemorySpace.hpp +++ b/hotspot/src/share/vm/jfr/recorder/storage/jfrMemorySpace.hpp @@ -108,19 +108,27 @@ class JfrMemorySpace : public JfrCHeapObj { }; // allocations are even multiples of the mspace min size -inline u8 align_allocation_size(u8 requested_size, size_t min_elem_size) { +inline size_t align_allocation_size(size_t requested_size, size_t min_elem_size) { assert((int)min_elem_size % os::vm_page_size() == 0, "invariant"); + if (requested_size > static_cast(min_intx)) { + assert(false, err_msg("requested size: " SIZE_FORMAT " is too large", requested_size)); + return 0; + } u8 alloc_size_bytes = min_elem_size; while (requested_size > alloc_size_bytes) { alloc_size_bytes <<= 1; } assert((int)alloc_size_bytes % os::vm_page_size() == 0, "invariant"); - return alloc_size_bytes; + assert(alloc_size_bytes <= static_cast(min_intx), "invariant"); + return static_cast(alloc_size_bytes); } template class RetrievalType, typename Callback> T* JfrMemorySpace::allocate(size_t size) { - const u8 aligned_size_bytes = align_allocation_size(size, _min_elem_size); + const size_t aligned_size_bytes = align_allocation_size(size, _min_elem_size); + if (size != 0 && aligned_size_bytes == 0) { + return NULL; + } void* const allocation = JfrCHeapObj::new_array(aligned_size_bytes + sizeof(T)); if (allocation == NULL) { return NULL; diff --git a/hotspot/src/share/vm/jfr/writers/jfrWriterHost.inline.hpp b/hotspot/src/share/vm/jfr/writers/jfrWriterHost.inline.hpp index e173d71a9c0..d141d630f35 100644 --- a/hotspot/src/share/vm/jfr/writers/jfrWriterHost.inline.hpp +++ b/hotspot/src/share/vm/jfr/writers/jfrWriterHost.inline.hpp @@ -70,6 +70,7 @@ template inline void WriterHost::write(const T* value, size_t len) { assert(value != NULL, "invariant"); assert(len > 0, "invariant"); + assert(len <= max_jint, "invariant"); // Might need T + 1 size u1* const pos = ensure_size(sizeof(T) * len + len); if (pos) { @@ -125,8 +126,9 @@ template inline void WriterHost::be_write(const T* value, size_t len) { assert(value != NULL, "invariant"); assert(len > 0, "invariant"); - // Might need T + 1 size - u1* const pos = ensure_size(sizeof(T) * len + len); + assert(len <= max_jint, "invariant"); + // Big endian writes map one-to-one for length, so no extra space is needed. + u1* const pos = ensure_size(sizeof(T) * len); if (pos) { this->set_current_pos(BE::be_write(value, len, pos)); } diff --git a/hotspot/src/share/vm/prims/jni.cpp b/hotspot/src/share/vm/prims/jni.cpp index dde3975677d..ca37a08756e 100644 --- a/hotspot/src/share/vm/prims/jni.cpp +++ b/hotspot/src/share/vm/prims/jni.cpp @@ -191,8 +191,6 @@ static jint CurrentVersion = JNI_VERSION_1_8; #define FP_SELECT(TypeName, intcode, fpcode) \ FP_SELECT_##TypeName(intcode, fpcode) -#define COMMA , - // Choose DT_RETURN_MARK macros based on the type: float/double -> void // (dtrace doesn't do FP yet) #ifndef USDT2 diff --git a/hotspot/src/share/vm/utilities/macros.hpp b/hotspot/src/share/vm/utilities/macros.hpp index 53cc46bee75..599e1074de5 100644 --- a/hotspot/src/share/vm/utilities/macros.hpp +++ b/hotspot/src/share/vm/utilities/macros.hpp @@ -34,6 +34,9 @@ // Makes a string of the macro expansion of a #define XSTR(a) STR(a) +// Allow commas in macro arguments. +#define COMMA , + // -DINCLUDE_=0 | 1 can be specified on the command line to include // or exclude functionality. diff --git a/jdk/make/data/tzdata/VERSION b/jdk/make/data/tzdata/VERSION index b8cb36e69f4..0f328a4a7ff 100644 --- a/jdk/make/data/tzdata/VERSION +++ b/jdk/make/data/tzdata/VERSION @@ -21,4 +21,4 @@ # or visit www.oracle.com if you need additional information or have any # questions. # -tzdata2022e +tzdata2022g diff --git a/jdk/make/data/tzdata/africa b/jdk/make/data/tzdata/africa index e13899b224a..1dfd5894b4a 100644 --- a/jdk/make/data/tzdata/africa +++ b/jdk/make/data/tzdata/africa @@ -120,22 +120,6 @@ Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 16 0:00 Algeria WE%sT 1981 May 1:00 - CET -# Angola -# Benin -# See Africa/Lagos. - -# Botswana -# See Africa/Maputo. - -# Burkina Faso -# See Africa/Abidjan. - -# Burundi -# See Africa/Maputo. - -# Cameroon -# See Africa/Lagos. - # Cape Verde / Cabo Verde # # From Paul Eggert (2018-02-16): @@ -150,9 +134,6 @@ Zone Atlantic/Cape_Verde -1:34:04 - LMT 1912 Jan 01 2:00u # Praia -2:00 - -02 1975 Nov 25 2:00 -1:00 - -01 -# Central African Republic -# See Africa/Lagos. - # Chad # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena @@ -160,33 +141,29 @@ Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena 1:00 1:00 WAST 1980 Mar 8 1:00 - WAT -# Comoros -# See Africa/Nairobi. - -# Democratic Republic of the Congo -# See Africa/Lagos for the western part and Africa/Maputo for the eastern. +# Burkina Faso +# Côte d'Ivoire (Ivory Coast) +# The Gambia +# Ghana +# Guinea +# Iceland +# Mali +# Mauritania +# St Helena +# Senegal +# Sierra Leone +# Togo -# Republic of the Congo -# See Africa/Lagos. +# The other parts of the St Helena territory are similar: +# Tristan da Cunha: on GMT, say Whitman and the CIA +# Ascension: on GMT, say the USNO (1995-12-21) and the CIA +# Gough (scientific station since 1955; sealers wintered previously): +# on GMT, says the CIA +# Inaccessible, Nightingale: uninhabited -# Côte d'Ivoire / Ivory Coast # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Abidjan -0:16:08 - LMT 1912 0:00 - GMT -Link Africa/Abidjan Africa/Accra # Ghana -Link Africa/Abidjan Africa/Bamako # Mali -Link Africa/Abidjan Africa/Banjul # The Gambia -Link Africa/Abidjan Africa/Conakry # Guinea -Link Africa/Abidjan Africa/Dakar # Senegal -Link Africa/Abidjan Africa/Freetown # Sierra Leone -Link Africa/Abidjan Africa/Lome # Togo -Link Africa/Abidjan Africa/Nouakchott # Mauritania -Link Africa/Abidjan Africa/Ouagadougou # Burkina Faso -Link Africa/Abidjan Atlantic/Reykjavik # Iceland -Link Africa/Abidjan Atlantic/St_Helena # St Helena - -# Djibouti -# See Africa/Nairobi. ############################################################################### @@ -382,33 +359,6 @@ Rule Egypt 2014 only - Sep lastThu 24:00 0 - Zone Africa/Cairo 2:05:09 - LMT 1900 Oct 2:00 Egypt EE%sT -# Equatorial Guinea -# See Africa/Lagos. - -# Eritrea -# See Africa/Nairobi. - -# Eswatini (formerly Swaziland) -# See Africa/Johannesburg. - -# Ethiopia -# See Africa/Nairobi. -# -# Unfortunately tzdb records only Western clock time in use in Ethiopia, -# as the tzdb format is not up to properly recording a common Ethiopian -# timekeeping practice that is based on solar time. See: -# Mortada D. If you have a meeting in Ethiopia, you'd better double -# check the time. PRI's The World. 2015-01-30 15:15 -05. -# https://www.pri.org/stories/2015-01-30/if-you-have-meeting-ethiopia-you-better-double-check-time - -# Gabon -# See Africa/Lagos. - -# The Gambia -# Ghana -# Guinea -# See Africa/Abidjan. - # Guinea-Bissau # # From Paul Eggert (2018-02-16): @@ -421,7 +371,16 @@ Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u -1:00 - -01 1975 0:00 - GMT +# Comoros +# Djibouti +# Eritrea +# Ethiopia # Kenya +# Madagascar +# Mayotte +# Somalia +# Tanzania +# Uganda # From P Chan (2020-10-24): # @@ -464,6 +423,14 @@ Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u # The 1908-05-01 announcement does not give an effective date, # so just say "1908 May". +# From Paul Eggert (2018-09-11): +# Unfortunately tzdb records only Western clock time in use in Ethiopia, +# as the tzdb format is not up to properly recording a common Ethiopian +# timekeeping practice that is based on solar time. See: +# Mortada D. If you have a meeting in Ethiopia, you'd better double +# check the time. PRI's The World. 2015-01-30 15:15 -05. +# https://www.pri.org/stories/2015-01-30/if-you-have-meeting-ethiopia-you-better-double-check-time + # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Nairobi 2:27:16 - LMT 1908 May 2:30 - +0230 1928 Jun 30 24:00 @@ -471,18 +438,6 @@ Zone Africa/Nairobi 2:27:16 - LMT 1908 May 2:30 - +0230 1936 Dec 31 24:00 2:45 - +0245 1942 Jul 31 24:00 3:00 - EAT -Link Africa/Nairobi Africa/Addis_Ababa # Ethiopia -Link Africa/Nairobi Africa/Asmara # Eritrea -Link Africa/Nairobi Africa/Dar_es_Salaam # Tanzania -Link Africa/Nairobi Africa/Djibouti -Link Africa/Nairobi Africa/Kampala # Uganda -Link Africa/Nairobi Africa/Mogadishu # Somalia -Link Africa/Nairobi Indian/Antananarivo # Madagascar -Link Africa/Nairobi Indian/Comoro -Link Africa/Nairobi Indian/Mayotte - -# Lesotho -# See Africa/Johannesburg. # Liberia # @@ -563,16 +518,6 @@ Zone Africa/Tripoli 0:52:44 - LMT 1920 1:00 Libya CE%sT 2013 Oct 25 2:00 2:00 - EET -# Madagascar -# See Africa/Nairobi. - -# Malawi -# See Africa/Maputo. - -# Mali -# Mauritania -# See Africa/Abidjan. - # Mauritius # From Steffen Thorsen (2008-06-25): @@ -666,8 +611,6 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis # Agalega Is, Rodriguez # no information; probably like Indian/Mauritius -# Mayotte -# See Africa/Nairobi. # Morocco # See Africa/Ceuta for Spanish Morocco. @@ -1160,7 +1103,14 @@ Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan # El Aaiún 0:00 Morocco +00/+01 2018 Oct 28 3:00 0:00 Morocco +00/+01 +# Botswana +# Burundi +# Democratic Republic of the Congo (eastern) +# Malawi # Mozambique +# Rwanda +# Zambia +# Zimbabwe # # Shanks gives 1903-03-01 for the transition to CAT. # Perhaps the 1911-05-26 Portuguese decree @@ -1170,14 +1120,6 @@ Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan # El Aaiún # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Maputo 2:10:20 - LMT 1903 Mar 2:00 - CAT -Link Africa/Maputo Africa/Blantyre # Malawi -Link Africa/Maputo Africa/Bujumbura # Burundi -Link Africa/Maputo Africa/Gaborone # Botswana -Link Africa/Maputo Africa/Harare # Zimbabwe -Link Africa/Maputo Africa/Kigali # Rwanda -Link Africa/Maputo Africa/Lubumbashi # E Dem. Rep. of Congo -Link Africa/Maputo Africa/Lusaka # Zambia - # Namibia @@ -1256,9 +1198,16 @@ Zone Africa/Windhoek 1:08:24 - LMT 1892 Feb 8 2:00 - CAT # End of rearguard section. -# Niger -# See Africa/Lagos. +# Angola +# Benin +# Cameroon +# Central African Republic +# Democratic Republic of the Congo (western) +# Republic of the Congo +# Equatorial Guinea +# Gabon +# Niger # Nigeria # From P Chan (2020-12-03): @@ -1324,32 +1273,6 @@ Zone Africa/Lagos 0:13:35 - LMT 1905 Jul 1 0:13:35 - LMT 1914 Jan 1 0:30 - +0030 1919 Sep 1 1:00 - WAT -Link Africa/Lagos Africa/Bangui # Central African Republic -Link Africa/Lagos Africa/Brazzaville # Rep. of the Congo -Link Africa/Lagos Africa/Douala # Cameroon -Link Africa/Lagos Africa/Kinshasa # Dem. Rep. of the Congo (west) -Link Africa/Lagos Africa/Libreville # Gabon -Link Africa/Lagos Africa/Luanda # Angola -Link Africa/Lagos Africa/Malabo # Equatorial Guinea -Link Africa/Lagos Africa/Niamey # Niger -Link Africa/Lagos Africa/Porto-Novo # Benin - -# Réunion -# See Asia/Dubai. -# -# The Crozet Islands also observe Réunion time; see the 'antarctica' file. - -# Rwanda -# See Africa/Maputo. - -# St Helena -# See Africa/Abidjan. -# The other parts of the St Helena territory are similar: -# Tristan da Cunha: on GMT, say Whitman and the CIA -# Ascension: on GMT, say the USNO (1995-12-21) and the CIA -# Gough (scientific station since 1955; sealers wintered previously): -# on GMT, says the CIA -# Inaccessible, Nightingale: uninhabited # São Tomé and Príncipe @@ -1378,19 +1301,10 @@ Zone Africa/Sao_Tome 0:26:56 - LMT 1884 1:00 - WAT 2019 Jan 1 02:00 0:00 - GMT -# Senegal -# See Africa/Abidjan. - -# Seychelles -# See Asia/Dubai. - -# Sierra Leone -# See Africa/Abidjan. - -# Somalia -# See Africa/Nairobi. - +# Eswatini (Swaziland) +# Lesotho # South Africa + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule SA 1942 1943 - Sep Sun>=15 2:00 1:00 - Rule SA 1943 1944 - Mar Sun>=15 2:00 0 - @@ -1398,8 +1312,6 @@ Rule SA 1943 1944 - Mar Sun>=15 2:00 0 - Zone Africa/Johannesburg 1:52:00 - LMT 1892 Feb 8 1:30 - SAST 1903 Mar 2:00 SA SAST -Link Africa/Johannesburg Africa/Maseru # Lesotho -Link Africa/Johannesburg Africa/Mbabane # Eswatini # # Marion and Prince Edward Is # scientific station since 1947 @@ -1448,12 +1360,6 @@ Zone Africa/Juba 2:06:28 - LMT 1931 3:00 - EAT 2021 Feb 1 00:00 2:00 - CAT -# Tanzania -# See Africa/Nairobi. - -# Togo -# See Africa/Abidjan. - # Tunisia # From Gwillim Law (2005-04-30): @@ -1551,10 +1457,3 @@ Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 - Zone Africa/Tunis 0:40:44 - LMT 1881 May 12 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time 1:00 Tunisia CE%sT - -# Uganda -# See Africa/Nairobi. - -# Zambia -# Zimbabwe -# See Africa/Maputo. diff --git a/jdk/make/data/tzdata/antarctica b/jdk/make/data/tzdata/antarctica index 34c302eefc4..792542b9224 100644 --- a/jdk/make/data/tzdata/antarctica +++ b/jdk/make/data/tzdata/antarctica @@ -329,4 +329,4 @@ Zone Antarctica/Rothera 0 - -00 1976 Dec 1 # we have to go around and set them back 5 minutes or so. # Maybe if we let them run fast all of the time, we'd get to leave here sooner!! # -# See 'australasia' for Antarctica/McMurdo. +# See Pacific/Auckland. diff --git a/jdk/make/data/tzdata/asia b/jdk/make/data/tzdata/asia index f1771e42a71..56fb82b4a36 100644 --- a/jdk/make/data/tzdata/asia +++ b/jdk/make/data/tzdata/asia @@ -172,9 +172,6 @@ Zone Asia/Baku 3:19:24 - LMT 1924 May 2 4:00 EUAsia +04/+05 1997 4:00 Azer +04/+05 -# Bahrain -# See Asia/Qatar. - # Bangladesh # From Alexander Krivenyshev (2009-05-13): # According to newspaper Asian Tribune (May 6, 2009) Bangladesh may introduce @@ -277,10 +274,8 @@ Zone Indian/Chagos 4:49:40 - LMT 1907 5:00 - +05 1996 6:00 - +06 -# Brunei -# See Asia/Kuching. - -# Burma / Myanmar +# Cocos (Keeling) Islands +# Myanmar (Burma) # Milne says 6:24:40 was the meridian of the time ball observatory at Rangoon. @@ -296,11 +291,6 @@ Zone Asia/Yangon 6:24:47 - LMT 1880 # or Rangoon 6:30 - +0630 1942 May 9:00 - +09 1945 May 3 6:30 - +0630 -Link Asia/Yangon Indian/Cocos - -# Cambodia -# See Asia/Bangkok. - # China @@ -688,10 +678,9 @@ Zone Asia/Shanghai 8:05:43 - LMT 1901 8:00 PRC C%sT # Xinjiang time, used by many in western China; represented by Ürümqi / Ürümchi # / Wulumuqi. (Please use Asia/Shanghai if you prefer Beijing time.) +# Vostok base in Antarctica matches this since 1970. Zone Asia/Urumqi 5:50:20 - LMT 1928 6:00 - +06 -Link Asia/Urumqi Antarctica/Vostok - # Hong Kong @@ -1195,10 +1184,6 @@ Zone Asia/Famagusta 2:15:48 - LMT 1921 Nov 14 3:00 - +03 2017 Oct 29 1:00u 2:00 EUAsia EE%sT -# Classically, Cyprus belongs to Asia; e.g. see Herodotus, Histories, I.72. -# However, for various reasons many users expect to find it under Europe. -Link Asia/Nicosia Europe/Nicosia - # Georgia # From Paul Eggert (1994-11-19): # Today's _Economist_ (p 60) reports that Georgia moved its clocks forward @@ -2727,14 +2712,6 @@ Zone Asia/Pyongyang 8:23:00 - LMT 1908 Apr 1 8:30 - KST 2018 May 4 23:30 9:00 - KST -############################################################################### - -# Kuwait -# See Asia/Riyadh. - -# Laos -# See Asia/Bangkok. - # Lebanon # Rule NAME FROM TO - IN ON AT SAVE LETTER/S @@ -2766,7 +2743,9 @@ Rule Lebanon 1999 max - Oct lastSun 0:00 0 - Zone Asia/Beirut 2:22:00 - LMT 1880 2:00 Lebanon EE%sT -# Malaysia +# Brunei +# Malaysia (eastern) +# # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 - Rule NBorneo 1935 1941 - Dec 14 0:00 0 - @@ -2783,14 +2762,12 @@ Zone Asia/Kuching 7:21:20 - LMT 1926 Mar 8:00 NBorneo +08/+0820 1942 Feb 16 9:00 - +09 1945 Sep 12 8:00 - +08 -Link Asia/Kuching Asia/Brunei # Maldives # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Indian/Maldives 4:54:00 - LMT 1880 # Malé 4:54:00 - MMT 1960 # Malé Mean Time 5:00 - +05 -Link Indian/Maldives Indian/Kerguelen # Mongolia @@ -2953,9 +2930,6 @@ Zone Asia/Kathmandu 5:41:16 - LMT 1920 5:30 - +0530 1986 5:45 - +0545 -# Oman -# See Asia/Dubai. - # Pakistan # From Rives McDow (2002-03-13): @@ -3566,14 +3540,18 @@ Zone Asia/Manila -15:56:00 - LMT 1844 Dec 31 9:00 - JST 1944 Nov 8:00 Phil P%sT +# Bahrain # Qatar # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Qatar 3:26:08 - LMT 1920 # Al Dawhah / Doha 4:00 - +04 1972 Jun 3:00 - +03 -Link Asia/Qatar Asia/Bahrain +# Kuwait # Saudi Arabia +# Yemen +# +# Japan's year-round bases in Antarctica match this since 1970. # # From Paul Eggert (2018-08-29): # Time in Saudi Arabia and other countries in the Arabian peninsula was not @@ -3618,9 +3596,6 @@ Link Asia/Qatar Asia/Bahrain # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Riyadh 3:06:52 - LMT 1947 Mar 14 3:00 - +03 -Link Asia/Riyadh Antarctica/Syowa -Link Asia/Riyadh Asia/Aden # Yemen -Link Asia/Riyadh Asia/Kuwait # Singapore # taken from Mok Ly Yng (2003-10-30) @@ -3633,9 +3608,8 @@ Zone Asia/Singapore 6:55:25 - LMT 1901 Jan 1 7:20 - +0720 1941 Sep 1 7:30 - +0730 1942 Feb 16 9:00 - +09 1945 Sep 12 - 7:30 - +0730 1982 Jan 1 + 7:30 - +0730 1981 Dec 31 16:00u 8:00 - +08 -Link Asia/Singapore Asia/Kuala_Lumpur # Spratly Is # no information @@ -3881,14 +3855,15 @@ Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2 5:00 1:00 +06 1991 Sep 9 2:00s 5:00 - +05 +# Cambodia +# Christmas I +# Laos # Thailand +# Vietnam (northern) # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Bangkok 6:42:04 - LMT 1880 6:42:04 - BMT 1920 Apr # Bangkok Mean Time 7:00 - +07 -Link Asia/Bangkok Asia/Phnom_Penh # Cambodia -Link Asia/Bangkok Asia/Vientiane # Laos -Link Asia/Bangkok Indian/Christmas # Turkmenistan # From Shanks & Pottenger. @@ -3899,13 +3874,15 @@ Zone Asia/Ashgabat 3:53:32 - LMT 1924 May 2 # or Ashkhabad 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00 5:00 - +05 +# Oman +# Réunion +# Seychelles # United Arab Emirates +# +# The Crozet Is also observe Réunion time; see the 'antarctica' file. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Dubai 3:41:12 - LMT 1920 4:00 - +04 -Link Asia/Dubai Asia/Muscat # Oman -Link Asia/Dubai Indian/Mahe -Link Asia/Dubai Indian/Reunion # Uzbekistan # Byalokoz 1919 says Uzbekistan was 4:27:53. @@ -3925,7 +3902,7 @@ Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2 5:00 RussiaAsia +05/+06 1992 5:00 - +05 -# Vietnam +# Vietnam (southern) # From Paul Eggert (2014-10-04): # Milne gives 7:16:56 for the meridian of Saigon in 1899, as being @@ -3999,7 +3976,3 @@ Zone Asia/Ho_Chi_Minh 7:06:30 - LMT 1906 Jul 1 # For timestamps in north Vietnam back to 1970 (the tzdb cutoff), # use Asia/Bangkok; see the VN entries in the file zone1970.tab. # For timestamps before 1970, see Asia/Hanoi in the file 'backzone'. - - -# Yemen -# See Asia/Riyadh. diff --git a/jdk/make/data/tzdata/australasia b/jdk/make/data/tzdata/australasia index 019cd778d30..fbe3b8a6d72 100644 --- a/jdk/make/data/tzdata/australasia +++ b/jdk/make/data/tzdata/australasia @@ -274,13 +274,6 @@ Zone Antarctica/Macquarie 0 - -00 1899 Nov 10:00 1:00 AEDT 2011 10:00 AT AE%sT -# Christmas -# See Asia/Bangkok. - -# Cocos (Keeling) Is -# See Asia/Yangon. - - # Fiji # Milne gives 11:55:44 for Suva. @@ -416,8 +409,14 @@ Zone Antarctica/Macquarie 0 - -00 1899 Nov # concerned shifting arrival and departure times, which may look like a simple # thing but requires some significant logistical adjustments domestically and # internationally." -# Assume for now that DST will resume with the recent pre-2020 rules for the -# 2022/2023 season. + +# From Shalvin Narayan (2022-10-27): +# Please note that there will not be any daylight savings time change +# in Fiji for 2022-2023.... +# https://www.facebook.com/FijianGovernment/posts/pfbid0mmWVTYmTibn66ybpFda75pDcf34SSpoSaskJW5gXwaKo5Sgc7273Q4fXWc6kQV6Hl +# +# From Paul Eggert (2022-10-27): +# For now, assume DST is suspended indefinitely. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 - @@ -432,8 +431,6 @@ Rule Fiji 2014 2018 - Nov Sun>=1 2:00 1:00 - Rule Fiji 2015 2021 - Jan Sun>=12 3:00 0 - Rule Fiji 2019 only - Nov Sun>=8 2:00 1:00 - Rule Fiji 2020 only - Dec 20 2:00 1:00 - -Rule Fiji 2022 max - Nov Sun>=8 2:00 1:00 - -Rule Fiji 2023 max - Jan Sun>=12 3:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva 12:00 Fiji +12/+13 @@ -449,7 +446,9 @@ Zone Pacific/Tahiti -9:58:16 - LMT 1912 Oct # Papeete # Clipperton (near North America) is administered from French Polynesia; # it is uninhabited. + # Guam +# N Mariana Is # Rule NAME FROM TO - IN ON AT SAVE LETTER/S # http://guamlegislature.com/Public_Laws_5th/PL05-025.pdf @@ -489,17 +488,20 @@ Zone Pacific/Guam -14:21:00 - LMT 1844 Dec 31 9:00 - +09 1944 Jul 31 10:00 Guam G%sT 2000 Dec 23 10:00 - ChST # Chamorro Standard Time -Link Pacific/Guam Pacific/Saipan # N Mariana Is -# Kiribati + +# Kiribati (Gilbert Is) +# Marshall Is +# Tuvalu +# Wake +# Wallis & Futuna # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Tarawa 11:32:04 - LMT 1901 # Bairiki 12:00 - +12 -Link Pacific/Tarawa Pacific/Funafuti -Link Pacific/Tarawa Pacific/Majuro -Link Pacific/Tarawa Pacific/Wake -Link Pacific/Tarawa Pacific/Wallis +# Kiribati (except Gilbert Is) +# See Pacific/Tarawa for the Gilbert Is. +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Kanton 0 - -00 1937 Aug 31 -12:00 - -12 1979 Oct -11:00 - -11 1994 Dec 31 @@ -509,9 +511,6 @@ Zone Pacific/Kiritimati -10:29:20 - LMT 1901 -10:00 - -10 1994 Dec 31 14:00 - +14 -# N Mariana Is -# See Pacific/Guam. - # Marshall Is # See Pacific/Tarawa for most locations. # Zone NAME STDOFF RULES FORMAT [UNTIL] @@ -561,6 +560,7 @@ Zone Pacific/Noumea 11:05:48 - LMT 1912 Jan 13 # Nouméa ############################################################################### # New Zealand +# McMurdo Station and Scott Base in Antarctica use Auckland time. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule NZ 1927 only - Nov 6 2:00 1:00 S @@ -596,7 +596,6 @@ Rule Chatham 2008 max - Apr Sun>=1 2:45s 0 - Zone Pacific/Auckland 11:39:04 - LMT 1868 Nov 2 11:30 NZ NZ%sT 1946 Jan 1 12:00 NZ NZ%sT -Link Pacific/Auckland Antarctica/McMurdo Zone Pacific/Chatham 12:13:48 - LMT 1868 Nov 2 12:15 - +1215 1946 Jan 1 @@ -695,8 +694,6 @@ Zone Pacific/Palau -15:02:04 - LMT 1844 Dec 31 # Koror Zone Pacific/Port_Moresby 9:48:40 - LMT 1880 9:48:32 - PMMT 1895 # Port Moresby Mean Time 10:00 - +10 -Link Pacific/Port_Moresby Antarctica/DumontDUrville -Link Pacific/Port_Moresby Pacific/Chuuk # # From Paul Eggert (2014-10-13): # Base the Bougainville entry on the Arawa-Kieta region, which appears to have @@ -729,10 +726,10 @@ Zone Pacific/Pitcairn -8:40:20 - LMT 1901 # Adamstown -8:00 - -08 # American Samoa +# Midway Zone Pacific/Pago_Pago 12:37:12 - LMT 1892 Jul 5 -11:22:48 - LMT 1911 -11:00 - SST # S=Samoa -Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands # Samoa (formerly and also known as Western Samoa) @@ -824,7 +821,6 @@ Zone Pacific/Apia 12:33:04 - LMT 1892 Jul 5 # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Guadalcanal 10:39:48 - LMT 1912 Oct # Honiara 11:00 - +11 -Link Pacific/Guadalcanal Pacific/Pohnpei # Tokelau # @@ -864,9 +860,6 @@ Zone Pacific/Tongatapu 12:19:12 - LMT 1945 Sep 10 13:00 - +13 1999 13:00 Tonga +13/+14 -# Tuvalu -# See Pacific/Tarawa. - # US minor outlying islands @@ -917,15 +910,9 @@ Zone Pacific/Tongatapu 12:19:12 - LMT 1945 Sep 10 # Kingman # uninhabited -# Midway -# See Pacific/Pago_Pago. - # Palmyra # uninhabited since World War II; was probably like Pacific/Kiritimati -# Wake -# See Pacific/Tarawa. - # Vanuatu @@ -962,9 +949,6 @@ Rule Vanuatu 1992 only - Oct Sat>=22 24:00 1:00 - Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila 11:00 Vanuatu +11/+12 -# Wallis and Futuna -# See Pacific/Tarawa. - ############################################################################### # NOTES diff --git a/jdk/make/data/tzdata/backward b/jdk/make/data/tzdata/backward index 7765d99aedf..fa44f655009 100644 --- a/jdk/make/data/tzdata/backward +++ b/jdk/make/data/tzdata/backward @@ -27,7 +27,7 @@ # 2009-05-17 by Arthur David Olson. # This file provides links from old or merged timezone names to current ones. -# Many names changed in late 1993, and many merged names moved here +# Many names changed in 1993 and in 1995, and many merged names moved here # in the period from 2013 through 2022. Several of these names are # also present in the file 'backzone', which has data important only # for pre-1970 timestamps and so is out of scope for tzdb proper. @@ -36,50 +36,24 @@ # building with 'make BACKWARD=', in practice downstream users # typically use this file for backward compatibility. -# Link TARGET LINK-NAME -Link Africa/Nairobi Africa/Asmera -Link Africa/Abidjan Africa/Timbuktu -Link America/Argentina/Catamarca America/Argentina/ComodRivadavia -Link America/Adak America/Atka -Link America/Argentina/Buenos_Aires America/Buenos_Aires -Link America/Argentina/Catamarca America/Catamarca -Link America/Panama America/Coral_Harbour -Link America/Argentina/Cordoba America/Cordoba -Link America/Tijuana America/Ensenada -Link America/Indiana/Indianapolis America/Fort_Wayne -Link America/Nuuk America/Godthab -Link America/Indiana/Indianapolis America/Indianapolis -Link America/Argentina/Jujuy America/Jujuy -Link America/Indiana/Knox America/Knox_IN -Link America/Kentucky/Louisville America/Louisville -Link America/Argentina/Mendoza America/Mendoza -Link America/Toronto America/Montreal -Link America/Rio_Branco America/Porto_Acre -Link America/Argentina/Cordoba America/Rosario -Link America/Tijuana America/Santa_Isabel -Link America/Denver America/Shiprock -Link America/Puerto_Rico America/Virgin -Link Pacific/Auckland Antarctica/South_Pole -Link Asia/Ashgabat Asia/Ashkhabad -Link Asia/Kolkata Asia/Calcutta -Link Asia/Shanghai Asia/Chongqing -Link Asia/Shanghai Asia/Chungking -Link Asia/Dhaka Asia/Dacca -Link Asia/Shanghai Asia/Harbin -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 -Link Asia/Makassar Asia/Ujung_Pandang -Link Asia/Ulaanbaatar Asia/Ulan_Bator -Link Atlantic/Faroe Atlantic/Faeroe -Link Europe/Berlin Atlantic/Jan_Mayen -Link Australia/Sydney Australia/ACT -Link Australia/Sydney Australia/Canberra -Link Australia/Hobart Australia/Currie +# This file is divided into sections, one for each major reason for a +# backward compatibility link. Each section is sorted by link name. + +# A "#= TARGET1" comment labels each link inserted only because some +# .zi parsers (including tzcode through 2022e) mishandle links to links. +# The comment says what the target would be if these parsers were fixed +# so that data could contain links to links. For example, the line +# "Link Australia/Sydney Australia/ACT #= Australia/Canberra" would be +# "Link Australia/Canberra Australia/ACT" were it not that data lines +# refrain from linking to links like Australia/Canberra, which means +# the Australia/ACT line links instead to Australia/Sydney, +# Australia/Canberra's target. + + +# Pre-1993 naming conventions + +# Link TARGET LINK-NAME #= TARGET1 +Link Australia/Sydney Australia/ACT #= Australia/Canberra Link Australia/Lord_Howe Australia/LHI Link Australia/Sydney Australia/NSW Link Australia/Darwin Australia/North @@ -89,7 +63,7 @@ Link Australia/Hobart Australia/Tasmania Link Australia/Melbourne Australia/Victoria Link Australia/Perth Australia/West Link Australia/Broken_Hill Australia/Yancowinna -Link America/Rio_Branco Brazil/Acre +Link America/Rio_Branco Brazil/Acre #= America/Porto_Acre Link America/Noronha Brazil/DeNoronha Link America/Sao_Paulo Brazil/East Link America/Manaus Brazil/West @@ -109,20 +83,36 @@ Link Pacific/Easter Chile/EasterIsland Link America/Havana Cuba Link Africa/Cairo Egypt Link Europe/Dublin Eire +# Vanguard section, for most .zi parsers. +#Link GMT Etc/GMT +#Link GMT Etc/GMT+0 +#Link GMT Etc/GMT-0 +#Link GMT Etc/GMT0 +#Link GMT Etc/Greenwich +# Rearguard section, for TZUpdater 2.3.2 and earlier. +Link Etc/GMT Etc/GMT+0 +Link Etc/GMT Etc/GMT-0 +Link Etc/GMT Etc/GMT0 +Link Etc/GMT Etc/Greenwich +# End of rearguard section. Link Etc/UTC Etc/UCT -Link Europe/London Europe/Belfast -Link Europe/Kyiv Europe/Kiev -Link Europe/Chisinau Europe/Tiraspol -Link Europe/Kyiv Europe/Uzhgorod -Link Europe/Kyiv Europe/Zaporozhye +Link Etc/UTC Etc/Universal +Link Etc/UTC Etc/Zulu Link Europe/London GB Link Europe/London GB-Eire +# Vanguard section, for most .zi parsers. +#Link GMT GMT+0 +#Link GMT GMT-0 +#Link GMT GMT0 +#Link GMT Greenwich +# Rearguard section, for TZUpdater 2.3.2 and earlier. Link Etc/GMT GMT+0 Link Etc/GMT GMT-0 Link Etc/GMT GMT0 Link Etc/GMT Greenwich +# End of rearguard section. Link Asia/Hong_Kong Hongkong -Link Africa/Abidjan Iceland +Link Africa/Abidjan Iceland #= Atlantic/Reykjavik Link Asia/Tehran Iran Link Asia/Jerusalem Israel Link America/Jamaica Jamaica @@ -134,14 +124,8 @@ Link America/Mazatlan Mexico/BajaSur Link America/Mexico_City Mexico/General Link Pacific/Auckland NZ Link Pacific/Chatham NZ-CHAT -Link America/Denver Navajo +Link America/Denver Navajo #= America/Shiprock Link Asia/Shanghai PRC -Link Pacific/Kanton Pacific/Enderbury -Link Pacific/Honolulu Pacific/Johnston -Link Pacific/Guadalcanal Pacific/Ponape -Link Pacific/Pago_Pago Pacific/Samoa -Link Pacific/Port_Moresby Pacific/Truk -Link Pacific/Port_Moresby Pacific/Yap Link Europe/Warsaw Poland Link Europe/Lisbon Portugal Link Asia/Taipei ROC @@ -165,3 +149,193 @@ Link Etc/UTC UTC Link Etc/UTC Universal Link Europe/Moscow W-SU Link Etc/UTC Zulu + + +# Two-part names that were renamed mostly to three-part names in 1995 + +# Link TARGET LINK-NAME #= TARGET1 +Link America/Argentina/Buenos_Aires America/Buenos_Aires +Link America/Argentina/Catamarca America/Catamarca +Link America/Argentina/Cordoba America/Cordoba +Link America/Indiana/Indianapolis America/Indianapolis +Link America/Argentina/Jujuy America/Jujuy +Link America/Indiana/Knox America/Knox_IN +Link America/Kentucky/Louisville America/Louisville +Link America/Argentina/Mendoza America/Mendoza +Link America/Puerto_Rico America/Virgin #= America/St_Thomas +Link Pacific/Pago_Pago Pacific/Samoa + + +# Pre-2013 practice, which typically had a Zone per zone.tab line + +# Link TARGET LINK-NAME +Link Africa/Abidjan Africa/Accra +Link Africa/Nairobi Africa/Addis_Ababa +Link Africa/Nairobi Africa/Asmara +Link Africa/Abidjan Africa/Bamako +Link Africa/Lagos Africa/Bangui +Link Africa/Abidjan Africa/Banjul +Link Africa/Maputo Africa/Blantyre +Link Africa/Lagos Africa/Brazzaville +Link Africa/Maputo Africa/Bujumbura +Link Africa/Abidjan Africa/Conakry +Link Africa/Abidjan Africa/Dakar +Link Africa/Nairobi Africa/Dar_es_Salaam +Link Africa/Nairobi Africa/Djibouti +Link Africa/Lagos Africa/Douala +Link Africa/Abidjan Africa/Freetown +Link Africa/Maputo Africa/Gaborone +Link Africa/Maputo Africa/Harare +Link Africa/Nairobi Africa/Kampala +Link Africa/Maputo Africa/Kigali +Link Africa/Lagos Africa/Kinshasa +Link Africa/Lagos Africa/Libreville +Link Africa/Abidjan Africa/Lome +Link Africa/Lagos Africa/Luanda +Link Africa/Maputo Africa/Lubumbashi +Link Africa/Maputo Africa/Lusaka +Link Africa/Lagos Africa/Malabo +Link Africa/Johannesburg Africa/Maseru +Link Africa/Johannesburg Africa/Mbabane +Link Africa/Nairobi Africa/Mogadishu +Link Africa/Lagos Africa/Niamey +Link Africa/Abidjan Africa/Nouakchott +Link Africa/Abidjan Africa/Ouagadougou +Link Africa/Lagos Africa/Porto-Novo +Link America/Puerto_Rico America/Anguilla +Link America/Puerto_Rico America/Antigua +Link America/Puerto_Rico America/Aruba +Link America/Panama America/Atikokan +Link America/Puerto_Rico America/Blanc-Sablon +Link America/Panama America/Cayman +Link America/Phoenix America/Creston +Link America/Puerto_Rico America/Curacao +Link America/Puerto_Rico America/Dominica +Link America/Puerto_Rico America/Grenada +Link America/Puerto_Rico America/Guadeloupe +Link America/Puerto_Rico America/Kralendijk +Link America/Puerto_Rico America/Lower_Princes +Link America/Puerto_Rico America/Marigot +Link America/Puerto_Rico America/Montserrat +Link America/Toronto America/Nassau +Link America/Puerto_Rico America/Port_of_Spain +Link America/Puerto_Rico America/St_Barthelemy +Link America/Puerto_Rico America/St_Kitts +Link America/Puerto_Rico America/St_Lucia +Link America/Puerto_Rico America/St_Thomas +Link America/Puerto_Rico America/St_Vincent +Link America/Puerto_Rico America/Tortola +Link Pacific/Port_Moresby Antarctica/DumontDUrville +Link Pacific/Auckland Antarctica/McMurdo +Link Asia/Riyadh Antarctica/Syowa +Link Asia/Urumqi Antarctica/Vostok +Link Europe/Berlin Arctic/Longyearbyen +Link Asia/Riyadh Asia/Aden +Link Asia/Qatar Asia/Bahrain +Link Asia/Kuching Asia/Brunei +Link Asia/Singapore Asia/Kuala_Lumpur +Link Asia/Riyadh Asia/Kuwait +Link Asia/Dubai Asia/Muscat +Link Asia/Bangkok Asia/Phnom_Penh +Link Asia/Bangkok Asia/Vientiane +Link Africa/Abidjan Atlantic/Reykjavik +Link Africa/Abidjan Atlantic/St_Helena +Link Europe/Brussels Europe/Amsterdam +Link Europe/Prague Europe/Bratislava +Link Europe/Zurich Europe/Busingen +Link Europe/Berlin Europe/Copenhagen +Link Europe/London Europe/Guernsey +Link Europe/London Europe/Isle_of_Man +Link Europe/London Europe/Jersey +Link Europe/Belgrade Europe/Ljubljana +Link Europe/Brussels Europe/Luxembourg +Link Europe/Helsinki Europe/Mariehamn +Link Europe/Paris Europe/Monaco +Link Europe/Berlin Europe/Oslo +Link Europe/Belgrade Europe/Podgorica +Link Europe/Rome Europe/San_Marino +Link Europe/Belgrade Europe/Sarajevo +Link Europe/Belgrade Europe/Skopje +Link Europe/Berlin Europe/Stockholm +Link Europe/Zurich Europe/Vaduz +Link Europe/Rome Europe/Vatican +Link Europe/Belgrade Europe/Zagreb +Link Africa/Nairobi Indian/Antananarivo +Link Asia/Bangkok Indian/Christmas +Link Asia/Yangon Indian/Cocos +Link Africa/Nairobi Indian/Comoro +Link Indian/Maldives Indian/Kerguelen +Link Asia/Dubai Indian/Mahe +Link Africa/Nairobi Indian/Mayotte +Link Asia/Dubai Indian/Reunion +Link Pacific/Port_Moresby Pacific/Chuuk +Link Pacific/Tarawa Pacific/Funafuti +Link Pacific/Tarawa Pacific/Majuro +Link Pacific/Pago_Pago Pacific/Midway +Link Pacific/Guadalcanal Pacific/Pohnpei +Link Pacific/Guam Pacific/Saipan +Link Pacific/Tarawa Pacific/Wake +Link Pacific/Tarawa Pacific/Wallis + + +# Non-zone.tab locations with timestamps since 1970 that duplicate +# those of an existing location + +# Link TARGET LINK-NAME +Link Africa/Abidjan Africa/Timbuktu +Link America/Argentina/Catamarca America/Argentina/ComodRivadavia +Link America/Adak America/Atka +Link America/Panama America/Coral_Harbour +Link America/Tijuana America/Ensenada +Link America/Indiana/Indianapolis America/Fort_Wayne +Link America/Toronto America/Montreal +Link America/Toronto America/Nipigon +Link America/Iqaluit America/Pangnirtung +Link America/Rio_Branco America/Porto_Acre +Link America/Winnipeg America/Rainy_River +Link America/Argentina/Cordoba America/Rosario +Link America/Tijuana America/Santa_Isabel +Link America/Denver America/Shiprock +Link America/Toronto America/Thunder_Bay +Link Pacific/Auckland Antarctica/South_Pole +Link Asia/Shanghai Asia/Chongqing +Link Asia/Shanghai Asia/Harbin +Link Asia/Urumqi Asia/Kashgar +Link Asia/Jerusalem Asia/Tel_Aviv +Link Europe/Berlin Atlantic/Jan_Mayen +Link Australia/Sydney Australia/Canberra +Link Australia/Hobart Australia/Currie +Link Europe/London Europe/Belfast +Link Europe/Chisinau Europe/Tiraspol +Link Europe/Kyiv Europe/Uzhgorod +Link Europe/Kyiv Europe/Zaporozhye +Link Pacific/Kanton Pacific/Enderbury +Link Pacific/Honolulu Pacific/Johnston +Link Pacific/Port_Moresby Pacific/Yap + + +# Alternate names for the same location + +# Link TARGET LINK-NAME #= TARGET1 +Link Africa/Nairobi Africa/Asmera #= Africa/Asmara +Link America/Nuuk America/Godthab +Link Asia/Ashgabat Asia/Ashkhabad +Link Asia/Kolkata Asia/Calcutta +Link Asia/Shanghai Asia/Chungking #= Asia/Chongqing +Link Asia/Dhaka Asia/Dacca +# Istanbul is in both continents. +Link Europe/Istanbul Asia/Istanbul +Link Asia/Kathmandu Asia/Katmandu +Link Asia/Macau Asia/Macao +Link Asia/Yangon Asia/Rangoon +Link Asia/Ho_Chi_Minh Asia/Saigon +Link Asia/Thimphu Asia/Thimbu +Link Asia/Makassar Asia/Ujung_Pandang +Link Asia/Ulaanbaatar Asia/Ulan_Bator +Link Atlantic/Faroe Atlantic/Faeroe +Link Europe/Kyiv Europe/Kiev +# Classically, Cyprus is in Asia; e.g. see Herodotus, Histories, I.72. +# However, for various reasons many users expect to find it under Europe. +Link Asia/Nicosia Europe/Nicosia +Link Pacific/Guadalcanal Pacific/Ponape #= Pacific/Pohnpei +Link Pacific/Port_Moresby Pacific/Truk #= Pacific/Chuuk diff --git a/jdk/make/data/tzdata/etcetera b/jdk/make/data/tzdata/etcetera index 82ff6b4a624..8ae294f524a 100644 --- a/jdk/make/data/tzdata/etcetera +++ b/jdk/make/data/tzdata/etcetera @@ -39,26 +39,23 @@ # 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 - # The following zone is used by tzcode functions like gmtime, # which load the "UTC" file to handle seconds properly. Zone Etc/UTC 0 - UTC +# Functions like gmtime load the "GMT" file to handle leap seconds properly. +# Vanguard section, which works with most .zi parsers. +#Zone GMT 0 - GMT +# Rearguard section, for TZUpdater 2.3.2 and earlier. +Zone Etc/GMT 0 - GMT + # The following link uses older naming conventions, # but it belongs here, not in the file 'backward', # as it is needed for tzcode releases through 2022a, # where functions like gmtime load "GMT" instead of the "Etc/UTC". # We want this to work even on installations that omit 'backward'. Link Etc/GMT GMT - -Link Etc/UTC Etc/Universal -Link Etc/UTC Etc/Zulu - -Link Etc/GMT Etc/Greenwich -Link Etc/GMT Etc/GMT-0 -Link Etc/GMT Etc/GMT+0 -Link Etc/GMT Etc/GMT0 +# End of rearguard section. # Be consistent with POSIX TZ settings in the Zone names, # even though this is the opposite of what many people expect. diff --git a/jdk/make/data/tzdata/europe b/jdk/make/data/tzdata/europe index 930cede4cf4..22c252d4a36 100644 --- a/jdk/make/data/tzdata/europe +++ b/jdk/make/data/tzdata/europe @@ -527,9 +527,6 @@ Zone Europe/London -0:01:15 - LMT 1847 Dec 1 1:00 - BST 1971 Oct 31 2:00u 0:00 GB-Eire %s 1996 0:00 EU GMT/BST -Link Europe/London Europe/Jersey -Link Europe/London Europe/Guernsey -Link Europe/London Europe/Isle_of_Man # From Paul Eggert (2018-02-15): # In January 2018 we discovered that the negative SAVE values in the @@ -902,6 +899,8 @@ Zone Europe/Minsk 1:50:16 - LMT 1880 3:00 - +03 # Belgium +# Luxembourg +# Netherlands # # From Michael Deckers (2019-08-25): # The exposition in the web page @@ -984,11 +983,6 @@ Zone Europe/Brussels 0:17:30 - LMT 1880 1:00 C-Eur CE%sT 1944 Sep 3 1:00 Belgium CE%sT 1977 1:00 EU CE%sT -Link Europe/Brussels Europe/Amsterdam -Link Europe/Brussels Europe/Luxembourg - -# Bosnia and Herzegovina -# See Europe/Belgrade. # Bulgaria # @@ -1015,13 +1009,11 @@ Zone Europe/Sofia 1:33:16 - LMT 1880 2:00 E-Eur EE%sT 1997 2:00 EU EE%sT -# Croatia -# See Europe/Belgrade. - # Cyprus # Please see the 'asia' file for Asia/Nicosia. -# Czech Republic / Czechia +# Czech Republic (Czechia) +# Slovakia # # From Paul Eggert (2018-04-15): # The source for Czech data is: Kdy začíná a končí letní čas. 2018-04-15. @@ -1048,15 +1040,14 @@ Zone Europe/Prague 0:57:44 - LMT 1850 # End of rearguard section. 1:00 Czech CE%sT 1979 1:00 EU CE%sT -Link Europe/Prague Europe/Bratislava - - -# Denmark, Faroe Islands, and Greenland -# For Denmark see Europe/Berlin. +# Faroe Is +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Atlantic/Faroe -0:27:04 - LMT 1908 Jan 11 # Tórshavn 0:00 - WET 1981 0:00 EU WE%sT + +# Greenland # # From Paul Eggert (2004-10-31): # During World War II, Germany maintained secret manned weather stations in @@ -1135,7 +1126,30 @@ Zone Atlantic/Faroe -0:27:04 - LMT 1908 Jan 11 # Tórshavn # "National Park" by Executive Order: # http://naalakkersuisut.gl/~/media/Nanoq/Files/Attached%20Files/Engelske-tekster/Legislation/Executive%20Order%20National%20Park.rtf # It is their only National Park. -# + +# From Jonas Nyrup (2022-11-24): +# On last Saturday in October 2023 when DST ends America/Nuuk will switch +# from -03/-02 to -02/-01 +# https://sermitsiaq.ag/forslagtidsforskel-danmark-mindskes-sommertid-beholdes +# ... +# https://sermitsiaq.ag/groenland-skifte-tidszone-trods-bekymringer +# +# From Jürgen Appel (2022-11-25): +# https://ina.gl/samlinger/oversigt-over-samlinger/samling/dagsordener/dagsorden.aspx?lang=da&day=24-11-2022 +# If I understand this correctly, from the next planned switch to +# summer time, Greenland will permanently stay at that time, i.e. no +# switch back to winter time in 2023 will occur. +# +# From Paul Eggert (2022-11-28): +# The official document in Danish +# https://naalakkersuisut.gl/-/media/naalakkersuisut/filer/kundgoerelser/2022/11/2511/31_da_inatsisartutlov-om-tidens-bestemmelse.pdf?la=da&hash=A33597D8A38CC7038465241119EF34F3 +# says standard time for Greenland is -02, that Naalakkersuisut can lay down +# rules for DST and can require some areas to use a different time zone, +# and that this all takes effect 2023-03-25 22:00. The abovementioned +# "bekymringer" URL says the intent is no transition March 25, that +# Greenland will not go back to winter time in fall 2023, and that +# only America/Nuuk is affected (though further changes may occur). + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Thule 1991 1992 - Mar lastSun 2:00 1:00 D Rule Thule 1991 1992 - Sep lastSun 2:00 0 S @@ -1158,7 +1172,8 @@ Zone America/Scoresbysund -1:27:52 - LMT 1916 Jul 28 # Ittoqqortoormiit -1:00 EU -01/+00 Zone America/Nuuk -3:26:56 - LMT 1916 Jul 28 # Godthåb -3:00 - -03 1980 Apr 6 2:00 - -3:00 EU -03/-02 + -3:00 EU -03/-02 2023 Mar 25 22:00 + -2:00 - -02 Zone America/Thule -4:35:08 - LMT 1916 Jul 28 # Pituffik -4:00 Thule A%sT @@ -1282,11 +1297,8 @@ Zone Europe/Helsinki 1:39:49 - LMT 1878 May 31 2:00 Finland EE%sT 1983 2:00 EU EE%sT -# Åland Is -Link Europe/Helsinki Europe/Mariehamn - - # France +# Monaco # From Ciro Discepolo (2000-12-20): # @@ -1423,9 +1435,11 @@ Zone Europe/Paris 0:09:21 - LMT 1891 Mar 16 0:00 France WE%sT 1945 Sep 16 3:00 1:00 France CE%sT 1977 1:00 EU CE%sT -Link Europe/Paris Europe/Monaco +# Denmark # Germany +# Norway +# Sweden # From Markus Kuhn (1998-09-29): # The German time zone web site by the Physikalisch-Technische @@ -1443,6 +1457,53 @@ Link Europe/Paris Europe/Monaco # However, Moscow did not observe daylight saving in 1945, so # this was equivalent to UT +03, not +04. +# Svalbard & Jan Mayen + +# From Steffen Thorsen (2001-05-01): +# Although I could not find it explicitly, it seems that Jan Mayen and +# Svalbard have been using the same time as Norway at least since the +# time they were declared as parts of Norway. Svalbard was declared +# as a part of Norway by law of 1925-07-17 no 11, section 4 and Jan +# Mayen by law of 1930-02-27 no 2, section 2. (From +# and +# ). The law/regulation +# for normal/standard time in Norway is from 1894-06-29 no 1 (came +# into operation on 1895-01-01) and Svalbard/Jan Mayen seem to be a +# part of this law since 1925/1930. (From +# ) I have not been +# able to find if Jan Mayen used a different time zone (e.g. -0100) +# before 1930. Jan Mayen has only been "inhabited" since 1921 by +# Norwegian meteorologists and maybe used the same time as Norway ever +# since 1921. Svalbard (Arctic/Longyearbyen) has been inhabited since +# before 1895, and therefore probably changed the local time somewhere +# between 1895 and 1925 (inclusive). + +# From Paul Eggert (2013-09-04): +# +# Actually, Jan Mayen was never occupied by Germany during World War II, +# so it must have diverged from Oslo time during the war, as Oslo was +# keeping Berlin time. +# +# says that the meteorologists +# burned down their station in 1940 and left the island, but returned in +# 1941 with a small Norwegian garrison and continued operations despite +# frequent air attacks from Germans. In 1943 the Americans established a +# radiolocating station on the island, called "Atlantic City". Possibly +# the UT offset changed during the war, but I think it unlikely that +# Jan Mayen used German daylight-saving rules. +# +# Svalbard is more complicated, as it was raided in August 1941 by an +# Allied party that evacuated the civilian population to England (says +# ). The Svalbard FAQ +# says that the Germans were +# expelled on 1942-05-14. However, small parties of Germans did return, +# and according to Wilhelm Dege's book "War North of 80" (1954) +# http://www.ucalgary.ca/UofC/departments/UP/1-55238/1-55238-110-2.html +# the German armed forces at the Svalbard weather station code-named +# Haudegen did not surrender to the Allies until September 1945. +# +# All these events predate our cutoff date of 1970, so use Europe/Berlin +# for these regions. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Germany 1946 only - Apr 14 2:00s 1:00 S @@ -1467,11 +1528,6 @@ Zone Europe/Berlin 0:53:28 - LMT 1893 Apr 1:00 SovietZone CE%sT 1946 1:00 Germany CE%sT 1980 1:00 EU CE%sT -Link Europe/Berlin Arctic/Longyearbyen -Link Europe/Berlin Europe/Copenhagen -Link Europe/Berlin Europe/Oslo -Link Europe/Berlin Europe/Stockholm - # Georgia # Please see the "asia" file for Asia/Tbilisi. @@ -1590,10 +1646,9 @@ Zone Europe/Budapest 1:16:20 - LMT 1890 Nov 1 1:00 Hungary CE%sT 1984 1:00 EU CE%sT -# Iceland -# See Africa/Abidjan. - # Italy +# San Marino +# Vatican City # # From Paul Eggert (2001-03-06): # Sicily and Sardinia each had their own time zones from 1866 to 1893, @@ -1712,13 +1767,6 @@ Zone Europe/Rome 0:49:56 - LMT 1866 Dec 12 1:00 C-Eur CE%sT 1944 Jun 4 1:00 Italy CE%sT 1980 1:00 EU CE%sT -Link Europe/Rome Europe/Vatican -Link Europe/Rome Europe/San_Marino - - -# Kosovo -# See Europe/Belgrade. - # Latvia @@ -1802,10 +1850,6 @@ Zone Europe/Riga 1:36:34 - LMT 1880 2:00 - EET 2001 Jan 2 2:00 EU EE%sT -# Liechtenstein -# See Europe/Zurich. - - # Lithuania # From Paul Eggert (2016-03-18): @@ -1858,12 +1902,6 @@ Zone Europe/Vilnius 1:41:16 - LMT 1880 2:00 - EET 2003 Jan 1 2:00 EU EE%sT -# Luxembourg -# See Europe/Brussels. - -# North Macedonia -# See Europe/Belgrade. - # Malta # # From Paul Eggert (2016-10-21): @@ -1959,67 +1997,6 @@ Zone Europe/Chisinau 1:55:20 - LMT 1880 # See Romania commentary for the guessed 1997 transition to EU rules. 2:00 Moldova EE%sT -# Monaco -# See Europe/Paris. - -# Montenegro -# See Europe/Belgrade. - -# Netherlands -# See Europe/Brussels. - -# Norway -# See Europe/Berlin. - -# Svalbard & Jan Mayen - -# From Steffen Thorsen (2001-05-01): -# Although I could not find it explicitly, it seems that Jan Mayen and -# Svalbard have been using the same time as Norway at least since the -# time they were declared as parts of Norway. Svalbard was declared -# as a part of Norway by law of 1925-07-17 no 11, section 4 and Jan -# Mayen by law of 1930-02-27 no 2, section 2. (From -# and -# ). The law/regulation -# for normal/standard time in Norway is from 1894-06-29 no 1 (came -# into operation on 1895-01-01) and Svalbard/Jan Mayen seem to be a -# part of this law since 1925/1930. (From -# ) I have not been -# able to find if Jan Mayen used a different time zone (e.g. -0100) -# before 1930. Jan Mayen has only been "inhabited" since 1921 by -# Norwegian meteorologists and maybe used the same time as Norway ever -# since 1921. Svalbard (Arctic/Longyearbyen) has been inhabited since -# before 1895, and therefore probably changed the local time somewhere -# between 1895 and 1925 (inclusive). - -# From Paul Eggert (2013-09-04): -# -# Actually, Jan Mayen was never occupied by Germany during World War II, -# so it must have diverged from Oslo time during the war, as Oslo was -# keeping Berlin time. -# -# says that the meteorologists -# burned down their station in 1940 and left the island, but returned in -# 1941 with a small Norwegian garrison and continued operations despite -# frequent air attacks from Germans. In 1943 the Americans established a -# radiolocating station on the island, called "Atlantic City". Possibly -# the UT offset changed during the war, but I think it unlikely that -# Jan Mayen used German daylight-saving rules. -# -# Svalbard is more complicated, as it was raided in August 1941 by an -# Allied party that evacuated the civilian population to England (says -# ). The Svalbard FAQ -# says that the Germans were -# expelled on 1942-05-14. However, small parties of Germans did return, -# and according to Wilhelm Dege's book "War North of 80" (1954) -# http://www.ucalgary.ca/UofC/departments/UP/1-55238/1-55238-110-2.html -# the German armed forces at the Svalbard weather station code-named -# Haudegen did not surrender to the Allies until September 1945. -# -# All these events predate our cutoff date of 1970, so use Europe/Berlin -# for these regions. - - # Poland # The 1919 dates and times can be found in Tygodnik Urzędowy nr 1 (1919-03-20), @@ -3301,11 +3278,13 @@ Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2 11:00 Russia +11/+12 2011 Mar 27 2:00s 12:00 - +12 - -# San Marino -# See Europe/Rome. - +# Bosnia & Herzegovina +# Croatia +# Kosovo +# Montenegro +# North Macedonia # Serbia +# Slovenia # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Belgrade 1:22:00 - LMT 1884 1:00 - CET 1941 Apr 18 23:00 @@ -3317,17 +3296,6 @@ Zone Europe/Belgrade 1:22:00 - LMT 1884 # Shanks & Pottenger don't give as much detail, so go with Koželj. 1:00 - CET 1982 Nov 27 1:00 EU CE%sT -Link Europe/Belgrade Europe/Ljubljana # Slovenia -Link Europe/Belgrade Europe/Podgorica # Montenegro -Link Europe/Belgrade Europe/Sarajevo # Bosnia and Herzegovina -Link Europe/Belgrade Europe/Skopje # North Macedonia -Link Europe/Belgrade Europe/Zagreb # Croatia - -# Slovakia -# See Europe/Prague. - -# Slovenia -# See Europe/Belgrade. # Spain # @@ -3434,10 +3402,11 @@ Zone Atlantic/Canary -1:01:36 - LMT 1922 Mar # Las Palmas de Gran C. # IATA SSIM (1996-09) says the Canaries switch at 2:00u, not 1:00u. # Ignore this for now, as the Canaries are part of the EU. -# Sweden -# See Europe/Berlin. +# Germany (Busingen enclave) +# Liechtenstein # Switzerland +# # From Howse: # By the end of the 18th century clocks and watches became commonplace # and their performance improved enormously. Communities began to keep @@ -3550,9 +3519,6 @@ Zone Europe/Zurich 0:34:08 - LMT 1853 Jul 16 # See above comment. 0:29:46 - BMT 1894 Jun # Bern Mean Time 1:00 Swiss CE%sT 1981 1:00 EU CE%sT -Link Europe/Zurich Europe/Busingen -Link Europe/Zurich Europe/Vaduz - # Turkey @@ -3757,7 +3723,6 @@ Zone Europe/Istanbul 1:55:52 - LMT 1880 2:00 1:00 EEST 2015 Nov 8 1:00u 2:00 EU EE%sT 2016 Sep 7 3:00 - +03 -Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. # Ukraine # @@ -3860,9 +3825,6 @@ Zone Europe/Kyiv 2:02:04 - LMT 1880 2:00 C-Eur EE%sT 1996 May 13 2:00 EU EE%sT -# Vatican City -# See Europe/Rome. - ############################################################################### # One source shows that Bulgaria, Cyprus, Finland, and Greece observe DST from diff --git a/jdk/make/data/tzdata/iso3166.tab b/jdk/make/data/tzdata/iso3166.tab index 544b3034c17..fbfb74bec45 100644 --- a/jdk/make/data/tzdata/iso3166.tab +++ b/jdk/make/data/tzdata/iso3166.tab @@ -26,13 +26,13 @@ # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. # -# From Paul Eggert (2015-05-02): +# From Paul Eggert (2022-11-18): # This file contains a table of two-letter country codes. Columns are # separated by a single tab. Lines beginning with '#' are comments. # All text uses UTF-8 encoding. The columns of the table are as follows: # # 1. ISO 3166-1 alpha-2 country code, current as of -# ISO 3166-1 N976 (2018-11-06). See: Updates on ISO 3166-1 +# ISO 3166-1 N1087 (2022-09-02). See: Updates on ISO 3166-1 # https://isotc.iso.org/livelink/livelink/Open/16944257 # 2. The usual English name for the coded region, # chosen so that alphabetic sorting of subsets produces helpful lists. @@ -261,7 +261,7 @@ SY Syria SZ Eswatini (Swaziland) TC Turks & Caicos Is TD Chad -TF French Southern & Antarctic Lands +TF French Southern Territories TG Togo TH Thailand TJ Tajikistan diff --git a/jdk/make/data/tzdata/northamerica b/jdk/make/data/tzdata/northamerica index ce4ee74582c..a5fd701f88c 100644 --- a/jdk/make/data/tzdata/northamerica +++ b/jdk/make/data/tzdata/northamerica @@ -852,7 +852,6 @@ Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 19:00u -7:00 - MST 1967 -7:00 US M%sT 1968 Mar 21 -7:00 - MST -Link America/Phoenix America/Creston # From Arthur David Olson (1988-02-13): # A writer from the Inter Tribal Council of Arizona, Inc., @@ -1626,23 +1625,6 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 # Ontario -# From Paul Eggert (2006-07-09): -# Shanks & Pottenger write that since 1970 most of Ontario has been like -# Toronto. -# Thunder Bay skipped DST in 1973. -# Many smaller locales did not observe peacetime DST until 1974; -# Nipigon (EST) and Rainy River (CST) are the largest that we know of. -# Far west Ontario is like Winnipeg; far east Quebec is like Halifax. - -# From Jeffery Nichols (2020-02-06): -# According to the [Shanks] atlas, those western Ontario zones are huge, -# covering most of Ontario northwest of Sault Ste Marie and Timmins. -# The zones seem to include towns bigger than the ones they're named after, -# like Dryden in America/Rainy_River and Wawa (and maybe Attawapiskat) in -# America/Nipigon. I assume it's too much trouble to change the name of the -# zone (like when you found out that America/Glace_Bay includes Sydney, Nova -# Scotia).... - # From Mark Brader (2003-07-26): # [According to the Toronto Star] Orillia, Ontario, adopted DST # effective Saturday, 1912-06-22, 22:00; the article mentions that @@ -1663,17 +1645,6 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 # From Mark Brader (2010-03-06): # -# Currently the database has: -# -# # Ontario -# -# # From Paul Eggert (2006-07-09): -# # Shanks & Pottenger write that since 1970 most of Ontario has been like -# # Toronto. -# # Thunder Bay skipped DST in 1973. -# # Many smaller locales did not observe peacetime DST until 1974; -# # Nipigon (EST) and Rainy River (CST) are the largest that we know of. -# # In the (Toronto) Globe and Mail for Saturday, 1955-09-24, in the bottom # right corner of page 1, it says that Toronto will return to standard # time at 2 am Sunday morning (which agrees with the database), and that: @@ -1681,10 +1652,8 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 # The one-hour setback will go into effect throughout most of Ontario, # except in areas like Windsor which remains on standard time all year. # -# Windsor is, of course, a lot larger than Nipigon. -# -# I only came across this incidentally. I don't know if Windsor began -# observing DST when Detroit did, or in 1974, or on some other date. +# ... I don't know if Windsor began observing DST when Detroit did, +# or in 1974, or on some other date. # # By the way, the article continues by noting that: # @@ -1766,23 +1735,7 @@ Rule Toronto 1951 1956 - Sep lastSun 2:00 0 S # Toronto Star, which said that DST was ending 1971-10-31 as usual. Rule Toronto 1957 1973 - Oct lastSun 2:00 0 S -# From Paul Eggert (2003-07-27): -# Willett (1914-03) writes (p. 17) "In the Cities of Fort William, and -# Port Arthur, Ontario, the principle of the Bill has been in -# operation for the past three years, and in the City of Moose Jaw, -# Saskatchewan, for one year." - -# From David Bryan via Tory Tronrud, Director/Curator, -# Thunder Bay Museum (2003-11-12): -# There is some suggestion, however, that, by-law or not, daylight -# savings time was being practiced in Fort William and Port Arthur -# before 1909.... [I]n 1910, the line between the Eastern and Central -# Time Zones was permanently moved about two hundred miles west to -# include the Thunder Bay area.... When Canada adopted daylight -# savings time in 1916, Fort William and Port Arthur, having done so -# already, did not change their clocks.... During the Second World -# War,... [t]he cities agreed to implement DST during the summer -# months for the remainder of the war years. +# The Bahamas match Toronto since 1970. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Toronto -5:17:32 - LMT 1895 @@ -1791,22 +1744,6 @@ Zone America/Toronto -5:17:32 - LMT 1895 -5:00 Canada E%sT 1946 -5:00 Toronto E%sT 1974 -5:00 Canada E%sT -Link America/Toronto America/Nassau -Zone America/Thunder_Bay -5:57:00 - LMT 1895 - -6:00 - CST 1910 - -5:00 - EST 1942 - -5:00 Canada E%sT 1970 - -5:00 Toronto E%sT 1973 - -5:00 - EST 1974 - -5:00 Canada E%sT -Zone America/Nipigon -5:53:04 - LMT 1895 - -5:00 Canada E%sT 1940 Sep 29 - -5:00 1:00 EDT 1942 Feb 9 2:00s - -5:00 Canada E%sT -Zone America/Rainy_River -6:18:16 - LMT 1895 - -6:00 Canada C%sT 1940 Sep 29 - -6:00 1:00 CDT 1942 Feb 9 2:00s - -6:00 Canada C%sT # For Atikokan see America/Panama. @@ -2055,6 +1992,37 @@ Zone America/Fort_Nelson -8:10:47 - LMT 1884 # Northwest Territories, Nunavut, Yukon +# From Chris Walton (2022-11-06): +# Whitehorse Star - Thursday April 22, 1965 - page 1 +# title: DST Starts Monday ... +# https://www.newspapers.com/image/578587481/ +# The title of this first article is wrong and/or misleading. +# Also, the start time shown in the article is vague; it simply says "after +# midnight" when it probably should have stated 2:00a.m.... +# +# Whitehorse Star - Monday October 25, 1965 - page 15 ... +# https://www.newspapers.com/image/578589147/ +# The 1965 Yukon Council minutes can be found here: +# http://assets.yukonarchives.ca/PER_YG_06_1965_C20_S02_v1.pdf +# ... I do not currently believe that NWT touched any of its clocks in 1965.... +# +# Whitehorse Star - Thursday Feb 24,1966 - page 2 +# title: It's Time for YDT ... +# https://www.newspapers.com/image/578575979/ ... +# America/Whitehorse as a permanent change from UTC-9(YST) to +# UTC-8(PST) at 00:00 on Sunday February 27, 1966.... +# +# Whitehorse Star - Friday April 28,1972 - page 6 +# title: Daylight Saving Time for N.W.T.... +# https://www.newspapers.com/image/578701610/ ... +# Nunavut and NWT zones ... DST starting in 1972.... Start and End ... +# should be the same as the rest of Canada +# +# +# From Paul Eggert (2022-11-06): +# For now, assume Yukon's 1965-04-22 spring forward was 00:00 -> 02:00, as this +# seems likely than 02:00 -> 04:00 and matches "after midnight". + # From Paul Eggert (2006-03-22): # Dawson switched to PST in 1973. Inuvik switched to MST in 1979. # Mathew Englander (1996-10-07) gives the following refs: @@ -2169,6 +2137,13 @@ Zone America/Fort_Nelson -8:10:47 - LMT 1884 # * Interpretation Act, RSY 2002, c 125 # https://www.canlii.org/en/yk/laws/stat/rsy-2002-c-125/latest/rsy-2002-c-125.html +# From Chris Walton (2022-11-06): +# The 5th edition of the Atlas of Canada contains a time zone map that +# shows both legislated and observed time zone boundaries. +# All communities on Baffin Island are shown to be observing Eastern time. +# The date on the map is 1984. +# https://ftp.maps.canada.ca/pub/nrcan_rncan/raster/atlas_5_ed/eng/other/referencemaps/mcr4056.pdf + # From Rives McDow (1999-09-04): # Nunavut ... moved ... to incorporate the whole territory into one time zone. # Nunavut moves to single time zone Oct. 31 @@ -2181,40 +2156,7 @@ Zone America/Fort_Nelson -8:10:47 - LMT 1884 # From Paul Eggert (1999-09-20): # Basic Facts: The New Territory # http://www.nunavut.com/basicfacts/english/basicfacts_1territory.html -# (1999) reports that Pangnirtung operates on eastern time, -# and that Coral Harbour does not observe DST. We don't know when -# Pangnirtung switched to eastern time; we'll guess 1995. - -# From Rives McDow (1999-11-08): -# On October 31, when the rest of Nunavut went to Central time, -# Pangnirtung wobbled. Here is the result of their wobble: -# -# The following businesses and organizations in Pangnirtung use Central Time: -# -# First Air, Power Corp, Nunavut Construction, Health Center, RCMP, -# Eastern Arctic National Parks, A & D Specialist -# -# The following businesses and organizations in Pangnirtung use Eastern Time: -# -# Hamlet office, All other businesses, Both schools, Airport operator -# -# This has made for an interesting situation there, which warranted the news. -# No one there that I spoke with seems concerned, or has plans to -# change the local methods of keeping time, as it evidently does not -# really interfere with any activities or make things difficult locally. -# They plan to celebrate New Year's turn-over twice, one hour apart, -# so it appears that the situation will last at least that long. -# The Nunavut Intergovernmental Affairs hopes that they will "come to -# their senses", but the locals evidently don't see any problem with -# the current state of affairs. - -# From Michaela Rodrigue, writing in the -# Nunatsiaq News (1999-11-19): -# http://www.nunatsiaqonline.ca/archives/nunavut991130/nvt91119_17.html -# Clyde River, Pangnirtung and Sanikiluaq now operate with two time zones, -# central - or Nunavut time - for government offices, and eastern time -# for municipal offices and schools.... Igloolik [was similar but then] -# made the switch to central time on Saturday, Nov. 6. +# (1999) reports that ... Coral Harbour does not observe DST. # From Paul Eggert (2000-10-02): # Matthews and Vincent (1998) say the following, but we lack histories @@ -2373,18 +2315,12 @@ Rule NT_YK 1919 only - Nov 1 0:00 0 S Rule NT_YK 1942 only - Feb 9 2:00 1:00 W # War Rule NT_YK 1945 only - Aug 14 23:00u 1:00 P # Peace Rule NT_YK 1945 only - Sep 30 2:00 0 S -Rule NT_YK 1965 only - Apr lastSun 0:00 2:00 DD -Rule NT_YK 1965 only - Oct lastSun 2:00 0 S -Rule NT_YK 1980 1986 - Apr lastSun 2:00 1:00 D -Rule NT_YK 1980 2006 - Oct lastSun 2:00 0 S +Rule NT_YK 1972 1986 - Apr lastSun 2:00 1:00 D +Rule NT_YK 1972 2006 - Oct lastSun 2:00 0 S Rule NT_YK 1987 2006 - Apr Sun>=1 2:00 1:00 D +Rule Yukon 1965 only - Apr lastSun 0:00 2:00 DD +Rule Yukon 1965 only - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] -# aka Panniqtuuq -Zone America/Pangnirtung 0 - -00 1921 # trading post est. - -4:00 NT_YK A%sT 1995 Apr Sun>=1 2:00 - -5:00 Canada E%sT 1999 Oct 31 2:00 - -6:00 Canada C%sT 2000 Oct 29 2:00 - -5:00 Canada E%sT # formerly Frobisher Bay Zone America/Iqaluit 0 - -00 1942 Aug # Frobisher Bay est. -5:00 NT_YK E%sT 1999 Oct 31 2:00 @@ -2417,13 +2353,15 @@ Zone America/Inuvik 0 - -00 1953 # Inuvik founded -7:00 NT_YK M%sT 1980 -7:00 Canada M%sT Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20 - -9:00 NT_YK Y%sT 1967 May 28 0:00 - -8:00 NT_YK P%sT 1980 + -9:00 NT_YK Y%sT 1965 + -9:00 Yukon Y%sT 1966 Feb 27 0:00 + -8:00 - PST 1980 -8:00 Canada P%sT 2020 Nov 1 -7:00 - MST Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 - -9:00 NT_YK Y%sT 1973 Oct 28 0:00 - -8:00 NT_YK P%sT 1980 + -9:00 NT_YK Y%sT 1965 + -9:00 Yukon Y%sT 1973 Oct 28 0:00 + -8:00 - PST 1980 -8:00 Canada P%sT 2020 Nov 1 -7:00 - MST @@ -2639,6 +2577,20 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 # 5- The islands, reefs and keys shall take their timezone from the # longitude they are located at. +# From Paul Eggert (2022-10-28): +# The new Mexican law was published today: +# https://www.dof.gob.mx/nota_detalle.php?codigo=5670045&fecha=28/10/2022 +# This abolishes DST except where US DST rules are observed, +# and in addition changes all of Chihuahua to -06 with no DST. + +# From Heitor David Pinto (2022-11-28): +# Now the northern municipalities want to have the same time zone as the +# respective neighboring cities in the US, for example Juárez in UTC-7 with +# DST, matching El Paso, and Ojinaga in UTC-6 with DST, matching Presidio.... +# the president authorized the publication of the decree for November 29, +# so the time change would occur on November 30 at 0:00. +# http://puentelibre.mx/noticia/ciudad_juarez_cambio_horario_noviembre_2022/ + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Mexico 1931 only - May 1 23:00 1:00 D Rule Mexico 1931 only - Oct 1 0:00 0 S @@ -2654,8 +2606,8 @@ Rule Mexico 1996 2000 - Apr Sun>=1 2:00 1:00 D Rule Mexico 1996 2000 - Oct lastSun 2:00 0 S Rule Mexico 2001 only - May Sun>=1 2:00 1:00 D Rule Mexico 2001 only - Sep lastSun 2:00 0 S -Rule Mexico 2002 max - Apr Sun>=1 2:00 1:00 D -Rule Mexico 2002 max - Oct lastSun 2:00 0 S +Rule Mexico 2002 2022 - Apr Sun>=1 2:00 1:00 D +Rule Mexico 2002 2022 - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] # Quintana Roo; represented by Cancún Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 6:00u @@ -2670,14 +2622,12 @@ Zone America/Merida -5:58:28 - LMT 1922 Jan 1 6:00u -6:00 Mexico C%sT # Coahuila, Nuevo León, Tamaulipas (near US border) # This includes the following municipalities: -# in Coahuila: Ocampo, Acuña, Zaragoza, Jiménez, Piedras Negras, Nava, -# Guerrero, Hidalgo. -# in Nuevo León: Anáhuac, Los Aldama. +# in Coahuila: Acuña, Allende, Guerrero, Hidalgo, Jiménez, Morelos, Nava, +# Ocampo, Piedras Negras, Villa Unión, Zaragoza +# in Nuevo León: Anáhuac # in Tamaulipas: Nuevo Laredo, Guerrero, Mier, Miguel Alemán, Camargo, # Gustavo Díaz Ordaz, Reynosa, Río Bravo, Valle Hermoso, Matamoros. -# See: Inicia mañana Horario de Verano en zona fronteriza, El Universal, -# 2016-03-12 -# http://www.eluniversal.com.mx/articulo/estados/2016/03/12/inicia-manana-horario-de-verano-en-zona-fronteriza +# https://www.dof.gob.mx/nota_detalle.php?codigo=5670045&fecha=28/10/2022 Zone America/Matamoros -6:30:00 - LMT 1922 Jan 1 6:00u -6:00 - CST 1988 -6:00 US C%sT 1989 @@ -2696,11 +2646,11 @@ Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 7:00u -6:00 Mexico C%sT 2001 Sep 30 2:00 -6:00 - CST 2002 Feb 20 -6:00 Mexico C%sT -# Chihuahua (near US border) +# Chihuahua (near US border - western side) # This includes the municipalities of Janos, Ascensión, Juárez, Guadalupe, -# Práxedis G Guerrero, Coyame del Sotol, Ojinaga, and Manuel Benavides. -# (See the 2016-03-12 El Universal source mentioned above.) -Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 7:00u +# and Práxedis G Guerrero. +# http://gaceta.diputados.gob.mx/PDF/65/2a022/nov/20221124-VII.pdf +Zone America/Ciudad_Juarez -7:05:56 - LMT 1922 Jan 1 7:00u -7:00 - MST 1927 Jun 10 23:00 -6:00 - CST 1930 Nov 15 -7:00 Mexico M%sT 1932 Apr 1 @@ -2708,7 +2658,23 @@ Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 7:00u -6:00 Mexico C%sT 1998 -6:00 - CST 1998 Apr Sun>=1 3:00 -7:00 Mexico M%sT 2010 + -7:00 US M%sT 2022 Oct 30 2:00 + -6:00 - CST 2022 Nov 30 0:00 -7:00 US M%sT +# Chihuahua (near US border - eastern side) +# The municipalities of Coyame del Sotol, Ojinaga, and Manuel Benavides. +# http://gaceta.diputados.gob.mx/PDF/65/2a022/nov/20221124-VII.pdf +Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 7:00u + -7:00 - MST 1927 Jun 10 23:00 + -6:00 - CST 1930 Nov 15 + -7:00 Mexico M%sT 1932 Apr 1 + -6:00 - CST 1996 + -6:00 Mexico C%sT 1998 + -6:00 - CST 1998 Apr Sun>=1 3:00 + -7:00 Mexico M%sT 2010 + -7:00 US M%sT 2022 Oct 30 2:00 + -6:00 - CST 2022 Nov 30 0:00 + -6:00 US C%sT # Chihuahua (away from US border) Zone America/Chihuahua -7:04:20 - LMT 1922 Jan 1 7:00u -7:00 - MST 1927 Jun 10 23:00 @@ -2717,7 +2683,8 @@ Zone America/Chihuahua -7:04:20 - LMT 1922 Jan 1 7:00u -6:00 - CST 1996 -6:00 Mexico C%sT 1998 -6:00 - CST 1998 Apr Sun>=1 3:00 - -7:00 Mexico M%sT + -7:00 Mexico M%sT 2022 Oct 30 2:00 + -6:00 - CST # Sonora Zone America/Hermosillo -7:23:52 - LMT 1922 Jan 1 7:00u -7:00 - MST 1927 Jun 10 23:00 @@ -2729,6 +2696,18 @@ Zone America/Hermosillo -7:23:52 - LMT 1922 Jan 1 7:00u -7:00 Mexico M%sT 1999 -7:00 - MST +# Baja California Sur, Nayarit (except Bahía de Banderas), Sinaloa +Zone America/Mazatlan -7:05:40 - LMT 1922 Jan 1 7:00u + -7:00 - MST 1927 Jun 10 23:00 + -6:00 - CST 1930 Nov 15 + -7:00 Mexico M%sT 1932 Apr 1 + -6:00 - CST 1942 Apr 24 + -7:00 - MST 1949 Jan 14 + -8:00 - PST 1970 + -7:00 Mexico M%sT + +# Bahía de Banderas + # From Alexander Krivenyshev (2010-04-21): # According to news, Bahía de Banderas (Mexican state of Nayarit) # changed time zone UTC-7 to new time zone UTC-6 on April 4, 2010 (to @@ -2756,17 +2735,6 @@ Zone America/Hermosillo -7:23:52 - LMT 1922 Jan 1 7:00u # From Arthur David Olson (2010-05-01): # Use "Bahia_Banderas" to keep the name to fourteen characters. -# Mazatlán -Zone America/Mazatlan -7:05:40 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 - -6:00 - CST 1930 Nov 15 - -7:00 Mexico M%sT 1932 Apr 1 - -6:00 - CST 1942 Apr 24 - -7:00 - MST 1949 Jan 14 - -8:00 - PST 1970 - -7:00 Mexico M%sT - -# Bahía de Banderas Zone America/Bahia_Banderas -7:01:00 - LMT 1922 Jan 1 7:00u -7:00 - MST 1927 Jun 10 23:00 -6:00 - CST 1930 Nov 15 @@ -2815,20 +2783,16 @@ Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 7:00u # http://dof.gob.mx/nota_detalle.php?codigo=5127480&fecha=06/01/2010 # It has been moved to the 'backward' file. # +# From Paul Eggert (2022-10-28): +# Today's new law states that the entire state of Baja California +# follows US DST rules, which agrees with simplifications noted above. +# # # Revillagigedo Is # no information ############################################################################### -# Anguilla -# Antigua and Barbuda -# See America/Puerto_Rico. - -# The Bahamas -# See America/Toronto. - - # Barbados # For 1899 Milne gives -3:58:29.2. @@ -3041,12 +3005,6 @@ Zone Atlantic/Bermuda -4:19:18 - LMT 1890 # Hamilton -4:00 Canada A%sT 1976 -4:00 US A%sT -# Caribbean Netherlands -# See America/Puerto_Rico. - -# Cayman Is -# See America/Panama. - # Costa Rica # Milne gives -5:36:13.3 as San José mean time. @@ -3272,9 +3230,6 @@ Zone America/Havana -5:29:28 - LMT 1890 -5:29:36 - HMT 1925 Jul 19 12:00 # Havana MT -5:00 Cuba C%sT -# Dominica -# See America/Puerto_Rico. - # Dominican Republic # From Steffen Thorsen (2000-10-30): @@ -3321,12 +3276,6 @@ Rule Salv 1987 1988 - Sep lastSun 0:00 0 S Zone America/El_Salvador -5:56:48 - LMT 1921 # San Salvador -6:00 Salv C%sT -# Grenada -# Guadeloupe -# St Barthélemy -# St Martin (French part) -# See America/Puerto_Rico. - # Guatemala # # From Gwillim Law (2006-04-22), after a heads-up from Oscar van Vlijmen: @@ -3512,9 +3461,6 @@ Zone America/Martinique -4:04:20 - LMT 1890 # Fort-de-France -4:00 1:00 ADT 1980 Sep 28 -4:00 - AST -# Montserrat -# See America/Puerto_Rico. - # Nicaragua # # This uses Shanks & Pottenger for times before 2005. @@ -3580,44 +3526,39 @@ Zone America/Managua -5:45:08 - LMT 1890 -5:00 - EST 1997 -6:00 Nic C%sT +# Cayman Is # Panama +# +# Atikokan and Coral Harbour, Canada, match Panama since 1970. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Panama -5:18:08 - LMT 1890 -5:19:36 - CMT 1908 Apr 22 # Colón Mean Time -5:00 - EST -Link America/Panama America/Atikokan -Link America/Panama America/Cayman +# Anguilla +# Antigua & Barbuda +# Aruba +# Caribbean Netherlands +# Curaçao +# Dominica +# Grenada +# Guadeloupe +# Montserrat # Puerto Rico +# St Barthélemy +# St Kitts-Nevis +# Sint Maarten / St Martin +# St Lucia +# St Vincent & the Grenadines +# Trinidad & Tobago +# Virgin Is (UK & US) +# # There are too many San Juans elsewhere, so we'll use 'Puerto_Rico'. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Puerto_Rico -4:24:25 - LMT 1899 Mar 28 12:00 # San Juan -4:00 - AST 1942 May 3 -4:00 US A%sT 1946 -4:00 - AST -Link America/Puerto_Rico America/Anguilla -Link America/Puerto_Rico America/Antigua -Link America/Puerto_Rico America/Aruba -Link America/Puerto_Rico America/Curacao -Link America/Puerto_Rico America/Blanc-Sablon # Quebec (Lower North Shore) -Link America/Puerto_Rico America/Dominica -Link America/Puerto_Rico America/Grenada -Link America/Puerto_Rico America/Guadeloupe -Link America/Puerto_Rico America/Kralendijk # Caribbean Netherlands -Link America/Puerto_Rico America/Lower_Princes # Sint Maarten -Link America/Puerto_Rico America/Marigot # St Martin (French part) -Link America/Puerto_Rico America/Montserrat -Link America/Puerto_Rico America/Port_of_Spain # Trinidad & Tobago -Link America/Puerto_Rico America/St_Barthelemy # St Barthélemy -Link America/Puerto_Rico America/St_Kitts # St Kitts & Nevis -Link America/Puerto_Rico America/St_Lucia -Link America/Puerto_Rico America/St_Thomas # Virgin Islands (US) -Link America/Puerto_Rico America/St_Vincent -Link America/Puerto_Rico America/Tortola # Virgin Islands (UK) - -# St Kitts-Nevis -# St Lucia -# See America/Puerto_Rico. # St Pierre and Miquelon # There are too many St Pierres elsewhere, so we'll use 'Miquelon'. @@ -3627,12 +3568,6 @@ Zone America/Miquelon -3:44:40 - LMT 1911 May 15 # St Pierre -3:00 - -03 1987 -3:00 Canada -03/-02 -# St Vincent and the Grenadines -# See America/Puerto_Rico. - -# Sint Maarten -# See America/Puerto_Rico. - # Turks and Caicos # # From Chris Dunn in @@ -3702,11 +3637,6 @@ Zone America/Grand_Turk -4:44:32 - LMT 1890 -4:00 - AST 2018 Mar 11 3:00 -5:00 US E%sT -# British Virgin Is -# US Virgin Is -# See America/Puerto_Rico. - - # Local Variables: # coding: utf-8 # End: diff --git a/jdk/make/data/tzdata/southamerica b/jdk/make/data/tzdata/southamerica index 3c0e0e2061c..81fdd793df4 100644 --- a/jdk/make/data/tzdata/southamerica +++ b/jdk/make/data/tzdata/southamerica @@ -608,9 +608,6 @@ Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31 -3:00 Arg -03/-02 2008 Oct 18 -3:00 - -03 -# Aruba -# See America/Puerto_Rico. - # Bolivia # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/La_Paz -4:32:36 - LMT 1890 @@ -1444,9 +1441,14 @@ Zone Antarctica/Palmer 0 - -00 1965 # Milne gives 4:56:16.4 for Bogotá time in 1899. He writes, # "A variation of fifteen minutes in the public clocks of Bogota is not rare." +# From Alois Treindl (2022-11-10): +# End of time change in Colombia 1993 ... should be 6 February 24h ... +# DECRETO 267 DE 1993 +# https://www.suin-juriscol.gov.co/viewDocument.asp?ruta=Decretos/1061335 + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S -Rule CO 1992 only - May 3 0:00 1:00 - -Rule CO 1993 only - Apr 4 0:00 0 - +Rule CO 1992 only - May 3 0:00 1:00 - +Rule CO 1993 only - Feb 6 24:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] #STDOFF -4:56:16.4 Zone America/Bogota -4:56:16 - LMT 1884 Mar 13 @@ -1455,15 +1457,6 @@ Zone America/Bogota -4:56:16 - LMT 1884 Mar 13 # Malpelo, Providencia, San Andres # no information; probably like America/Bogota -# Curaçao -# See America/Puerto_Rico. -# -# From Arthur David Olson (2011-06-15): -# use links for places with new iso3166 codes. -# The name "Lower Prince's Quarter" is both longer than fourteen characters -# and contains an apostrophe; use "Lower_Princes".... -# From Paul Eggert (2021-09-29): -# These backward-compatibility links now are in the 'northamerica' file. # Ecuador # @@ -1779,9 +1772,6 @@ Zone America/Paramaribo -3:40:40 - LMT 1911 -3:30 - -0330 1984 Oct -3:00 - -03 -# Trinidad and Tobago -# See America/Puerto_Rico. - # Uruguay # From Paul Eggert (1993-11-18): # Uruguay wins the prize for the strangest peacetime manipulation of the rules. diff --git a/jdk/make/data/tzdata/zone.tab b/jdk/make/data/tzdata/zone.tab index ee025196e50..939432d3456 100644 --- a/jdk/make/data/tzdata/zone.tab +++ b/jdk/make/data/tzdata/zone.tab @@ -137,13 +137,9 @@ CA +4606-06447 America/Moncton Atlantic - New Brunswick CA +5320-06025 America/Goose_Bay Atlantic - Labrador (most areas) CA +5125-05707 America/Blanc-Sablon AST - QC (Lower North Shore) CA +4339-07923 America/Toronto Eastern - ON, QC (most areas) -CA +4901-08816 America/Nipigon Eastern - ON, QC (no DST 1967-73) -CA +4823-08915 America/Thunder_Bay Eastern - ON (Thunder Bay) -CA +6344-06828 America/Iqaluit Eastern - NU (most east areas) -CA +6608-06544 America/Pangnirtung Eastern - NU (Pangnirtung) +CA +6344-06828 America/Iqaluit Eastern - NU (most areas) CA +484531-0913718 America/Atikokan EST - ON (Atikokan); NU (Coral H) CA +4953-09709 America/Winnipeg Central - ON (west); Manitoba -CA +4843-09434 America/Rainy_River Central - ON (Rainy R, Ft Frances) CA +744144-0944945 America/Resolute Central - NU (Resolute) CA +624900-0920459 America/Rankin_Inlet Central - NU (central) CA +5024-10439 America/Regina CST - SK (most areas) @@ -303,17 +299,18 @@ MT +3554+01431 Europe/Malta MU -2010+05730 Indian/Mauritius MV +0410+07330 Indian/Maldives MW -1547+03500 Africa/Blantyre -MX +1924-09909 America/Mexico_City Central Time -MX +2105-08646 America/Cancun Eastern Standard Time - Quintana Roo -MX +2058-08937 America/Merida Central Time - Campeche, Yucatan -MX +2540-10019 America/Monterrey Central Time - Durango; Coahuila, Nuevo Leon, Tamaulipas (most areas) -MX +2550-09730 America/Matamoros Central Time US - Coahuila, Nuevo Leon, Tamaulipas (US border) -MX +2313-10625 America/Mazatlan Mountain Time - Baja California Sur, Nayarit, Sinaloa -MX +2838-10605 America/Chihuahua Mountain Time - Chihuahua (most areas) -MX +2934-10425 America/Ojinaga Mountain Time US - Chihuahua (US border) -MX +2904-11058 America/Hermosillo Mountain Standard Time - Sonora -MX +3232-11701 America/Tijuana Pacific Time US - Baja California -MX +2048-10515 America/Bahia_Banderas Central Time - Bahia de Banderas +MX +1924-09909 America/Mexico_City Central Mexico +MX +2105-08646 America/Cancun Quintana Roo +MX +2058-08937 America/Merida Campeche, Yucatan +MX +2540-10019 America/Monterrey Durango; Coahuila, Nuevo Leon, Tamaulipas (most areas) +MX +2550-09730 America/Matamoros Coahuila, Nuevo Leon, Tamaulipas (US border) +MX +2838-10605 America/Chihuahua Chihuahua (most areas) +MX +3144-10629 America/Ciudad_Juarez Chihuahua (US border - west) +MX +2934-10425 America/Ojinaga Chihuahua (US border - east) +MX +2313-10625 America/Mazatlan Baja California Sur, Nayarit (most areas), Sinaloa +MX +2048-10515 America/Bahia_Banderas Bahia de Banderas +MX +2904-11058 America/Hermosillo Sonora +MX +3232-11701 America/Tijuana Baja California MY +0310+10142 Asia/Kuala_Lumpur Malaysia (peninsula) MY +0133+11020 Asia/Kuching Sabah, Sarawak MZ -2558+03235 Africa/Maputo diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java b/jdk/src/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java index f9290b38601..11b21feeaa3 100644 --- a/jdk/src/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java +++ b/jdk/src/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java @@ -34,6 +34,7 @@ import sun.security.provider.ParameterCache; import static sun.security.util.SecurityProviderConstants.DEF_DH_KEY_SIZE; +import static sun.security.util.SecurityProviderConstants.getDefDHPrivateExpSize; /** * This class represents the key pair generator for Diffie-Hellman key pairs. @@ -60,9 +61,6 @@ public final class DHKeyPairGenerator extends KeyPairGeneratorSpi { // The size in bits of the prime modulus private int pSize; - // The size in bits of the random exponent (private value) - private int lSize; - // The source of randomness private SecureRandom random; @@ -71,7 +69,8 @@ public DHKeyPairGenerator() { initialize(DEF_DH_KEY_SIZE, null); } - private static void checkKeySize(int keysize) + // pkg private; used by DHParameterGenerator class as well + static void checkKeySize(int keysize, int expSize) throws InvalidParameterException { if ((keysize < 512) || (keysize > 8192) || ((keysize & 0x3F) != 0)) { @@ -80,6 +79,13 @@ private static void checkKeySize(int keysize) "from 512 to 8192 (inclusive). " + "The specific key size " + keysize + " is not supported"); } + + // optional, could be 0 if not specified + if ((expSize < 0) || (expSize > keysize)) { + throw new InvalidParameterException + ("Exponent size must be positive and no larger than" + + " modulus size"); + } } /** @@ -91,22 +97,17 @@ private static void checkKeySize(int keysize) * @param random the source of randomness */ public void initialize(int keysize, SecureRandom random) { + checkKeySize(keysize, 0); - checkKeySize(keysize); - - // Use the built-in parameters (ranging from 512 to 8192) - // when available. - this.params = ParameterCache.getCachedDHParameterSpec(keysize); - - // Due to performance issue, only support DH parameters generation - // up to 1024 bits. - if ((this.params == null) && (keysize > 1024)) { - throw new InvalidParameterException( - "Unsupported " + keysize + "-bit DH parameter generation"); + try { + // Use the built-in parameters (ranging from 512 to 8192) + // when available. + this.params = ParameterCache.getDHParameterSpec(keysize, random); + } catch (GeneralSecurityException e) { + throw new InvalidParameterException(e.getMessage()); } this.pSize = keysize; - this.lSize = 0; this.random = random; } @@ -131,22 +132,13 @@ public void initialize(AlgorithmParameterSpec algParams, ("Inappropriate parameter type"); } - params = (DHParameterSpec)algParams; + params = (DHParameterSpec) algParams; pSize = params.getP().bitLength(); try { - checkKeySize(pSize); + checkKeySize(pSize, params.getL()); } catch (InvalidParameterException ipe) { throw new InvalidAlgorithmParameterException(ipe.getMessage()); } - - // exponent size is optional, could be 0 - lSize = params.getL(); - - // Require exponentSize < primeSize - if ((lSize != 0) && (lSize > pSize)) { - throw new InvalidAlgorithmParameterException - ("Exponent size must not be larger than modulus size"); - } this.random = random; } @@ -160,24 +152,12 @@ public KeyPair generateKeyPair() { random = SunJCE.getRandom(); } - if (params == null) { - try { - params = ParameterCache.getDHParameterSpec(pSize, random); - } catch (GeneralSecurityException e) { - // should never happen - throw new ProviderException(e); - } - } - BigInteger p = params.getP(); BigInteger g = params.getG(); - if (lSize <= 0) { - lSize = pSize >> 1; - // use an exponent size of (pSize / 2) but at least 384 bits - if (lSize < 384) { - lSize = 384; - } + int lSize = params.getL(); + if (lSize == 0) { // not specified; use our own default + lSize = getDefDHPrivateExpSize(params); } BigInteger x; diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java b/jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java index d921b6dc180..8ff8fa594ec 100644 --- a/jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java +++ b/jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2022, 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 @@ -59,16 +59,20 @@ public final class DHParameterGenerator extends AlgorithmParameterGeneratorSpi { // The source of randomness private SecureRandom random = null; - private static void checkKeySize(int keysize) + private static void checkSupport(int keysize, int exponentSize) throws InvalidParameterException { boolean supported = ((keysize == 2048) || (keysize == 3072) || ((keysize >= 512) && (keysize <= 1024) && ((keysize & 0x3F) == 0))); if (!supported) { throw new InvalidParameterException( - "DH key size must be multiple of 64 and range " + + "Supported DH key size must be multiple of 64 and range " + "from 512 to 1024 (inclusive), or 2048, 3072. " + - "The specific key size " + keysize + " is not supported"); + "The specified key size " + keysize + " is not supported"); + } + + if (exponentSize != 0) { + DHKeyPairGenerator.checkKeySize(keysize, exponentSize); } } @@ -82,7 +86,8 @@ private static void checkKeySize(int keysize) */ @Override protected void engineInit(int keysize, SecureRandom random) { - checkKeySize(keysize); + checkSupport(keysize, 0); + this.primeSize = keysize; this.random = random; } @@ -107,21 +112,17 @@ protected void engineInit(AlgorithmParameterSpec genParamSpec, ("Inappropriate parameter type"); } - DHGenParameterSpec dhParamSpec = (DHGenParameterSpec)genParamSpec; - primeSize = dhParamSpec.getPrimeSize(); - exponentSize = dhParamSpec.getExponentSize(); - if ((exponentSize <= 0) || (exponentSize >= primeSize)) { - throw new InvalidAlgorithmParameterException( - "Exponent size (" + exponentSize + - ") must be positive and less than modulus size (" + - primeSize + ")"); - } + DHGenParameterSpec dhParamSpec = (DHGenParameterSpec) genParamSpec; + int primeSize = dhParamSpec.getPrimeSize(); + int exponentSize = dhParamSpec.getExponentSize(); try { - checkKeySize(primeSize); + checkSupport(primeSize, exponentSize); } catch (InvalidParameterException ipe) { throw new InvalidAlgorithmParameterException(ipe.getMessage()); } + this.primeSize = primeSize; + this.exponentSize = exponentSize; this.random = random; } diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageReader.java b/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageReader.java index 49a817d3dd9..fc7fcdbe30d 100644 --- a/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageReader.java +++ b/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageReader.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2022, 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 @@ -554,25 +554,20 @@ else if (size == 124) iis.mark(); iis.skipBytes(profileData - size); - byte[] profile = new byte[profileSize]; - iis.readFully(profile, 0, profileSize); + byte[] profile = ReaderUtil. + staggeredReadByteStream(iis, profileSize); iis.reset(); - try { - if (metadata.colorSpace == PROFILE_LINKED && - isLinkedProfileAllowed() && - !isUncOrDevicePath(profile)) - { - String path = new String(profile, "windows-1252"); + if (metadata.colorSpace == PROFILE_LINKED && + isLinkedProfileAllowed()) + { + String path = new String(profile, "windows-1252"); - colorSpace = - new ICC_ColorSpace(ICC_Profile.getInstance(path)); - } else { - colorSpace = - new ICC_ColorSpace(ICC_Profile.getInstance(profile)); - } - } catch (Exception e) { - colorSpace = ColorSpace.getInstance(ColorSpace.CS_sRGB); + colorSpace = + new ICC_ColorSpace(ICC_Profile.getInstance(path)); + } else if (metadata.colorSpace == PROFILE_EMBEDDED) { + colorSpace = + new ICC_ColorSpace(ICC_Profile.getInstance(profile)); } } @@ -1825,68 +1820,18 @@ public void sequenceStarted(ImageReader src, int minIndex) {} public void readAborted(ImageReader src) {} } - private static Boolean isLinkedProfileDisabled = null; + private static Boolean isLinkedProfileAllowed = null; private static boolean isLinkedProfileAllowed() { - if (isLinkedProfileDisabled == null) { + if (isLinkedProfileAllowed == null) { PrivilegedAction a = new PrivilegedAction() { public Boolean run() { - return Boolean.getBoolean("sun.imageio.plugins.bmp.disableLinkedProfiles"); + return Boolean. + getBoolean("sun.imageio.bmp.enableLinkedProfiles"); } }; - isLinkedProfileDisabled = AccessController.doPrivileged(a); - } - return !isLinkedProfileDisabled; - } - - private static Boolean isWindowsPlatform = null; - - /** - * Verifies whether the byte array contans a unc path. - * Non-UNC path examples: - * c:\path\to\file - simple notation - * \\?\c:\path\to\file - long notation - * - * UNC path examples: - * \\server\share - a UNC path in simple notation - * \\?\UNC\server\share - a UNC path in long notation - * \\.\some\device - a path to device. - */ - private static boolean isUncOrDevicePath(byte[] p) { - if (isWindowsPlatform == null) { - PrivilegedAction a = new PrivilegedAction() { - public Boolean run() { - String osname = System.getProperty("os.name"); - return (osname != null && - osname.toLowerCase().startsWith("win")); - } - }; - isWindowsPlatform = AccessController.doPrivileged(a); - } - - if (!isWindowsPlatform) { - /* no need for the check on platforms except windows */ - return false; - } - - /* normalize prefix of the path */ - if (p[0] == '/') p[0] = '\\'; - if (p[1] == '/') p[1] = '\\'; - if (p[3] == '/') p[3] = '\\'; - - - if ((p[0] == '\\') && (p[1] == '\\')) { - if ((p[2] == '?') && (p[3] == '\\')) { - // long path: whether unc or local - return ((p[4] == 'U' || p[4] == 'u') && - (p[5] == 'N' || p[5] == 'n') && - (p[6] == 'C' || p[6] == 'c')); - } else { - // device path or short unc notation - return true; - } - } else { - return false; + isLinkedProfileAllowed = AccessController.doPrivileged(a); } + return isLinkedProfileAllowed; } } diff --git a/jdk/src/share/classes/com/sun/media/sound/JARSoundbankReader.java b/jdk/src/share/classes/com/sun/media/sound/JARSoundbankReader.java index 32fc90ffbb7..a196ddcd76e 100644 --- a/jdk/src/share/classes/com/sun/media/sound/JARSoundbankReader.java +++ b/jdk/src/share/classes/com/sun/media/sound/JARSoundbankReader.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2022, 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 @@ import java.net.URL; import java.net.URLClassLoader; import java.util.ArrayList; +import java.util.Objects; import javax.sound.midi.InvalidMidiDataException; import javax.sound.midi.Soundbank; import javax.sound.midi.spi.SoundbankReader; @@ -45,6 +46,13 @@ */ public final class JARSoundbankReader extends SoundbankReader { + /* + * Name of the system property that enables the Jar soundbank loading + * true if jar sound bank is allowed to be loaded + * default is false + */ + private final static String JAR_SOUNDBANK_ENABLED = "jdk.sound.jarsoundbank"; + private static boolean isZIP(URL url) { boolean ok = false; try { @@ -68,8 +76,10 @@ private static boolean isZIP(URL url) { public Soundbank getSoundbank(URL url) throws InvalidMidiDataException, IOException { - if (!isZIP(url)) + Objects.requireNonNull(url); + if (!Boolean.getBoolean(JAR_SOUNDBANK_ENABLED) || !isZIP(url)) return null; + ArrayList soundbanks = new ArrayList(); URLClassLoader ucl = URLClassLoader.newInstance(new URL[]{url}); InputStream stream = ucl.getResourceAsStream( @@ -117,6 +127,7 @@ public Soundbank getSoundbank(InputStream stream) public Soundbank getSoundbank(File file) throws InvalidMidiDataException, IOException { + Objects.requireNonNull(file); return getSoundbank(file.toURI().toURL()); } } diff --git a/jdk/src/share/classes/java/net/InetAddress.java b/jdk/src/share/classes/java/net/InetAddress.java index eebd8ef4b2b..e314647aae6 100644 --- a/jdk/src/share/classes/java/net/InetAddress.java +++ b/jdk/src/share/classes/java/net/InetAddress.java @@ -1119,6 +1119,10 @@ private static InetAddress[] getAllByName(String host, InetAddress reqAddr) InetAddress[] ret = new InetAddress[1]; if(addr != null) { if (addr.length == Inet4Address.INADDRSZ) { + if (numericZone != -1 || ifname != null) { + // IPv4-mapped address must not contain zone-id + throw new UnknownHostException(host + ": invalid IPv4-mapped address"); + } ret[0] = new Inet4Address(null, addr); } else { if (ifname != null) { @@ -1163,22 +1167,23 @@ private static int checkNumericZone (String s) throws UnknownHostException { int percent = s.indexOf ('%'); int slen = s.length(); int digit, zone=0; + int multmax = Integer.MAX_VALUE / 10; // for int overflow detection if (percent == -1) { return -1; } for (int i=percent+1; i multmax) { return -1; } zone = (zone * 10) + digit; + if (zone < 0) { + return -1; + } + } return zone; } diff --git a/jdk/src/share/classes/javax/swing/text/html/ObjectView.java b/jdk/src/share/classes/javax/swing/text/html/ObjectView.java index e163d3e396a..5bcbc10c674 100644 --- a/jdk/src/share/classes/javax/swing/text/html/ObjectView.java +++ b/jdk/src/share/classes/javax/swing/text/html/ObjectView.java @@ -91,13 +91,15 @@ protected Component createComponent() { String classname = (String) attr.getAttribute(HTML.Attribute.CLASSID); try { ReflectUtil.checkPackageAccess(classname); - Class c = Class.forName(classname, true,Thread.currentThread(). + Class c = Class.forName(classname, false,Thread.currentThread(). getContextClassLoader()); - Object o = c.newInstance(); - if (o instanceof Component) { - Component comp = (Component) o; - setParameters(comp, attr); - return comp; + if (Component.class.isAssignableFrom(c)) { + Object o = c.newInstance(); + if (o instanceof Component) { + Component comp = (Component) o; + setParameters(comp, attr); + return comp; + } } } catch (Throwable e) { // couldn't create a component... fall through to the diff --git a/jdk/src/share/classes/sun/net/util/IPAddressUtil.java b/jdk/src/share/classes/sun/net/util/IPAddressUtil.java index 421cce93110..d7db5bcd926 100644 --- a/jdk/src/share/classes/sun/net/util/IPAddressUtil.java +++ b/jdk/src/share/classes/sun/net/util/IPAddressUtil.java @@ -706,7 +706,7 @@ private static boolean isHexFieldStart(CharBuffer cb) { } // Parse ASCII digit in given radix - private static int parseAsciiDigit(char c, int radix) { + public static int parseAsciiDigit(char c, int radix) { assert radix == OCTAL || radix == DECIMAL || radix == HEXADECIMAL; if (radix == HEXADECIMAL) { return parseAsciiHexDigit(c); diff --git a/jdk/src/share/classes/sun/security/pkcs/SignerInfo.java b/jdk/src/share/classes/sun/security/pkcs/SignerInfo.java index cc63d69042f..c3512a2607b 100644 --- a/jdk/src/share/classes/sun/security/pkcs/SignerInfo.java +++ b/jdk/src/share/classes/sun/security/pkcs/SignerInfo.java @@ -84,10 +84,21 @@ public class SignerInfo implements DerEncoder { /** * A map containing the algorithms in this SignerInfo. This is used to * avoid checking algorithms to see if they are disabled more than once. - * The key is the AlgorithmId of the algorithm, and the value is the name of - * the field or attribute. + * The key is the AlgorithmId of the algorithm, and the value is a record + * containing the name of the field or attribute and whether the key + * should also be checked (ex: if it is a signature algorithm). */ - private Map algorithms = new HashMap<>(); + private class AlgorithmInfo { + String field; + boolean checkKey; + private AlgorithmInfo(String f, boolean cK) { + field = f; + checkKey = cK; + } + String field() { return field; } + boolean checkKey() { return checkKey; } + } + private Map algorithms = new HashMap<>(); public SignerInfo(X500Name issuerName, BigInteger serial, @@ -323,7 +334,8 @@ SignerInfo verify(PKCS7 block, byte[] data) } String digestAlgName = digestAlgorithmId.getName(); - algorithms.put(digestAlgorithmId, "SignerInfo digestAlgorithm field"); + algorithms.put(digestAlgorithmId, + new AlgorithmInfo("SignerInfo digestAlgorithm field", false)); byte[] dataSigned; @@ -382,7 +394,8 @@ SignerInfo verify(PKCS7 block, byte[] data) new AlgorithmId(oid, digestEncryptionAlgorithmId.getParameters()); algorithms.put(sigAlgId, - "SignerInfo digestEncryptionAlgorithm field"); + new AlgorithmInfo( + "SignerInfo digestEncryptionAlgorithm field", true)); } catch (NoSuchAlgorithmException ignore) { } @@ -569,7 +582,8 @@ private void verifyTimestamp(TimestampToken token) throws NoSuchAlgorithmException, SignatureException { AlgorithmId digestAlgId = token.getHashAlgorithm(); - algorithms.put(digestAlgId, "TimestampToken digestAlgorithm field"); + algorithms.put(digestAlgId, + new AlgorithmInfo("TimestampToken digestAlgorithm field", false)); MessageDigest md = MessageDigest.getInstance(digestAlgId.getName()); @@ -626,18 +640,19 @@ public String toString() { */ public static Set verifyAlgorithms(SignerInfo[] infos, JarConstraintsParameters params, String name) throws SignatureException { - Map algorithms = new HashMap<>(); + Map algorithms = new HashMap<>(); for (SignerInfo info : infos) { algorithms.putAll(info.algorithms); } Set enabledAlgorithms = new HashSet<>(); try { - for (Map.Entry algorithm : algorithms.entrySet()) { - params.setExtendedExceptionMsg(name, algorithm.getValue()); - AlgorithmId algId = algorithm.getKey(); + for (Map.Entry algEntry : algorithms.entrySet()) { + AlgorithmInfo info = algEntry.getValue(); + params.setExtendedExceptionMsg(name, info.field()); + AlgorithmId algId = algEntry.getKey(); JAR_DISABLED_CHECK.permits(algId.getName(), - algId.getParameters(), params); + algId.getParameters(), params, info.checkKey()); enabledAlgorithms.add(algId.getName()); } } catch (CertPathValidatorException e) { diff --git a/jdk/src/share/classes/sun/security/provider/ParameterCache.java b/jdk/src/share/classes/sun/security/provider/ParameterCache.java index 0aad0d93d5e..f45c9f5a95f 100644 --- a/jdk/src/share/classes/sun/security/provider/ParameterCache.java +++ b/jdk/src/share/classes/sun/security/provider/ParameterCache.java @@ -34,6 +34,7 @@ import java.security.spec.*; import javax.crypto.spec.DHParameterSpec; +import sun.security.util.SafeDHParameterSpec; /** * Cache for DSA and DH parameter specs. Used by the KeyPairGenerators @@ -55,6 +56,26 @@ private ParameterCache() { // cache of DH parameters private final static Map dhCache; + // convert DHParameterSpec to SafeDHParameterSpec if its parameters are + // safe primes; validation takes time but should be worthwhile for the + // parameter cache since the parameters may be reused many times. + private static DHParameterSpec makeSafe(DHParameterSpec spec) { + if (spec instanceof SafeDHParameterSpec) { + return spec; + } + + BigInteger p = spec.getP(); + BigInteger g = spec.getG(); + + boolean isSafe = (g.equals(BigInteger.valueOf(2)) && p.testBit(0) && + p.shiftRight(1).isProbablePrime(100)); + if (isSafe) { + return new SafeDHParameterSpec(p, g, spec.getL()); + } else { + return spec; + } + } + /** * Return cached DSA parameters for the given length combination of * prime and subprime, or null if none are available in the cache. @@ -74,7 +95,7 @@ public static DSAParameterSpec getCachedDSAParameterSpec(int primeLen, * are available in the cache. */ public static DHParameterSpec getCachedDHParameterSpec(int keyLength) { - return dhCache.get(Integer.valueOf(keyLength)); + return dhCache.get(keyLength); } /** @@ -132,7 +153,7 @@ public static DHParameterSpec getDHParameterSpec(int keyLength, gen.init(keyLength, random); AlgorithmParameters params = gen.generateParameters(); spec = params.getParameterSpec(DHParameterSpec.class); - dhCache.put(Integer.valueOf(keyLength), spec); + dhCache.put(keyLength, makeSafe(spec)); return spec; } @@ -394,6 +415,12 @@ public static DSAParameterSpec getNewDSAParameterSpec(int primeLen, // the common generator BigInteger dhG = BigInteger.valueOf(2); + // Self generated following the approach from RFC 2412 Appendix E but + // using random source instead of binary expansion of pi + BigInteger dhP512 = new BigInteger( + "FFFFFFFFFFFFFFFF8B479B3A6E8DE86C294188F0BF2CD86C" + + "DB950ADB36D0F61FD51E46F69C99ED95ABE5A7BBB230A6ED" + + "1D0B4506B5317284FFFFFFFFFFFFFFFF", 16); // // From RFC 7296 @@ -562,16 +589,18 @@ public static DSAParameterSpec getNewDSAParameterSpec(int primeLen, "9558E4475677E9AA9E3050E2765694DFC81F56E880B96E71" + "60C980DD98EDD3DFFFFFFFFFFFFFFFFF", 16); - // use DSA parameters for DH for sizes not defined in RFC 7296, 3526 - dhCache.put(Integer.valueOf(512), new DHParameterSpec(p512, g512)); - - dhCache.put(Integer.valueOf(768), new DHParameterSpec(dhP768, dhG)); - dhCache.put(Integer.valueOf(1024), new DHParameterSpec(dhP1024, dhG)); - dhCache.put(Integer.valueOf(1536), new DHParameterSpec(dhP1536, dhG)); - dhCache.put(Integer.valueOf(2048), new DHParameterSpec(dhP2048, dhG)); - dhCache.put(Integer.valueOf(3072), new DHParameterSpec(dhP3072, dhG)); - dhCache.put(Integer.valueOf(4096), new DHParameterSpec(dhP4096, dhG)); - dhCache.put(Integer.valueOf(6144), new DHParameterSpec(dhP6144, dhG)); - dhCache.put(Integer.valueOf(8192), new DHParameterSpec(dhP8192, dhG)); + // self-generated safe prime + dhCache.put(512, new SafeDHParameterSpec(dhP512, dhG)); + + // from RFC 7296 + dhCache.put(768, new SafeDHParameterSpec(dhP768, dhG)); + dhCache.put(1024, new SafeDHParameterSpec(dhP1024, dhG)); + // from RFC 3526 + dhCache.put(1536, new SafeDHParameterSpec(dhP1536, dhG)); + dhCache.put(2048, new SafeDHParameterSpec(dhP2048, dhG)); + dhCache.put(3072, new SafeDHParameterSpec(dhP3072, dhG)); + dhCache.put(4096, new SafeDHParameterSpec(dhP4096, dhG)); + dhCache.put(6144, new SafeDHParameterSpec(dhP6144, dhG)); + dhCache.put(8192, new SafeDHParameterSpec(dhP8192, dhG)); } } diff --git a/jdk/src/share/classes/sun/security/provider/certpath/AlgorithmChecker.java b/jdk/src/share/classes/sun/security/provider/certpath/AlgorithmChecker.java index 3ed82afaab8..54c73c832dd 100644 --- a/jdk/src/share/classes/sun/security/provider/certpath/AlgorithmChecker.java +++ b/jdk/src/share/classes/sun/security/provider/certpath/AlgorithmChecker.java @@ -38,7 +38,6 @@ import java.security.AlgorithmParameters; import java.security.GeneralSecurityException; import java.security.cert.Certificate; -import java.security.cert.X509CRL; import java.security.cert.X509Certificate; import java.security.cert.PKIXCertPathChecker; import java.security.cert.TrustAnchor; @@ -57,7 +56,6 @@ import sun.security.validator.Validator; import sun.security.x509.AlgorithmId; import sun.security.x509.X509CertImpl; -import sun.security.x509.X509CRLImpl; /** * A {@code PKIXCertPathChecker} implementation to check whether a @@ -285,13 +283,13 @@ public void check(Certificate cert, // Check against local constraints if it is DisabledAlgorithmConstraints if (constraints instanceof DisabledAlgorithmConstraints) { ((DisabledAlgorithmConstraints)constraints).permits(currSigAlg, - currSigAlgParams, cp); + currSigAlgParams, cp, true); // DisabledAlgorithmsConstraints does not check primitives, so key // additional key check. } else { // Perform the default constraints checking anyway. - certPathDefaultConstraints.permits(currSigAlg, currSigAlgParams, cp); + certPathDefaultConstraints.permits(currSigAlg, currSigAlgParams, cp, true); // Call locally set constraints to check key with primitives. if (!constraints.permits(primitives, currPubKey)) { throw new CertPathValidatorException( @@ -377,29 +375,6 @@ void trySetTrustAnchor(TrustAnchor anchor) { } } - /** - * Check the signature algorithm with the specified public key. - * - * @param key the public key to verify the CRL signature - * @param crl the target CRL - * @param variant the Validator variant of the operation. A null value - * passed will set it to Validator.GENERIC. - * @param anchor the trust anchor selected to validate the CRL issuer - */ - static void check(PublicKey key, X509CRL crl, String variant, - TrustAnchor anchor) throws CertPathValidatorException { - - X509CRLImpl x509CRLImpl = null; - try { - x509CRLImpl = X509CRLImpl.toImpl(crl); - } catch (CRLException ce) { - throw new CertPathValidatorException(ce); - } - - AlgorithmId algorithmId = x509CRLImpl.getSigAlgId(); - check(key, algorithmId, variant, anchor); - } - /** * Check the signature algorithm with the specified public key. * @@ -414,7 +389,7 @@ static void check(PublicKey key, AlgorithmId algorithmId, String variant, certPathDefaultConstraints.permits(algorithmId.getName(), algorithmId.getParameters(), - new CertPathConstraintsParameters(key, variant, anchor)); + new CertPathConstraintsParameters(key, variant, anchor), true); } } diff --git a/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java b/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java index 58800254362..1cc867f5746 100644 --- a/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java +++ b/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java @@ -689,7 +689,8 @@ static boolean verifyCRL(X509CertImpl certImpl, DistributionPoint point, // check the crl signature algorithm try { - AlgorithmChecker.check(prevKey, crl, variant, anchor); + AlgorithmChecker.check(prevKey, crlImpl.getSigAlgId(), + variant, anchor); } catch (CertPathValidatorException cpve) { if (debug != null) { debug.println("CRL signature algorithm check failed: " + cpve); diff --git a/jdk/src/share/classes/sun/security/ssl/PredefinedDHParameterSpecs.java b/jdk/src/share/classes/sun/security/ssl/PredefinedDHParameterSpecs.java index aa463ec2cd0..547955c075c 100644 --- a/jdk/src/share/classes/sun/security/ssl/PredefinedDHParameterSpecs.java +++ b/jdk/src/share/classes/sun/security/ssl/PredefinedDHParameterSpecs.java @@ -33,6 +33,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.crypto.spec.DHParameterSpec; +import sun.security.util.SafeDHParameterSpec; /** * Predefined default DH ephemeral parameters. @@ -279,8 +280,8 @@ public String run() { String baseGenerator = paramsFinder.group(2); BigInteger g = new BigInteger(baseGenerator, 16); - DHParameterSpec spec = new DHParameterSpec(p, g); int primeLen = p.bitLength(); + DHParameterSpec spec = new DHParameterSpec(p, g); defaultParams.put(primeLen, spec); } } else if (SSLLogger.isOn && SSLLogger.isOn("sslctx")) { @@ -293,7 +294,7 @@ public String run() { Map tempFFDHEs = new HashMap<>(); for (BigInteger p : ffdhePrimes) { int primeLen = p.bitLength(); - DHParameterSpec dhps = new DHParameterSpec(p, TWO); + DHParameterSpec dhps = new SafeDHParameterSpec(p, TWO); tempFFDHEs.put(primeLen, dhps); defaultParams.putIfAbsent(primeLen, dhps); } @@ -301,8 +302,7 @@ public String run() { for (BigInteger p : supportedPrimes) { int primeLen = p.bitLength(); if (defaultParams.get(primeLen) == null) { - defaultParams.put(primeLen, - new DHParameterSpec(p, TWO)); + defaultParams.put(primeLen, new SafeDHParameterSpec(p, TWO)); } } diff --git a/jdk/src/share/classes/sun/security/tools/jarsigner/Main.java b/jdk/src/share/classes/sun/security/tools/jarsigner/Main.java index 5a0f7d13c03..656d348644d 100644 --- a/jdk/src/share/classes/sun/security/tools/jarsigner/Main.java +++ b/jdk/src/share/classes/sun/security/tools/jarsigner/Main.java @@ -904,9 +904,14 @@ void verifyJar(String jarName) Calendar c = Calendar.getInstance( TimeZone.getTimeZone("UTC"), Locale.getDefault(Locale.Category.FORMAT)); - c.setTime(tsTokenInfo.getDate()); + Date tsDate = tsTokenInfo.getDate(); + c.setTime(tsDate); JarConstraintsParameters jcp = - new JarConstraintsParameters(chain, si.getTimestamp()); + new JarConstraintsParameters(chain, tsDate); + JarConstraintsParameters jcpts = + new JarConstraintsParameters( + tsSi.getCertificateChain(tsToken), + tsDate); history = String.format( rb.getString("history.with.ts"), signer.getSubjectX500Principal(), @@ -915,9 +920,9 @@ void verifyJar(String jarName) verifyWithWeak(key, jcp), c, tsSigner.getSubjectX500Principal(), - verifyWithWeak(tsDigestAlg, DIGEST_PRIMITIVE_SET, true, jcp), - verifyWithWeak(tsSigAlg, SIG_PRIMITIVE_SET, true, jcp), - verifyWithWeak(tsKey, jcp)); + verifyWithWeak(tsDigestAlg, DIGEST_PRIMITIVE_SET, true, jcpts), + verifyWithWeak(tsSigAlg, SIG_PRIMITIVE_SET, true, jcpts), + verifyWithWeak(tsKey, jcpts)); } else { JarConstraintsParameters jcp = new JarConstraintsParameters(chain, null); @@ -1267,13 +1272,13 @@ private String verifyWithWeak(String alg, Set primitiveSet, boolean tsa, JarConstraintsParameters jcp) { try { - DISABLED_CHECK.permits(alg, jcp); + DISABLED_CHECK.permits(alg, jcp, false); } catch (CertPathValidatorException e) { disabledAlgFound = true; return String.format(rb.getString("with.disabled"), alg); } try { - LEGACY_CHECK.permits(alg, jcp); + LEGACY_CHECK.permits(alg, jcp, false); return alg; } catch (CertPathValidatorException e) { if (primitiveSet == SIG_PRIMITIVE_SET) { @@ -1295,13 +1300,13 @@ private String verifyWithWeak(String alg, Set primitiveSet, private String verifyWithWeak(PublicKey key, JarConstraintsParameters jcp) { int kLen = KeyUtil.getKeySize(key); try { - DISABLED_CHECK.permits(key.getAlgorithm(), jcp); + DISABLED_CHECK.permits(key.getAlgorithm(), jcp, true); } catch (CertPathValidatorException e) { disabledAlgFound = true; return String.format(rb.getString("key.bit.disabled"), kLen); } try { - LEGACY_CHECK.permits(key.getAlgorithm(), jcp); + LEGACY_CHECK.permits(key.getAlgorithm(), jcp, true); if (kLen >= 0) { return String.format(rb.getString("key.bit"), kLen); } else { @@ -1318,9 +1323,9 @@ private void checkWeakSign(String alg, Set primitiveSet, boolean tsa, JarConstraintsParameters jcp) { try { - DISABLED_CHECK.permits(alg, jcp); + DISABLED_CHECK.permits(alg, jcp, false); try { - LEGACY_CHECK.permits(alg, jcp); + LEGACY_CHECK.permits(alg, jcp, false); } catch (CertPathValidatorException e) { if (primitiveSet == SIG_PRIMITIVE_SET) { legacyAlg |= 2; @@ -1347,9 +1352,9 @@ private void checkWeakSign(String alg, Set primitiveSet, private void checkWeakSign(PrivateKey key, JarConstraintsParameters jcp) { try { - DISABLED_CHECK.permits(key.getAlgorithm(), jcp); + DISABLED_CHECK.permits(key.getAlgorithm(), jcp, true); try { - LEGACY_CHECK.permits(key.getAlgorithm(), jcp); + LEGACY_CHECK.permits(key.getAlgorithm(), jcp, true); } catch (CertPathValidatorException e) { legacyAlg |= 8; } diff --git a/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java b/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java index 67cdb072600..1adc6b966cf 100644 --- a/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java +++ b/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2022, 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 @@ -39,9 +39,12 @@ import java.security.spec.InvalidParameterSpecException; import java.security.spec.MGF1ParameterSpec; import java.security.spec.PSSParameterSpec; +import java.time.DateTimeException; +import java.time.Instant; +import java.time.ZonedDateTime; +import java.time.ZoneId; import java.util.ArrayList; import java.util.Arrays; -import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -52,7 +55,6 @@ import java.util.Collection; import java.util.Collections; import java.util.StringTokenizer; -import java.util.TimeZone; import java.util.regex.Pattern; import java.util.regex.Matcher; @@ -192,16 +194,16 @@ public final boolean permits(Set primitives, } public final void permits(String algorithm, AlgorithmParameters ap, - ConstraintsParameters cp) throws CertPathValidatorException { - - permits(algorithm, cp); + ConstraintsParameters cp, boolean checkKey) + throws CertPathValidatorException { + permits(algorithm, cp, checkKey); if (ap != null) { permits(ap, cp); } } private void permits(AlgorithmParameters ap, ConstraintsParameters cp) - throws CertPathValidatorException { + throws CertPathValidatorException { switch (ap.getAlgorithm().toUpperCase(Locale.ENGLISH)) { case "RSASSA-PSS": @@ -219,13 +221,13 @@ private void permitsPSSParams(AlgorithmParameters ap, PSSParameterSpec pssParams = ap.getParameterSpec(PSSParameterSpec.class); String digestAlg = pssParams.getDigestAlgorithm(); - permits(digestAlg, cp); + permits(digestAlg, cp, false); AlgorithmParameterSpec mgfParams = pssParams.getMGFParameters(); if (mgfParams instanceof MGF1ParameterSpec) { String mgfDigestAlg = ((MGF1ParameterSpec)mgfParams).getDigestAlgorithm(); if (!mgfDigestAlg.equalsIgnoreCase(digestAlg)) { - permits(mgfDigestAlg, cp); + permits(mgfDigestAlg, cp, false); } } } catch (InvalidParameterSpecException ipse) { @@ -233,22 +235,24 @@ private void permitsPSSParams(AlgorithmParameters ap, } } - public final void permits(String algorithm, ConstraintsParameters cp) - throws CertPathValidatorException { + public final void permits(String algorithm, ConstraintsParameters cp, + boolean checkKey) throws CertPathValidatorException { - // Check if named curves in the key are disabled. - for (Key key : cp.getKeys()) { - for (String curve : getNamedCurveFromKey(key)) { - if (!checkAlgorithm(disabledAlgorithms, curve, decomposer)) { - throw new CertPathValidatorException( + if (checkKey) { + // Check if named curves in the key are disabled. + for (Key key : cp.getKeys()) { + for (String curve : getNamedCurveFromKey(key)) { + if (!checkAlgorithm(disabledAlgorithms, curve, decomposer)) { + throw new CertPathValidatorException( "Algorithm constraints check failed on disabled " + "algorithm: " + curve, null, null, -1, BasicReason.ALGORITHM_CONSTRAINED); + } } } } - algorithmConstraints.permits(algorithm, cp); + algorithmConstraints.permits(algorithm, cp, checkKey); } private static List getNamedCurveFromKey(Key key) { @@ -479,8 +483,8 @@ public boolean permits(String algorithm, AlgorithmParameters aps) { return true; } - public void permits(String algorithm, ConstraintsParameters cp) - throws CertPathValidatorException { + public void permits(String algorithm, ConstraintsParameters cp, + boolean checkKey) throws CertPathValidatorException { if (debug != null) { debug.println("Constraints.permits(): " + algorithm + ", " @@ -494,8 +498,10 @@ public void permits(String algorithm, ConstraintsParameters cp) algorithms.add(algorithm); } - for (Key key : cp.getKeys()) { - algorithms.add(key.getAlgorithm()); + if (checkKey) { + for (Key key : cp.getKeys()) { + algorithms.add(key.getAlgorithm()); + } } // Check all applicable constraints @@ -505,6 +511,9 @@ public void permits(String algorithm, ConstraintsParameters cp) continue; } for (Constraint constraint : list) { + if (!checkKey && constraint instanceof KeySizeConstraint) { + continue; + } constraint.permits(cp); } } @@ -679,41 +688,30 @@ public void permits(ConstraintsParameters cp) * timezone. */ private static class DenyAfterConstraint extends Constraint { - private Date denyAfterDate; + private ZonedDateTime zdt; + private Instant denyAfterDate; DenyAfterConstraint(String algo, int year, int month, int day) { - Calendar c; algorithm = algo; if (debug != null) { - debug.println("DenyAfterConstraint read in as: year " + + debug.println("DenyAfterConstraint read in as: year " + year + ", month = " + month + ", day = " + day); } - c = new Calendar.Builder().setTimeZone(TimeZone.getTimeZone("GMT")) - .setDate(year, month - 1, day).build(); - - if (year > c.getActualMaximum(Calendar.YEAR) || - year < c.getActualMinimum(Calendar.YEAR)) { - throw new IllegalArgumentException( - "Invalid year given in constraint: " + year); - } - if ((month - 1) > c.getActualMaximum(Calendar.MONTH) || - (month - 1) < c.getActualMinimum(Calendar.MONTH)) { - throw new IllegalArgumentException( - "Invalid month given in constraint: " + month); - } - if (day > c.getActualMaximum(Calendar.DAY_OF_MONTH) || - day < c.getActualMinimum(Calendar.DAY_OF_MONTH)) { + try { + zdt = ZonedDateTime + .of(year, month, day, 0, 0, 0, 0, ZoneId.of("GMT")); + denyAfterDate = zdt.toInstant(); + } catch (DateTimeException dte) { throw new IllegalArgumentException( - "Invalid Day of Month given in constraint: " + day); + "Invalid denyAfter date", dte); } - denyAfterDate = c.getTime(); if (debug != null) { debug.println("DenyAfterConstraint date set to: " + - denyAfterDate); + zdt.toLocalDate()); } } @@ -728,23 +726,22 @@ private static class DenyAfterConstraint extends Constraint { @Override public void permits(ConstraintsParameters cp) throws CertPathValidatorException { - Date currentDate; - String errmsg; + Instant currentDate; if (cp.getDate() != null) { - currentDate = cp.getDate(); + currentDate = cp.getDate().toInstant(); } else { - currentDate = new Date(); + currentDate = Instant.now(); } - if (!denyAfterDate.after(currentDate)) { + if (!denyAfterDate.isAfter(currentDate)) { if (next(cp)) { return; } throw new CertPathValidatorException( "denyAfter constraint check failed: " + algorithm + " used with Constraint date: " + - denyAfterDate + "; params date: " + + zdt.toLocalDate() + "; params date: " + currentDate + cp.extendedExceptionMsg(), null, null, -1, BasicReason.ALGORITHM_CONSTRAINED); } @@ -763,7 +760,7 @@ public boolean permits(Key key) { debug.println("DenyAfterConstraints.permits(): " + algorithm); } - return denyAfterDate.after(new Date()); + return denyAfterDate.isAfter(Instant.now()); } } diff --git a/jdk/src/share/classes/sun/security/util/JarConstraintsParameters.java b/jdk/src/share/classes/sun/security/util/JarConstraintsParameters.java index 9cf2bf9ffb3..28c959d3f59 100644 --- a/jdk/src/share/classes/sun/security/util/JarConstraintsParameters.java +++ b/jdk/src/share/classes/sun/security/util/JarConstraintsParameters.java @@ -98,16 +98,11 @@ public JarConstraintsParameters(CodeSigner[] signers) { this.timestamp = latestTimestamp; } - public JarConstraintsParameters(List chain, Timestamp timestamp) { + public JarConstraintsParameters(List chain, Date timestamp) { this.keys = new HashSet<>(); this.certsIssuedByAnchor = new HashSet<>(); addToCertsAndKeys(chain); - if (timestamp != null) { - addToCertsAndKeys(timestamp.getSignerCertPath()); - this.timestamp = timestamp.getTimestamp(); - } else { - this.timestamp = null; - } + this.timestamp = timestamp; } // extract last certificate and signer's public key from chain @@ -178,7 +173,7 @@ public void setExtendedExceptionMsg(String file, String target) { @Override public String extendedExceptionMsg() { - return message; + return message == null ? "." : message; } @Override diff --git a/jdk/src/share/classes/sun/security/util/ManifestEntryVerifier.java b/jdk/src/share/classes/sun/security/util/ManifestEntryVerifier.java index 36bec3fb184..b86bfe2a850 100644 --- a/jdk/src/share/classes/sun/security/util/ManifestEntryVerifier.java +++ b/jdk/src/share/classes/sun/security/util/ManifestEntryVerifier.java @@ -217,7 +217,7 @@ public CodeSigner[] verify(Hashtable verifiedSigners, params.setExtendedExceptionMsg(JarFile.MANIFEST_NAME, name + " entry"); DisabledAlgorithmConstraints.jarConstraints() - .permits(digest.getAlgorithm(), params); + .permits(digest.getAlgorithm(), params, false); } catch (GeneralSecurityException e) { if (debug != null) { debug.println("Digest algorithm is restricted: " + e); diff --git a/jdk/src/share/classes/sun/security/util/SafeDHParameterSpec.java b/jdk/src/share/classes/sun/security/util/SafeDHParameterSpec.java new file mode 100644 index 00000000000..6d95b9f498d --- /dev/null +++ b/jdk/src/share/classes/sun/security/util/SafeDHParameterSpec.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2022, 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 sun.security.util; + +import java.math.BigInteger; +import javax.crypto.spec.DHParameterSpec; + +/** + * Internal marker class for well-known safe DH parameters. It should + * only be used with trusted callers since it does not have all the needed + * values for validation. + */ + +public final class SafeDHParameterSpec extends DHParameterSpec { + public SafeDHParameterSpec(BigInteger p, BigInteger g) { + super(p, g); + } + + public SafeDHParameterSpec(BigInteger p, BigInteger g, int l) { + super(p, g, l); + } +} diff --git a/jdk/src/share/classes/sun/security/util/SecurityProviderConstants.java b/jdk/src/share/classes/sun/security/util/SecurityProviderConstants.java index b9d0d26a21b..ef253722d71 100644 --- a/jdk/src/share/classes/sun/security/util/SecurityProviderConstants.java +++ b/jdk/src/share/classes/sun/security/util/SecurityProviderConstants.java @@ -27,6 +27,7 @@ import java.util.regex.PatternSyntaxException; import java.security.InvalidParameterException; +import javax.crypto.spec.DHParameterSpec; import sun.security.action.GetPropertyAction; /** @@ -54,6 +55,42 @@ public static final int getDefDSASubprimeSize(int primeSize) { } } + public static final int getDefDHPrivateExpSize(DHParameterSpec spec) { + + int dhGroupSize = spec.getP().bitLength(); + + if (spec instanceof SafeDHParameterSpec) { + // Known safe primes + // use 2*security strength as default private exponent size + // as in table 2 of NIST SP 800-57 part 1 rev 5, sec 5.6.1.1 + // and table 25 of NIST SP 800-56A rev 3, appendix D. + if (dhGroupSize >= 15360) { + return 512; + } else if (dhGroupSize >= 8192) { + return 400; + } else if (dhGroupSize >= 7680) { + return 384; + } else if (dhGroupSize >= 6144) { + return 352; + } else if (dhGroupSize >= 4096) { + return 304; + } else if (dhGroupSize >= 3072) { + return 256; + } else if (dhGroupSize >= 2048) { + return 224; + } else { + // min value for legacy key sizes + return 160; + } + } else { + // assume the worst and use groupSize/2 as private exp length + // up to 1024-bit and use the same minimum 384 as before + return Math.max((dhGroupSize >= 2048 ? 1024 : dhGroupSize >> 1), + 384); + } + + } + public static final int DEF_DSA_KEY_SIZE; public static final int DEF_RSA_KEY_SIZE; public static final int DEF_RSASSA_PSS_KEY_SIZE; diff --git a/jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java b/jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java index a6fc3c8aa4a..3efe2ccaa52 100644 --- a/jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java +++ b/jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java @@ -360,7 +360,7 @@ private boolean permittedCheck(String key, String algorithm) { try { params.setExtendedExceptionMsg(name + ".SF", key + " attribute"); DisabledAlgorithmConstraints - .jarConstraints().permits(algorithm, params); + .jarConstraints().permits(algorithm, params, false); } catch (GeneralSecurityException e) { permittedAlgs.put(algorithm, Boolean.FALSE); permittedAlgs.put(key.toUpperCase(), Boolean.FALSE); diff --git a/jdk/src/share/classes/sun/util/cldr/resources/21_0_1/common/main/root.xml b/jdk/src/share/classes/sun/util/cldr/resources/21_0_1/common/main/root.xml index 01ba74f8a04..d5a0ff19a3a 100644 --- a/jdk/src/share/classes/sun/util/cldr/resources/21_0_1/common/main/root.xml +++ b/jdk/src/share/classes/sun/util/cldr/resources/21_0_1/common/main/root.xml @@ -2035,6 +2035,18 @@ Ho Chi Minh + + Bahía de Banderas + + + Cancún + + + Ciudad Juárez + + + Mérida + diff --git a/jdk/src/share/classes/sun/util/cldr/resources/21_0_1/common/supplemental/metaZones.xml b/jdk/src/share/classes/sun/util/cldr/resources/21_0_1/common/supplemental/metaZones.xml index 13af16434f0..bbd67789e71 100644 --- a/jdk/src/share/classes/sun/util/cldr/resources/21_0_1/common/supplemental/metaZones.xml +++ b/jdk/src/share/classes/sun/util/cldr/resources/21_0_1/common/supplemental/metaZones.xml @@ -317,8 +317,15 @@ + + + + + - + + + @@ -596,15 +603,15 @@ - - + + + - - + diff --git a/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java b/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java index 215ad9fd9b4..7dbe5b6e6aa 100644 --- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java +++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2022, 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 @@ -429,7 +429,8 @@ protected final Object[][] getContents() { "French Guiana Summer Time", "GFST", "French Guiana Time", "GFT"}}, {"America/Cayman", EST}, - {"America/Chihuahua", MST}, + {"America/Chihuahua", CST}, + {"America/Ciudad_Juarez", MST}, {"America/Creston", MST}, {"America/Coral_Harbour", EST}, {"America/Cordoba", AGT}, @@ -518,7 +519,7 @@ protected final Object[][] getContents() { {"America/North_Dakota/Center", CST}, {"America/North_Dakota/New_Salem", CST}, {"America/Nuuk", WGT}, - {"America/Ojinaga", MST}, + {"America/Ojinaga", CST}, {"America/Panama", EST}, {"America/Pangnirtung", EST}, {"America/Paramaribo", new String[] {"Suriname Time", "SRT", diff --git a/jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java b/jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java index 00e490e0dec..54ebba457ea 100644 --- a/jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java +++ b/jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2022, 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 @@ -427,7 +427,8 @@ protected final Object[][] getContents() { "Franz\u00f6sisch-Guiana Sommerzeit", "GFST", "Franz\u00F6sisch-Guiana Zeit", "GFT"}}, {"America/Cayman", EST}, - {"America/Chihuahua", MST}, + {"America/Chihuahua", CST}, + {"America/Ciudad_Juarez", MST}, {"America/Creston", MST}, {"America/Coral_Harbour", EST}, {"America/Cordoba", AGT}, @@ -516,7 +517,7 @@ protected final Object[][] getContents() { {"America/North_Dakota/Center", CST}, {"America/North_Dakota/New_Salem", CST}, {"America/Nuuk", WGT}, - {"America/Ojinaga", MST}, + {"America/Ojinaga", CST}, {"America/Panama", EST}, {"America/Pangnirtung", EST}, {"America/Paramaribo", new String[] {"Suriname Zeit", "SRT", diff --git a/jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java b/jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java index aaaf4ec9ec5..47bcfe078ce 100644 --- a/jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java +++ b/jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2022, 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 @@ -427,7 +427,8 @@ protected final Object[][] getContents() { "Hora de verano de la Guayana Francesa", "GFST", "Hora de la Guayana Francesa", "GFT"}}, {"America/Cayman", EST}, - {"America/Chihuahua", MST}, + {"America/Chihuahua", CST}, + {"America/Ciudad_Juarez", MST}, {"America/Creston", MST}, {"America/Coral_Harbour", EST}, {"America/Cordoba", AGT}, @@ -516,7 +517,7 @@ protected final Object[][] getContents() { {"America/North_Dakota/Center", CST}, {"America/North_Dakota/New_Salem", CST}, {"America/Nuuk", WGT}, - {"America/Ojinaga", MST}, + {"America/Ojinaga", CST}, {"America/Panama", EST}, {"America/Pangnirtung", EST}, {"America/Paramaribo", new String[] {"Hora de Surinam", "SRT", diff --git a/jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java b/jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java index 6415066f9fc..a6889d74578 100644 --- a/jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java +++ b/jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2022, 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 @@ -427,7 +427,8 @@ protected final Object[][] getContents() { "Heure d'\u00e9t\u00e9 de Guyane fran\u00e7aise", "GFST", "Heure de Guyane fran\u00E7aise", "GFT"}}, {"America/Cayman", EST}, - {"America/Chihuahua", MST}, + {"America/Chihuahua", CST}, + {"America/Ciudad_Juarez", MST}, {"America/Creston", MST}, {"America/Coral_Harbour", EST}, {"America/Cordoba", AGT}, @@ -516,7 +517,7 @@ protected final Object[][] getContents() { {"America/North_Dakota/Center", CST}, {"America/North_Dakota/New_Salem", CST}, {"America/Nuuk", WGT}, - {"America/Ojinaga", MST}, + {"America/Ojinaga", CST}, {"America/Panama", EST}, {"America/Pangnirtung", EST}, {"America/Paramaribo", new String[] {"Heure du Surinam", "SRT", diff --git a/jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java b/jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java index dead599c78c..cad7ea49464 100644 --- a/jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java +++ b/jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2022, 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 @@ -427,7 +427,8 @@ protected final Object[][] getContents() { "Ora estiva della Guyana Francese", "GFST", "Ora della Guyana Francese", "GFT"}}, {"America/Cayman", EST}, - {"America/Chihuahua", MST}, + {"America/Chihuahua", CST}, + {"America/Ciudad_Juarez", MST}, {"America/Creston", MST}, {"America/Coral_Harbour", EST}, {"America/Cordoba", AGT}, @@ -516,7 +517,7 @@ protected final Object[][] getContents() { {"America/North_Dakota/Center", CST}, {"America/North_Dakota/New_Salem", CST}, {"America/Nuuk", WGT}, - {"America/Ojinaga", MST}, + {"America/Ojinaga", CST}, {"America/Panama", EST}, {"America/Pangnirtung", EST}, {"America/Paramaribo", new String[] {"Ora di Suriname", "SRT", diff --git a/jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java b/jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java index 0c104b55dcf..816b9432c83 100644 --- a/jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java +++ b/jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2022, 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 @@ -427,7 +427,8 @@ protected final Object[][] getContents() { "\u4ecf\u9818\u30ae\u30a2\u30ca\u590f\u6642\u9593", "GFST", "\u30D5\u30E9\u30F3\u30B9\u9818\u30AE\u30A2\u30CA\u6642\u9593", "GFT"}}, {"America/Cayman", EST}, - {"America/Chihuahua", MST}, + {"America/Chihuahua", CST}, + {"America/Ciudad_Juarez", MST}, {"America/Creston", MST}, {"America/Coral_Harbour", EST}, {"America/Cordoba", AGT}, @@ -516,7 +517,7 @@ protected final Object[][] getContents() { {"America/North_Dakota/Center", CST}, {"America/North_Dakota/New_Salem", CST}, {"America/Nuuk", WGT}, - {"America/Ojinaga", MST}, + {"America/Ojinaga", CST}, {"America/Panama", EST}, {"America/Pangnirtung", EST}, {"America/Paramaribo", new String[] {"\u30b9\u30ea\u30ca\u30e0\u6642\u9593", "SRT", diff --git a/jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java b/jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java index 65efcf50812..e4b39e2d899 100644 --- a/jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java +++ b/jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2022, 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 @@ -427,7 +427,8 @@ protected final Object[][] getContents() { "\ud504\ub791\uc2a4\ub839 \uae30\uc544\ub098 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "GFST", "\uD504\uB791\uC2A4\uB839 \uAE30\uC544\uB098 \uD45C\uC900\uC2DC", "GFT"}}, {"America/Cayman", EST}, - {"America/Chihuahua", MST}, + {"America/Chihuahua", CST}, + {"America/Ciudad_Juarez", MST}, {"America/Creston", MST}, {"America/Coral_Harbour", EST}, {"America/Cordoba", AGT}, @@ -516,7 +517,7 @@ protected final Object[][] getContents() { {"America/North_Dakota/Center", CST}, {"America/North_Dakota/New_Salem", CST}, {"America/Nuuk", WGT}, - {"America/Ojinaga", MST}, + {"America/Ojinaga", CST}, {"America/Panama", EST}, {"America/Pangnirtung", EST}, {"America/Paramaribo", new String[] {"\uc218\ub9ac\ub0a8 \uc2dc\uac04", "SRT", diff --git a/jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java b/jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java index b5f3acb5c94..beaadb0ed31 100644 --- a/jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java +++ b/jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2022, 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 @@ -427,7 +427,8 @@ protected final Object[][] getContents() { "Fuso hor\u00e1rio de ver\u00e3o da Guiana Francesa", "GFST", "Hor\u00E1rio da Guiana Francesa", "GFT"}}, {"America/Cayman", EST}, - {"America/Chihuahua", MST}, + {"America/Chihuahua", CST}, + {"America/Ciudad_Juarez", MST}, {"America/Creston", MST}, {"America/Coral_Harbour", EST}, {"America/Cordoba", AGT}, @@ -516,7 +517,7 @@ protected final Object[][] getContents() { {"America/North_Dakota/Center", CST}, {"America/North_Dakota/New_Salem", CST}, {"America/Nuuk", WGT}, - {"America/Ojinaga", MST}, + {"America/Ojinaga", CST}, {"America/Panama", EST}, {"America/Pangnirtung", EST}, {"America/Paramaribo", new String[] {"Fuso hor\u00e1rio do Suriname", "SRT", diff --git a/jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java b/jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java index d51762cb152..447be2e956f 100644 --- a/jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java +++ b/jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2022, 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 @@ -427,7 +427,8 @@ protected final Object[][] getContents() { "Franska Guyana, sommartid", "GFST", "Franska Guyana-tid", "GFT"}}, {"America/Cayman", EST}, - {"America/Chihuahua", MST}, + {"America/Chihuahua", CST}, + {"America/Ciudad_Juarez", MST}, {"America/Creston", MST}, {"America/Coral_Harbour", EST}, {"America/Cordoba", AGT}, @@ -516,7 +517,7 @@ protected final Object[][] getContents() { {"America/North_Dakota/Center", CST}, {"America/North_Dakota/New_Salem", CST}, {"America/Nuuk", WGT}, - {"America/Ojinaga", MST}, + {"America/Ojinaga", CST}, {"America/Panama", EST}, {"America/Pangnirtung", EST}, {"America/Paramaribo", new String[] {"Surinam, normaltid", "SRT", diff --git a/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java b/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java index 1c4eef0c015..3321da589ef 100644 --- a/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java +++ b/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2022, 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 @@ -427,7 +427,8 @@ protected final Object[][] getContents() { "\u6cd5\u5c5e\u572d\u4e9a\u90a3\u590f\u4ee4\u65f6", "GFST", "\u6CD5\u5C5E\u572D\u4E9A\u90A3\u65F6\u95F4", "GFT"}}, {"America/Cayman", EST}, - {"America/Chihuahua", MST}, + {"America/Chihuahua", CST}, + {"America/Ciudad_Juarez", MST}, {"America/Creston", MST}, {"America/Coral_Harbour", EST}, {"America/Cordoba", AGT}, @@ -516,7 +517,7 @@ protected final Object[][] getContents() { {"America/North_Dakota/Center", CST}, {"America/North_Dakota/New_Salem", CST}, {"America/Nuuk", WGT}, - {"America/Ojinaga", MST}, + {"America/Ojinaga", CST}, {"America/Panama", EST}, {"America/Pangnirtung", EST}, {"America/Paramaribo", new String[] {"\u82cf\u5229\u5357\u65f6\u95f4", "SRT", diff --git a/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java b/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java index f83e2b849ee..3adfb7a3b17 100644 --- a/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java +++ b/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2022, 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 @@ -427,7 +427,8 @@ protected final Object[][] getContents() { "\u6cd5\u5c6c\u572d\u4e9e\u90a3\u590f\u4ee4\u6642\u9593", "GFST", "\u6CD5\u5C6C\u572D\u4E9E\u90A3\u6642\u9593", "GFT"}}, {"America/Cayman", EST}, - {"America/Chihuahua", MST}, + {"America/Chihuahua", CST}, + {"America/Ciudad_Juarez", MST}, {"America/Creston", MST}, {"America/Coral_Harbour", EST}, {"America/Cordoba", AGT}, @@ -516,7 +517,7 @@ protected final Object[][] getContents() { {"America/North_Dakota/Center", CST}, {"America/North_Dakota/New_Salem", CST}, {"America/Nuuk", WGT}, - {"America/Ojinaga", MST}, + {"America/Ojinaga", CST}, {"America/Panama", EST}, {"America/Pangnirtung", EST}, {"America/Paramaribo", new String[] {"\u8607\u5229\u5357\u6642\u9593", "SRT", diff --git a/jdk/src/windows/native/sun/font/fontpath.c b/jdk/src/windows/native/sun/font/fontpath.c index 21bf30b08da..e30ab2bf9fb 100644 --- a/jdk/src/windows/native/sun/font/fontpath.c +++ b/jdk/src/windows/native/sun/font/fontpath.c @@ -24,6 +24,7 @@ */ #include +#include #include #include @@ -49,20 +50,20 @@ JNIEXPORT jstring JNICALL Java_sun_awt_Win32FontManager_getFontPath(JNIEnv *env, end = strrchr(sysdir,'\\'); if (end && (stricmp(end,"\\System") || stricmp(end,"\\System32"))) { *end = 0; - strcat(sysdir, "\\Fonts"); + StringCchCatA(sysdir, BSIZE, "\\Fonts"); } GetWindowsDirectory(windir, BSIZE); if (strlen(windir) > BSIZE-7) { *windir = 0; } else { - strcat(windir, "\\Fonts"); + StringCchCatA(windir, BSIZE, "\\Fonts"); } - strcpy(fontpath,sysdir); + StringCchCopyA(fontpath, BSIZE*2, sysdir); if (stricmp(sysdir,windir)) { - strcat(fontpath,";"); - strcat(fontpath,windir); + StringCchCatA(fontpath, BSIZE*2, ";"); + StringCchCatA(fontpath, BSIZE*2, windir); } return JNU_NewStringPlatform(env, fontpath); @@ -210,7 +211,7 @@ static int DifferentFamily(wchar_t *family, wchar_t* fullName) { info.isDifferent = 0; memset(&lfw, 0, sizeof(lfw)); - wcscpy(lfw.lfFaceName, fullName); + StringCchCopyW(lfw.lfFaceName, LF_FACESIZE, fullName); lfw.lfCharSet = DEFAULT_CHARSET; EnumFontFamiliesExW(screenDC, &lfw, (FONTENUMPROCW)CheckFontFamilyProcW, @@ -379,7 +380,7 @@ static int CALLBACK EnumFamilyNamesW( fmi->putMID, familyLC, fmi->list); memset(&lfw, 0, sizeof(lfw)); - wcscpy(lfw.lfFaceName, lpelfe->elfLogFont.lfFaceName); + StringCchCopyW(lfw.lfFaceName, LF_FACESIZE, lpelfe->elfLogFont.lfFaceName); lfw.lfCharSet = lpelfe->elfLogFont.lfCharSet; EnumFontFamiliesExW(screenDC, &lfw, (FONTENUMPROCW)EnumFontFacesInFamilyProcW, @@ -674,7 +675,7 @@ Java_sun_awt_Win32FontManager_populateFontFileNameMap0 LOGFONTW lfw; memset(&lfw, 0, sizeof(lfw)); lfw.lfCharSet = DEFAULT_CHARSET; /* all charsets */ - wcscpy(lfw.lfFaceName, L""); /* one face per family (CHECK) */ + StringCchCopyW(lfw.lfFaceName, LF_FACESIZE, L""); /* one face per family (CHECK) */ EnumFontFamiliesExW(screenDC, &lfw, (FONTENUMPROCW)EnumFamilyNamesW, (LPARAM)(&fmi), 0L); diff --git a/jdk/src/windows/native/sun/font/lcdglyph.c b/jdk/src/windows/native/sun/font/lcdglyph.c index c63d96c301c..cc1ae59cbe7 100644 --- a/jdk/src/windows/native/sun/font/lcdglyph.c +++ b/jdk/src/windows/native/sun/font/lcdglyph.c @@ -48,6 +48,7 @@ #include #include #include +#include #include #include @@ -245,7 +246,7 @@ Java_sun_font_FileFontStrike__1getGlyphImageFromWindows name[nameLen] = '\0'; if (nameLen < (sizeof(lf.lfFaceName) / sizeof(lf.lfFaceName[0]))) { - wcscpy(lf.lfFaceName, name); + StringCchCopyW(lf.lfFaceName, LF_FACESIZE, name); } else { FREE_AND_RETURN; } diff --git a/jdk/src/windows/native/sun/windows/awt_Font.cpp b/jdk/src/windows/native/sun/windows/awt_Font.cpp index 56a0e8cd871..3c02e34ec76 100644 --- a/jdk/src/windows/native/sun/windows/awt_Font.cpp +++ b/jdk/src/windows/native/sun/windows/awt_Font.cpp @@ -25,6 +25,7 @@ #include "awt.h" #include +#include #include "jlong.h" #include "awt_Font.h" #include "awt_Toolkit.h" @@ -286,7 +287,6 @@ AwtFont* AwtFont::Create(JNIEnv *env, jobject font, jint angle, jfloat awScale) return NULL; } LPCWSTR textComponentFontName = JNU_GetStringPlatformChars(env, jTextComponentFontName, NULL); - awtFont->m_textInput = -1; for (int i = 0; i < cfnum; i++) { // nativeName is a pair of platform fontname and its charset @@ -430,7 +430,7 @@ static HFONT CreateHFont_sub(LPCWSTR name, int style, int height, // Set font name WCHAR tmpname[80]; - wcscpy(tmpname, name); + StringCchCopy(tmpname, 80, name); WCHAR* delimit = wcschr(tmpname, L','); if (delimit != NULL) *delimit = L'\0'; // terminate the string after the font name. @@ -438,7 +438,7 @@ static HFONT CreateHFont_sub(LPCWSTR name, int style, int height, strip_tail(tmpname,L""); //strip possible trailing whitespace strip_tail(tmpname,L"Italic"); strip_tail(tmpname,L"Bold"); - wcscpy(&(logFont.lfFaceName[0]), tmpname); + StringCchCopy(&(logFont.lfFaceName[0]), LF_FACESIZE, tmpname); HFONT hFont = ::CreateFontIndirect(&logFont); DASSERT(hFont != NULL); // get a expanded or condensed version if its specified. @@ -469,7 +469,7 @@ HFONT AwtFont::CreateHFont(WCHAR* name, int style, int height, // 80 > (max face name(=30) + strlen("CHINESEBIG5_CHARSET")) // longName doesn't have to be printable. So, it is OK not to convert. - wsprintf(longName, L"%ls-%d-%d", name, style, height); + StringCchPrintf(longName, 80, L"%ls-%d-%d", name, style, height); HFONT hFont = NULL; @@ -1715,12 +1715,12 @@ LPSTR CCombinedSegTable::GetCodePageSubkey() lpszCP++; // cf lpszCP = "932" char szSubKey[KEYLEN]; - strcpy(szSubKey, "EUDC\\"); + StringCchCopyA(szSubKey, KEYLEN, "EUDC\\"); if ((strlen(szSubKey) + strlen(lpszCP)) >= KEYLEN) { return NULL; } - strcpy(&(szSubKey[strlen(szSubKey)]), lpszCP); - strcpy(m_szCodePageSubkey, szSubKey); + StringCchCatA(szSubKey, KEYLEN, lpszCP); + StringCchCopyA(m_szCodePageSubkey, KEYLEN, szSubKey); return m_szCodePageSubkey; } @@ -1745,7 +1745,7 @@ void CCombinedSegTable::GetEUDCFileName(LPWSTR lpszFileName, int cchFileName) // get EUDC font file name WCHAR szFamilyName[80]; - wcscpy(szFamilyName, GetFontName()); + StringCchCopy(szFamilyName, 80, GetFontName()); WCHAR* delimit = wcschr(szFamilyName, L','); if (delimit != NULL) *delimit = L'\0'; @@ -1764,7 +1764,7 @@ void CCombinedSegTable::GetEUDCFileName(LPWSTR lpszFileName, int cchFileName) if (m_fTTEUDCFileExist == FALSE) return; if (wcslen(m_szDefaultEUDCFile) > 0) { - wcscpy(lpszFileName, m_szDefaultEUDCFile); + StringCchCopy(lpszFileName, cchFileName, m_szDefaultEUDCFile); return; } char szDefault[] = "SystemDefaultEUDCFont"; @@ -1790,7 +1790,7 @@ void CCombinedSegTable::GetEUDCFileName(LPWSTR lpszFileName, int cchFileName) VERIFY(::MultiByteToWideChar(CP_ACP, 0, (LPCSTR)szFileName, -1, lpszFileName, cchFileName) != 0); if (fUseDefault) - wcscpy(m_szDefaultEUDCFile, lpszFileName); + StringCchCopy(m_szDefaultEUDCFile, _MAX_PATH, lpszFileName); } void CCombinedSegTable::Create(LPCWSTR name) diff --git a/jdk/src/windows/native/sun/windows/awt_PrintJob.cpp b/jdk/src/windows/native/sun/windows/awt_PrintJob.cpp index 7632f077317..92f7fe9b5c8 100644 --- a/jdk/src/windows/native/sun/windows/awt_PrintJob.cpp +++ b/jdk/src/windows/native/sun/windows/awt_PrintJob.cpp @@ -24,6 +24,7 @@ */ #include "awt.h" +#include #include #include #include @@ -2293,7 +2294,7 @@ static jboolean jFontToWFontW(JNIEnv *env, HDC printDC, jstring fontName, size_t nameLen = wcslen(fontNameW); if (nameLen < (sizeof(lf.lfFaceName) / sizeof(lf.lfFaceName[0]))) { - wcscpy(lf.lfFaceName, fontNameW); + StringCchCopyW(lf.lfFaceName, LF_FACESIZE, fontNameW); lf.lfCharSet = DEFAULT_CHARSET; lf.lfPitchAndFamily = 0; diff --git a/jdk/test/java/security/SignedJar/CustomClassLoader.java b/jdk/test/java/security/SignedJar/CustomClassLoader.java new file mode 100644 index 00000000000..b9cd527734d --- /dev/null +++ b/jdk/test/java/security/SignedJar/CustomClassLoader.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2022, 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 java.io.IOException; +import java.io.InputStream; +import sun.misc.IOUtils; + +public class CustomClassLoader extends ClassLoader { + + public CustomClassLoader(ClassLoader parent) { + super(parent); + } + + @Override + public Class findClass(String name) throws ClassNotFoundException { + try (InputStream is = getClass().getClassLoader() + .getResourceAsStream(name + ".class")) { + byte[] buf = IOUtils.readAllBytes(is); + return defineClass(name, buf, 0, buf.length); + } catch (IOException e) { + throw new ClassNotFoundException(e.getMessage()); + } + } +} diff --git a/jdk/test/java/security/SignedJar/SignedJarWithCustomClassLoader.java b/jdk/test/java/security/SignedJar/SignedJarWithCustomClassLoader.java new file mode 100644 index 00000000000..2f8990aa9e0 --- /dev/null +++ b/jdk/test/java/security/SignedJar/SignedJarWithCustomClassLoader.java @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2022, 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 8280890 + * @library /lib/testlibrary + * @build SignedJarWithCustomClassLoader CustomClassLoader + * @run main/othervm SignedJarWithCustomClassLoader + * @summary Make sure java.system.class.loader property can be used when custom + * class loader is inside signed jar + */ + +import java.nio.file.Path; +import java.nio.file.Paths; + +import jdk.testlibrary.SecurityTools; +import jdk.testlibrary.InMemoryJavaCompiler; +import jdk.testlibrary.ProcessTools; +import jdk.testlibrary.JarUtils; + +public class SignedJarWithCustomClassLoader { + + public static void main(String[] args) throws Throwable { + + // compile the Main program + String main = "public class Main {\n" + + " public static void main(String[] args) {}\n" + + "}\n"; + String testClasses = System.getProperty("test.classes", ""); + ClassFileInstaller.writeClassToDisk("Main", + InMemoryJavaCompiler.compile("Main", main), + testClasses); + + // create the jar file + Path classes = Paths.get(testClasses); + JarUtils.createJarFile(Paths.get("test.jar"), classes, + classes.resolve("CustomClassLoader.class"), + classes.resolve("Main.class")); + + // create signer's keypair + SecurityTools.keytool("-genkeypair -keyalg RSA -keystore ks " + + "-storepass changeit -dname CN=test -alias test") + .shouldHaveExitValue(0); + + // sign jar + SecurityTools.jarsigner("-keystore ks -storepass changeit " + + "-signedjar signed.jar test.jar test") + .shouldHaveExitValue(0); + + // run app with system class loader set to custom classloader + ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + "-cp", "signed.jar", + "-Djava.system.class.loader=CustomClassLoader", "Main"); + ProcessTools.executeProcess(pb) + .shouldHaveExitValue(0); + + // sign jar again, but this time with SHA-1 which is disabled + SecurityTools.jarsigner("-keystore ks -storepass changeit " + + "-digestalg SHA-1 -sigalg SHA1withRSA " + + "-signedjar signed.jar test.jar test") + .shouldHaveExitValue(0); + + // run app again, should still succeed even though SHA-1 is disabled + pb = ProcessTools.createJavaProcessBuilder( + "-cp", "signed.jar", + "-Djava.system.class.loader=CustomClassLoader", "Main"); + ProcessTools.executeProcess(pb) + .shouldHaveExitValue(0); + } +} diff --git a/jdk/test/java/util/TimeZone/TimeZoneData/VERSION b/jdk/test/java/util/TimeZone/TimeZoneData/VERSION index 0cad939008f..0f66ee12c94 100644 --- a/jdk/test/java/util/TimeZone/TimeZoneData/VERSION +++ b/jdk/test/java/util/TimeZone/TimeZoneData/VERSION @@ -1 +1 @@ -tzdata2022e +tzdata2022g diff --git a/jdk/test/java/util/TimeZone/TimeZoneData/aliases.txt b/jdk/test/java/util/TimeZone/TimeZoneData/aliases.txt index e3ce742f887..d495743b268 100644 --- a/jdk/test/java/util/TimeZone/TimeZoneData/aliases.txt +++ b/jdk/test/java/util/TimeZone/TimeZoneData/aliases.txt @@ -1,158 +1,7 @@ -Link Africa/Abidjan Africa/Accra # Ghana -Link Africa/Abidjan Africa/Bamako # Mali -Link Africa/Abidjan Africa/Banjul # The Gambia -Link Africa/Abidjan Africa/Conakry # Guinea -Link Africa/Abidjan Africa/Dakar # Senegal -Link Africa/Abidjan Africa/Freetown # Sierra Leone -Link Africa/Abidjan Africa/Lome # Togo -Link Africa/Abidjan Africa/Nouakchott # Mauritania -Link Africa/Abidjan Africa/Ouagadougou # Burkina Faso -Link Africa/Abidjan Atlantic/Reykjavik # Iceland -Link Africa/Abidjan Atlantic/St_Helena # St Helena -Link Africa/Nairobi Africa/Addis_Ababa # Ethiopia -Link Africa/Nairobi Africa/Asmara # Eritrea -Link Africa/Nairobi Africa/Dar_es_Salaam # Tanzania -Link Africa/Nairobi Africa/Djibouti -Link Africa/Nairobi Africa/Kampala # Uganda -Link Africa/Nairobi Africa/Mogadishu # Somalia -Link Africa/Nairobi Indian/Antananarivo # Madagascar -Link Africa/Nairobi Indian/Comoro -Link Africa/Nairobi Indian/Mayotte -Link Africa/Maputo Africa/Blantyre # Malawi -Link Africa/Maputo Africa/Bujumbura # Burundi -Link Africa/Maputo Africa/Gaborone # Botswana -Link Africa/Maputo Africa/Harare # Zimbabwe -Link Africa/Maputo Africa/Kigali # Rwanda -Link Africa/Maputo Africa/Lubumbashi # E Dem. Rep. of Congo -Link Africa/Maputo Africa/Lusaka # Zambia -Link Africa/Lagos Africa/Bangui # Central African Republic -Link Africa/Lagos Africa/Brazzaville # Rep. of the Congo -Link Africa/Lagos Africa/Douala # Cameroon -Link Africa/Lagos Africa/Kinshasa # Dem. Rep. of the Congo (west) -Link Africa/Lagos Africa/Libreville # Gabon -Link Africa/Lagos Africa/Luanda # Angola -Link Africa/Lagos Africa/Malabo # Equatorial Guinea -Link Africa/Lagos Africa/Niamey # Niger -Link Africa/Lagos Africa/Porto-Novo # Benin -Link Africa/Johannesburg Africa/Maseru # Lesotho -Link Africa/Johannesburg Africa/Mbabane # Eswatini -Link Asia/Yangon Indian/Cocos -Link Asia/Urumqi Antarctica/Vostok -Link Asia/Nicosia Europe/Nicosia -Link Asia/Kuching Asia/Brunei -Link Indian/Maldives Indian/Kerguelen -Link Asia/Qatar Asia/Bahrain -Link Asia/Riyadh Antarctica/Syowa -Link Asia/Riyadh Asia/Aden # Yemen -Link Asia/Riyadh Asia/Kuwait -Link Asia/Singapore Asia/Kuala_Lumpur -Link Asia/Bangkok Asia/Phnom_Penh # Cambodia -Link Asia/Bangkok Asia/Vientiane # Laos -Link Asia/Bangkok Indian/Christmas -Link Asia/Dubai Asia/Muscat # Oman -Link Asia/Dubai Indian/Mahe -Link Asia/Dubai Indian/Reunion -Link Pacific/Guam Pacific/Saipan # N Mariana Is -Link Pacific/Tarawa Pacific/Funafuti -Link Pacific/Tarawa Pacific/Majuro -Link Pacific/Tarawa Pacific/Wake -Link Pacific/Tarawa Pacific/Wallis -Link Pacific/Auckland Antarctica/McMurdo -Link Pacific/Port_Moresby Antarctica/DumontDUrville -Link Pacific/Port_Moresby Pacific/Chuuk -Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands -Link Pacific/Guadalcanal Pacific/Pohnpei -Link Europe/London Europe/Jersey -Link Europe/London Europe/Guernsey -Link Europe/London Europe/Isle_of_Man -Link Europe/Brussels Europe/Amsterdam -Link Europe/Brussels Europe/Luxembourg -Link Europe/Prague Europe/Bratislava -Link Europe/Helsinki Europe/Mariehamn -Link Europe/Paris Europe/Monaco -Link Europe/Berlin Arctic/Longyearbyen -Link Europe/Berlin Europe/Copenhagen -Link Europe/Berlin Europe/Oslo -Link Europe/Berlin Europe/Stockholm -Link Europe/Rome Europe/Vatican -Link Europe/Rome Europe/San_Marino -Link Europe/Belgrade Europe/Ljubljana # Slovenia -Link Europe/Belgrade Europe/Podgorica # Montenegro -Link Europe/Belgrade Europe/Sarajevo # Bosnia and Herzegovina -Link Europe/Belgrade Europe/Skopje # North Macedonia -Link Europe/Belgrade Europe/Zagreb # Croatia -Link Europe/Zurich Europe/Busingen -Link Europe/Zurich Europe/Vaduz -Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. -Link America/Phoenix America/Creston -Link America/Toronto America/Nassau -Link America/Panama America/Atikokan -Link America/Panama America/Cayman -Link America/Puerto_Rico America/Anguilla -Link America/Puerto_Rico America/Antigua -Link America/Puerto_Rico America/Aruba -Link America/Puerto_Rico America/Curacao -Link America/Puerto_Rico America/Blanc-Sablon # Quebec (Lower North Shore) -Link America/Puerto_Rico America/Dominica -Link America/Puerto_Rico America/Grenada -Link America/Puerto_Rico America/Guadeloupe -Link America/Puerto_Rico America/Kralendijk # Caribbean Netherlands -Link America/Puerto_Rico America/Lower_Princes # Sint Maarten -Link America/Puerto_Rico America/Marigot # St Martin (French part) -Link America/Puerto_Rico America/Montserrat -Link America/Puerto_Rico America/Port_of_Spain # Trinidad & Tobago -Link America/Puerto_Rico America/St_Barthelemy # St Barthélemy -Link America/Puerto_Rico America/St_Kitts # St Kitts & Nevis -Link America/Puerto_Rico America/St_Lucia -Link America/Puerto_Rico America/St_Thomas # Virgin Islands (US) -Link America/Puerto_Rico America/St_Vincent -Link America/Puerto_Rico America/Tortola # Virgin Islands (UK) Link Asia/Riyadh87 Mideast/Riyadh87 Link Asia/Riyadh88 Mideast/Riyadh88 Link Asia/Riyadh89 Mideast/Riyadh89 -Link Africa/Nairobi Africa/Asmera -Link Africa/Abidjan Africa/Timbuktu -Link America/Argentina/Catamarca America/Argentina/ComodRivadavia -Link America/Adak America/Atka -Link America/Argentina/Buenos_Aires America/Buenos_Aires -Link America/Argentina/Catamarca America/Catamarca -Link America/Panama America/Coral_Harbour -Link America/Argentina/Cordoba America/Cordoba -Link America/Tijuana America/Ensenada -Link America/Indiana/Indianapolis America/Fort_Wayne -Link America/Nuuk America/Godthab -Link America/Indiana/Indianapolis America/Indianapolis -Link America/Argentina/Jujuy America/Jujuy -Link America/Indiana/Knox America/Knox_IN -Link America/Kentucky/Louisville America/Louisville -Link America/Argentina/Mendoza America/Mendoza -Link America/Toronto America/Montreal -Link America/Rio_Branco America/Porto_Acre -Link America/Argentina/Cordoba America/Rosario -Link America/Tijuana America/Santa_Isabel -Link America/Denver America/Shiprock -Link America/Puerto_Rico America/Virgin -Link Pacific/Auckland Antarctica/South_Pole -Link Asia/Ashgabat Asia/Ashkhabad -Link Asia/Kolkata Asia/Calcutta -Link Asia/Shanghai Asia/Chongqing -Link Asia/Shanghai Asia/Chungking -Link Asia/Dhaka Asia/Dacca -Link Asia/Shanghai Asia/Harbin -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 -Link Asia/Makassar Asia/Ujung_Pandang -Link Asia/Ulaanbaatar Asia/Ulan_Bator -Link Atlantic/Faroe Atlantic/Faeroe -Link Europe/Berlin Atlantic/Jan_Mayen -Link Australia/Sydney Australia/ACT -Link Australia/Sydney Australia/Canberra -Link Australia/Hobart Australia/Currie +Link Australia/Sydney Australia/ACT #= Australia/Canberra Link Australia/Lord_Howe Australia/LHI Link Australia/Sydney Australia/NSW Link Australia/Darwin Australia/North @@ -162,7 +11,7 @@ Link Australia/Hobart Australia/Tasmania Link Australia/Melbourne Australia/Victoria Link Australia/Perth Australia/West Link Australia/Broken_Hill Australia/Yancowinna -Link America/Rio_Branco Brazil/Acre +Link America/Rio_Branco Brazil/Acre #= America/Porto_Acre Link America/Noronha Brazil/DeNoronha Link America/Sao_Paulo Brazil/East Link America/Manaus Brazil/West @@ -179,12 +28,13 @@ Link Pacific/Easter Chile/EasterIsland Link America/Havana Cuba Link Africa/Cairo Egypt Link Europe/Dublin Eire +Link Etc/GMT Etc/GMT+0 +Link Etc/GMT Etc/GMT-0 +Link Etc/GMT Etc/GMT0 +Link Etc/GMT Etc/Greenwich Link Etc/UTC Etc/UCT -Link Europe/London Europe/Belfast -Link Europe/Kyiv Europe/Kiev -Link Europe/Chisinau Europe/Tiraspol -Link Europe/Kyiv Europe/Uzhgorod -Link Europe/Kyiv Europe/Zaporozhye +Link Etc/UTC Etc/Universal +Link Etc/UTC Etc/Zulu Link Europe/London GB Link Europe/London GB-Eire Link Etc/GMT GMT+0 @@ -192,7 +42,7 @@ Link Etc/GMT GMT-0 Link Etc/GMT GMT0 Link Etc/GMT Greenwich Link Asia/Hong_Kong Hongkong -Link Africa/Abidjan Iceland +Link Africa/Abidjan Iceland #= Atlantic/Reykjavik Link Asia/Tehran Iran Link Asia/Jerusalem Israel Link America/Jamaica Jamaica @@ -204,14 +54,8 @@ Link America/Mazatlan Mexico/BajaSur Link America/Mexico_City Mexico/General Link Pacific/Auckland NZ Link Pacific/Chatham NZ-CHAT -Link America/Denver Navajo +Link America/Denver Navajo #= America/Shiprock Link Asia/Shanghai PRC -Link Pacific/Kanton Pacific/Enderbury -Link Pacific/Honolulu Pacific/Johnston -Link Pacific/Guadalcanal Pacific/Ponape -Link Pacific/Pago_Pago Pacific/Samoa -Link Pacific/Port_Moresby Pacific/Truk -Link Pacific/Port_Moresby Pacific/Yap Link Europe/Warsaw Poland Link Europe/Lisbon Portugal Link Asia/Taipei ROC @@ -235,3 +79,169 @@ Link Etc/UTC UTC Link Etc/UTC Universal Link Europe/Moscow W-SU Link Etc/UTC Zulu +Link America/Argentina/Buenos_Aires America/Buenos_Aires +Link America/Argentina/Catamarca America/Catamarca +Link America/Argentina/Cordoba America/Cordoba +Link America/Indiana/Indianapolis America/Indianapolis +Link America/Argentina/Jujuy America/Jujuy +Link America/Indiana/Knox America/Knox_IN +Link America/Kentucky/Louisville America/Louisville +Link America/Argentina/Mendoza America/Mendoza +Link America/Puerto_Rico America/Virgin #= America/St_Thomas +Link Pacific/Pago_Pago Pacific/Samoa +Link Africa/Abidjan Africa/Accra +Link Africa/Nairobi Africa/Addis_Ababa +Link Africa/Nairobi Africa/Asmara +Link Africa/Abidjan Africa/Bamako +Link Africa/Lagos Africa/Bangui +Link Africa/Abidjan Africa/Banjul +Link Africa/Maputo Africa/Blantyre +Link Africa/Lagos Africa/Brazzaville +Link Africa/Maputo Africa/Bujumbura +Link Africa/Abidjan Africa/Conakry +Link Africa/Abidjan Africa/Dakar +Link Africa/Nairobi Africa/Dar_es_Salaam +Link Africa/Nairobi Africa/Djibouti +Link Africa/Lagos Africa/Douala +Link Africa/Abidjan Africa/Freetown +Link Africa/Maputo Africa/Gaborone +Link Africa/Maputo Africa/Harare +Link Africa/Nairobi Africa/Kampala +Link Africa/Maputo Africa/Kigali +Link Africa/Lagos Africa/Kinshasa +Link Africa/Lagos Africa/Libreville +Link Africa/Abidjan Africa/Lome +Link Africa/Lagos Africa/Luanda +Link Africa/Maputo Africa/Lubumbashi +Link Africa/Maputo Africa/Lusaka +Link Africa/Lagos Africa/Malabo +Link Africa/Johannesburg Africa/Maseru +Link Africa/Johannesburg Africa/Mbabane +Link Africa/Nairobi Africa/Mogadishu +Link Africa/Lagos Africa/Niamey +Link Africa/Abidjan Africa/Nouakchott +Link Africa/Abidjan Africa/Ouagadougou +Link Africa/Lagos Africa/Porto-Novo +Link America/Puerto_Rico America/Anguilla +Link America/Puerto_Rico America/Antigua +Link America/Puerto_Rico America/Aruba +Link America/Panama America/Atikokan +Link America/Puerto_Rico America/Blanc-Sablon +Link America/Panama America/Cayman +Link America/Phoenix America/Creston +Link America/Puerto_Rico America/Curacao +Link America/Puerto_Rico America/Dominica +Link America/Puerto_Rico America/Grenada +Link America/Puerto_Rico America/Guadeloupe +Link America/Puerto_Rico America/Kralendijk +Link America/Puerto_Rico America/Lower_Princes +Link America/Puerto_Rico America/Marigot +Link America/Puerto_Rico America/Montserrat +Link America/Toronto America/Nassau +Link America/Puerto_Rico America/Port_of_Spain +Link America/Puerto_Rico America/St_Barthelemy +Link America/Puerto_Rico America/St_Kitts +Link America/Puerto_Rico America/St_Lucia +Link America/Puerto_Rico America/St_Thomas +Link America/Puerto_Rico America/St_Vincent +Link America/Puerto_Rico America/Tortola +Link Pacific/Port_Moresby Antarctica/DumontDUrville +Link Pacific/Auckland Antarctica/McMurdo +Link Asia/Riyadh Antarctica/Syowa +Link Asia/Urumqi Antarctica/Vostok +Link Europe/Berlin Arctic/Longyearbyen +Link Asia/Riyadh Asia/Aden +Link Asia/Qatar Asia/Bahrain +Link Asia/Kuching Asia/Brunei +Link Asia/Singapore Asia/Kuala_Lumpur +Link Asia/Riyadh Asia/Kuwait +Link Asia/Dubai Asia/Muscat +Link Asia/Bangkok Asia/Phnom_Penh +Link Asia/Bangkok Asia/Vientiane +Link Africa/Abidjan Atlantic/Reykjavik +Link Africa/Abidjan Atlantic/St_Helena +Link Europe/Brussels Europe/Amsterdam +Link Europe/Prague Europe/Bratislava +Link Europe/Zurich Europe/Busingen +Link Europe/Berlin Europe/Copenhagen +Link Europe/London Europe/Guernsey +Link Europe/London Europe/Isle_of_Man +Link Europe/London Europe/Jersey +Link Europe/Belgrade Europe/Ljubljana +Link Europe/Brussels Europe/Luxembourg +Link Europe/Helsinki Europe/Mariehamn +Link Europe/Paris Europe/Monaco +Link Europe/Berlin Europe/Oslo +Link Europe/Belgrade Europe/Podgorica +Link Europe/Rome Europe/San_Marino +Link Europe/Belgrade Europe/Sarajevo +Link Europe/Belgrade Europe/Skopje +Link Europe/Berlin Europe/Stockholm +Link Europe/Zurich Europe/Vaduz +Link Europe/Rome Europe/Vatican +Link Europe/Belgrade Europe/Zagreb +Link Africa/Nairobi Indian/Antananarivo +Link Asia/Bangkok Indian/Christmas +Link Asia/Yangon Indian/Cocos +Link Africa/Nairobi Indian/Comoro +Link Indian/Maldives Indian/Kerguelen +Link Asia/Dubai Indian/Mahe +Link Africa/Nairobi Indian/Mayotte +Link Asia/Dubai Indian/Reunion +Link Pacific/Port_Moresby Pacific/Chuuk +Link Pacific/Tarawa Pacific/Funafuti +Link Pacific/Tarawa Pacific/Majuro +Link Pacific/Pago_Pago Pacific/Midway +Link Pacific/Guadalcanal Pacific/Pohnpei +Link Pacific/Guam Pacific/Saipan +Link Pacific/Tarawa Pacific/Wake +Link Pacific/Tarawa Pacific/Wallis +Link Africa/Abidjan Africa/Timbuktu +Link America/Argentina/Catamarca America/Argentina/ComodRivadavia +Link America/Adak America/Atka +Link America/Panama America/Coral_Harbour +Link America/Tijuana America/Ensenada +Link America/Indiana/Indianapolis America/Fort_Wayne +Link America/Toronto America/Montreal +Link America/Toronto America/Nipigon +Link America/Iqaluit America/Pangnirtung +Link America/Rio_Branco America/Porto_Acre +Link America/Winnipeg America/Rainy_River +Link America/Argentina/Cordoba America/Rosario +Link America/Tijuana America/Santa_Isabel +Link America/Denver America/Shiprock +Link America/Toronto America/Thunder_Bay +Link Pacific/Auckland Antarctica/South_Pole +Link Asia/Shanghai Asia/Chongqing +Link Asia/Shanghai Asia/Harbin +Link Asia/Urumqi Asia/Kashgar +Link Asia/Jerusalem Asia/Tel_Aviv +Link Europe/Berlin Atlantic/Jan_Mayen +Link Australia/Sydney Australia/Canberra +Link Australia/Hobart Australia/Currie +Link Europe/London Europe/Belfast +Link Europe/Chisinau Europe/Tiraspol +Link Europe/Kyiv Europe/Uzhgorod +Link Europe/Kyiv Europe/Zaporozhye +Link Pacific/Kanton Pacific/Enderbury +Link Pacific/Honolulu Pacific/Johnston +Link Pacific/Port_Moresby Pacific/Yap +Link Africa/Nairobi Africa/Asmera #= Africa/Asmara +Link America/Nuuk America/Godthab +Link Asia/Ashgabat Asia/Ashkhabad +Link Asia/Kolkata Asia/Calcutta +Link Asia/Shanghai Asia/Chungking #= Asia/Chongqing +Link Asia/Dhaka Asia/Dacca +Link Europe/Istanbul Asia/Istanbul +Link Asia/Kathmandu Asia/Katmandu +Link Asia/Macau Asia/Macao +Link Asia/Yangon Asia/Rangoon +Link Asia/Ho_Chi_Minh Asia/Saigon +Link Asia/Thimphu Asia/Thimbu +Link Asia/Makassar Asia/Ujung_Pandang +Link Asia/Ulaanbaatar Asia/Ulan_Bator +Link Atlantic/Faroe Atlantic/Faeroe +Link Europe/Kyiv Europe/Kiev +Link Asia/Nicosia Europe/Nicosia +Link Pacific/Guadalcanal Pacific/Ponape #= Pacific/Pohnpei +Link Pacific/Port_Moresby Pacific/Truk #= Pacific/Chuuk diff --git a/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt b/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt index 2f2786f1c69..44db4dbdb81 100644 --- a/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt +++ b/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt @@ -24,7 +24,8 @@ America/Boise MST MDT America/Cambridge_Bay MST MDT America/Cancun EST America/Chicago CST CDT -America/Chihuahua MST MDT +America/Chihuahua CST +America/Ciudad_Juarez MST MDT America/Costa_Rica CST CDT America/Danmarkshavn GMT America/Dawson MST @@ -67,18 +68,15 @@ America/Mexico_City CST CDT America/Moncton AST ADT America/Monterrey CST CDT America/New_York EST EDT -America/Nipigon EST EDT America/Nome AKST AKDT America/North_Dakota/Beulah CST CDT America/North_Dakota/Center CST CDT America/North_Dakota/New_Salem CST CDT -America/Ojinaga MST MDT +America/Ojinaga CST CDT America/Panama EST -America/Pangnirtung EST EDT America/Phoenix MST America/Port-au-Prince EST EDT America/Puerto_Rico AST -America/Rainy_River CST CDT America/Rankin_Inlet CST CDT America/Regina CST America/Resolute CST CDT @@ -88,7 +86,6 @@ America/St_Johns NST NDT America/Swift_Current CST America/Tegucigalpa CST CDT America/Thule AST ADT -America/Thunder_Bay EST EDT America/Tijuana PST PDT America/Toronto EST EDT America/Vancouver PST PDT diff --git a/jdk/test/sun/security/tools/jarsigner/TimestampCheck.java b/jdk/test/sun/security/tools/jarsigner/TimestampCheck.java index 259aa933cc3..6e3d418f978 100644 --- a/jdk/test/sun/security/tools/jarsigner/TimestampCheck.java +++ b/jdk/test/sun/security/tools/jarsigner/TimestampCheck.java @@ -67,7 +67,7 @@ /* * @test * @bug 6543842 6543440 6939248 8009636 8024302 8163304 8169911 8169688 8171121 - * 8180289 8172404 8269039 + * 8180289 8172404 8269039 8275887 * @summary checking response of timestamp * @modules java.base/sun.security.pkcs * java.base/sun.security.timestamp @@ -475,6 +475,7 @@ public static void main(String[] args) throws Throwable { verify("tsdisabled2.jar", "-verbose") .shouldHaveExitValue(16) .shouldContain("treated as unsigned") + .shouldNotMatch("Signature.*(disabled)") .shouldMatch("Timestamp.*512.*(disabled)"); // Algorithm used in signing is disabled @@ -491,6 +492,8 @@ public static void main(String[] args) throws Throwable { // sign with RSAkeysize < 1024 signVerbose("normal", "sign1.jar", "sign2.jar", "disabledkeysize") .shouldContain("Algorithm constraints check failed on keysize") + .shouldNotContain("option is considered a security " + + "risk and is disabled") .shouldHaveExitValue(4); checkMultiple("sign2.jar"); @@ -534,6 +537,17 @@ public static void main(String[] args) throws Throwable { // sign with RSAkeysize < 2048 signVerbose("normal", "sign1.jar", "sign2.jar", "weakkeysize") .shouldNotContain("Algorithm constraints check failed on keysize") + .shouldNotContain("The SHA-256 algorithm specified " + + "for the -digestalg option is considered a " + + "security risk") + .shouldNotContain("The SHA256withRSA algorithm " + + "specified for the -sigalg option is considered " + + "a security risk") + .shouldNotContain("The SHA-256 algorithm specified " + + "for the -tsadigestalg option is considered a " + + "security risk") + .shouldContain("The RSA signing key has a keysize " + + "of 1024 which is considered a security risk") .shouldHaveExitValue(0); checkMultipleWeak("sign2.jar"); @@ -789,7 +803,7 @@ static void checkDisabled(String file) throws Exception { .shouldMatch("Timestamp signature algorithm: .*key.*(disabled)"); verify(file, "-J-Djava.security.debug=jar") .shouldHaveExitValue(16) - .shouldMatch("SignatureException:.*keysize"); + .shouldMatch("SignatureException:.*MD5"); } static void checkHalfWeak(String file) throws Exception { diff --git a/jdk/test/sun/util/calendar/zi/tzdata/VERSION b/jdk/test/sun/util/calendar/zi/tzdata/VERSION index b8cb36e69f4..0f328a4a7ff 100644 --- a/jdk/test/sun/util/calendar/zi/tzdata/VERSION +++ b/jdk/test/sun/util/calendar/zi/tzdata/VERSION @@ -21,4 +21,4 @@ # or visit www.oracle.com if you need additional information or have any # questions. # -tzdata2022e +tzdata2022g diff --git a/jdk/test/sun/util/calendar/zi/tzdata/africa b/jdk/test/sun/util/calendar/zi/tzdata/africa index e13899b224a..1dfd5894b4a 100644 --- a/jdk/test/sun/util/calendar/zi/tzdata/africa +++ b/jdk/test/sun/util/calendar/zi/tzdata/africa @@ -120,22 +120,6 @@ Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 16 0:00 Algeria WE%sT 1981 May 1:00 - CET -# Angola -# Benin -# See Africa/Lagos. - -# Botswana -# See Africa/Maputo. - -# Burkina Faso -# See Africa/Abidjan. - -# Burundi -# See Africa/Maputo. - -# Cameroon -# See Africa/Lagos. - # Cape Verde / Cabo Verde # # From Paul Eggert (2018-02-16): @@ -150,9 +134,6 @@ Zone Atlantic/Cape_Verde -1:34:04 - LMT 1912 Jan 01 2:00u # Praia -2:00 - -02 1975 Nov 25 2:00 -1:00 - -01 -# Central African Republic -# See Africa/Lagos. - # Chad # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena @@ -160,33 +141,29 @@ Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena 1:00 1:00 WAST 1980 Mar 8 1:00 - WAT -# Comoros -# See Africa/Nairobi. - -# Democratic Republic of the Congo -# See Africa/Lagos for the western part and Africa/Maputo for the eastern. +# Burkina Faso +# Côte d'Ivoire (Ivory Coast) +# The Gambia +# Ghana +# Guinea +# Iceland +# Mali +# Mauritania +# St Helena +# Senegal +# Sierra Leone +# Togo -# Republic of the Congo -# See Africa/Lagos. +# The other parts of the St Helena territory are similar: +# Tristan da Cunha: on GMT, say Whitman and the CIA +# Ascension: on GMT, say the USNO (1995-12-21) and the CIA +# Gough (scientific station since 1955; sealers wintered previously): +# on GMT, says the CIA +# Inaccessible, Nightingale: uninhabited -# Côte d'Ivoire / Ivory Coast # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Abidjan -0:16:08 - LMT 1912 0:00 - GMT -Link Africa/Abidjan Africa/Accra # Ghana -Link Africa/Abidjan Africa/Bamako # Mali -Link Africa/Abidjan Africa/Banjul # The Gambia -Link Africa/Abidjan Africa/Conakry # Guinea -Link Africa/Abidjan Africa/Dakar # Senegal -Link Africa/Abidjan Africa/Freetown # Sierra Leone -Link Africa/Abidjan Africa/Lome # Togo -Link Africa/Abidjan Africa/Nouakchott # Mauritania -Link Africa/Abidjan Africa/Ouagadougou # Burkina Faso -Link Africa/Abidjan Atlantic/Reykjavik # Iceland -Link Africa/Abidjan Atlantic/St_Helena # St Helena - -# Djibouti -# See Africa/Nairobi. ############################################################################### @@ -382,33 +359,6 @@ Rule Egypt 2014 only - Sep lastThu 24:00 0 - Zone Africa/Cairo 2:05:09 - LMT 1900 Oct 2:00 Egypt EE%sT -# Equatorial Guinea -# See Africa/Lagos. - -# Eritrea -# See Africa/Nairobi. - -# Eswatini (formerly Swaziland) -# See Africa/Johannesburg. - -# Ethiopia -# See Africa/Nairobi. -# -# Unfortunately tzdb records only Western clock time in use in Ethiopia, -# as the tzdb format is not up to properly recording a common Ethiopian -# timekeeping practice that is based on solar time. See: -# Mortada D. If you have a meeting in Ethiopia, you'd better double -# check the time. PRI's The World. 2015-01-30 15:15 -05. -# https://www.pri.org/stories/2015-01-30/if-you-have-meeting-ethiopia-you-better-double-check-time - -# Gabon -# See Africa/Lagos. - -# The Gambia -# Ghana -# Guinea -# See Africa/Abidjan. - # Guinea-Bissau # # From Paul Eggert (2018-02-16): @@ -421,7 +371,16 @@ Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u -1:00 - -01 1975 0:00 - GMT +# Comoros +# Djibouti +# Eritrea +# Ethiopia # Kenya +# Madagascar +# Mayotte +# Somalia +# Tanzania +# Uganda # From P Chan (2020-10-24): # @@ -464,6 +423,14 @@ Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u # The 1908-05-01 announcement does not give an effective date, # so just say "1908 May". +# From Paul Eggert (2018-09-11): +# Unfortunately tzdb records only Western clock time in use in Ethiopia, +# as the tzdb format is not up to properly recording a common Ethiopian +# timekeeping practice that is based on solar time. See: +# Mortada D. If you have a meeting in Ethiopia, you'd better double +# check the time. PRI's The World. 2015-01-30 15:15 -05. +# https://www.pri.org/stories/2015-01-30/if-you-have-meeting-ethiopia-you-better-double-check-time + # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Nairobi 2:27:16 - LMT 1908 May 2:30 - +0230 1928 Jun 30 24:00 @@ -471,18 +438,6 @@ Zone Africa/Nairobi 2:27:16 - LMT 1908 May 2:30 - +0230 1936 Dec 31 24:00 2:45 - +0245 1942 Jul 31 24:00 3:00 - EAT -Link Africa/Nairobi Africa/Addis_Ababa # Ethiopia -Link Africa/Nairobi Africa/Asmara # Eritrea -Link Africa/Nairobi Africa/Dar_es_Salaam # Tanzania -Link Africa/Nairobi Africa/Djibouti -Link Africa/Nairobi Africa/Kampala # Uganda -Link Africa/Nairobi Africa/Mogadishu # Somalia -Link Africa/Nairobi Indian/Antananarivo # Madagascar -Link Africa/Nairobi Indian/Comoro -Link Africa/Nairobi Indian/Mayotte - -# Lesotho -# See Africa/Johannesburg. # Liberia # @@ -563,16 +518,6 @@ Zone Africa/Tripoli 0:52:44 - LMT 1920 1:00 Libya CE%sT 2013 Oct 25 2:00 2:00 - EET -# Madagascar -# See Africa/Nairobi. - -# Malawi -# See Africa/Maputo. - -# Mali -# Mauritania -# See Africa/Abidjan. - # Mauritius # From Steffen Thorsen (2008-06-25): @@ -666,8 +611,6 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis # Agalega Is, Rodriguez # no information; probably like Indian/Mauritius -# Mayotte -# See Africa/Nairobi. # Morocco # See Africa/Ceuta for Spanish Morocco. @@ -1160,7 +1103,14 @@ Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan # El Aaiún 0:00 Morocco +00/+01 2018 Oct 28 3:00 0:00 Morocco +00/+01 +# Botswana +# Burundi +# Democratic Republic of the Congo (eastern) +# Malawi # Mozambique +# Rwanda +# Zambia +# Zimbabwe # # Shanks gives 1903-03-01 for the transition to CAT. # Perhaps the 1911-05-26 Portuguese decree @@ -1170,14 +1120,6 @@ Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan # El Aaiún # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Maputo 2:10:20 - LMT 1903 Mar 2:00 - CAT -Link Africa/Maputo Africa/Blantyre # Malawi -Link Africa/Maputo Africa/Bujumbura # Burundi -Link Africa/Maputo Africa/Gaborone # Botswana -Link Africa/Maputo Africa/Harare # Zimbabwe -Link Africa/Maputo Africa/Kigali # Rwanda -Link Africa/Maputo Africa/Lubumbashi # E Dem. Rep. of Congo -Link Africa/Maputo Africa/Lusaka # Zambia - # Namibia @@ -1256,9 +1198,16 @@ Zone Africa/Windhoek 1:08:24 - LMT 1892 Feb 8 2:00 - CAT # End of rearguard section. -# Niger -# See Africa/Lagos. +# Angola +# Benin +# Cameroon +# Central African Republic +# Democratic Republic of the Congo (western) +# Republic of the Congo +# Equatorial Guinea +# Gabon +# Niger # Nigeria # From P Chan (2020-12-03): @@ -1324,32 +1273,6 @@ Zone Africa/Lagos 0:13:35 - LMT 1905 Jul 1 0:13:35 - LMT 1914 Jan 1 0:30 - +0030 1919 Sep 1 1:00 - WAT -Link Africa/Lagos Africa/Bangui # Central African Republic -Link Africa/Lagos Africa/Brazzaville # Rep. of the Congo -Link Africa/Lagos Africa/Douala # Cameroon -Link Africa/Lagos Africa/Kinshasa # Dem. Rep. of the Congo (west) -Link Africa/Lagos Africa/Libreville # Gabon -Link Africa/Lagos Africa/Luanda # Angola -Link Africa/Lagos Africa/Malabo # Equatorial Guinea -Link Africa/Lagos Africa/Niamey # Niger -Link Africa/Lagos Africa/Porto-Novo # Benin - -# Réunion -# See Asia/Dubai. -# -# The Crozet Islands also observe Réunion time; see the 'antarctica' file. - -# Rwanda -# See Africa/Maputo. - -# St Helena -# See Africa/Abidjan. -# The other parts of the St Helena territory are similar: -# Tristan da Cunha: on GMT, say Whitman and the CIA -# Ascension: on GMT, say the USNO (1995-12-21) and the CIA -# Gough (scientific station since 1955; sealers wintered previously): -# on GMT, says the CIA -# Inaccessible, Nightingale: uninhabited # São Tomé and Príncipe @@ -1378,19 +1301,10 @@ Zone Africa/Sao_Tome 0:26:56 - LMT 1884 1:00 - WAT 2019 Jan 1 02:00 0:00 - GMT -# Senegal -# See Africa/Abidjan. - -# Seychelles -# See Asia/Dubai. - -# Sierra Leone -# See Africa/Abidjan. - -# Somalia -# See Africa/Nairobi. - +# Eswatini (Swaziland) +# Lesotho # South Africa + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule SA 1942 1943 - Sep Sun>=15 2:00 1:00 - Rule SA 1943 1944 - Mar Sun>=15 2:00 0 - @@ -1398,8 +1312,6 @@ Rule SA 1943 1944 - Mar Sun>=15 2:00 0 - Zone Africa/Johannesburg 1:52:00 - LMT 1892 Feb 8 1:30 - SAST 1903 Mar 2:00 SA SAST -Link Africa/Johannesburg Africa/Maseru # Lesotho -Link Africa/Johannesburg Africa/Mbabane # Eswatini # # Marion and Prince Edward Is # scientific station since 1947 @@ -1448,12 +1360,6 @@ Zone Africa/Juba 2:06:28 - LMT 1931 3:00 - EAT 2021 Feb 1 00:00 2:00 - CAT -# Tanzania -# See Africa/Nairobi. - -# Togo -# See Africa/Abidjan. - # Tunisia # From Gwillim Law (2005-04-30): @@ -1551,10 +1457,3 @@ Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 - Zone Africa/Tunis 0:40:44 - LMT 1881 May 12 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time 1:00 Tunisia CE%sT - -# Uganda -# See Africa/Nairobi. - -# Zambia -# Zimbabwe -# See Africa/Maputo. diff --git a/jdk/test/sun/util/calendar/zi/tzdata/antarctica b/jdk/test/sun/util/calendar/zi/tzdata/antarctica index 34c302eefc4..792542b9224 100644 --- a/jdk/test/sun/util/calendar/zi/tzdata/antarctica +++ b/jdk/test/sun/util/calendar/zi/tzdata/antarctica @@ -329,4 +329,4 @@ Zone Antarctica/Rothera 0 - -00 1976 Dec 1 # we have to go around and set them back 5 minutes or so. # Maybe if we let them run fast all of the time, we'd get to leave here sooner!! # -# See 'australasia' for Antarctica/McMurdo. +# See Pacific/Auckland. diff --git a/jdk/test/sun/util/calendar/zi/tzdata/asia b/jdk/test/sun/util/calendar/zi/tzdata/asia index f1771e42a71..56fb82b4a36 100644 --- a/jdk/test/sun/util/calendar/zi/tzdata/asia +++ b/jdk/test/sun/util/calendar/zi/tzdata/asia @@ -172,9 +172,6 @@ Zone Asia/Baku 3:19:24 - LMT 1924 May 2 4:00 EUAsia +04/+05 1997 4:00 Azer +04/+05 -# Bahrain -# See Asia/Qatar. - # Bangladesh # From Alexander Krivenyshev (2009-05-13): # According to newspaper Asian Tribune (May 6, 2009) Bangladesh may introduce @@ -277,10 +274,8 @@ Zone Indian/Chagos 4:49:40 - LMT 1907 5:00 - +05 1996 6:00 - +06 -# Brunei -# See Asia/Kuching. - -# Burma / Myanmar +# Cocos (Keeling) Islands +# Myanmar (Burma) # Milne says 6:24:40 was the meridian of the time ball observatory at Rangoon. @@ -296,11 +291,6 @@ Zone Asia/Yangon 6:24:47 - LMT 1880 # or Rangoon 6:30 - +0630 1942 May 9:00 - +09 1945 May 3 6:30 - +0630 -Link Asia/Yangon Indian/Cocos - -# Cambodia -# See Asia/Bangkok. - # China @@ -688,10 +678,9 @@ Zone Asia/Shanghai 8:05:43 - LMT 1901 8:00 PRC C%sT # Xinjiang time, used by many in western China; represented by Ürümqi / Ürümchi # / Wulumuqi. (Please use Asia/Shanghai if you prefer Beijing time.) +# Vostok base in Antarctica matches this since 1970. Zone Asia/Urumqi 5:50:20 - LMT 1928 6:00 - +06 -Link Asia/Urumqi Antarctica/Vostok - # Hong Kong @@ -1195,10 +1184,6 @@ Zone Asia/Famagusta 2:15:48 - LMT 1921 Nov 14 3:00 - +03 2017 Oct 29 1:00u 2:00 EUAsia EE%sT -# Classically, Cyprus belongs to Asia; e.g. see Herodotus, Histories, I.72. -# However, for various reasons many users expect to find it under Europe. -Link Asia/Nicosia Europe/Nicosia - # Georgia # From Paul Eggert (1994-11-19): # Today's _Economist_ (p 60) reports that Georgia moved its clocks forward @@ -2727,14 +2712,6 @@ Zone Asia/Pyongyang 8:23:00 - LMT 1908 Apr 1 8:30 - KST 2018 May 4 23:30 9:00 - KST -############################################################################### - -# Kuwait -# See Asia/Riyadh. - -# Laos -# See Asia/Bangkok. - # Lebanon # Rule NAME FROM TO - IN ON AT SAVE LETTER/S @@ -2766,7 +2743,9 @@ Rule Lebanon 1999 max - Oct lastSun 0:00 0 - Zone Asia/Beirut 2:22:00 - LMT 1880 2:00 Lebanon EE%sT -# Malaysia +# Brunei +# Malaysia (eastern) +# # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 - Rule NBorneo 1935 1941 - Dec 14 0:00 0 - @@ -2783,14 +2762,12 @@ Zone Asia/Kuching 7:21:20 - LMT 1926 Mar 8:00 NBorneo +08/+0820 1942 Feb 16 9:00 - +09 1945 Sep 12 8:00 - +08 -Link Asia/Kuching Asia/Brunei # Maldives # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Indian/Maldives 4:54:00 - LMT 1880 # Malé 4:54:00 - MMT 1960 # Malé Mean Time 5:00 - +05 -Link Indian/Maldives Indian/Kerguelen # Mongolia @@ -2953,9 +2930,6 @@ Zone Asia/Kathmandu 5:41:16 - LMT 1920 5:30 - +0530 1986 5:45 - +0545 -# Oman -# See Asia/Dubai. - # Pakistan # From Rives McDow (2002-03-13): @@ -3566,14 +3540,18 @@ Zone Asia/Manila -15:56:00 - LMT 1844 Dec 31 9:00 - JST 1944 Nov 8:00 Phil P%sT +# Bahrain # Qatar # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Qatar 3:26:08 - LMT 1920 # Al Dawhah / Doha 4:00 - +04 1972 Jun 3:00 - +03 -Link Asia/Qatar Asia/Bahrain +# Kuwait # Saudi Arabia +# Yemen +# +# Japan's year-round bases in Antarctica match this since 1970. # # From Paul Eggert (2018-08-29): # Time in Saudi Arabia and other countries in the Arabian peninsula was not @@ -3618,9 +3596,6 @@ Link Asia/Qatar Asia/Bahrain # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Riyadh 3:06:52 - LMT 1947 Mar 14 3:00 - +03 -Link Asia/Riyadh Antarctica/Syowa -Link Asia/Riyadh Asia/Aden # Yemen -Link Asia/Riyadh Asia/Kuwait # Singapore # taken from Mok Ly Yng (2003-10-30) @@ -3633,9 +3608,8 @@ Zone Asia/Singapore 6:55:25 - LMT 1901 Jan 1 7:20 - +0720 1941 Sep 1 7:30 - +0730 1942 Feb 16 9:00 - +09 1945 Sep 12 - 7:30 - +0730 1982 Jan 1 + 7:30 - +0730 1981 Dec 31 16:00u 8:00 - +08 -Link Asia/Singapore Asia/Kuala_Lumpur # Spratly Is # no information @@ -3881,14 +3855,15 @@ Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2 5:00 1:00 +06 1991 Sep 9 2:00s 5:00 - +05 +# Cambodia +# Christmas I +# Laos # Thailand +# Vietnam (northern) # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Bangkok 6:42:04 - LMT 1880 6:42:04 - BMT 1920 Apr # Bangkok Mean Time 7:00 - +07 -Link Asia/Bangkok Asia/Phnom_Penh # Cambodia -Link Asia/Bangkok Asia/Vientiane # Laos -Link Asia/Bangkok Indian/Christmas # Turkmenistan # From Shanks & Pottenger. @@ -3899,13 +3874,15 @@ Zone Asia/Ashgabat 3:53:32 - LMT 1924 May 2 # or Ashkhabad 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00 5:00 - +05 +# Oman +# Réunion +# Seychelles # United Arab Emirates +# +# The Crozet Is also observe Réunion time; see the 'antarctica' file. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Dubai 3:41:12 - LMT 1920 4:00 - +04 -Link Asia/Dubai Asia/Muscat # Oman -Link Asia/Dubai Indian/Mahe -Link Asia/Dubai Indian/Reunion # Uzbekistan # Byalokoz 1919 says Uzbekistan was 4:27:53. @@ -3925,7 +3902,7 @@ Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2 5:00 RussiaAsia +05/+06 1992 5:00 - +05 -# Vietnam +# Vietnam (southern) # From Paul Eggert (2014-10-04): # Milne gives 7:16:56 for the meridian of Saigon in 1899, as being @@ -3999,7 +3976,3 @@ Zone Asia/Ho_Chi_Minh 7:06:30 - LMT 1906 Jul 1 # For timestamps in north Vietnam back to 1970 (the tzdb cutoff), # use Asia/Bangkok; see the VN entries in the file zone1970.tab. # For timestamps before 1970, see Asia/Hanoi in the file 'backzone'. - - -# Yemen -# See Asia/Riyadh. diff --git a/jdk/test/sun/util/calendar/zi/tzdata/australasia b/jdk/test/sun/util/calendar/zi/tzdata/australasia index 019cd778d30..fbe3b8a6d72 100644 --- a/jdk/test/sun/util/calendar/zi/tzdata/australasia +++ b/jdk/test/sun/util/calendar/zi/tzdata/australasia @@ -274,13 +274,6 @@ Zone Antarctica/Macquarie 0 - -00 1899 Nov 10:00 1:00 AEDT 2011 10:00 AT AE%sT -# Christmas -# See Asia/Bangkok. - -# Cocos (Keeling) Is -# See Asia/Yangon. - - # Fiji # Milne gives 11:55:44 for Suva. @@ -416,8 +409,14 @@ Zone Antarctica/Macquarie 0 - -00 1899 Nov # concerned shifting arrival and departure times, which may look like a simple # thing but requires some significant logistical adjustments domestically and # internationally." -# Assume for now that DST will resume with the recent pre-2020 rules for the -# 2022/2023 season. + +# From Shalvin Narayan (2022-10-27): +# Please note that there will not be any daylight savings time change +# in Fiji for 2022-2023.... +# https://www.facebook.com/FijianGovernment/posts/pfbid0mmWVTYmTibn66ybpFda75pDcf34SSpoSaskJW5gXwaKo5Sgc7273Q4fXWc6kQV6Hl +# +# From Paul Eggert (2022-10-27): +# For now, assume DST is suspended indefinitely. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 - @@ -432,8 +431,6 @@ Rule Fiji 2014 2018 - Nov Sun>=1 2:00 1:00 - Rule Fiji 2015 2021 - Jan Sun>=12 3:00 0 - Rule Fiji 2019 only - Nov Sun>=8 2:00 1:00 - Rule Fiji 2020 only - Dec 20 2:00 1:00 - -Rule Fiji 2022 max - Nov Sun>=8 2:00 1:00 - -Rule Fiji 2023 max - Jan Sun>=12 3:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva 12:00 Fiji +12/+13 @@ -449,7 +446,9 @@ Zone Pacific/Tahiti -9:58:16 - LMT 1912 Oct # Papeete # Clipperton (near North America) is administered from French Polynesia; # it is uninhabited. + # Guam +# N Mariana Is # Rule NAME FROM TO - IN ON AT SAVE LETTER/S # http://guamlegislature.com/Public_Laws_5th/PL05-025.pdf @@ -489,17 +488,20 @@ Zone Pacific/Guam -14:21:00 - LMT 1844 Dec 31 9:00 - +09 1944 Jul 31 10:00 Guam G%sT 2000 Dec 23 10:00 - ChST # Chamorro Standard Time -Link Pacific/Guam Pacific/Saipan # N Mariana Is -# Kiribati + +# Kiribati (Gilbert Is) +# Marshall Is +# Tuvalu +# Wake +# Wallis & Futuna # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Tarawa 11:32:04 - LMT 1901 # Bairiki 12:00 - +12 -Link Pacific/Tarawa Pacific/Funafuti -Link Pacific/Tarawa Pacific/Majuro -Link Pacific/Tarawa Pacific/Wake -Link Pacific/Tarawa Pacific/Wallis +# Kiribati (except Gilbert Is) +# See Pacific/Tarawa for the Gilbert Is. +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Kanton 0 - -00 1937 Aug 31 -12:00 - -12 1979 Oct -11:00 - -11 1994 Dec 31 @@ -509,9 +511,6 @@ Zone Pacific/Kiritimati -10:29:20 - LMT 1901 -10:00 - -10 1994 Dec 31 14:00 - +14 -# N Mariana Is -# See Pacific/Guam. - # Marshall Is # See Pacific/Tarawa for most locations. # Zone NAME STDOFF RULES FORMAT [UNTIL] @@ -561,6 +560,7 @@ Zone Pacific/Noumea 11:05:48 - LMT 1912 Jan 13 # Nouméa ############################################################################### # New Zealand +# McMurdo Station and Scott Base in Antarctica use Auckland time. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule NZ 1927 only - Nov 6 2:00 1:00 S @@ -596,7 +596,6 @@ Rule Chatham 2008 max - Apr Sun>=1 2:45s 0 - Zone Pacific/Auckland 11:39:04 - LMT 1868 Nov 2 11:30 NZ NZ%sT 1946 Jan 1 12:00 NZ NZ%sT -Link Pacific/Auckland Antarctica/McMurdo Zone Pacific/Chatham 12:13:48 - LMT 1868 Nov 2 12:15 - +1215 1946 Jan 1 @@ -695,8 +694,6 @@ Zone Pacific/Palau -15:02:04 - LMT 1844 Dec 31 # Koror Zone Pacific/Port_Moresby 9:48:40 - LMT 1880 9:48:32 - PMMT 1895 # Port Moresby Mean Time 10:00 - +10 -Link Pacific/Port_Moresby Antarctica/DumontDUrville -Link Pacific/Port_Moresby Pacific/Chuuk # # From Paul Eggert (2014-10-13): # Base the Bougainville entry on the Arawa-Kieta region, which appears to have @@ -729,10 +726,10 @@ Zone Pacific/Pitcairn -8:40:20 - LMT 1901 # Adamstown -8:00 - -08 # American Samoa +# Midway Zone Pacific/Pago_Pago 12:37:12 - LMT 1892 Jul 5 -11:22:48 - LMT 1911 -11:00 - SST # S=Samoa -Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands # Samoa (formerly and also known as Western Samoa) @@ -824,7 +821,6 @@ Zone Pacific/Apia 12:33:04 - LMT 1892 Jul 5 # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Guadalcanal 10:39:48 - LMT 1912 Oct # Honiara 11:00 - +11 -Link Pacific/Guadalcanal Pacific/Pohnpei # Tokelau # @@ -864,9 +860,6 @@ Zone Pacific/Tongatapu 12:19:12 - LMT 1945 Sep 10 13:00 - +13 1999 13:00 Tonga +13/+14 -# Tuvalu -# See Pacific/Tarawa. - # US minor outlying islands @@ -917,15 +910,9 @@ Zone Pacific/Tongatapu 12:19:12 - LMT 1945 Sep 10 # Kingman # uninhabited -# Midway -# See Pacific/Pago_Pago. - # Palmyra # uninhabited since World War II; was probably like Pacific/Kiritimati -# Wake -# See Pacific/Tarawa. - # Vanuatu @@ -962,9 +949,6 @@ Rule Vanuatu 1992 only - Oct Sat>=22 24:00 1:00 - Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila 11:00 Vanuatu +11/+12 -# Wallis and Futuna -# See Pacific/Tarawa. - ############################################################################### # NOTES diff --git a/jdk/test/sun/util/calendar/zi/tzdata/backward b/jdk/test/sun/util/calendar/zi/tzdata/backward index 7765d99aedf..fa44f655009 100644 --- a/jdk/test/sun/util/calendar/zi/tzdata/backward +++ b/jdk/test/sun/util/calendar/zi/tzdata/backward @@ -27,7 +27,7 @@ # 2009-05-17 by Arthur David Olson. # This file provides links from old or merged timezone names to current ones. -# Many names changed in late 1993, and many merged names moved here +# Many names changed in 1993 and in 1995, and many merged names moved here # in the period from 2013 through 2022. Several of these names are # also present in the file 'backzone', which has data important only # for pre-1970 timestamps and so is out of scope for tzdb proper. @@ -36,50 +36,24 @@ # building with 'make BACKWARD=', in practice downstream users # typically use this file for backward compatibility. -# Link TARGET LINK-NAME -Link Africa/Nairobi Africa/Asmera -Link Africa/Abidjan Africa/Timbuktu -Link America/Argentina/Catamarca America/Argentina/ComodRivadavia -Link America/Adak America/Atka -Link America/Argentina/Buenos_Aires America/Buenos_Aires -Link America/Argentina/Catamarca America/Catamarca -Link America/Panama America/Coral_Harbour -Link America/Argentina/Cordoba America/Cordoba -Link America/Tijuana America/Ensenada -Link America/Indiana/Indianapolis America/Fort_Wayne -Link America/Nuuk America/Godthab -Link America/Indiana/Indianapolis America/Indianapolis -Link America/Argentina/Jujuy America/Jujuy -Link America/Indiana/Knox America/Knox_IN -Link America/Kentucky/Louisville America/Louisville -Link America/Argentina/Mendoza America/Mendoza -Link America/Toronto America/Montreal -Link America/Rio_Branco America/Porto_Acre -Link America/Argentina/Cordoba America/Rosario -Link America/Tijuana America/Santa_Isabel -Link America/Denver America/Shiprock -Link America/Puerto_Rico America/Virgin -Link Pacific/Auckland Antarctica/South_Pole -Link Asia/Ashgabat Asia/Ashkhabad -Link Asia/Kolkata Asia/Calcutta -Link Asia/Shanghai Asia/Chongqing -Link Asia/Shanghai Asia/Chungking -Link Asia/Dhaka Asia/Dacca -Link Asia/Shanghai Asia/Harbin -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 -Link Asia/Makassar Asia/Ujung_Pandang -Link Asia/Ulaanbaatar Asia/Ulan_Bator -Link Atlantic/Faroe Atlantic/Faeroe -Link Europe/Berlin Atlantic/Jan_Mayen -Link Australia/Sydney Australia/ACT -Link Australia/Sydney Australia/Canberra -Link Australia/Hobart Australia/Currie +# This file is divided into sections, one for each major reason for a +# backward compatibility link. Each section is sorted by link name. + +# A "#= TARGET1" comment labels each link inserted only because some +# .zi parsers (including tzcode through 2022e) mishandle links to links. +# The comment says what the target would be if these parsers were fixed +# so that data could contain links to links. For example, the line +# "Link Australia/Sydney Australia/ACT #= Australia/Canberra" would be +# "Link Australia/Canberra Australia/ACT" were it not that data lines +# refrain from linking to links like Australia/Canberra, which means +# the Australia/ACT line links instead to Australia/Sydney, +# Australia/Canberra's target. + + +# Pre-1993 naming conventions + +# Link TARGET LINK-NAME #= TARGET1 +Link Australia/Sydney Australia/ACT #= Australia/Canberra Link Australia/Lord_Howe Australia/LHI Link Australia/Sydney Australia/NSW Link Australia/Darwin Australia/North @@ -89,7 +63,7 @@ Link Australia/Hobart Australia/Tasmania Link Australia/Melbourne Australia/Victoria Link Australia/Perth Australia/West Link Australia/Broken_Hill Australia/Yancowinna -Link America/Rio_Branco Brazil/Acre +Link America/Rio_Branco Brazil/Acre #= America/Porto_Acre Link America/Noronha Brazil/DeNoronha Link America/Sao_Paulo Brazil/East Link America/Manaus Brazil/West @@ -109,20 +83,36 @@ Link Pacific/Easter Chile/EasterIsland Link America/Havana Cuba Link Africa/Cairo Egypt Link Europe/Dublin Eire +# Vanguard section, for most .zi parsers. +#Link GMT Etc/GMT +#Link GMT Etc/GMT+0 +#Link GMT Etc/GMT-0 +#Link GMT Etc/GMT0 +#Link GMT Etc/Greenwich +# Rearguard section, for TZUpdater 2.3.2 and earlier. +Link Etc/GMT Etc/GMT+0 +Link Etc/GMT Etc/GMT-0 +Link Etc/GMT Etc/GMT0 +Link Etc/GMT Etc/Greenwich +# End of rearguard section. Link Etc/UTC Etc/UCT -Link Europe/London Europe/Belfast -Link Europe/Kyiv Europe/Kiev -Link Europe/Chisinau Europe/Tiraspol -Link Europe/Kyiv Europe/Uzhgorod -Link Europe/Kyiv Europe/Zaporozhye +Link Etc/UTC Etc/Universal +Link Etc/UTC Etc/Zulu Link Europe/London GB Link Europe/London GB-Eire +# Vanguard section, for most .zi parsers. +#Link GMT GMT+0 +#Link GMT GMT-0 +#Link GMT GMT0 +#Link GMT Greenwich +# Rearguard section, for TZUpdater 2.3.2 and earlier. Link Etc/GMT GMT+0 Link Etc/GMT GMT-0 Link Etc/GMT GMT0 Link Etc/GMT Greenwich +# End of rearguard section. Link Asia/Hong_Kong Hongkong -Link Africa/Abidjan Iceland +Link Africa/Abidjan Iceland #= Atlantic/Reykjavik Link Asia/Tehran Iran Link Asia/Jerusalem Israel Link America/Jamaica Jamaica @@ -134,14 +124,8 @@ Link America/Mazatlan Mexico/BajaSur Link America/Mexico_City Mexico/General Link Pacific/Auckland NZ Link Pacific/Chatham NZ-CHAT -Link America/Denver Navajo +Link America/Denver Navajo #= America/Shiprock Link Asia/Shanghai PRC -Link Pacific/Kanton Pacific/Enderbury -Link Pacific/Honolulu Pacific/Johnston -Link Pacific/Guadalcanal Pacific/Ponape -Link Pacific/Pago_Pago Pacific/Samoa -Link Pacific/Port_Moresby Pacific/Truk -Link Pacific/Port_Moresby Pacific/Yap Link Europe/Warsaw Poland Link Europe/Lisbon Portugal Link Asia/Taipei ROC @@ -165,3 +149,193 @@ Link Etc/UTC UTC Link Etc/UTC Universal Link Europe/Moscow W-SU Link Etc/UTC Zulu + + +# Two-part names that were renamed mostly to three-part names in 1995 + +# Link TARGET LINK-NAME #= TARGET1 +Link America/Argentina/Buenos_Aires America/Buenos_Aires +Link America/Argentina/Catamarca America/Catamarca +Link America/Argentina/Cordoba America/Cordoba +Link America/Indiana/Indianapolis America/Indianapolis +Link America/Argentina/Jujuy America/Jujuy +Link America/Indiana/Knox America/Knox_IN +Link America/Kentucky/Louisville America/Louisville +Link America/Argentina/Mendoza America/Mendoza +Link America/Puerto_Rico America/Virgin #= America/St_Thomas +Link Pacific/Pago_Pago Pacific/Samoa + + +# Pre-2013 practice, which typically had a Zone per zone.tab line + +# Link TARGET LINK-NAME +Link Africa/Abidjan Africa/Accra +Link Africa/Nairobi Africa/Addis_Ababa +Link Africa/Nairobi Africa/Asmara +Link Africa/Abidjan Africa/Bamako +Link Africa/Lagos Africa/Bangui +Link Africa/Abidjan Africa/Banjul +Link Africa/Maputo Africa/Blantyre +Link Africa/Lagos Africa/Brazzaville +Link Africa/Maputo Africa/Bujumbura +Link Africa/Abidjan Africa/Conakry +Link Africa/Abidjan Africa/Dakar +Link Africa/Nairobi Africa/Dar_es_Salaam +Link Africa/Nairobi Africa/Djibouti +Link Africa/Lagos Africa/Douala +Link Africa/Abidjan Africa/Freetown +Link Africa/Maputo Africa/Gaborone +Link Africa/Maputo Africa/Harare +Link Africa/Nairobi Africa/Kampala +Link Africa/Maputo Africa/Kigali +Link Africa/Lagos Africa/Kinshasa +Link Africa/Lagos Africa/Libreville +Link Africa/Abidjan Africa/Lome +Link Africa/Lagos Africa/Luanda +Link Africa/Maputo Africa/Lubumbashi +Link Africa/Maputo Africa/Lusaka +Link Africa/Lagos Africa/Malabo +Link Africa/Johannesburg Africa/Maseru +Link Africa/Johannesburg Africa/Mbabane +Link Africa/Nairobi Africa/Mogadishu +Link Africa/Lagos Africa/Niamey +Link Africa/Abidjan Africa/Nouakchott +Link Africa/Abidjan Africa/Ouagadougou +Link Africa/Lagos Africa/Porto-Novo +Link America/Puerto_Rico America/Anguilla +Link America/Puerto_Rico America/Antigua +Link America/Puerto_Rico America/Aruba +Link America/Panama America/Atikokan +Link America/Puerto_Rico America/Blanc-Sablon +Link America/Panama America/Cayman +Link America/Phoenix America/Creston +Link America/Puerto_Rico America/Curacao +Link America/Puerto_Rico America/Dominica +Link America/Puerto_Rico America/Grenada +Link America/Puerto_Rico America/Guadeloupe +Link America/Puerto_Rico America/Kralendijk +Link America/Puerto_Rico America/Lower_Princes +Link America/Puerto_Rico America/Marigot +Link America/Puerto_Rico America/Montserrat +Link America/Toronto America/Nassau +Link America/Puerto_Rico America/Port_of_Spain +Link America/Puerto_Rico America/St_Barthelemy +Link America/Puerto_Rico America/St_Kitts +Link America/Puerto_Rico America/St_Lucia +Link America/Puerto_Rico America/St_Thomas +Link America/Puerto_Rico America/St_Vincent +Link America/Puerto_Rico America/Tortola +Link Pacific/Port_Moresby Antarctica/DumontDUrville +Link Pacific/Auckland Antarctica/McMurdo +Link Asia/Riyadh Antarctica/Syowa +Link Asia/Urumqi Antarctica/Vostok +Link Europe/Berlin Arctic/Longyearbyen +Link Asia/Riyadh Asia/Aden +Link Asia/Qatar Asia/Bahrain +Link Asia/Kuching Asia/Brunei +Link Asia/Singapore Asia/Kuala_Lumpur +Link Asia/Riyadh Asia/Kuwait +Link Asia/Dubai Asia/Muscat +Link Asia/Bangkok Asia/Phnom_Penh +Link Asia/Bangkok Asia/Vientiane +Link Africa/Abidjan Atlantic/Reykjavik +Link Africa/Abidjan Atlantic/St_Helena +Link Europe/Brussels Europe/Amsterdam +Link Europe/Prague Europe/Bratislava +Link Europe/Zurich Europe/Busingen +Link Europe/Berlin Europe/Copenhagen +Link Europe/London Europe/Guernsey +Link Europe/London Europe/Isle_of_Man +Link Europe/London Europe/Jersey +Link Europe/Belgrade Europe/Ljubljana +Link Europe/Brussels Europe/Luxembourg +Link Europe/Helsinki Europe/Mariehamn +Link Europe/Paris Europe/Monaco +Link Europe/Berlin Europe/Oslo +Link Europe/Belgrade Europe/Podgorica +Link Europe/Rome Europe/San_Marino +Link Europe/Belgrade Europe/Sarajevo +Link Europe/Belgrade Europe/Skopje +Link Europe/Berlin Europe/Stockholm +Link Europe/Zurich Europe/Vaduz +Link Europe/Rome Europe/Vatican +Link Europe/Belgrade Europe/Zagreb +Link Africa/Nairobi Indian/Antananarivo +Link Asia/Bangkok Indian/Christmas +Link Asia/Yangon Indian/Cocos +Link Africa/Nairobi Indian/Comoro +Link Indian/Maldives Indian/Kerguelen +Link Asia/Dubai Indian/Mahe +Link Africa/Nairobi Indian/Mayotte +Link Asia/Dubai Indian/Reunion +Link Pacific/Port_Moresby Pacific/Chuuk +Link Pacific/Tarawa Pacific/Funafuti +Link Pacific/Tarawa Pacific/Majuro +Link Pacific/Pago_Pago Pacific/Midway +Link Pacific/Guadalcanal Pacific/Pohnpei +Link Pacific/Guam Pacific/Saipan +Link Pacific/Tarawa Pacific/Wake +Link Pacific/Tarawa Pacific/Wallis + + +# Non-zone.tab locations with timestamps since 1970 that duplicate +# those of an existing location + +# Link TARGET LINK-NAME +Link Africa/Abidjan Africa/Timbuktu +Link America/Argentina/Catamarca America/Argentina/ComodRivadavia +Link America/Adak America/Atka +Link America/Panama America/Coral_Harbour +Link America/Tijuana America/Ensenada +Link America/Indiana/Indianapolis America/Fort_Wayne +Link America/Toronto America/Montreal +Link America/Toronto America/Nipigon +Link America/Iqaluit America/Pangnirtung +Link America/Rio_Branco America/Porto_Acre +Link America/Winnipeg America/Rainy_River +Link America/Argentina/Cordoba America/Rosario +Link America/Tijuana America/Santa_Isabel +Link America/Denver America/Shiprock +Link America/Toronto America/Thunder_Bay +Link Pacific/Auckland Antarctica/South_Pole +Link Asia/Shanghai Asia/Chongqing +Link Asia/Shanghai Asia/Harbin +Link Asia/Urumqi Asia/Kashgar +Link Asia/Jerusalem Asia/Tel_Aviv +Link Europe/Berlin Atlantic/Jan_Mayen +Link Australia/Sydney Australia/Canberra +Link Australia/Hobart Australia/Currie +Link Europe/London Europe/Belfast +Link Europe/Chisinau Europe/Tiraspol +Link Europe/Kyiv Europe/Uzhgorod +Link Europe/Kyiv Europe/Zaporozhye +Link Pacific/Kanton Pacific/Enderbury +Link Pacific/Honolulu Pacific/Johnston +Link Pacific/Port_Moresby Pacific/Yap + + +# Alternate names for the same location + +# Link TARGET LINK-NAME #= TARGET1 +Link Africa/Nairobi Africa/Asmera #= Africa/Asmara +Link America/Nuuk America/Godthab +Link Asia/Ashgabat Asia/Ashkhabad +Link Asia/Kolkata Asia/Calcutta +Link Asia/Shanghai Asia/Chungking #= Asia/Chongqing +Link Asia/Dhaka Asia/Dacca +# Istanbul is in both continents. +Link Europe/Istanbul Asia/Istanbul +Link Asia/Kathmandu Asia/Katmandu +Link Asia/Macau Asia/Macao +Link Asia/Yangon Asia/Rangoon +Link Asia/Ho_Chi_Minh Asia/Saigon +Link Asia/Thimphu Asia/Thimbu +Link Asia/Makassar Asia/Ujung_Pandang +Link Asia/Ulaanbaatar Asia/Ulan_Bator +Link Atlantic/Faroe Atlantic/Faeroe +Link Europe/Kyiv Europe/Kiev +# Classically, Cyprus is in Asia; e.g. see Herodotus, Histories, I.72. +# However, for various reasons many users expect to find it under Europe. +Link Asia/Nicosia Europe/Nicosia +Link Pacific/Guadalcanal Pacific/Ponape #= Pacific/Pohnpei +Link Pacific/Port_Moresby Pacific/Truk #= Pacific/Chuuk diff --git a/jdk/test/sun/util/calendar/zi/tzdata/etcetera b/jdk/test/sun/util/calendar/zi/tzdata/etcetera index 82ff6b4a624..8ae294f524a 100644 --- a/jdk/test/sun/util/calendar/zi/tzdata/etcetera +++ b/jdk/test/sun/util/calendar/zi/tzdata/etcetera @@ -39,26 +39,23 @@ # 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 - # The following zone is used by tzcode functions like gmtime, # which load the "UTC" file to handle seconds properly. Zone Etc/UTC 0 - UTC +# Functions like gmtime load the "GMT" file to handle leap seconds properly. +# Vanguard section, which works with most .zi parsers. +#Zone GMT 0 - GMT +# Rearguard section, for TZUpdater 2.3.2 and earlier. +Zone Etc/GMT 0 - GMT + # The following link uses older naming conventions, # but it belongs here, not in the file 'backward', # as it is needed for tzcode releases through 2022a, # where functions like gmtime load "GMT" instead of the "Etc/UTC". # We want this to work even on installations that omit 'backward'. Link Etc/GMT GMT - -Link Etc/UTC Etc/Universal -Link Etc/UTC Etc/Zulu - -Link Etc/GMT Etc/Greenwich -Link Etc/GMT Etc/GMT-0 -Link Etc/GMT Etc/GMT+0 -Link Etc/GMT Etc/GMT0 +# End of rearguard section. # Be consistent with POSIX TZ settings in the Zone names, # even though this is the opposite of what many people expect. diff --git a/jdk/test/sun/util/calendar/zi/tzdata/europe b/jdk/test/sun/util/calendar/zi/tzdata/europe index 930cede4cf4..22c252d4a36 100644 --- a/jdk/test/sun/util/calendar/zi/tzdata/europe +++ b/jdk/test/sun/util/calendar/zi/tzdata/europe @@ -527,9 +527,6 @@ Zone Europe/London -0:01:15 - LMT 1847 Dec 1 1:00 - BST 1971 Oct 31 2:00u 0:00 GB-Eire %s 1996 0:00 EU GMT/BST -Link Europe/London Europe/Jersey -Link Europe/London Europe/Guernsey -Link Europe/London Europe/Isle_of_Man # From Paul Eggert (2018-02-15): # In January 2018 we discovered that the negative SAVE values in the @@ -902,6 +899,8 @@ Zone Europe/Minsk 1:50:16 - LMT 1880 3:00 - +03 # Belgium +# Luxembourg +# Netherlands # # From Michael Deckers (2019-08-25): # The exposition in the web page @@ -984,11 +983,6 @@ Zone Europe/Brussels 0:17:30 - LMT 1880 1:00 C-Eur CE%sT 1944 Sep 3 1:00 Belgium CE%sT 1977 1:00 EU CE%sT -Link Europe/Brussels Europe/Amsterdam -Link Europe/Brussels Europe/Luxembourg - -# Bosnia and Herzegovina -# See Europe/Belgrade. # Bulgaria # @@ -1015,13 +1009,11 @@ Zone Europe/Sofia 1:33:16 - LMT 1880 2:00 E-Eur EE%sT 1997 2:00 EU EE%sT -# Croatia -# See Europe/Belgrade. - # Cyprus # Please see the 'asia' file for Asia/Nicosia. -# Czech Republic / Czechia +# Czech Republic (Czechia) +# Slovakia # # From Paul Eggert (2018-04-15): # The source for Czech data is: Kdy začíná a končí letní čas. 2018-04-15. @@ -1048,15 +1040,14 @@ Zone Europe/Prague 0:57:44 - LMT 1850 # End of rearguard section. 1:00 Czech CE%sT 1979 1:00 EU CE%sT -Link Europe/Prague Europe/Bratislava - - -# Denmark, Faroe Islands, and Greenland -# For Denmark see Europe/Berlin. +# Faroe Is +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Atlantic/Faroe -0:27:04 - LMT 1908 Jan 11 # Tórshavn 0:00 - WET 1981 0:00 EU WE%sT + +# Greenland # # From Paul Eggert (2004-10-31): # During World War II, Germany maintained secret manned weather stations in @@ -1135,7 +1126,30 @@ Zone Atlantic/Faroe -0:27:04 - LMT 1908 Jan 11 # Tórshavn # "National Park" by Executive Order: # http://naalakkersuisut.gl/~/media/Nanoq/Files/Attached%20Files/Engelske-tekster/Legislation/Executive%20Order%20National%20Park.rtf # It is their only National Park. -# + +# From Jonas Nyrup (2022-11-24): +# On last Saturday in October 2023 when DST ends America/Nuuk will switch +# from -03/-02 to -02/-01 +# https://sermitsiaq.ag/forslagtidsforskel-danmark-mindskes-sommertid-beholdes +# ... +# https://sermitsiaq.ag/groenland-skifte-tidszone-trods-bekymringer +# +# From Jürgen Appel (2022-11-25): +# https://ina.gl/samlinger/oversigt-over-samlinger/samling/dagsordener/dagsorden.aspx?lang=da&day=24-11-2022 +# If I understand this correctly, from the next planned switch to +# summer time, Greenland will permanently stay at that time, i.e. no +# switch back to winter time in 2023 will occur. +# +# From Paul Eggert (2022-11-28): +# The official document in Danish +# https://naalakkersuisut.gl/-/media/naalakkersuisut/filer/kundgoerelser/2022/11/2511/31_da_inatsisartutlov-om-tidens-bestemmelse.pdf?la=da&hash=A33597D8A38CC7038465241119EF34F3 +# says standard time for Greenland is -02, that Naalakkersuisut can lay down +# rules for DST and can require some areas to use a different time zone, +# and that this all takes effect 2023-03-25 22:00. The abovementioned +# "bekymringer" URL says the intent is no transition March 25, that +# Greenland will not go back to winter time in fall 2023, and that +# only America/Nuuk is affected (though further changes may occur). + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Thule 1991 1992 - Mar lastSun 2:00 1:00 D Rule Thule 1991 1992 - Sep lastSun 2:00 0 S @@ -1158,7 +1172,8 @@ Zone America/Scoresbysund -1:27:52 - LMT 1916 Jul 28 # Ittoqqortoormiit -1:00 EU -01/+00 Zone America/Nuuk -3:26:56 - LMT 1916 Jul 28 # Godthåb -3:00 - -03 1980 Apr 6 2:00 - -3:00 EU -03/-02 + -3:00 EU -03/-02 2023 Mar 25 22:00 + -2:00 - -02 Zone America/Thule -4:35:08 - LMT 1916 Jul 28 # Pituffik -4:00 Thule A%sT @@ -1282,11 +1297,8 @@ Zone Europe/Helsinki 1:39:49 - LMT 1878 May 31 2:00 Finland EE%sT 1983 2:00 EU EE%sT -# Åland Is -Link Europe/Helsinki Europe/Mariehamn - - # France +# Monaco # From Ciro Discepolo (2000-12-20): # @@ -1423,9 +1435,11 @@ Zone Europe/Paris 0:09:21 - LMT 1891 Mar 16 0:00 France WE%sT 1945 Sep 16 3:00 1:00 France CE%sT 1977 1:00 EU CE%sT -Link Europe/Paris Europe/Monaco +# Denmark # Germany +# Norway +# Sweden # From Markus Kuhn (1998-09-29): # The German time zone web site by the Physikalisch-Technische @@ -1443,6 +1457,53 @@ Link Europe/Paris Europe/Monaco # However, Moscow did not observe daylight saving in 1945, so # this was equivalent to UT +03, not +04. +# Svalbard & Jan Mayen + +# From Steffen Thorsen (2001-05-01): +# Although I could not find it explicitly, it seems that Jan Mayen and +# Svalbard have been using the same time as Norway at least since the +# time they were declared as parts of Norway. Svalbard was declared +# as a part of Norway by law of 1925-07-17 no 11, section 4 and Jan +# Mayen by law of 1930-02-27 no 2, section 2. (From +# and +# ). The law/regulation +# for normal/standard time in Norway is from 1894-06-29 no 1 (came +# into operation on 1895-01-01) and Svalbard/Jan Mayen seem to be a +# part of this law since 1925/1930. (From +# ) I have not been +# able to find if Jan Mayen used a different time zone (e.g. -0100) +# before 1930. Jan Mayen has only been "inhabited" since 1921 by +# Norwegian meteorologists and maybe used the same time as Norway ever +# since 1921. Svalbard (Arctic/Longyearbyen) has been inhabited since +# before 1895, and therefore probably changed the local time somewhere +# between 1895 and 1925 (inclusive). + +# From Paul Eggert (2013-09-04): +# +# Actually, Jan Mayen was never occupied by Germany during World War II, +# so it must have diverged from Oslo time during the war, as Oslo was +# keeping Berlin time. +# +# says that the meteorologists +# burned down their station in 1940 and left the island, but returned in +# 1941 with a small Norwegian garrison and continued operations despite +# frequent air attacks from Germans. In 1943 the Americans established a +# radiolocating station on the island, called "Atlantic City". Possibly +# the UT offset changed during the war, but I think it unlikely that +# Jan Mayen used German daylight-saving rules. +# +# Svalbard is more complicated, as it was raided in August 1941 by an +# Allied party that evacuated the civilian population to England (says +# ). The Svalbard FAQ +# says that the Germans were +# expelled on 1942-05-14. However, small parties of Germans did return, +# and according to Wilhelm Dege's book "War North of 80" (1954) +# http://www.ucalgary.ca/UofC/departments/UP/1-55238/1-55238-110-2.html +# the German armed forces at the Svalbard weather station code-named +# Haudegen did not surrender to the Allies until September 1945. +# +# All these events predate our cutoff date of 1970, so use Europe/Berlin +# for these regions. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Germany 1946 only - Apr 14 2:00s 1:00 S @@ -1467,11 +1528,6 @@ Zone Europe/Berlin 0:53:28 - LMT 1893 Apr 1:00 SovietZone CE%sT 1946 1:00 Germany CE%sT 1980 1:00 EU CE%sT -Link Europe/Berlin Arctic/Longyearbyen -Link Europe/Berlin Europe/Copenhagen -Link Europe/Berlin Europe/Oslo -Link Europe/Berlin Europe/Stockholm - # Georgia # Please see the "asia" file for Asia/Tbilisi. @@ -1590,10 +1646,9 @@ Zone Europe/Budapest 1:16:20 - LMT 1890 Nov 1 1:00 Hungary CE%sT 1984 1:00 EU CE%sT -# Iceland -# See Africa/Abidjan. - # Italy +# San Marino +# Vatican City # # From Paul Eggert (2001-03-06): # Sicily and Sardinia each had their own time zones from 1866 to 1893, @@ -1712,13 +1767,6 @@ Zone Europe/Rome 0:49:56 - LMT 1866 Dec 12 1:00 C-Eur CE%sT 1944 Jun 4 1:00 Italy CE%sT 1980 1:00 EU CE%sT -Link Europe/Rome Europe/Vatican -Link Europe/Rome Europe/San_Marino - - -# Kosovo -# See Europe/Belgrade. - # Latvia @@ -1802,10 +1850,6 @@ Zone Europe/Riga 1:36:34 - LMT 1880 2:00 - EET 2001 Jan 2 2:00 EU EE%sT -# Liechtenstein -# See Europe/Zurich. - - # Lithuania # From Paul Eggert (2016-03-18): @@ -1858,12 +1902,6 @@ Zone Europe/Vilnius 1:41:16 - LMT 1880 2:00 - EET 2003 Jan 1 2:00 EU EE%sT -# Luxembourg -# See Europe/Brussels. - -# North Macedonia -# See Europe/Belgrade. - # Malta # # From Paul Eggert (2016-10-21): @@ -1959,67 +1997,6 @@ Zone Europe/Chisinau 1:55:20 - LMT 1880 # See Romania commentary for the guessed 1997 transition to EU rules. 2:00 Moldova EE%sT -# Monaco -# See Europe/Paris. - -# Montenegro -# See Europe/Belgrade. - -# Netherlands -# See Europe/Brussels. - -# Norway -# See Europe/Berlin. - -# Svalbard & Jan Mayen - -# From Steffen Thorsen (2001-05-01): -# Although I could not find it explicitly, it seems that Jan Mayen and -# Svalbard have been using the same time as Norway at least since the -# time they were declared as parts of Norway. Svalbard was declared -# as a part of Norway by law of 1925-07-17 no 11, section 4 and Jan -# Mayen by law of 1930-02-27 no 2, section 2. (From -# and -# ). The law/regulation -# for normal/standard time in Norway is from 1894-06-29 no 1 (came -# into operation on 1895-01-01) and Svalbard/Jan Mayen seem to be a -# part of this law since 1925/1930. (From -# ) I have not been -# able to find if Jan Mayen used a different time zone (e.g. -0100) -# before 1930. Jan Mayen has only been "inhabited" since 1921 by -# Norwegian meteorologists and maybe used the same time as Norway ever -# since 1921. Svalbard (Arctic/Longyearbyen) has been inhabited since -# before 1895, and therefore probably changed the local time somewhere -# between 1895 and 1925 (inclusive). - -# From Paul Eggert (2013-09-04): -# -# Actually, Jan Mayen was never occupied by Germany during World War II, -# so it must have diverged from Oslo time during the war, as Oslo was -# keeping Berlin time. -# -# says that the meteorologists -# burned down their station in 1940 and left the island, but returned in -# 1941 with a small Norwegian garrison and continued operations despite -# frequent air attacks from Germans. In 1943 the Americans established a -# radiolocating station on the island, called "Atlantic City". Possibly -# the UT offset changed during the war, but I think it unlikely that -# Jan Mayen used German daylight-saving rules. -# -# Svalbard is more complicated, as it was raided in August 1941 by an -# Allied party that evacuated the civilian population to England (says -# ). The Svalbard FAQ -# says that the Germans were -# expelled on 1942-05-14. However, small parties of Germans did return, -# and according to Wilhelm Dege's book "War North of 80" (1954) -# http://www.ucalgary.ca/UofC/departments/UP/1-55238/1-55238-110-2.html -# the German armed forces at the Svalbard weather station code-named -# Haudegen did not surrender to the Allies until September 1945. -# -# All these events predate our cutoff date of 1970, so use Europe/Berlin -# for these regions. - - # Poland # The 1919 dates and times can be found in Tygodnik Urzędowy nr 1 (1919-03-20), @@ -3301,11 +3278,13 @@ Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2 11:00 Russia +11/+12 2011 Mar 27 2:00s 12:00 - +12 - -# San Marino -# See Europe/Rome. - +# Bosnia & Herzegovina +# Croatia +# Kosovo +# Montenegro +# North Macedonia # Serbia +# Slovenia # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Belgrade 1:22:00 - LMT 1884 1:00 - CET 1941 Apr 18 23:00 @@ -3317,17 +3296,6 @@ Zone Europe/Belgrade 1:22:00 - LMT 1884 # Shanks & Pottenger don't give as much detail, so go with Koželj. 1:00 - CET 1982 Nov 27 1:00 EU CE%sT -Link Europe/Belgrade Europe/Ljubljana # Slovenia -Link Europe/Belgrade Europe/Podgorica # Montenegro -Link Europe/Belgrade Europe/Sarajevo # Bosnia and Herzegovina -Link Europe/Belgrade Europe/Skopje # North Macedonia -Link Europe/Belgrade Europe/Zagreb # Croatia - -# Slovakia -# See Europe/Prague. - -# Slovenia -# See Europe/Belgrade. # Spain # @@ -3434,10 +3402,11 @@ Zone Atlantic/Canary -1:01:36 - LMT 1922 Mar # Las Palmas de Gran C. # IATA SSIM (1996-09) says the Canaries switch at 2:00u, not 1:00u. # Ignore this for now, as the Canaries are part of the EU. -# Sweden -# See Europe/Berlin. +# Germany (Busingen enclave) +# Liechtenstein # Switzerland +# # From Howse: # By the end of the 18th century clocks and watches became commonplace # and their performance improved enormously. Communities began to keep @@ -3550,9 +3519,6 @@ Zone Europe/Zurich 0:34:08 - LMT 1853 Jul 16 # See above comment. 0:29:46 - BMT 1894 Jun # Bern Mean Time 1:00 Swiss CE%sT 1981 1:00 EU CE%sT -Link Europe/Zurich Europe/Busingen -Link Europe/Zurich Europe/Vaduz - # Turkey @@ -3757,7 +3723,6 @@ Zone Europe/Istanbul 1:55:52 - LMT 1880 2:00 1:00 EEST 2015 Nov 8 1:00u 2:00 EU EE%sT 2016 Sep 7 3:00 - +03 -Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. # Ukraine # @@ -3860,9 +3825,6 @@ Zone Europe/Kyiv 2:02:04 - LMT 1880 2:00 C-Eur EE%sT 1996 May 13 2:00 EU EE%sT -# Vatican City -# See Europe/Rome. - ############################################################################### # One source shows that Bulgaria, Cyprus, Finland, and Greece observe DST from diff --git a/jdk/test/sun/util/calendar/zi/tzdata/iso3166.tab b/jdk/test/sun/util/calendar/zi/tzdata/iso3166.tab index 544b3034c17..fbfb74bec45 100644 --- a/jdk/test/sun/util/calendar/zi/tzdata/iso3166.tab +++ b/jdk/test/sun/util/calendar/zi/tzdata/iso3166.tab @@ -26,13 +26,13 @@ # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. # -# From Paul Eggert (2015-05-02): +# From Paul Eggert (2022-11-18): # This file contains a table of two-letter country codes. Columns are # separated by a single tab. Lines beginning with '#' are comments. # All text uses UTF-8 encoding. The columns of the table are as follows: # # 1. ISO 3166-1 alpha-2 country code, current as of -# ISO 3166-1 N976 (2018-11-06). See: Updates on ISO 3166-1 +# ISO 3166-1 N1087 (2022-09-02). See: Updates on ISO 3166-1 # https://isotc.iso.org/livelink/livelink/Open/16944257 # 2. The usual English name for the coded region, # chosen so that alphabetic sorting of subsets produces helpful lists. @@ -261,7 +261,7 @@ SY Syria SZ Eswatini (Swaziland) TC Turks & Caicos Is TD Chad -TF French Southern & Antarctic Lands +TF French Southern Territories TG Togo TH Thailand TJ Tajikistan diff --git a/jdk/test/sun/util/calendar/zi/tzdata/northamerica b/jdk/test/sun/util/calendar/zi/tzdata/northamerica index ce4ee74582c..a5fd701f88c 100644 --- a/jdk/test/sun/util/calendar/zi/tzdata/northamerica +++ b/jdk/test/sun/util/calendar/zi/tzdata/northamerica @@ -852,7 +852,6 @@ Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 19:00u -7:00 - MST 1967 -7:00 US M%sT 1968 Mar 21 -7:00 - MST -Link America/Phoenix America/Creston # From Arthur David Olson (1988-02-13): # A writer from the Inter Tribal Council of Arizona, Inc., @@ -1626,23 +1625,6 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 # Ontario -# From Paul Eggert (2006-07-09): -# Shanks & Pottenger write that since 1970 most of Ontario has been like -# Toronto. -# Thunder Bay skipped DST in 1973. -# Many smaller locales did not observe peacetime DST until 1974; -# Nipigon (EST) and Rainy River (CST) are the largest that we know of. -# Far west Ontario is like Winnipeg; far east Quebec is like Halifax. - -# From Jeffery Nichols (2020-02-06): -# According to the [Shanks] atlas, those western Ontario zones are huge, -# covering most of Ontario northwest of Sault Ste Marie and Timmins. -# The zones seem to include towns bigger than the ones they're named after, -# like Dryden in America/Rainy_River and Wawa (and maybe Attawapiskat) in -# America/Nipigon. I assume it's too much trouble to change the name of the -# zone (like when you found out that America/Glace_Bay includes Sydney, Nova -# Scotia).... - # From Mark Brader (2003-07-26): # [According to the Toronto Star] Orillia, Ontario, adopted DST # effective Saturday, 1912-06-22, 22:00; the article mentions that @@ -1663,17 +1645,6 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 # From Mark Brader (2010-03-06): # -# Currently the database has: -# -# # Ontario -# -# # From Paul Eggert (2006-07-09): -# # Shanks & Pottenger write that since 1970 most of Ontario has been like -# # Toronto. -# # Thunder Bay skipped DST in 1973. -# # Many smaller locales did not observe peacetime DST until 1974; -# # Nipigon (EST) and Rainy River (CST) are the largest that we know of. -# # In the (Toronto) Globe and Mail for Saturday, 1955-09-24, in the bottom # right corner of page 1, it says that Toronto will return to standard # time at 2 am Sunday morning (which agrees with the database), and that: @@ -1681,10 +1652,8 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 # The one-hour setback will go into effect throughout most of Ontario, # except in areas like Windsor which remains on standard time all year. # -# Windsor is, of course, a lot larger than Nipigon. -# -# I only came across this incidentally. I don't know if Windsor began -# observing DST when Detroit did, or in 1974, or on some other date. +# ... I don't know if Windsor began observing DST when Detroit did, +# or in 1974, or on some other date. # # By the way, the article continues by noting that: # @@ -1766,23 +1735,7 @@ Rule Toronto 1951 1956 - Sep lastSun 2:00 0 S # Toronto Star, which said that DST was ending 1971-10-31 as usual. Rule Toronto 1957 1973 - Oct lastSun 2:00 0 S -# From Paul Eggert (2003-07-27): -# Willett (1914-03) writes (p. 17) "In the Cities of Fort William, and -# Port Arthur, Ontario, the principle of the Bill has been in -# operation for the past three years, and in the City of Moose Jaw, -# Saskatchewan, for one year." - -# From David Bryan via Tory Tronrud, Director/Curator, -# Thunder Bay Museum (2003-11-12): -# There is some suggestion, however, that, by-law or not, daylight -# savings time was being practiced in Fort William and Port Arthur -# before 1909.... [I]n 1910, the line between the Eastern and Central -# Time Zones was permanently moved about two hundred miles west to -# include the Thunder Bay area.... When Canada adopted daylight -# savings time in 1916, Fort William and Port Arthur, having done so -# already, did not change their clocks.... During the Second World -# War,... [t]he cities agreed to implement DST during the summer -# months for the remainder of the war years. +# The Bahamas match Toronto since 1970. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Toronto -5:17:32 - LMT 1895 @@ -1791,22 +1744,6 @@ Zone America/Toronto -5:17:32 - LMT 1895 -5:00 Canada E%sT 1946 -5:00 Toronto E%sT 1974 -5:00 Canada E%sT -Link America/Toronto America/Nassau -Zone America/Thunder_Bay -5:57:00 - LMT 1895 - -6:00 - CST 1910 - -5:00 - EST 1942 - -5:00 Canada E%sT 1970 - -5:00 Toronto E%sT 1973 - -5:00 - EST 1974 - -5:00 Canada E%sT -Zone America/Nipigon -5:53:04 - LMT 1895 - -5:00 Canada E%sT 1940 Sep 29 - -5:00 1:00 EDT 1942 Feb 9 2:00s - -5:00 Canada E%sT -Zone America/Rainy_River -6:18:16 - LMT 1895 - -6:00 Canada C%sT 1940 Sep 29 - -6:00 1:00 CDT 1942 Feb 9 2:00s - -6:00 Canada C%sT # For Atikokan see America/Panama. @@ -2055,6 +1992,37 @@ Zone America/Fort_Nelson -8:10:47 - LMT 1884 # Northwest Territories, Nunavut, Yukon +# From Chris Walton (2022-11-06): +# Whitehorse Star - Thursday April 22, 1965 - page 1 +# title: DST Starts Monday ... +# https://www.newspapers.com/image/578587481/ +# The title of this first article is wrong and/or misleading. +# Also, the start time shown in the article is vague; it simply says "after +# midnight" when it probably should have stated 2:00a.m.... +# +# Whitehorse Star - Monday October 25, 1965 - page 15 ... +# https://www.newspapers.com/image/578589147/ +# The 1965 Yukon Council minutes can be found here: +# http://assets.yukonarchives.ca/PER_YG_06_1965_C20_S02_v1.pdf +# ... I do not currently believe that NWT touched any of its clocks in 1965.... +# +# Whitehorse Star - Thursday Feb 24,1966 - page 2 +# title: It's Time for YDT ... +# https://www.newspapers.com/image/578575979/ ... +# America/Whitehorse as a permanent change from UTC-9(YST) to +# UTC-8(PST) at 00:00 on Sunday February 27, 1966.... +# +# Whitehorse Star - Friday April 28,1972 - page 6 +# title: Daylight Saving Time for N.W.T.... +# https://www.newspapers.com/image/578701610/ ... +# Nunavut and NWT zones ... DST starting in 1972.... Start and End ... +# should be the same as the rest of Canada +# +# +# From Paul Eggert (2022-11-06): +# For now, assume Yukon's 1965-04-22 spring forward was 00:00 -> 02:00, as this +# seems likely than 02:00 -> 04:00 and matches "after midnight". + # From Paul Eggert (2006-03-22): # Dawson switched to PST in 1973. Inuvik switched to MST in 1979. # Mathew Englander (1996-10-07) gives the following refs: @@ -2169,6 +2137,13 @@ Zone America/Fort_Nelson -8:10:47 - LMT 1884 # * Interpretation Act, RSY 2002, c 125 # https://www.canlii.org/en/yk/laws/stat/rsy-2002-c-125/latest/rsy-2002-c-125.html +# From Chris Walton (2022-11-06): +# The 5th edition of the Atlas of Canada contains a time zone map that +# shows both legislated and observed time zone boundaries. +# All communities on Baffin Island are shown to be observing Eastern time. +# The date on the map is 1984. +# https://ftp.maps.canada.ca/pub/nrcan_rncan/raster/atlas_5_ed/eng/other/referencemaps/mcr4056.pdf + # From Rives McDow (1999-09-04): # Nunavut ... moved ... to incorporate the whole territory into one time zone. # Nunavut moves to single time zone Oct. 31 @@ -2181,40 +2156,7 @@ Zone America/Fort_Nelson -8:10:47 - LMT 1884 # From Paul Eggert (1999-09-20): # Basic Facts: The New Territory # http://www.nunavut.com/basicfacts/english/basicfacts_1territory.html -# (1999) reports that Pangnirtung operates on eastern time, -# and that Coral Harbour does not observe DST. We don't know when -# Pangnirtung switched to eastern time; we'll guess 1995. - -# From Rives McDow (1999-11-08): -# On October 31, when the rest of Nunavut went to Central time, -# Pangnirtung wobbled. Here is the result of their wobble: -# -# The following businesses and organizations in Pangnirtung use Central Time: -# -# First Air, Power Corp, Nunavut Construction, Health Center, RCMP, -# Eastern Arctic National Parks, A & D Specialist -# -# The following businesses and organizations in Pangnirtung use Eastern Time: -# -# Hamlet office, All other businesses, Both schools, Airport operator -# -# This has made for an interesting situation there, which warranted the news. -# No one there that I spoke with seems concerned, or has plans to -# change the local methods of keeping time, as it evidently does not -# really interfere with any activities or make things difficult locally. -# They plan to celebrate New Year's turn-over twice, one hour apart, -# so it appears that the situation will last at least that long. -# The Nunavut Intergovernmental Affairs hopes that they will "come to -# their senses", but the locals evidently don't see any problem with -# the current state of affairs. - -# From Michaela Rodrigue, writing in the -# Nunatsiaq News (1999-11-19): -# http://www.nunatsiaqonline.ca/archives/nunavut991130/nvt91119_17.html -# Clyde River, Pangnirtung and Sanikiluaq now operate with two time zones, -# central - or Nunavut time - for government offices, and eastern time -# for municipal offices and schools.... Igloolik [was similar but then] -# made the switch to central time on Saturday, Nov. 6. +# (1999) reports that ... Coral Harbour does not observe DST. # From Paul Eggert (2000-10-02): # Matthews and Vincent (1998) say the following, but we lack histories @@ -2373,18 +2315,12 @@ Rule NT_YK 1919 only - Nov 1 0:00 0 S Rule NT_YK 1942 only - Feb 9 2:00 1:00 W # War Rule NT_YK 1945 only - Aug 14 23:00u 1:00 P # Peace Rule NT_YK 1945 only - Sep 30 2:00 0 S -Rule NT_YK 1965 only - Apr lastSun 0:00 2:00 DD -Rule NT_YK 1965 only - Oct lastSun 2:00 0 S -Rule NT_YK 1980 1986 - Apr lastSun 2:00 1:00 D -Rule NT_YK 1980 2006 - Oct lastSun 2:00 0 S +Rule NT_YK 1972 1986 - Apr lastSun 2:00 1:00 D +Rule NT_YK 1972 2006 - Oct lastSun 2:00 0 S Rule NT_YK 1987 2006 - Apr Sun>=1 2:00 1:00 D +Rule Yukon 1965 only - Apr lastSun 0:00 2:00 DD +Rule Yukon 1965 only - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] -# aka Panniqtuuq -Zone America/Pangnirtung 0 - -00 1921 # trading post est. - -4:00 NT_YK A%sT 1995 Apr Sun>=1 2:00 - -5:00 Canada E%sT 1999 Oct 31 2:00 - -6:00 Canada C%sT 2000 Oct 29 2:00 - -5:00 Canada E%sT # formerly Frobisher Bay Zone America/Iqaluit 0 - -00 1942 Aug # Frobisher Bay est. -5:00 NT_YK E%sT 1999 Oct 31 2:00 @@ -2417,13 +2353,15 @@ Zone America/Inuvik 0 - -00 1953 # Inuvik founded -7:00 NT_YK M%sT 1980 -7:00 Canada M%sT Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20 - -9:00 NT_YK Y%sT 1967 May 28 0:00 - -8:00 NT_YK P%sT 1980 + -9:00 NT_YK Y%sT 1965 + -9:00 Yukon Y%sT 1966 Feb 27 0:00 + -8:00 - PST 1980 -8:00 Canada P%sT 2020 Nov 1 -7:00 - MST Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 - -9:00 NT_YK Y%sT 1973 Oct 28 0:00 - -8:00 NT_YK P%sT 1980 + -9:00 NT_YK Y%sT 1965 + -9:00 Yukon Y%sT 1973 Oct 28 0:00 + -8:00 - PST 1980 -8:00 Canada P%sT 2020 Nov 1 -7:00 - MST @@ -2639,6 +2577,20 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 # 5- The islands, reefs and keys shall take their timezone from the # longitude they are located at. +# From Paul Eggert (2022-10-28): +# The new Mexican law was published today: +# https://www.dof.gob.mx/nota_detalle.php?codigo=5670045&fecha=28/10/2022 +# This abolishes DST except where US DST rules are observed, +# and in addition changes all of Chihuahua to -06 with no DST. + +# From Heitor David Pinto (2022-11-28): +# Now the northern municipalities want to have the same time zone as the +# respective neighboring cities in the US, for example Juárez in UTC-7 with +# DST, matching El Paso, and Ojinaga in UTC-6 with DST, matching Presidio.... +# the president authorized the publication of the decree for November 29, +# so the time change would occur on November 30 at 0:00. +# http://puentelibre.mx/noticia/ciudad_juarez_cambio_horario_noviembre_2022/ + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Mexico 1931 only - May 1 23:00 1:00 D Rule Mexico 1931 only - Oct 1 0:00 0 S @@ -2654,8 +2606,8 @@ Rule Mexico 1996 2000 - Apr Sun>=1 2:00 1:00 D Rule Mexico 1996 2000 - Oct lastSun 2:00 0 S Rule Mexico 2001 only - May Sun>=1 2:00 1:00 D Rule Mexico 2001 only - Sep lastSun 2:00 0 S -Rule Mexico 2002 max - Apr Sun>=1 2:00 1:00 D -Rule Mexico 2002 max - Oct lastSun 2:00 0 S +Rule Mexico 2002 2022 - Apr Sun>=1 2:00 1:00 D +Rule Mexico 2002 2022 - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] # Quintana Roo; represented by Cancún Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 6:00u @@ -2670,14 +2622,12 @@ Zone America/Merida -5:58:28 - LMT 1922 Jan 1 6:00u -6:00 Mexico C%sT # Coahuila, Nuevo León, Tamaulipas (near US border) # This includes the following municipalities: -# in Coahuila: Ocampo, Acuña, Zaragoza, Jiménez, Piedras Negras, Nava, -# Guerrero, Hidalgo. -# in Nuevo León: Anáhuac, Los Aldama. +# in Coahuila: Acuña, Allende, Guerrero, Hidalgo, Jiménez, Morelos, Nava, +# Ocampo, Piedras Negras, Villa Unión, Zaragoza +# in Nuevo León: Anáhuac # in Tamaulipas: Nuevo Laredo, Guerrero, Mier, Miguel Alemán, Camargo, # Gustavo Díaz Ordaz, Reynosa, Río Bravo, Valle Hermoso, Matamoros. -# See: Inicia mañana Horario de Verano en zona fronteriza, El Universal, -# 2016-03-12 -# http://www.eluniversal.com.mx/articulo/estados/2016/03/12/inicia-manana-horario-de-verano-en-zona-fronteriza +# https://www.dof.gob.mx/nota_detalle.php?codigo=5670045&fecha=28/10/2022 Zone America/Matamoros -6:30:00 - LMT 1922 Jan 1 6:00u -6:00 - CST 1988 -6:00 US C%sT 1989 @@ -2696,11 +2646,11 @@ Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 7:00u -6:00 Mexico C%sT 2001 Sep 30 2:00 -6:00 - CST 2002 Feb 20 -6:00 Mexico C%sT -# Chihuahua (near US border) +# Chihuahua (near US border - western side) # This includes the municipalities of Janos, Ascensión, Juárez, Guadalupe, -# Práxedis G Guerrero, Coyame del Sotol, Ojinaga, and Manuel Benavides. -# (See the 2016-03-12 El Universal source mentioned above.) -Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 7:00u +# and Práxedis G Guerrero. +# http://gaceta.diputados.gob.mx/PDF/65/2a022/nov/20221124-VII.pdf +Zone America/Ciudad_Juarez -7:05:56 - LMT 1922 Jan 1 7:00u -7:00 - MST 1927 Jun 10 23:00 -6:00 - CST 1930 Nov 15 -7:00 Mexico M%sT 1932 Apr 1 @@ -2708,7 +2658,23 @@ Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 7:00u -6:00 Mexico C%sT 1998 -6:00 - CST 1998 Apr Sun>=1 3:00 -7:00 Mexico M%sT 2010 + -7:00 US M%sT 2022 Oct 30 2:00 + -6:00 - CST 2022 Nov 30 0:00 -7:00 US M%sT +# Chihuahua (near US border - eastern side) +# The municipalities of Coyame del Sotol, Ojinaga, and Manuel Benavides. +# http://gaceta.diputados.gob.mx/PDF/65/2a022/nov/20221124-VII.pdf +Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 7:00u + -7:00 - MST 1927 Jun 10 23:00 + -6:00 - CST 1930 Nov 15 + -7:00 Mexico M%sT 1932 Apr 1 + -6:00 - CST 1996 + -6:00 Mexico C%sT 1998 + -6:00 - CST 1998 Apr Sun>=1 3:00 + -7:00 Mexico M%sT 2010 + -7:00 US M%sT 2022 Oct 30 2:00 + -6:00 - CST 2022 Nov 30 0:00 + -6:00 US C%sT # Chihuahua (away from US border) Zone America/Chihuahua -7:04:20 - LMT 1922 Jan 1 7:00u -7:00 - MST 1927 Jun 10 23:00 @@ -2717,7 +2683,8 @@ Zone America/Chihuahua -7:04:20 - LMT 1922 Jan 1 7:00u -6:00 - CST 1996 -6:00 Mexico C%sT 1998 -6:00 - CST 1998 Apr Sun>=1 3:00 - -7:00 Mexico M%sT + -7:00 Mexico M%sT 2022 Oct 30 2:00 + -6:00 - CST # Sonora Zone America/Hermosillo -7:23:52 - LMT 1922 Jan 1 7:00u -7:00 - MST 1927 Jun 10 23:00 @@ -2729,6 +2696,18 @@ Zone America/Hermosillo -7:23:52 - LMT 1922 Jan 1 7:00u -7:00 Mexico M%sT 1999 -7:00 - MST +# Baja California Sur, Nayarit (except Bahía de Banderas), Sinaloa +Zone America/Mazatlan -7:05:40 - LMT 1922 Jan 1 7:00u + -7:00 - MST 1927 Jun 10 23:00 + -6:00 - CST 1930 Nov 15 + -7:00 Mexico M%sT 1932 Apr 1 + -6:00 - CST 1942 Apr 24 + -7:00 - MST 1949 Jan 14 + -8:00 - PST 1970 + -7:00 Mexico M%sT + +# Bahía de Banderas + # From Alexander Krivenyshev (2010-04-21): # According to news, Bahía de Banderas (Mexican state of Nayarit) # changed time zone UTC-7 to new time zone UTC-6 on April 4, 2010 (to @@ -2756,17 +2735,6 @@ Zone America/Hermosillo -7:23:52 - LMT 1922 Jan 1 7:00u # From Arthur David Olson (2010-05-01): # Use "Bahia_Banderas" to keep the name to fourteen characters. -# Mazatlán -Zone America/Mazatlan -7:05:40 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 - -6:00 - CST 1930 Nov 15 - -7:00 Mexico M%sT 1932 Apr 1 - -6:00 - CST 1942 Apr 24 - -7:00 - MST 1949 Jan 14 - -8:00 - PST 1970 - -7:00 Mexico M%sT - -# Bahía de Banderas Zone America/Bahia_Banderas -7:01:00 - LMT 1922 Jan 1 7:00u -7:00 - MST 1927 Jun 10 23:00 -6:00 - CST 1930 Nov 15 @@ -2815,20 +2783,16 @@ Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 7:00u # http://dof.gob.mx/nota_detalle.php?codigo=5127480&fecha=06/01/2010 # It has been moved to the 'backward' file. # +# From Paul Eggert (2022-10-28): +# Today's new law states that the entire state of Baja California +# follows US DST rules, which agrees with simplifications noted above. +# # # Revillagigedo Is # no information ############################################################################### -# Anguilla -# Antigua and Barbuda -# See America/Puerto_Rico. - -# The Bahamas -# See America/Toronto. - - # Barbados # For 1899 Milne gives -3:58:29.2. @@ -3041,12 +3005,6 @@ Zone Atlantic/Bermuda -4:19:18 - LMT 1890 # Hamilton -4:00 Canada A%sT 1976 -4:00 US A%sT -# Caribbean Netherlands -# See America/Puerto_Rico. - -# Cayman Is -# See America/Panama. - # Costa Rica # Milne gives -5:36:13.3 as San José mean time. @@ -3272,9 +3230,6 @@ Zone America/Havana -5:29:28 - LMT 1890 -5:29:36 - HMT 1925 Jul 19 12:00 # Havana MT -5:00 Cuba C%sT -# Dominica -# See America/Puerto_Rico. - # Dominican Republic # From Steffen Thorsen (2000-10-30): @@ -3321,12 +3276,6 @@ Rule Salv 1987 1988 - Sep lastSun 0:00 0 S Zone America/El_Salvador -5:56:48 - LMT 1921 # San Salvador -6:00 Salv C%sT -# Grenada -# Guadeloupe -# St Barthélemy -# St Martin (French part) -# See America/Puerto_Rico. - # Guatemala # # From Gwillim Law (2006-04-22), after a heads-up from Oscar van Vlijmen: @@ -3512,9 +3461,6 @@ Zone America/Martinique -4:04:20 - LMT 1890 # Fort-de-France -4:00 1:00 ADT 1980 Sep 28 -4:00 - AST -# Montserrat -# See America/Puerto_Rico. - # Nicaragua # # This uses Shanks & Pottenger for times before 2005. @@ -3580,44 +3526,39 @@ Zone America/Managua -5:45:08 - LMT 1890 -5:00 - EST 1997 -6:00 Nic C%sT +# Cayman Is # Panama +# +# Atikokan and Coral Harbour, Canada, match Panama since 1970. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Panama -5:18:08 - LMT 1890 -5:19:36 - CMT 1908 Apr 22 # Colón Mean Time -5:00 - EST -Link America/Panama America/Atikokan -Link America/Panama America/Cayman +# Anguilla +# Antigua & Barbuda +# Aruba +# Caribbean Netherlands +# Curaçao +# Dominica +# Grenada +# Guadeloupe +# Montserrat # Puerto Rico +# St Barthélemy +# St Kitts-Nevis +# Sint Maarten / St Martin +# St Lucia +# St Vincent & the Grenadines +# Trinidad & Tobago +# Virgin Is (UK & US) +# # There are too many San Juans elsewhere, so we'll use 'Puerto_Rico'. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Puerto_Rico -4:24:25 - LMT 1899 Mar 28 12:00 # San Juan -4:00 - AST 1942 May 3 -4:00 US A%sT 1946 -4:00 - AST -Link America/Puerto_Rico America/Anguilla -Link America/Puerto_Rico America/Antigua -Link America/Puerto_Rico America/Aruba -Link America/Puerto_Rico America/Curacao -Link America/Puerto_Rico America/Blanc-Sablon # Quebec (Lower North Shore) -Link America/Puerto_Rico America/Dominica -Link America/Puerto_Rico America/Grenada -Link America/Puerto_Rico America/Guadeloupe -Link America/Puerto_Rico America/Kralendijk # Caribbean Netherlands -Link America/Puerto_Rico America/Lower_Princes # Sint Maarten -Link America/Puerto_Rico America/Marigot # St Martin (French part) -Link America/Puerto_Rico America/Montserrat -Link America/Puerto_Rico America/Port_of_Spain # Trinidad & Tobago -Link America/Puerto_Rico America/St_Barthelemy # St Barthélemy -Link America/Puerto_Rico America/St_Kitts # St Kitts & Nevis -Link America/Puerto_Rico America/St_Lucia -Link America/Puerto_Rico America/St_Thomas # Virgin Islands (US) -Link America/Puerto_Rico America/St_Vincent -Link America/Puerto_Rico America/Tortola # Virgin Islands (UK) - -# St Kitts-Nevis -# St Lucia -# See America/Puerto_Rico. # St Pierre and Miquelon # There are too many St Pierres elsewhere, so we'll use 'Miquelon'. @@ -3627,12 +3568,6 @@ Zone America/Miquelon -3:44:40 - LMT 1911 May 15 # St Pierre -3:00 - -03 1987 -3:00 Canada -03/-02 -# St Vincent and the Grenadines -# See America/Puerto_Rico. - -# Sint Maarten -# See America/Puerto_Rico. - # Turks and Caicos # # From Chris Dunn in @@ -3702,11 +3637,6 @@ Zone America/Grand_Turk -4:44:32 - LMT 1890 -4:00 - AST 2018 Mar 11 3:00 -5:00 US E%sT -# British Virgin Is -# US Virgin Is -# See America/Puerto_Rico. - - # Local Variables: # coding: utf-8 # End: diff --git a/jdk/test/sun/util/calendar/zi/tzdata/southamerica b/jdk/test/sun/util/calendar/zi/tzdata/southamerica index 3c0e0e2061c..81fdd793df4 100644 --- a/jdk/test/sun/util/calendar/zi/tzdata/southamerica +++ b/jdk/test/sun/util/calendar/zi/tzdata/southamerica @@ -608,9 +608,6 @@ Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31 -3:00 Arg -03/-02 2008 Oct 18 -3:00 - -03 -# Aruba -# See America/Puerto_Rico. - # Bolivia # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/La_Paz -4:32:36 - LMT 1890 @@ -1444,9 +1441,14 @@ Zone Antarctica/Palmer 0 - -00 1965 # Milne gives 4:56:16.4 for Bogotá time in 1899. He writes, # "A variation of fifteen minutes in the public clocks of Bogota is not rare." +# From Alois Treindl (2022-11-10): +# End of time change in Colombia 1993 ... should be 6 February 24h ... +# DECRETO 267 DE 1993 +# https://www.suin-juriscol.gov.co/viewDocument.asp?ruta=Decretos/1061335 + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S -Rule CO 1992 only - May 3 0:00 1:00 - -Rule CO 1993 only - Apr 4 0:00 0 - +Rule CO 1992 only - May 3 0:00 1:00 - +Rule CO 1993 only - Feb 6 24:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] #STDOFF -4:56:16.4 Zone America/Bogota -4:56:16 - LMT 1884 Mar 13 @@ -1455,15 +1457,6 @@ Zone America/Bogota -4:56:16 - LMT 1884 Mar 13 # Malpelo, Providencia, San Andres # no information; probably like America/Bogota -# Curaçao -# See America/Puerto_Rico. -# -# From Arthur David Olson (2011-06-15): -# use links for places with new iso3166 codes. -# The name "Lower Prince's Quarter" is both longer than fourteen characters -# and contains an apostrophe; use "Lower_Princes".... -# From Paul Eggert (2021-09-29): -# These backward-compatibility links now are in the 'northamerica' file. # Ecuador # @@ -1779,9 +1772,6 @@ Zone America/Paramaribo -3:40:40 - LMT 1911 -3:30 - -0330 1984 Oct -3:00 - -03 -# Trinidad and Tobago -# See America/Puerto_Rico. - # Uruguay # From Paul Eggert (1993-11-18): # Uruguay wins the prize for the strangest peacetime manipulation of the rules. diff --git a/jdk/test/sun/util/calendar/zi/tzdata/zone.tab b/jdk/test/sun/util/calendar/zi/tzdata/zone.tab index ee025196e50..939432d3456 100644 --- a/jdk/test/sun/util/calendar/zi/tzdata/zone.tab +++ b/jdk/test/sun/util/calendar/zi/tzdata/zone.tab @@ -137,13 +137,9 @@ CA +4606-06447 America/Moncton Atlantic - New Brunswick CA +5320-06025 America/Goose_Bay Atlantic - Labrador (most areas) CA +5125-05707 America/Blanc-Sablon AST - QC (Lower North Shore) CA +4339-07923 America/Toronto Eastern - ON, QC (most areas) -CA +4901-08816 America/Nipigon Eastern - ON, QC (no DST 1967-73) -CA +4823-08915 America/Thunder_Bay Eastern - ON (Thunder Bay) -CA +6344-06828 America/Iqaluit Eastern - NU (most east areas) -CA +6608-06544 America/Pangnirtung Eastern - NU (Pangnirtung) +CA +6344-06828 America/Iqaluit Eastern - NU (most areas) CA +484531-0913718 America/Atikokan EST - ON (Atikokan); NU (Coral H) CA +4953-09709 America/Winnipeg Central - ON (west); Manitoba -CA +4843-09434 America/Rainy_River Central - ON (Rainy R, Ft Frances) CA +744144-0944945 America/Resolute Central - NU (Resolute) CA +624900-0920459 America/Rankin_Inlet Central - NU (central) CA +5024-10439 America/Regina CST - SK (most areas) @@ -303,17 +299,18 @@ MT +3554+01431 Europe/Malta MU -2010+05730 Indian/Mauritius MV +0410+07330 Indian/Maldives MW -1547+03500 Africa/Blantyre -MX +1924-09909 America/Mexico_City Central Time -MX +2105-08646 America/Cancun Eastern Standard Time - Quintana Roo -MX +2058-08937 America/Merida Central Time - Campeche, Yucatan -MX +2540-10019 America/Monterrey Central Time - Durango; Coahuila, Nuevo Leon, Tamaulipas (most areas) -MX +2550-09730 America/Matamoros Central Time US - Coahuila, Nuevo Leon, Tamaulipas (US border) -MX +2313-10625 America/Mazatlan Mountain Time - Baja California Sur, Nayarit, Sinaloa -MX +2838-10605 America/Chihuahua Mountain Time - Chihuahua (most areas) -MX +2934-10425 America/Ojinaga Mountain Time US - Chihuahua (US border) -MX +2904-11058 America/Hermosillo Mountain Standard Time - Sonora -MX +3232-11701 America/Tijuana Pacific Time US - Baja California -MX +2048-10515 America/Bahia_Banderas Central Time - Bahia de Banderas +MX +1924-09909 America/Mexico_City Central Mexico +MX +2105-08646 America/Cancun Quintana Roo +MX +2058-08937 America/Merida Campeche, Yucatan +MX +2540-10019 America/Monterrey Durango; Coahuila, Nuevo Leon, Tamaulipas (most areas) +MX +2550-09730 America/Matamoros Coahuila, Nuevo Leon, Tamaulipas (US border) +MX +2838-10605 America/Chihuahua Chihuahua (most areas) +MX +3144-10629 America/Ciudad_Juarez Chihuahua (US border - west) +MX +2934-10425 America/Ojinaga Chihuahua (US border - east) +MX +2313-10625 America/Mazatlan Baja California Sur, Nayarit (most areas), Sinaloa +MX +2048-10515 America/Bahia_Banderas Bahia de Banderas +MX +2904-11058 America/Hermosillo Sonora +MX +3232-11701 America/Tijuana Baja California MY +0310+10142 Asia/Kuala_Lumpur Malaysia (peninsula) MY +0133+11020 Asia/Kuching Sabah, Sarawak MZ -2558+03235 Africa/Maputo