mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-11 11:59:38 +01:00
Compare commits
9 Commits
jdk-11.0.2
...
jdk-11.0.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
86dddbcda6 | ||
|
|
6139332080 | ||
|
|
6d12f92616 | ||
|
|
aad0315a00 | ||
|
|
1fafc5d236 | ||
|
|
9ee1571d04 | ||
|
|
d158b8baef | ||
|
|
dba357f027 | ||
|
|
bbe28d9278 |
21
.github/scripts/gen-build-failure-report.sh
vendored
21
.github/scripts/gen-build-failure-report.sh
vendored
@@ -24,12 +24,19 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
# Import common utils
|
||||
. .github/scripts/report-utils.sh
|
||||
|
||||
GITHUB_STEP_SUMMARY="$1"
|
||||
BUILD_DIR="$(ls -d build/*)"
|
||||
|
||||
# Send signal to the do-build action that we failed
|
||||
touch "$BUILD_DIR/build-failure"
|
||||
|
||||
# Collect hs_errs for build-time crashes, e.g. javac, jmod, jlink, CDS.
|
||||
# These usually land in make/
|
||||
hs_err_files=$(ls make/hs_err*.log 2> /dev/null || true)
|
||||
|
||||
(
|
||||
echo '### :boom: Build failure summary'
|
||||
echo ''
|
||||
@@ -46,6 +53,20 @@ touch "$BUILD_DIR/build-failure"
|
||||
echo '</details>'
|
||||
echo ''
|
||||
|
||||
for hs_err in $hs_err_files; do
|
||||
echo "<details><summary><b>View HotSpot error log: "$hs_err"</b></summary>"
|
||||
echo ''
|
||||
echo '```'
|
||||
echo "$hs_err:"
|
||||
echo ''
|
||||
cat "$hs_err"
|
||||
echo '```'
|
||||
echo '</details>'
|
||||
echo ''
|
||||
done
|
||||
|
||||
echo ''
|
||||
echo ':arrow_right: To see the entire test log, click the job in the list to the left. To download logs, see the `failure-logs` [artifact above](#artifacts).'
|
||||
) >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
truncate_summary
|
||||
|
||||
19
.github/scripts/gen-test-results.sh
vendored
19
.github/scripts/gen-test-results.sh
vendored
@@ -24,6 +24,9 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
# Import common utils
|
||||
. .github/scripts/report-utils.sh
|
||||
|
||||
GITHUB_STEP_SUMMARY="$1"
|
||||
|
||||
test_suite_name=$(cat build/run-test-prebuilt/test-support/test-last-ids.txt)
|
||||
@@ -75,18 +78,6 @@ for test in $failures $errors; do
|
||||
|
||||
done >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
# With many failures, the summary can easily exceed 1024 kB, the limit set by Github
|
||||
# Trim it down if so.
|
||||
summary_size=$(wc -c < $GITHUB_STEP_SUMMARY)
|
||||
if [[ $summary_size -gt 1000000 ]]; then
|
||||
# Trim to below 1024 kB, and cut off after the last detail group
|
||||
head -c 1000000 $GITHUB_STEP_SUMMARY | tac | sed -n -e '/<\/details>/,$ p' | tac > $GITHUB_STEP_SUMMARY.tmp
|
||||
mv $GITHUB_STEP_SUMMARY.tmp $GITHUB_STEP_SUMMARY
|
||||
(
|
||||
echo ''
|
||||
echo ':x: **WARNING: Summary is too large and has been truncated.**'
|
||||
echo ''
|
||||
) >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
|
||||
echo ':arrow_right: To see the entire test log, click the job in the list to the left.' >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
truncate_summary
|
||||
|
||||
41
.github/scripts/report-utils.sh
vendored
Normal file
41
.github/scripts/report-utils.sh
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2024, 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.
|
||||
#
|
||||
|
||||
function truncate_summary() {
|
||||
# With large hs_errs, the summary can easily exceed 1024 kB, the limit set by Github
|
||||
# Trim it down if so.
|
||||
summary_size=$(wc -c < $GITHUB_STEP_SUMMARY)
|
||||
if [[ $summary_size -gt 1000000 ]]; then
|
||||
# Trim to below 1024 kB, and cut off after the last detail group
|
||||
head -c 1000000 $GITHUB_STEP_SUMMARY | tac | sed -n -e '/<\/details>/,$ p' | tac > $GITHUB_STEP_SUMMARY.tmp
|
||||
mv $GITHUB_STEP_SUMMARY.tmp $GITHUB_STEP_SUMMARY
|
||||
(
|
||||
echo ''
|
||||
echo ':x: **WARNING: Summary is too large and has been truncated.**'
|
||||
echo ''
|
||||
) >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
}
|
||||
@@ -29,13 +29,13 @@ GTEST_VERSION=1.8.1
|
||||
JTREG_VERSION=7.3.1+1
|
||||
|
||||
LINUX_X64_BOOT_JDK_EXT=tar.gz
|
||||
LINUX_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.23%2B9/OpenJDK11U-jdk_x64_linux_hotspot_11.0.23_9.tar.gz
|
||||
LINUX_X64_BOOT_JDK_SHA256=23e47ea7a3015be3240f21185fd902adebdcf76530757c9b482c7eb5bd3417c2
|
||||
|
||||
WINDOWS_X64_BOOT_JDK_EXT=zip
|
||||
WINDOWS_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.23%2B9/OpenJDK11U-jdk_x64_windows_hotspot_11.0.23_9.zip
|
||||
WINDOWS_X64_BOOT_JDK_SHA256=d7a9f8ceee9a5785dcbbcbec20a07b1366efec59ba652ef7e03f6f7d10f52b85
|
||||
LINUX_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.26%2B4/OpenJDK11U-jdk_x64_linux_hotspot_11.0.26_4.tar.gz
|
||||
LINUX_X64_BOOT_JDK_SHA256=7def4c5807b38ef1a7bb30a86572a795ca604127cc8d1f5b370abf23618104e6
|
||||
|
||||
MACOS_X64_BOOT_JDK_EXT=tar.gz
|
||||
MACOS_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.23%2B9/OpenJDK11U-jdk_x64_mac_hotspot_11.0.23_9.tar.gz
|
||||
MACOS_X64_BOOT_JDK_SHA256=4dbd21d9a0311d321f5886eda50c3086026ed61d02e1a85f7b8c2e9ad557bf03
|
||||
MACOS_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.26%2B4/OpenJDK11U-jdk_x64_mac_hotspot_11.0.26_4.tar.gz
|
||||
MACOS_X64_BOOT_JDK_SHA256=b0142c2c85da43bb3565321164e8129b1166de5d6a43c88e567a92c39128c003
|
||||
|
||||
WINDOWS_X64_BOOT_JDK_EXT=zip
|
||||
WINDOWS_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.26%2B4/OpenJDK11U-jdk_x64_windows_hotspot_11.0.26_4.zip
|
||||
WINDOWS_X64_BOOT_JDK_SHA256=a221ae370f609f00e5869c385f4853fecb622a99f8637b95c22ec66c04e15051
|
||||
|
||||
@@ -21,4 +21,4 @@
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
tzdata2024b
|
||||
tzdata2025a
|
||||
|
||||
@@ -197,6 +197,8 @@ Zone Antarctica/Mawson 0 - -00 1954 Feb 13
|
||||
|
||||
# France & Italy - year-round base
|
||||
# Concordia, -750600+1232000, since 2005
|
||||
# https://en.wikipedia.org/wiki/Concordia_Station
|
||||
# Can use Asia/Singapore, which it has agreed with since inception.
|
||||
|
||||
# Germany - year-round base
|
||||
# Neumayer III, -704080-0081602, since 2009
|
||||
|
||||
@@ -3688,21 +3688,70 @@ Zone Asia/Hebron 2:20:23 - LMT 1900 Oct
|
||||
# be immediately followed by 1845-01-01; see R.H. van Gent's
|
||||
# History of the International Date Line
|
||||
# https://webspace.science.uu.nl/~gent0113/idl/idl_philippines.htm
|
||||
# The rest of the data entries are from Shanks & Pottenger.
|
||||
|
||||
# From Jesper Nørgaard Welen (2006-04-26):
|
||||
# ... claims that Philippines had DST last time in 1990:
|
||||
# http://story.philippinetimes.com/p.x/ct/9/id/145be20cc6b121c0/cid/3e5bbccc730d258c/
|
||||
# [a story dated 2006-04-25 by Cris Larano of Dow Jones Newswires,
|
||||
# but no details]
|
||||
|
||||
# From Paul Eggert (2014-08-14):
|
||||
# The following source says DST may be instituted November-January and again
|
||||
# March-June, but this is not definite. It also says DST was last proclaimed
|
||||
# during the Ramos administration (1992-1998); but again, no details.
|
||||
# Carcamo D. PNoy urged to declare use of daylight saving time.
|
||||
# Philippine Star 2014-08-05
|
||||
# http://www.philstar.com/headlines/2014/08/05/1354152/pnoy-urged-declare-use-daylight-saving-time
|
||||
# From P Chan (2021-05-10):
|
||||
# Here's a fairly comprehensive article in Japanese:
|
||||
# https://wiki.suikawiki.org/n/Philippine%20Time
|
||||
# (2021-05-16):
|
||||
# According to the references listed in the article,
|
||||
# the periods that the Philippines (Manila) observed DST or used +9 are:
|
||||
#
|
||||
# 1936-10-31 24:00 to 1937-01-15 24:00
|
||||
# (Proclamation No. 104, Proclamation No. 126)
|
||||
# 1941-12-15 24:00 to 1945-11-30 24:00
|
||||
# (Proclamation No. 789, Proclamation No. 20)
|
||||
# 1954-04-11 24:00 to 1954-06-04 24:00
|
||||
# (Proclamation No. 13, Proclamation No. 33)
|
||||
# 1977-03-27 24:00 to 1977-09-21 24:00
|
||||
# (Proclamation No. 1629, Proclamation No. 1641)
|
||||
# 1990-05-21 00:00 to 1990-07-28 24:00
|
||||
# (National Emergency Memorandum Order No. 17, Executive Order No. 415)
|
||||
#
|
||||
# Proclamation No. 104 ... October 30, 1936
|
||||
# https://www.officialgazette.gov.ph/1936/10/30/proclamation-no-104-s-1936/
|
||||
# Proclamation No. 126 ... January 15, 1937
|
||||
# https://www.officialgazette.gov.ph/1937/01/15/proclamation-no-126-s-1937/
|
||||
# Proclamation No. 789 ... December 13, 1941
|
||||
# https://www.officialgazette.gov.ph/1941/12/13/proclamation-no-789-s-1941/
|
||||
# Proclamation No. 20 ... November 11, 1945
|
||||
# https://www.officialgazette.gov.ph/1945/11/11/proclamation-no-20-s-1945/
|
||||
# Proclamation No. 13 ... April 6, 1954
|
||||
# https://www.officialgazette.gov.ph/1954/04/06/proclamation-no-13-s-1954/
|
||||
# Proclamation No. 33 ... June 3, 1954
|
||||
# https://www.officialgazette.gov.ph/1954/06/03/proclamation-no-33-s-1954/
|
||||
# Proclamation No. 1629 ... March 25, 1977
|
||||
# https://www.officialgazette.gov.ph/1977/03/25/proclamation-no-1629-s-1977/
|
||||
# Proclamation No. 1641 ...May 26, 1977
|
||||
# https://www.officialgazette.gov.ph/1977/05/26/proclamation-no-1641-s-1977/
|
||||
# National Emergency Memorandum Order No. 17 ... May 2, 1990
|
||||
# https://www.officialgazette.gov.ph/1990/05/02/national-emergency-memorandum-order-no-17-s-1990/
|
||||
# Executive Order No. 415 ... July 20, 1990
|
||||
# https://www.officialgazette.gov.ph/1990/07/20/executive-order-no-415-s-1990/
|
||||
#
|
||||
# During WWII, Proclamation No. 789 fixed two periods of DST. The first period
|
||||
# was set to continue only until January 31, 1942. But Manila was occupied by
|
||||
# the Japanese earlier in the month....
|
||||
#
|
||||
# For the date of the adoption of standard time, Shank[s] gives 1899-05-11.
|
||||
# The article is not able to state the basis of that. I guess it was based on
|
||||
# a US War Department Circular issued on that date.
|
||||
# https://books.google.com/books?id=JZ1PAAAAYAAJ&pg=RA3-PA8
|
||||
#
|
||||
# However, according to other sources, standard time was adopted on
|
||||
# 1899-09-06. Also, the LMT was GMT+8:03:52
|
||||
# https://books.google.com/books?id=MOYIAQAAIAAJ&pg=PA521
|
||||
# https://books.google.com/books?id=lSnqqatpYikC&pg=PA21
|
||||
#
|
||||
# From Paul Eggert (2024-09-05):
|
||||
# The penultimate URL in P Chan's email refers to page 521 of
|
||||
# Selga M, The Time Service in the Philippines.
|
||||
# Proc Pan-Pacific Science Congress. Vol. 1 (1923), 519-532.
|
||||
# It says, "The change from the meridian 120° 58' 04" to the 120th implied a
|
||||
# change of 3 min. 52s.26 in time; consequently on 6th September, 1899,
|
||||
# Manila Observatory gave the noon signal 3 min. 52s.26 later than before".
|
||||
#
|
||||
# Wikipedia says the US declared Manila liberated on March 4, 1945;
|
||||
# this doesn't affect clocks, just our time zone abbreviation and DST flag.
|
||||
|
||||
# From Paul Goyette (2018-06-15) with URLs updated by Guy Harris (2024-02-15):
|
||||
# In the Philippines, there is a national law, Republic Act No. 10535
|
||||
@@ -3720,24 +3769,26 @@ Zone Asia/Hebron 2:20:23 - LMT 1900 Oct
|
||||
# influence of the sources. There is no current abbreviation for DST,
|
||||
# so use "PDT", the usual American style.
|
||||
|
||||
# From P Chan (2021-05-10):
|
||||
# Here's a fairly comprehensive article in Japanese:
|
||||
# https://wiki.suikawiki.org/n/Philippine%20Time
|
||||
# From Paul Eggert (2021-05-10):
|
||||
# The info in the Japanese table has not been absorbed (yet) below.
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule Phil 1936 only - Nov 1 0:00 1:00 D
|
||||
Rule Phil 1937 only - Feb 1 0:00 0 S
|
||||
Rule Phil 1954 only - Apr 12 0:00 1:00 D
|
||||
Rule Phil 1954 only - Jul 1 0:00 0 S
|
||||
Rule Phil 1978 only - Mar 22 0:00 1:00 D
|
||||
Rule Phil 1978 only - Sep 21 0:00 0 S
|
||||
Rule Phil 1936 only - Oct 31 24:00 1:00 D
|
||||
Rule Phil 1937 only - Jan 15 24:00 0 S
|
||||
Rule Phil 1941 only - Dec 15 24:00 1:00 D
|
||||
# The following three rules were canceled by Japan:
|
||||
#Rule Phil 1942 only - Jan 31 24:00 0 S
|
||||
#Rule Phil 1942 only - Mar 1 0:00 1:00 D
|
||||
#Rule Phil 1942 only - Jun 30 24:00 0 S
|
||||
Rule Phil 1945 only - Nov 30 24:00 0 S
|
||||
Rule Phil 1954 only - Apr 11 24:00 1:00 D
|
||||
Rule Phil 1954 only - Jun 4 24:00 0 S
|
||||
Rule Phil 1977 only - Mar 27 24:00 1:00 D
|
||||
Rule Phil 1977 only - Sep 21 24:00 0 S
|
||||
Rule Phil 1990 only - May 21 0:00 1:00 D
|
||||
Rule Phil 1990 only - Jul 28 24:00 0 S
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Asia/Manila -15:56:00 - LMT 1844 Dec 31
|
||||
8:04:00 - LMT 1899 May 11
|
||||
8:00 Phil P%sT 1942 May
|
||||
9:00 - JST 1944 Nov
|
||||
Zone Asia/Manila -15:56:08 - LMT 1844 Dec 31
|
||||
8:03:52 - LMT 1899 Sep 6 4:00u
|
||||
8:00 Phil P%sT 1942 Feb 11 24:00
|
||||
9:00 - JST 1945 Mar 4
|
||||
8:00 Phil P%sT
|
||||
|
||||
# Bahrain
|
||||
|
||||
@@ -1262,10 +1262,10 @@ Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila
|
||||
# The 1992 ending date used in the rules is a best guess;
|
||||
# it matches what was used in the past.
|
||||
|
||||
# The Australian Bureau of Meteorology FAQ
|
||||
# http://www.bom.gov.au/faq/faqgen.htm
|
||||
# (1999-09-27) writes that Giles Meteorological Station uses
|
||||
# South Australian time even though it's located in Western Australia.
|
||||
# From Christopher Hunt (2006-11-21), after an advance warning
|
||||
# from Jesper Nørgaard Welen (2006-11-01):
|
||||
# WA are trialing DST for three years.
|
||||
# http://www.parliament.wa.gov.au/parliament/bills.nsf/9A1B183144403DA54825721200088DF1/$File/Bill175-1B.pdf
|
||||
|
||||
# From Paul Eggert (2018-04-01):
|
||||
# The Guardian Express of Perth, Australia reported today that the
|
||||
@@ -1277,54 +1277,10 @@ Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila
|
||||
# https://www.communitynews.com.au/guardian-express/news/exclusive-daylight-savings-coming-wa-summer-2018/
|
||||
# [The article ends with "Today's date is April 1."]
|
||||
|
||||
# Queensland
|
||||
|
||||
# From Paul Eggert (2018-02-26):
|
||||
# I lack access to the following source for Queensland DST:
|
||||
# Pearce C. History of daylight saving time in Queensland.
|
||||
# Queensland Hist J. 2017 Aug;23(6):389-403
|
||||
# https://search.informit.com.au/documentSummary;dn=994682348436426;res=IELHSS
|
||||
|
||||
# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
|
||||
# # The state of QUEENSLAND.. [ Courtesy Qld. Dept Premier Econ&Trade Devel ]
|
||||
# # [ Dec 1990 ]
|
||||
# ...
|
||||
# Zone Australia/Queensland 10:00 AQ %sST
|
||||
# ...
|
||||
# Rule AQ 1971 only - Oct lastSun 2:00 1:00 D
|
||||
# Rule AQ 1972 only - Feb lastSun 3:00 0 E
|
||||
# Rule AQ 1989 max - Oct lastSun 2:00 1:00 D
|
||||
# Rule AQ 1990 max - Mar Sun>=1 3:00 0 E
|
||||
|
||||
# From Bradley White (1989-12-24):
|
||||
# "Australia/Queensland" now observes daylight time (i.e. from
|
||||
# October 1989).
|
||||
|
||||
# From Bradley White (1991-03-04):
|
||||
# A recent excerpt from an Australian newspaper...
|
||||
# ...Queensland...[has] agreed to end daylight saving
|
||||
# at 3am tomorrow (March 3)...
|
||||
|
||||
# From John Mackin (1991-03-06):
|
||||
# I can certainly confirm for my part that Daylight Saving in NSW did in fact
|
||||
# end on Sunday, 3 March. I don't know at what hour, though. (It surprised
|
||||
# me.)
|
||||
|
||||
# From Bradley White (1992-03-08):
|
||||
# ...there was recently a referendum in Queensland which resulted
|
||||
# in the experimental daylight saving system being abandoned. So, ...
|
||||
# ...
|
||||
# Rule QLD 1989 1991 - Oct lastSun 2:00 1:00 D
|
||||
# Rule QLD 1990 1992 - Mar Sun>=1 3:00 0 S
|
||||
# ...
|
||||
|
||||
# From Arthur David Olson (1992-03-08):
|
||||
# The chosen rules the union of the 1971/1972 change and the 1989-1992 changes.
|
||||
|
||||
# From Christopher Hunt (2006-11-21), after an advance warning
|
||||
# from Jesper Nørgaard Welen (2006-11-01):
|
||||
# WA are trialing DST for three years.
|
||||
# http://www.parliament.wa.gov.au/parliament/bills.nsf/9A1B183144403DA54825721200088DF1/$File/Bill175-1B.pdf
|
||||
# The Australian Bureau of Meteorology FAQ
|
||||
# http://www.bom.gov.au/faq/faqgen.htm
|
||||
# (1999-09-27) writes that Giles Meteorological Station uses
|
||||
# South Australian time even though it's located in Western Australia.
|
||||
|
||||
# From Rives McDow (2002-04-09):
|
||||
# The most interesting region I have found consists of three towns on the
|
||||
@@ -1382,6 +1338,59 @@ Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila
|
||||
# For lack of better info, assume the tradition dates back to the
|
||||
# introduction of standard time in 1895.
|
||||
|
||||
# From Stuart Bishop (2024-11-12):
|
||||
# An article discussing the in-use but technically unofficial timezones
|
||||
# in the Western Australian portion of the Nullarbor Plain.
|
||||
# https://www.abc.net.au/news/2024-11-22/outback-wa-properties-strange-time-zones/104542494
|
||||
# From Paul Eggert (2024-11-12):
|
||||
# As the article says, the Eyre Bird Observatory and nearby sheep stations
|
||||
# can use Tokyo time. Other possibilities include Asia/Chita, Asia/Seoul,
|
||||
# and Asia/Jayapura.
|
||||
|
||||
# Queensland
|
||||
|
||||
# From Paul Eggert (2018-02-26):
|
||||
# I lack access to the following source for Queensland DST:
|
||||
# Pearce C. History of daylight saving time in Queensland.
|
||||
# Queensland Hist J. 2017 Aug;23(6):389-403
|
||||
# https://search.informit.com.au/documentSummary;dn=994682348436426;res=IELHSS
|
||||
|
||||
# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
|
||||
# # The state of QUEENSLAND.. [ Courtesy Qld. Dept Premier Econ&Trade Devel ]
|
||||
# # [ Dec 1990 ]
|
||||
# ...
|
||||
# Zone Australia/Queensland 10:00 AQ %sST
|
||||
# ...
|
||||
# Rule AQ 1971 only - Oct lastSun 2:00 1:00 D
|
||||
# Rule AQ 1972 only - Feb lastSun 3:00 0 E
|
||||
# Rule AQ 1989 max - Oct lastSun 2:00 1:00 D
|
||||
# Rule AQ 1990 max - Mar Sun>=1 3:00 0 E
|
||||
|
||||
# From Bradley White (1989-12-24):
|
||||
# "Australia/Queensland" now observes daylight time (i.e. from
|
||||
# October 1989).
|
||||
|
||||
# From Bradley White (1991-03-04):
|
||||
# A recent excerpt from an Australian newspaper...
|
||||
# ...Queensland...[has] agreed to end daylight saving
|
||||
# at 3am tomorrow (March 3)...
|
||||
|
||||
# From John Mackin (1991-03-06):
|
||||
# I can certainly confirm for my part that Daylight Saving in NSW did in fact
|
||||
# end on Sunday, 3 March. I don't know at what hour, though. (It surprised
|
||||
# me.)
|
||||
|
||||
# From Bradley White (1992-03-08):
|
||||
# ...there was recently a referendum in Queensland which resulted
|
||||
# in the experimental daylight saving system being abandoned. So, ...
|
||||
# ...
|
||||
# Rule QLD 1989 1991 - Oct lastSun 2:00 1:00 D
|
||||
# Rule QLD 1990 1992 - Mar Sun>=1 3:00 0 S
|
||||
# ...
|
||||
|
||||
# From Arthur David Olson (1992-03-08):
|
||||
# The chosen rules the union of the 1971/1972 change and the 1989-1992 changes.
|
||||
|
||||
|
||||
# southeast Australia
|
||||
#
|
||||
|
||||
@@ -74,6 +74,10 @@ Link Etc/GMT GMT
|
||||
# so we moved the names into the Etc subdirectory.
|
||||
# Also, the time zone abbreviations are now compatible with %z.
|
||||
|
||||
# There is no "Etc/Unknown" entry, as CLDR says that "Etc/Unknown"
|
||||
# corresponds to an unknown or invalid time zone, and things would get
|
||||
# confusing if Etc/Unknown were made valid here.
|
||||
|
||||
Zone Etc/GMT-14 14 - %z
|
||||
Zone Etc/GMT-13 13 - %z
|
||||
Zone Etc/GMT-12 12 - %z
|
||||
|
||||
@@ -1170,7 +1170,7 @@ Zone Atlantic/Faroe -0:27:04 - LMT 1908 Jan 11 # Tórshavn
|
||||
# However, Greenland will change to Daylight Saving Time again in 2024
|
||||
# and onwards.
|
||||
|
||||
# From a contributor who wishes to remain anonymous for now (2023-10-29):
|
||||
# From Jule Dabars (2023-10-29):
|
||||
# https://www.dr.dk/nyheder/seneste/i-nat-skal-uret-stilles-en-time-tilbage-men-foerste-gang-sker-det-ikke-i-groenland
|
||||
# with a link to that page:
|
||||
# https://naalakkersuisut.gl/Nyheder/2023/10/2710_sommertid
|
||||
|
||||
@@ -31,5 +31,15 @@
|
||||
# time zone abbreviation "-00", indicating that the actual time zone
|
||||
# is unknown.
|
||||
|
||||
# TZ="Factory" was added to TZDB in 1989, and in 2016 its abbreviation
|
||||
# was changed to "-00" from a longish English-language error message.
|
||||
# Around 2010, CLDR added "Etc/Unknown" for use with TZDB, to stand
|
||||
# for an unknown or invalid time zone. These two notions differ:
|
||||
# TZ="Factory" is a valid timezone, so tzalloc("Factory") succeeds, whereas
|
||||
# TZ="Etc/Unknown" is invalid and tzalloc("Etc/Unknown") fails.
|
||||
# Also, a downstream distributor could modify Factory to be a
|
||||
# default timezone suitable for the devices it manufactures,
|
||||
# whereas that cannot happen for Etc/Unknown.
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT
|
||||
Zone Factory 0 - -00
|
||||
|
||||
@@ -92,11 +92,11 @@ Leap 2016 Dec 31 23:59:60 + S
|
||||
# Any additional leap seconds will come after this.
|
||||
# This Expires line is commented out for now,
|
||||
# so that pre-2020a zic implementations do not reject this file.
|
||||
#Expires 2025 Jun 28 00:00:00
|
||||
#Expires 2025 Dec 28 00:00:00
|
||||
|
||||
# POSIX timestamps for the data in this file:
|
||||
#updated 1720104763 (2024-07-04 14:52:43 UTC)
|
||||
#expires 1751068800 (2025-06-28 00:00:00 UTC)
|
||||
#updated 1736208000 (2025-01-07 00:00:00 UTC)
|
||||
#expires 1766880000 (2025-12-28 00:00:00 UTC)
|
||||
|
||||
# Updated through IERS Bulletin C (https://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat)
|
||||
# File expires on 28 June 2025
|
||||
# File expires on 28 December 2025
|
||||
|
||||
@@ -50,9 +50,12 @@
|
||||
# in New York City (1869-10). His 1870 proposal was based on Washington, DC,
|
||||
# but in 1872-05 he moved the proposed origin to Greenwich.
|
||||
|
||||
# From Paul Eggert (2018-03-20):
|
||||
# From Paul Eggert (2024-11-18):
|
||||
# Dowd's proposal left many details unresolved, such as where to draw
|
||||
# lines between time zones. The key individual who made time zones
|
||||
# lines between time zones. Sandford Fleming of the Canadian Pacific Railway
|
||||
# argued for Dowd's proposal in 1876, and Cleveland Abbe of the American
|
||||
# Meteorology Society published a report in 1879 recommending four US time
|
||||
# zones based on GMT. However, the key individual who made time zones
|
||||
# work in the US was William Frederick Allen - railway engineer,
|
||||
# managing editor of the Travelers' Guide, and secretary of the
|
||||
# General Time Convention, a railway standardization group. Allen
|
||||
@@ -2654,7 +2657,7 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
|
||||
# http://puentelibre.mx/noticia/ciudad_juarez_cambio_horario_noviembre_2022/
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule Mexico 1931 only - April 30 0:00 1:00 D
|
||||
Rule Mexico 1931 only - Apr 30 0:00 1:00 D
|
||||
Rule Mexico 1931 only - Oct 1 0:00 0 S
|
||||
Rule Mexico 1939 only - Feb 5 0:00 1:00 D
|
||||
Rule Mexico 1939 only - Jun 25 0:00 0 S
|
||||
|
||||
@@ -1710,7 +1710,7 @@ Rule Para 2005 2009 - Mar Sun>=8 0:00 0 -
|
||||
# and that on the first Sunday of the month of October, it is to be set
|
||||
# forward 60 minutes, in all the territory of the Paraguayan Republic.
|
||||
# ...
|
||||
Rule Para 2010 max - Oct Sun>=1 0:00 1:00 -
|
||||
Rule Para 2010 2024 - Oct Sun>=1 0:00 1:00 -
|
||||
Rule Para 2010 2012 - Apr Sun>=8 0:00 0 -
|
||||
#
|
||||
# From Steffen Thorsen (2013-03-07):
|
||||
@@ -1729,14 +1729,35 @@ Rule Para 2010 2012 - Apr Sun>=8 0:00 0 -
|
||||
# https://www.abc.com.py/politica/2023/07/12/promulgacion-el-cambio-de-hora-sera-por-ley/
|
||||
# From Carlos Raúl Perasso (2023-07-27):
|
||||
# http://silpy.congreso.gov.py/descarga/ley-144138
|
||||
Rule Para 2013 max - Mar Sun>=22 0:00 0 -
|
||||
Rule Para 2013 2024 - Mar Sun>=22 0:00 0 -
|
||||
#
|
||||
# From Heitor David Pinto (2024-09-24):
|
||||
# Today the Congress of Paraguay passed a bill to observe UTC-3 permanently....
|
||||
# The text of the bill says that it would enter into force on the first
|
||||
# Sunday in October 2024, the same date currently scheduled to start DST....
|
||||
# https://silpy.congreso.gov.py/web/expediente/132531
|
||||
# (2024-10-14):
|
||||
# The president approved the law on 11 October 2024,
|
||||
# and it was officially published on 14 October 2024.
|
||||
# https://www.gacetaoficial.gov.py/index/detalle_publicacion/89723
|
||||
# The text of the law says that it enters into force on the first
|
||||
# Sunday in October 2024 (6 October 2024). But the constitution
|
||||
# prohibits retroactive effect, and the civil code says that laws
|
||||
# enter into force on the day after their publication or on the day
|
||||
# that they specify, and it also says that they don't have retroactive
|
||||
# effect. So I think that the time change on 6 October 2024 should
|
||||
# still be considered as DST according to the previous law, and
|
||||
# permanently UTC-3 from 15 October 2024 according to the new law....
|
||||
# https://www.constituteproject.org/constitution/Paraguay_2011
|
||||
# https://www.oas.org/dil/esp/codigo_civil_paraguay.pdf
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Asuncion -3:50:40 - LMT 1890
|
||||
-3:50:40 - AMT 1931 Oct 10 # Asunción Mean Time
|
||||
-4:00 - %z 1972 Oct
|
||||
-3:00 - %z 1974 Apr
|
||||
-4:00 Para %z
|
||||
-4:00 Para %z 2024 Oct 15
|
||||
-3:00 - %z
|
||||
|
||||
# Peru
|
||||
#
|
||||
|
||||
@@ -42,8 +42,6 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class ClassLoadUnloadTest {
|
||||
private static OutputAnalyzer out;
|
||||
private static ProcessBuilder pb;
|
||||
private static class ClassUnloadTestMain {
|
||||
public static void main(String... args) throws Exception {
|
||||
String className = "test.Empty";
|
||||
@@ -54,79 +52,78 @@ public class ClassLoadUnloadTest {
|
||||
}
|
||||
}
|
||||
|
||||
static void checkFor(String... outputStrings) throws Exception {
|
||||
out = new OutputAnalyzer(pb.start());
|
||||
static void checkFor(OutputAnalyzer output, String... outputStrings) throws Exception {
|
||||
for (String s: outputStrings) {
|
||||
out.shouldContain(s);
|
||||
output.shouldContain(s);
|
||||
}
|
||||
out.shouldHaveExitValue(0);
|
||||
}
|
||||
|
||||
static void checkAbsent(String... outputStrings) throws Exception {
|
||||
out = new OutputAnalyzer(pb.start());
|
||||
static void checkAbsent(OutputAnalyzer output, String... outputStrings) throws Exception {
|
||||
for (String s: outputStrings) {
|
||||
out.shouldNotContain(s);
|
||||
output.shouldNotContain(s);
|
||||
}
|
||||
out.shouldHaveExitValue(0);
|
||||
}
|
||||
|
||||
// Use the same command-line heap size setting as ../ClassUnload/UnloadTest.java
|
||||
static ProcessBuilder exec(String... args) throws Exception {
|
||||
static OutputAnalyzer exec(String... args) throws Exception {
|
||||
List<String> argsList = new ArrayList<>();
|
||||
Collections.addAll(argsList, args);
|
||||
Collections.addAll(argsList, "-Xmn8m");
|
||||
Collections.addAll(argsList, "-Dtest.class.path=" + System.getProperty("test.class.path", "."));
|
||||
Collections.addAll(argsList, "-XX:+ClassUnloading");
|
||||
Collections.addAll(argsList, ClassUnloadTestMain.class.getName());
|
||||
return ProcessTools.createJavaProcessBuilder(argsList);
|
||||
Collections.addAll(argsList, "-Xmn8m", "-Dtest.class.path=" + System.getProperty("test.class.path", "."),
|
||||
"-XX:+ClassUnloading", ClassUnloadTestMain.class.getName());
|
||||
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(argsList);
|
||||
OutputAnalyzer output = new OutputAnalyzer(pb.start());
|
||||
output.shouldHaveExitValue(0);
|
||||
return output;
|
||||
}
|
||||
|
||||
public static void main(String... args) throws Exception {
|
||||
|
||||
OutputAnalyzer output;
|
||||
|
||||
// -Xlog:class+unload=info
|
||||
pb = exec("-Xlog:class+unload=info");
|
||||
checkFor("[class,unload]", "unloading class");
|
||||
output = exec("-Xlog:class+unload=info");
|
||||
checkFor(output, "[class,unload]", "unloading class");
|
||||
|
||||
// -Xlog:class+unload=off
|
||||
pb = exec("-Xlog:class+unload=off");
|
||||
checkAbsent("[class,unload]");
|
||||
output = exec("-Xlog:class+unload=off");
|
||||
checkAbsent(output,"[class,unload]");
|
||||
|
||||
// -XX:+TraceClassUnloading
|
||||
pb = exec("-XX:+TraceClassUnloading");
|
||||
checkFor("[class,unload]", "unloading class");
|
||||
output = exec("-XX:+TraceClassUnloading");
|
||||
checkFor(output, "[class,unload]", "unloading class");
|
||||
|
||||
// -XX:-TraceClassUnloading
|
||||
pb = exec("-XX:-TraceClassUnloading");
|
||||
checkAbsent("[class,unload]");
|
||||
output = exec("-XX:-TraceClassUnloading");
|
||||
checkAbsent(output, "[class,unload]");
|
||||
|
||||
// -Xlog:class+load=info
|
||||
pb = exec("-Xlog:class+load=info");
|
||||
checkFor("[class,load]", "java.lang.Object", "source:");
|
||||
output = exec("-Xlog:class+load=info");
|
||||
checkFor(output,"[class,load]", "java.lang.Object", "source:");
|
||||
|
||||
// -Xlog:class+load=debug
|
||||
pb = exec("-Xlog:class+load=debug");
|
||||
checkFor("[class,load]", "java.lang.Object", "source:", "klass:", "super:", "loader:", "bytes:");
|
||||
output = exec("-Xlog:class+load=debug");
|
||||
checkFor(output,"[class,load]", "java.lang.Object", "source:", "klass:", "super:", "loader:", "bytes:");
|
||||
|
||||
// -Xlog:class+load=off
|
||||
pb = exec("-Xlog:class+load=off");
|
||||
checkAbsent("[class,load]");
|
||||
output = exec("-Xlog:class+load=off");
|
||||
checkAbsent(output,"[class,load]");
|
||||
|
||||
// -XX:+TraceClassLoading
|
||||
pb = exec("-XX:+TraceClassLoading");
|
||||
checkFor("[class,load]", "java.lang.Object", "source:");
|
||||
output = exec("-XX:+TraceClassLoading");
|
||||
checkFor(output, "[class,load]", "java.lang.Object", "source:");
|
||||
|
||||
// -XX:-TraceClassLoading
|
||||
pb = exec("-XX:-TraceClassLoading");
|
||||
checkAbsent("[class,load]");
|
||||
output = exec("-XX:-TraceClassLoading");
|
||||
checkAbsent(output, "[class,load]");
|
||||
|
||||
// -verbose:class
|
||||
pb = exec("-verbose:class");
|
||||
checkFor("[class,load]", "java.lang.Object", "source:");
|
||||
checkFor("[class,unload]", "unloading class");
|
||||
output = exec("-verbose:class");
|
||||
checkFor(output,"[class,load]", "java.lang.Object", "source:");
|
||||
checkFor(output,"[class,unload]", "unloading class");
|
||||
|
||||
// -Xlog:class+loader+data=trace
|
||||
pb = exec("-Xlog:class+loader+data=trace");
|
||||
checkFor("[class,loader,data]", "create loader data");
|
||||
output = exec("-Xlog:class+loader+data=trace");
|
||||
checkFor(output, "[class,loader,data]", "create loader data");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,6 +53,7 @@ import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.swing.Box;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JComponent;
|
||||
@@ -155,6 +156,7 @@ import static javax.swing.SwingUtilities.isEventDispatchThread;
|
||||
* <li>the title of the instruction UI,</li>
|
||||
* <li>the timeout of the test,</li>
|
||||
* <li>the size of the instruction UI via rows and columns, and</li>
|
||||
* <li>to add a log area</li>,
|
||||
* <li>to enable screenshots.</li>
|
||||
* </ul>
|
||||
*/
|
||||
@@ -204,6 +206,8 @@ public final class PassFailJFrame {
|
||||
|
||||
private static Robot robot;
|
||||
|
||||
private static JTextArea logArea;
|
||||
|
||||
public enum Position {HORIZONTAL, VERTICAL, TOP_LEFT_CORNER}
|
||||
|
||||
public PassFailJFrame(String instructions) throws InterruptedException,
|
||||
@@ -373,6 +377,20 @@ public final class PassFailJFrame {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Does the same as {@link #invokeOnEDT(Runnable)}, but does not throw
|
||||
* any checked exceptions.
|
||||
*
|
||||
* @param doRun an operation to run on EDT
|
||||
*/
|
||||
private static void invokeOnEDTUncheckedException(Runnable doRun) {
|
||||
try {
|
||||
invokeOnEDT(doRun);
|
||||
} catch (InterruptedException | InvocationTargetException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private static void createUI(String title, String instructions,
|
||||
long testTimeOut, int rows, int columns,
|
||||
boolean enableScreenCapture) {
|
||||
@@ -384,7 +402,8 @@ public final class PassFailJFrame {
|
||||
frame.add(createInstructionUIPanel(instructions,
|
||||
testTimeOut,
|
||||
rows, columns,
|
||||
enableScreenCapture),
|
||||
enableScreenCapture,
|
||||
false, 0),
|
||||
BorderLayout.CENTER);
|
||||
frame.pack();
|
||||
frame.setLocationRelativeTo(null);
|
||||
@@ -401,8 +420,9 @@ public final class PassFailJFrame {
|
||||
createInstructionUIPanel(builder.instructions,
|
||||
builder.testTimeOut,
|
||||
builder.rows, builder.columns,
|
||||
builder.screenCapture);
|
||||
|
||||
builder.screenCapture,
|
||||
builder.addLogArea,
|
||||
builder.logAreaRows);
|
||||
if (builder.splitUI) {
|
||||
JSplitPane splitPane = new JSplitPane(
|
||||
builder.splitUIOrientation,
|
||||
@@ -421,7 +441,9 @@ public final class PassFailJFrame {
|
||||
private static JComponent createInstructionUIPanel(String instructions,
|
||||
long testTimeOut,
|
||||
int rows, int columns,
|
||||
boolean enableScreenCapture) {
|
||||
boolean enableScreenCapture,
|
||||
boolean addLogArea,
|
||||
int logAreaRows) {
|
||||
JPanel main = new JPanel(new BorderLayout());
|
||||
|
||||
JLabel testTimeoutLabel = new JLabel("", JLabel.CENTER);
|
||||
@@ -455,7 +477,20 @@ public final class PassFailJFrame {
|
||||
buttonsPanel.add(createCapturePanel());
|
||||
}
|
||||
|
||||
main.add(buttonsPanel, BorderLayout.SOUTH);
|
||||
if (addLogArea) {
|
||||
logArea = new JTextArea(logAreaRows, columns);
|
||||
logArea.setEditable(false);
|
||||
|
||||
Box buttonsLogPanel = Box.createVerticalBox();
|
||||
|
||||
buttonsLogPanel.add(buttonsPanel);
|
||||
buttonsLogPanel.add(new JScrollPane(logArea));
|
||||
|
||||
main.add(buttonsLogPanel, BorderLayout.SOUTH);
|
||||
} else {
|
||||
main.add(buttonsPanel, BorderLayout.SOUTH);
|
||||
}
|
||||
|
||||
main.setMinimumSize(main.getPreferredSize());
|
||||
|
||||
return main;
|
||||
@@ -1039,6 +1074,36 @@ public final class PassFailJFrame {
|
||||
latch.countDown();
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a {@code message} to the log area, if enabled by
|
||||
* {@link Builder#logArea()} or {@link Builder#logArea(int)}.
|
||||
*
|
||||
* @param message to log
|
||||
*/
|
||||
public static void log(String message) {
|
||||
System.out.println("PassFailJFrame: " + message);
|
||||
invokeOnEDTUncheckedException(() -> logArea.append(message + "\n"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears the log area, if enabled by
|
||||
* {@link Builder#logArea()} or {@link Builder#logArea(int)}.
|
||||
*/
|
||||
public static void logClear() {
|
||||
System.out.println("\nPassFailJFrame: log cleared\n");
|
||||
invokeOnEDTUncheckedException(() -> logArea.setText(""));
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces the log area content with provided {@code text}, if enabled by
|
||||
* {@link Builder#logArea()} or {@link Builder#logArea(int)}.
|
||||
* @param text new text for the log area
|
||||
*/
|
||||
public static void logSet(String text) {
|
||||
System.out.println("\nPassFailJFrame: log set to:\n" + text + "\n");
|
||||
invokeOnEDTUncheckedException(() -> logArea.setText(text));
|
||||
}
|
||||
|
||||
public static final class Builder {
|
||||
private String title;
|
||||
private String instructions;
|
||||
@@ -1046,6 +1111,8 @@ public final class PassFailJFrame {
|
||||
private int rows;
|
||||
private int columns;
|
||||
private boolean screenCapture;
|
||||
private boolean addLogArea;
|
||||
private int logAreaRows = 10;
|
||||
|
||||
private List<? extends Window> testWindows;
|
||||
private WindowListCreator windowListCreator;
|
||||
@@ -1087,6 +1154,37 @@ public final class PassFailJFrame {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a log area below the "Pass", "Fail" buttons.
|
||||
* <p>
|
||||
* The log area can be controlled by {@link #log(String)},
|
||||
* {@link #logClear()} and {@link #logSet(String)}.
|
||||
*
|
||||
* @return this builder
|
||||
*/
|
||||
public Builder logArea() {
|
||||
this.addLogArea = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a log area below the "Pass", "Fail" buttons.
|
||||
* <p>
|
||||
* The log area can be controlled by {@link #log(String)},
|
||||
* {@link #logClear()} and {@link #logSet(String)}.
|
||||
* <p>
|
||||
* The number of columns is taken from the number of
|
||||
* columns in the instructional JTextArea.
|
||||
*
|
||||
* @param rows of the log area
|
||||
* @return this builder
|
||||
*/
|
||||
public Builder logArea(int rows) {
|
||||
this.addLogArea = true;
|
||||
this.logAreaRows = rows;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a {@code WindowCreator} which the framework will use
|
||||
* to create the test UI window.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2016, 2024, 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
|
||||
@@ -26,68 +26,111 @@
|
||||
* @summary Attempt to provoke error 316 on OS X in NativeSignal.signal()
|
||||
*/
|
||||
|
||||
import java.io.*;
|
||||
import java.net.*;
|
||||
import java.io.IOException;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.ServerSocket;
|
||||
import java.net.Socket;
|
||||
import java.net.StandardSocketOptions;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.channels.DatagramChannel;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
|
||||
public class StressNativeSignal {
|
||||
private UDPThread udpThread;
|
||||
private ServerSocketThread serverSocketThread;
|
||||
|
||||
StressNativeSignal() {
|
||||
try {
|
||||
serverSocketThread = new ServerSocketThread();
|
||||
serverSocketThread = initServerSocketThread();
|
||||
if (serverSocketThread != null) {
|
||||
serverSocketThread.start();
|
||||
}
|
||||
|
||||
udpThread = new UDPThread();
|
||||
udpThread = initUDPThread();
|
||||
if (udpThread != null) {
|
||||
udpThread.start();
|
||||
}
|
||||
}
|
||||
|
||||
private UDPThread initUDPThread() {
|
||||
UDPThread aUDPThread = null;
|
||||
try {
|
||||
aUDPThread = new UDPThread();
|
||||
} catch (Exception z) {
|
||||
System.err.println("failed to create and start a UDPThread");
|
||||
z.printStackTrace();
|
||||
}
|
||||
return aUDPThread;
|
||||
}
|
||||
|
||||
private ServerSocketThread initServerSocketThread() {
|
||||
ServerSocketThread aServerSocketThread = null;
|
||||
try {
|
||||
aServerSocketThread = new ServerSocketThread();
|
||||
|
||||
} catch (Exception z) {
|
||||
System.err.println("failed to create and start a ServerSocketThread");
|
||||
z.printStackTrace();
|
||||
}
|
||||
return aServerSocketThread;
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Throwable {
|
||||
StressNativeSignal test = new StressNativeSignal();
|
||||
try {
|
||||
Thread.sleep(3000);
|
||||
} catch (Exception z) {
|
||||
z.printStackTrace(System.err);
|
||||
}
|
||||
|
||||
test.waitForTestThreadsToStart();
|
||||
test.shutdown();
|
||||
}
|
||||
|
||||
public void shutdown() {
|
||||
udpThread.terminate();
|
||||
try {
|
||||
udpThread.join();
|
||||
} catch (Exception z) {
|
||||
z.printStackTrace(System.err);
|
||||
if ((udpThread != null) && udpThread.isAlive()) {
|
||||
udpThread.terminate();
|
||||
try {
|
||||
udpThread.join();
|
||||
} catch (Exception z) {
|
||||
z.printStackTrace(System.err);
|
||||
}
|
||||
} else {
|
||||
System.out.println("UDPThread test scenario was not run");
|
||||
}
|
||||
|
||||
serverSocketThread.terminate();
|
||||
try {
|
||||
serverSocketThread.join();
|
||||
} catch (Exception z) {
|
||||
z.printStackTrace(System.err);
|
||||
if ((serverSocketThread != null) && (serverSocketThread.isAlive())) {
|
||||
serverSocketThread.terminate();
|
||||
try {
|
||||
serverSocketThread.join();
|
||||
} catch (Exception z) {
|
||||
z.printStackTrace(System.err);
|
||||
}
|
||||
} else {
|
||||
System.out.println("ServerSocketThread test scenario was not run");
|
||||
}
|
||||
}
|
||||
|
||||
public void waitForTestThreadsToStart() {
|
||||
if ((udpThread != null) && udpThread.isAlive()) {
|
||||
udpThread.waitTestThreadStart();
|
||||
}
|
||||
if ((serverSocketThread != null) && (serverSocketThread.isAlive())) {
|
||||
serverSocketThread.waitTestThreadStart();
|
||||
}
|
||||
}
|
||||
|
||||
public class ServerSocketThread extends Thread {
|
||||
private volatile boolean shouldTerminate;
|
||||
private ServerSocket socket;
|
||||
private final CountDownLatch threadStarted = new CountDownLatch(1);
|
||||
|
||||
public ServerSocketThread () throws Exception {
|
||||
socket = new ServerSocket(1122);
|
||||
}
|
||||
|
||||
public void run() {
|
||||
|
||||
try {
|
||||
socket = new ServerSocket(1122);
|
||||
threadStarted.countDown();
|
||||
Socket client = socket.accept();
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
|
||||
shouldTerminate = false;
|
||||
while (!shouldTerminate) {
|
||||
String msg = reader.readLine();
|
||||
}
|
||||
client.close();
|
||||
throw new RuntimeException("Unexpected return from accept call");
|
||||
} catch (Exception z) {
|
||||
System.err.println("ServerSocketThread: caught exception " + z.getClass().getName());
|
||||
if (!shouldTerminate) {
|
||||
z.printStackTrace(System.err);
|
||||
}
|
||||
@@ -103,40 +146,61 @@ public class StressNativeSignal {
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
|
||||
public void waitTestThreadStart() {
|
||||
try {
|
||||
threadStarted.await();
|
||||
} catch (Exception z) {
|
||||
z.printStackTrace(System.err);
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class UDPThread extends Thread {
|
||||
private DatagramChannel channel;
|
||||
private volatile boolean shouldTerminate;
|
||||
private final CountDownLatch threadStarted = new CountDownLatch(1);
|
||||
|
||||
public UDPThread () throws Exception {
|
||||
|
||||
channel = DatagramChannel.open();
|
||||
channel.setOption(StandardSocketOptions.SO_RCVBUF, 6553600);
|
||||
channel.bind(new InetSocketAddress(19870));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
channel = DatagramChannel.open();
|
||||
channel.setOption(StandardSocketOptions.SO_RCVBUF, 6553600);
|
||||
channel.bind(new InetSocketAddress(19870));
|
||||
} catch (IOException z) {
|
||||
z.printStackTrace(System.err);
|
||||
}
|
||||
|
||||
ByteBuffer buf = ByteBuffer.allocate(6553600);
|
||||
shouldTerminate = false;
|
||||
while (!shouldTerminate) {
|
||||
threadStarted.countDown();
|
||||
do {
|
||||
try {
|
||||
buf.rewind();
|
||||
channel.receive(buf);
|
||||
} catch (IOException z) {
|
||||
System.err.println("UDPThread: caught exception " + z.getClass().getName());
|
||||
if (!shouldTerminate) {
|
||||
z.printStackTrace(System.err);
|
||||
}
|
||||
}
|
||||
}
|
||||
} while (!shouldTerminate);
|
||||
}
|
||||
|
||||
public void terminate() {
|
||||
shouldTerminate = true;
|
||||
try {
|
||||
channel.close();
|
||||
} catch (Exception z) {
|
||||
System.err.println("UDPThread: caught exception " + z.getClass().getName());
|
||||
z.printStackTrace(System.err);
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
|
||||
public void waitTestThreadStart() {
|
||||
try {
|
||||
threadStarted.await();
|
||||
} catch (Exception z) {
|
||||
z.printStackTrace(System.err);
|
||||
// ignore
|
||||
|
||||
@@ -1 +1 @@
|
||||
tzdata2024b
|
||||
tzdata2025a
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
Link Asia/Riyadh87 Mideast/Riyadh87
|
||||
Link Asia/Riyadh88 Mideast/Riyadh88
|
||||
Link Asia/Riyadh89 Mideast/Riyadh89
|
||||
Link Australia/Sydney Australia/ACT #= Australia/Canberra
|
||||
Link Australia/Lord_Howe Australia/LHI
|
||||
Link Australia/Sydney Australia/NSW
|
||||
|
||||
@@ -1,13 +1,43 @@
|
||||
/*
|
||||
* Copyright (c) 2015, 2025, 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.awt.*;
|
||||
import java.awt.Component;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.accessibility.Accessible;
|
||||
import javax.accessibility.AccessibleContext;
|
||||
import javax.accessibility.AccessibleState;
|
||||
import javax.accessibility.AccessibleStateSet;
|
||||
import javax.swing.*;
|
||||
import javax.swing.Icon;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JTabbedPane;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.UIManager;
|
||||
import javax.swing.plaf.nimbus.NimbusLookAndFeel;
|
||||
|
||||
/*
|
||||
@@ -22,7 +52,7 @@ public class Bug8134116 {
|
||||
private static volatile Exception exception = null;
|
||||
private static JFrame frame;
|
||||
|
||||
public static void main(String args[]) throws Exception {
|
||||
public static void main(String[] args) throws Exception {
|
||||
|
||||
try {
|
||||
UIManager.setLookAndFeel(new NimbusLookAndFeel());
|
||||
|
||||
@@ -81,7 +81,7 @@ class HumongousMemoryAllocator extends MemoryAllocator {
|
||||
class OldGenMemoryAllocator extends MemoryAllocator {
|
||||
|
||||
private List<byte[]> list = new ArrayList<byte[]>();
|
||||
private int counter = 6000;
|
||||
private int counter = 5000;
|
||||
|
||||
@Override
|
||||
public void allocate() {
|
||||
@@ -89,7 +89,7 @@ class OldGenMemoryAllocator extends MemoryAllocator {
|
||||
list.add(new byte[10 * KB]);
|
||||
} else {
|
||||
list = new ArrayList<byte[]>();
|
||||
counter = 6000;
|
||||
counter = 5000;
|
||||
}
|
||||
|
||||
garbage = list;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2015, 2019, 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
|
||||
@@ -24,7 +24,9 @@
|
||||
import java.io.*;
|
||||
import java.lang.module.ModuleDescriptor;
|
||||
import java.lang.reflect.Method;
|
||||
import java.nio.file.*;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.*;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.jar.JarEntry;
|
||||
@@ -32,6 +34,7 @@ import java.util.jar.JarFile;
|
||||
import java.util.jar.JarInputStream;
|
||||
import java.util.jar.Manifest;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.spi.ToolProvider;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@@ -59,6 +62,16 @@ import static java.lang.System.out;
|
||||
*/
|
||||
|
||||
public class Basic {
|
||||
|
||||
private static final ToolProvider JAR_TOOL = ToolProvider.findFirst("jar")
|
||||
.orElseThrow(()
|
||||
-> new RuntimeException("jar tool not found")
|
||||
);
|
||||
private static final ToolProvider JAVAC_TOOL = ToolProvider.findFirst("javac")
|
||||
.orElseThrow(()
|
||||
-> new RuntimeException("javac tool not found")
|
||||
);
|
||||
|
||||
static final Path TEST_SRC = Paths.get(System.getProperty("test.src", "."));
|
||||
static final Path TEST_CLASSES = Paths.get(System.getProperty("test.classes", "."));
|
||||
static final Path MODULE_CLASSES = TEST_CLASSES.resolve("build");
|
||||
@@ -933,13 +946,14 @@ public class Basic {
|
||||
}
|
||||
Stream.of(args).forEach(commands::add);
|
||||
ProcessBuilder p = new ProcessBuilder(commands);
|
||||
if (stdinSource != null)
|
||||
if (stdinSource != null) {
|
||||
p.redirectInput(stdinSource);
|
||||
}
|
||||
return run(p);
|
||||
}
|
||||
|
||||
static Result jar(String... args) {
|
||||
return jarWithStdin(null, args);
|
||||
return run(JAR_TOOL, args);
|
||||
}
|
||||
|
||||
static Path compileModule(String mn) throws IOException {
|
||||
@@ -1027,10 +1041,8 @@ public class Basic {
|
||||
static void javac(Path dest, Path modulePath, Path... sourceFiles)
|
||||
throws IOException
|
||||
{
|
||||
String javac = getJDKTool("javac");
|
||||
|
||||
List<String> commands = new ArrayList<>();
|
||||
commands.add(javac);
|
||||
if (!TOOL_VM_OPTIONS.isEmpty()) {
|
||||
commands.addAll(Arrays.asList(TOOL_VM_OPTIONS.split("\\s+", -1)));
|
||||
}
|
||||
@@ -1048,7 +1060,13 @@ public class Basic {
|
||||
}
|
||||
Stream.of(sourceFiles).map(Object::toString).forEach(x -> commands.add(x));
|
||||
|
||||
quickFail(run(new ProcessBuilder(commands)));
|
||||
StringWriter sw = new StringWriter();
|
||||
try (PrintWriter pw = new PrintWriter(sw)) {
|
||||
int rc = JAVAC_TOOL.run(pw, pw, commands.toArray(new String[0]));
|
||||
if(rc != 0) {
|
||||
throw new RuntimeException(sw.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static Result java(Path modulePath, String entryPoint, String... args) {
|
||||
@@ -1094,9 +1112,13 @@ public class Basic {
|
||||
return false;
|
||||
}
|
||||
|
||||
static void quickFail(Result r) {
|
||||
if (r.ec != 0)
|
||||
throw new RuntimeException(r.output);
|
||||
static Result run(ToolProvider tp, String[] commands) {
|
||||
int rc = 0;
|
||||
StringWriter sw = new StringWriter();
|
||||
try (PrintWriter pw = new PrintWriter(sw)) {
|
||||
rc = tp.run(pw, pw, commands);
|
||||
}
|
||||
return new Result(rc, sw.toString());
|
||||
}
|
||||
|
||||
static Result run(ProcessBuilder pb) {
|
||||
|
||||
Reference in New Issue
Block a user