mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-07 01:50:12 +01:00
Compare commits
50 Commits
jdk-11.0.2
...
jdk-11.0.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4597cc3525 | ||
|
|
c6b1d04179 | ||
|
|
a57f289f7d | ||
|
|
44165ab678 | ||
|
|
ab21b1e989 | ||
|
|
4d72038fbc | ||
|
|
bd29eb6eec | ||
|
|
5c5687d4ab | ||
|
|
1bb3ed339b | ||
|
|
d2d988af90 | ||
|
|
64269a3c5a | ||
|
|
7bed7f1b2d | ||
|
|
10f08844e5 | ||
|
|
a855cab3e3 | ||
|
|
a60a5c4305 | ||
|
|
93c5f7c50d | ||
|
|
8dc28922c2 | ||
|
|
e075097dc8 | ||
|
|
ea06b5c966 | ||
|
|
776f1e31a9 | ||
|
|
6711fc8da7 | ||
|
|
43a56c89c6 | ||
|
|
fe8c20c8de | ||
|
|
30dfe8115d | ||
|
|
1b207cc9cc | ||
|
|
f4cf239df1 | ||
|
|
398f486c2a | ||
|
|
aeb6381306 | ||
|
|
97241329cf | ||
|
|
c9052141c1 | ||
|
|
382942dffb | ||
|
|
de3ae6f265 | ||
|
|
38a60d78c4 | ||
|
|
cc88c3ca4e | ||
|
|
ccd4c98e39 | ||
|
|
a5e6577c5b | ||
|
|
92cb5eb766 | ||
|
|
ddc3e41100 | ||
|
|
6ecf198c7c | ||
|
|
f7cd14cc2b | ||
|
|
8af22e796a | ||
|
|
10894a07f0 | ||
|
|
1047521856 | ||
|
|
1f516f62f2 | ||
|
|
bcdad92ce0 | ||
|
|
daf393a3fa | ||
|
|
621048ac87 | ||
|
|
a60fb5a71d | ||
|
|
1f85c15d3b | ||
|
|
5aa8538b17 |
20
make/data/cacerts/certainlyroote1
Normal file
20
make/data/cacerts/certainlyroote1
Normal file
@@ -0,0 +1,20 @@
|
||||
Owner: CN=Certainly Root E1, O=Certainly, C=US
|
||||
Issuer: CN=Certainly Root E1, O=Certainly, C=US
|
||||
Serial number: 62533b1470333275cf98d9ab9bfccf8
|
||||
Valid from: Thu Apr 01 00:00:00 GMT 2021 until: Sun Apr 01 00:00:00 GMT 2046
|
||||
Signature algorithm name: SHA384withECDSA
|
||||
Subject Public Key Algorithm: 384-bit EC (secp384r1) key
|
||||
Version: 3
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQsw
|
||||
CQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlu
|
||||
bHkgUm9vdCBFMTAeFw0yMTA0MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJ
|
||||
BgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlubHkxGjAYBgNVBAMTEUNlcnRhaW5s
|
||||
eSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4fxzf7flHh4axpMCK
|
||||
+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9YBk2
|
||||
QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8E
|
||||
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4
|
||||
hevIIgcwCgYIKoZIzj0EAwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozm
|
||||
ut6Dacpps6kFtZaSF4fC0urQe87YQVt8rgIwRt7qy12a7DLCZRawTDBcMPPaTnOG
|
||||
BtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR
|
||||
-----END CERTIFICATE-----
|
||||
38
make/data/cacerts/certainlyrootr1
Normal file
38
make/data/cacerts/certainlyrootr1
Normal file
@@ -0,0 +1,38 @@
|
||||
Owner: CN=Certainly Root R1, O=Certainly, C=US
|
||||
Issuer: CN=Certainly Root R1, O=Certainly, C=US
|
||||
Serial number: 8e0ff94b907168653354f4d44439b7e0
|
||||
Valid from: Thu Apr 01 00:00:00 GMT 2021 until: Sun Apr 01 00:00:00 GMT 2046
|
||||
Signature algorithm name: SHA256withRSA
|
||||
Subject Public Key Algorithm: 4096-bit RSA key
|
||||
Version: 3
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAw
|
||||
PTELMAkGA1UEBhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2Vy
|
||||
dGFpbmx5IFJvb3QgUjEwHhcNMjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9
|
||||
MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0
|
||||
YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANA2
|
||||
1B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O5MQT
|
||||
vqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbed
|
||||
aFySpvXl8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b0
|
||||
1C7jcvk2xusVtyWMOvwlDbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5
|
||||
r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGIXsXwClTNSaa/ApzSRKft43jvRl5tcdF5
|
||||
cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkNKPl6I7ENPT2a/Z2B7yyQ
|
||||
wHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQAjeZjOVJ
|
||||
6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA
|
||||
2CnbrlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyH
|
||||
Wyf5QBGenDPBt+U1VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMR
|
||||
eiFPCyEQtkA6qyI6BJyLm4SGcprSp6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB
|
||||
/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTgqj8ljZ9EXME66C6u
|
||||
d0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAszHQNTVfSVcOQr
|
||||
PbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d
|
||||
8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi
|
||||
1wrykXprOQ4vMMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrd
|
||||
rRT90+7iIgXr0PK3aBLXWopBGsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9di
|
||||
taY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+gjwN/KUD+nsa2UUeYNrEjvn8K8l7
|
||||
lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgHJBu6haEaBQmAupVj
|
||||
yTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7fpYn
|
||||
Kx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLy
|
||||
yCwzk5Iwx06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5n
|
||||
wXARPbv0+Em34yaXOp/SX3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6
|
||||
OV+KmalBWQewLK8=
|
||||
-----END CERTIFICATE-----
|
||||
@@ -32,7 +32,7 @@ formatVersion=3
|
||||
# Version of the currency code information in this class.
|
||||
# It is a serial number that accompanies with each amendment.
|
||||
|
||||
dataVersion=175
|
||||
dataVersion=176
|
||||
|
||||
# List of all valid ISO 4217 currency codes.
|
||||
# To ensure compatibility, do not remove codes.
|
||||
@@ -55,7 +55,7 @@ all=ADP020-AED784-AFA004-AFN971-ALL008-AMD051-ANG532-AOA973-ARS032-ATS040-AUD036
|
||||
SRD968-SRG740-SSP728-STD678-STN930-SVC222-SYP760-SZL748-THB764-TJS972-TMM795-TMT934-TND788-TOP776-\
|
||||
TPE626-TRL792-TRY949-TTD780-TWD901-TZS834-UAH980-UGX800-USD840-USN997-USS998-UYI940-\
|
||||
UYU858-UZS860-VEB862-VED926-VEF937-VES928-VND704-VUV548-WST882-XAF950-XAG961-XAU959-XBA955-\
|
||||
XBB956-XBC957-XBD958-XCD951-XDR960-XFO000-XFU000-XOF952-XPD964-XPF953-\
|
||||
XBB956-XBC957-XBD958-XCD951-XCG532-XDR960-XFO000-XFU000-XOF952-XPD964-XPF953-\
|
||||
XPT962-XSU994-XTS963-XUA965-XXX999-YER886-YUM891-ZAR710-ZMK894-ZMW967-ZWD716-ZWL932-\
|
||||
ZWN942-ZWR935
|
||||
|
||||
@@ -189,11 +189,11 @@ CR=CRC
|
||||
# COTE D'IVOIRE
|
||||
CI=XOF
|
||||
# CROATIA
|
||||
HR=HRK;2022-12-31-23-00-00;EUR
|
||||
HR=EUR
|
||||
# CUBA
|
||||
CU=CUP
|
||||
# Cura\u00e7ao
|
||||
CW=ANG
|
||||
CW=ANG;2025-04-01-04-00-00;XCG
|
||||
# CYPRUS
|
||||
CY=EUR
|
||||
# CZECHIA
|
||||
@@ -510,7 +510,7 @@ SR=SRD
|
||||
# SVALBARD AND JAN MAYEN
|
||||
SJ=NOK
|
||||
# Sint Maarten (Dutch part)
|
||||
SX=ANG
|
||||
SX=ANG;2025-04-01-04-00-00;XCG
|
||||
# ESWATINI
|
||||
SZ=SZL
|
||||
# SWEDEN
|
||||
|
||||
@@ -21,4 +21,4 @@
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
tzdata2023d
|
||||
tzdata2024a
|
||||
|
||||
@@ -53,6 +53,10 @@
|
||||
# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94.
|
||||
# https://www.jstor.org/stable/1774359
|
||||
#
|
||||
# For the 1911/1912 establishment of standard time in French possessions, see:
|
||||
# Société Française de Physique, Recueil de constantes physiques (1913),
|
||||
# page 752, 18b.
|
||||
#
|
||||
# European-style abbreviations are commonly used along the Mediterranean.
|
||||
# For sub-Saharan Africa abbreviations were less standardized.
|
||||
# Previous editions of this database used WAT, CAT, SAT, and EAT
|
||||
@@ -136,7 +140,7 @@ Zone Atlantic/Cape_Verde -1:34:04 - LMT 1912 Jan 01 2:00u # Praia
|
||||
|
||||
# Chad
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena
|
||||
Zone Africa/Ndjamena 1:00:12 - LMT 1912 Jan 1 # N'Djamena
|
||||
1:00 - WAT 1979 Oct 14
|
||||
1:00 1:00 WAST 1980 Mar 8
|
||||
1:00 - WAT
|
||||
@@ -162,7 +166,7 @@ Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena
|
||||
# Inaccessible, Nightingale: uninhabited
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Africa/Abidjan -0:16:08 - LMT 1912
|
||||
Zone Africa/Abidjan -0:16:08 - LMT 1912 Jan 1
|
||||
0:00 - GMT
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -2480,18 +2480,33 @@ Zone Asia/Amman 2:23:44 - LMT 1931
|
||||
# effective December 21st, 2018....
|
||||
# http://adilet.zan.kz/rus/docs/P1800000817 (russian language).
|
||||
|
||||
# From Zhanbolat Raimbekov (2024-01-19):
|
||||
# Kazakhstan (all parts) switching to UTC+5 on March 1, 2024
|
||||
# https://www.gov.kz/memleket/entities/mti/press/news/details/688998?lang=ru
|
||||
# [in Russian]
|
||||
# (2024-01-20): https://primeminister.kz/ru/decisions/19012024-20
|
||||
#
|
||||
# From Alexander Krivenyshev (2024-01-19):
|
||||
# According to a different news and the official web site for the Ministry of
|
||||
# Trade and Integration of the Republic of Kazakhstan:
|
||||
# https://en.inform.kz/news/kazakhstan-to-switch-to-single-hour-zone-mar-1-54ad0b/
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
#
|
||||
# Almaty (formerly Alma-Ata), representing most locations in Kazakhstan
|
||||
# This includes KZ-AKM, KZ-ALA, KZ-ALM, KZ-AST, KZ-BAY, KZ-VOS, KZ-ZHA,
|
||||
# KZ-KAR, KZ-SEV, KZ-PAV, and KZ-YUZ.
|
||||
# This includes Abai/Abay (ISO 3166-2 code KZ-10), Aqmola/Akmola (KZ-11),
|
||||
# Almaty (KZ-19), Almaty city (KZ-75), Astana city (KZ-71),
|
||||
# East Kazkhstan (KZ-63), Jambyl/Zhambyl (KZ-31), Jetisu/Zhetysu (KZ-33),
|
||||
# Karaganda (KZ-35), North Kazakhstan (KZ-59), Pavlodar (KZ-55),
|
||||
# Shyumkent city (KZ-79), Turkistan (KZ-61), and Ulytau (KZ-62).
|
||||
Zone Asia/Almaty 5:07:48 - LMT 1924 May 2 # or Alma-Ata
|
||||
5:00 - +05 1930 Jun 21
|
||||
6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s
|
||||
5:00 RussiaAsia +05/+06 1992 Jan 19 2:00s
|
||||
6:00 RussiaAsia +06/+07 2004 Oct 31 2:00s
|
||||
6:00 - +06
|
||||
# Qyzylorda (aka Kyzylorda, Kizilorda, Kzyl-Orda, etc.) (KZ-KZY)
|
||||
6:00 - +06 2024 Mar 1 0:00
|
||||
5:00 - +05
|
||||
# Qyzylorda (aka Kyzylorda, Kizilorda, Kzyl-Orda, etc.) (KZ-43)
|
||||
Zone Asia/Qyzylorda 4:21:52 - LMT 1924 May 2
|
||||
4:00 - +04 1930 Jun 21
|
||||
5:00 - +05 1981 Apr 1
|
||||
@@ -2504,8 +2519,7 @@ Zone Asia/Qyzylorda 4:21:52 - LMT 1924 May 2
|
||||
5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s
|
||||
6:00 - +06 2018 Dec 21 0:00
|
||||
5:00 - +05
|
||||
#
|
||||
# Qostanay (aka Kostanay, Kustanay) (KZ-KUS)
|
||||
# Qostanay (aka Kostanay, Kustanay) (KZ-39)
|
||||
# The 1991/2 rules are unclear partly because of the 1997 Turgai
|
||||
# reorganization.
|
||||
Zone Asia/Qostanay 4:14:28 - LMT 1924 May 2
|
||||
@@ -2516,9 +2530,9 @@ Zone Asia/Qostanay 4:14:28 - LMT 1924 May 2
|
||||
5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s
|
||||
4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s
|
||||
5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s
|
||||
6:00 - +06
|
||||
|
||||
# Aqtöbe (aka Aktobe, formerly Aktyubinsk) (KZ-AKT)
|
||||
6:00 - +06 2024 Mar 1 0:00
|
||||
5:00 - +05
|
||||
# Aqtöbe (aka Aktobe, formerly Aktyubinsk) (KZ-15)
|
||||
Zone Asia/Aqtobe 3:48:40 - LMT 1924 May 2
|
||||
4:00 - +04 1930 Jun 21
|
||||
5:00 - +05 1981 Apr 1
|
||||
@@ -2528,7 +2542,7 @@ Zone Asia/Aqtobe 3:48:40 - LMT 1924 May 2
|
||||
4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s
|
||||
5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s
|
||||
5:00 - +05
|
||||
# Mangghystaū (KZ-MAN)
|
||||
# Mangghystaū (KZ-47)
|
||||
# Aqtau was not founded until 1963, but it represents an inhabited region,
|
||||
# so include timestamps before 1963.
|
||||
Zone Asia/Aqtau 3:21:04 - LMT 1924 May 2
|
||||
@@ -2540,7 +2554,7 @@ Zone Asia/Aqtau 3:21:04 - LMT 1924 May 2
|
||||
5:00 RussiaAsia +05/+06 1994 Sep 25 2:00s
|
||||
4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s
|
||||
5:00 - +05
|
||||
# Atyraū (KZ-ATY) is like Mangghystaū except it switched from
|
||||
# Atyraū (KZ-23) is like Mangghystaū except it switched from
|
||||
# +04/+05 to +05/+06 in spring 1999, not fall 1994.
|
||||
Zone Asia/Atyrau 3:27:44 - LMT 1924 May 2
|
||||
3:00 - +03 1930 Jun 21
|
||||
@@ -2551,7 +2565,7 @@ Zone Asia/Atyrau 3:27:44 - LMT 1924 May 2
|
||||
5:00 RussiaAsia +05/+06 1999 Mar 28 2:00s
|
||||
4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s
|
||||
5:00 - +05
|
||||
# West Kazakhstan (KZ-ZAP)
|
||||
# West Kazakhstan (KZ-27)
|
||||
# From Paul Eggert (2016-03-18):
|
||||
# The 1989 transition is from USSR act No. 227 (1989-03-14).
|
||||
Zone Asia/Oral 3:25:24 - LMT 1924 May 2 # or Ural'sk
|
||||
@@ -3453,19 +3467,26 @@ Zone Asia/Karachi 4:28:12 - LMT 1907
|
||||
# ... winter time will begin in Palestine from Saturday 10-28-2023,
|
||||
# 02:00 AM by 60 minutes back.
|
||||
#
|
||||
# From Paul Eggert (2023-03-22):
|
||||
# From Heba Hamad (2024-01-25):
|
||||
# the summer time for the years 2024,2025 will begin in Palestine
|
||||
# from Saturday at 02:00 AM by 60 minutes forward as shown below:
|
||||
# year date
|
||||
# 2024 2024-04-20
|
||||
# 2025 2025-04-12
|
||||
#
|
||||
# From Paul Eggert (2024-01-25):
|
||||
# For now, guess that spring and fall transitions will normally
|
||||
# continue to use 2022's rules, that during DST Palestine will switch
|
||||
# to standard time at 02:00 the last Saturday before Ramadan and back
|
||||
# to DST at 02:00 the first Saturday after Ramadan, and that
|
||||
# to DST at 02:00 the second Saturday after Ramadan, and that
|
||||
# if the normal spring-forward or fall-back transition occurs during
|
||||
# Ramadan the former is delayed and the latter advanced.
|
||||
# To implement this, I predicted Ramadan-oriented transition dates for
|
||||
# 2023 through 2086 by running the following program under GNU Emacs 28.2,
|
||||
# 2026 through 2086 by running the following program under GNU Emacs 29.2,
|
||||
# with the results integrated by hand into the table below.
|
||||
# Predictions after 2086 are approximated without Ramadan.
|
||||
#
|
||||
# (let ((islamic-year 1444))
|
||||
# (let ((islamic-year 1447))
|
||||
# (require 'cal-islam)
|
||||
# (while (< islamic-year 1510)
|
||||
# (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year)))
|
||||
@@ -3474,6 +3495,7 @@ Zone Asia/Karachi 4:28:12 - LMT 1907
|
||||
# (while (/= saturday (mod (setq a (1- a)) 7)))
|
||||
# (while (/= saturday (mod b 7))
|
||||
# (setq b (1+ b)))
|
||||
# (setq b (+ 7 b))
|
||||
# (setq a (calendar-gregorian-from-absolute a))
|
||||
# (setq b (calendar-gregorian-from-absolute b))
|
||||
# (insert
|
||||
@@ -3524,84 +3546,84 @@ Rule Palestine 2021 only - Oct 29 1:00 0 -
|
||||
Rule Palestine 2022 only - Mar 27 0:00 1:00 S
|
||||
Rule Palestine 2022 2035 - Oct Sat<=30 2:00 0 -
|
||||
Rule Palestine 2023 only - Apr 29 2:00 1:00 S
|
||||
Rule Palestine 2024 only - Apr 13 2:00 1:00 S
|
||||
Rule Palestine 2025 only - Apr 5 2:00 1:00 S
|
||||
Rule Palestine 2024 only - Apr 20 2:00 1:00 S
|
||||
Rule Palestine 2025 only - Apr 12 2:00 1:00 S
|
||||
Rule Palestine 2026 2054 - Mar Sat<=30 2:00 1:00 S
|
||||
Rule Palestine 2036 only - Oct 18 2:00 0 -
|
||||
Rule Palestine 2037 only - Oct 10 2:00 0 -
|
||||
Rule Palestine 2038 only - Sep 25 2:00 0 -
|
||||
Rule Palestine 2039 only - Sep 17 2:00 0 -
|
||||
Rule Palestine 2039 only - Oct 22 2:00 1:00 S
|
||||
Rule Palestine 2039 2067 - Oct Sat<=30 2:00 0 -
|
||||
Rule Palestine 2040 only - Sep 1 2:00 0 -
|
||||
Rule Palestine 2040 only - Oct 13 2:00 1:00 S
|
||||
Rule Palestine 2040 only - Oct 20 2:00 1:00 S
|
||||
Rule Palestine 2040 2067 - Oct Sat<=30 2:00 0 -
|
||||
Rule Palestine 2041 only - Aug 24 2:00 0 -
|
||||
Rule Palestine 2041 only - Sep 28 2:00 1:00 S
|
||||
Rule Palestine 2041 only - Oct 5 2:00 1:00 S
|
||||
Rule Palestine 2042 only - Aug 16 2:00 0 -
|
||||
Rule Palestine 2042 only - Sep 20 2:00 1:00 S
|
||||
Rule Palestine 2042 only - Sep 27 2:00 1:00 S
|
||||
Rule Palestine 2043 only - Aug 1 2:00 0 -
|
||||
Rule Palestine 2043 only - Sep 12 2:00 1:00 S
|
||||
Rule Palestine 2043 only - Sep 19 2:00 1:00 S
|
||||
Rule Palestine 2044 only - Jul 23 2:00 0 -
|
||||
Rule Palestine 2044 only - Aug 27 2:00 1:00 S
|
||||
Rule Palestine 2044 only - Sep 3 2:00 1:00 S
|
||||
Rule Palestine 2045 only - Jul 15 2:00 0 -
|
||||
Rule Palestine 2045 only - Aug 19 2:00 1:00 S
|
||||
Rule Palestine 2045 only - Aug 26 2:00 1:00 S
|
||||
Rule Palestine 2046 only - Jun 30 2:00 0 -
|
||||
Rule Palestine 2046 only - Aug 11 2:00 1:00 S
|
||||
Rule Palestine 2046 only - Aug 18 2:00 1:00 S
|
||||
Rule Palestine 2047 only - Jun 22 2:00 0 -
|
||||
Rule Palestine 2047 only - Jul 27 2:00 1:00 S
|
||||
Rule Palestine 2047 only - Aug 3 2:00 1:00 S
|
||||
Rule Palestine 2048 only - Jun 6 2:00 0 -
|
||||
Rule Palestine 2048 only - Jul 18 2:00 1:00 S
|
||||
Rule Palestine 2048 only - Jul 25 2:00 1:00 S
|
||||
Rule Palestine 2049 only - May 29 2:00 0 -
|
||||
Rule Palestine 2049 only - Jul 3 2:00 1:00 S
|
||||
Rule Palestine 2049 only - Jul 10 2:00 1:00 S
|
||||
Rule Palestine 2050 only - May 21 2:00 0 -
|
||||
Rule Palestine 2050 only - Jun 25 2:00 1:00 S
|
||||
Rule Palestine 2050 only - Jul 2 2:00 1:00 S
|
||||
Rule Palestine 2051 only - May 6 2:00 0 -
|
||||
Rule Palestine 2051 only - Jun 17 2:00 1:00 S
|
||||
Rule Palestine 2051 only - Jun 24 2:00 1:00 S
|
||||
Rule Palestine 2052 only - Apr 27 2:00 0 -
|
||||
Rule Palestine 2052 only - Jun 1 2:00 1:00 S
|
||||
Rule Palestine 2052 only - Jun 8 2:00 1:00 S
|
||||
Rule Palestine 2053 only - Apr 12 2:00 0 -
|
||||
Rule Palestine 2053 only - May 24 2:00 1:00 S
|
||||
Rule Palestine 2053 only - May 31 2:00 1:00 S
|
||||
Rule Palestine 2054 only - Apr 4 2:00 0 -
|
||||
Rule Palestine 2054 only - May 16 2:00 1:00 S
|
||||
Rule Palestine 2055 only - May 1 2:00 1:00 S
|
||||
Rule Palestine 2056 only - Apr 22 2:00 1:00 S
|
||||
Rule Palestine 2057 only - Apr 7 2:00 1:00 S
|
||||
Rule Palestine 2058 max - Mar Sat<=30 2:00 1:00 S
|
||||
Rule Palestine 2054 only - May 23 2:00 1:00 S
|
||||
Rule Palestine 2055 only - May 8 2:00 1:00 S
|
||||
Rule Palestine 2056 only - Apr 29 2:00 1:00 S
|
||||
Rule Palestine 2057 only - Apr 14 2:00 1:00 S
|
||||
Rule Palestine 2058 only - Apr 6 2:00 1:00 S
|
||||
Rule Palestine 2059 max - Mar Sat<=30 2:00 1:00 S
|
||||
Rule Palestine 2068 only - Oct 20 2:00 0 -
|
||||
Rule Palestine 2069 only - Oct 12 2:00 0 -
|
||||
Rule Palestine 2070 only - Oct 4 2:00 0 -
|
||||
Rule Palestine 2071 only - Sep 19 2:00 0 -
|
||||
Rule Palestine 2072 only - Sep 10 2:00 0 -
|
||||
Rule Palestine 2072 only - Oct 15 2:00 1:00 S
|
||||
Rule Palestine 2072 only - Oct 22 2:00 1:00 S
|
||||
Rule Palestine 2072 max - Oct Sat<=30 2:00 0 -
|
||||
Rule Palestine 2073 only - Sep 2 2:00 0 -
|
||||
Rule Palestine 2073 only - Oct 7 2:00 1:00 S
|
||||
Rule Palestine 2073 only - Oct 14 2:00 1:00 S
|
||||
Rule Palestine 2074 only - Aug 18 2:00 0 -
|
||||
Rule Palestine 2074 only - Sep 29 2:00 1:00 S
|
||||
Rule Palestine 2074 only - Oct 6 2:00 1:00 S
|
||||
Rule Palestine 2075 only - Aug 10 2:00 0 -
|
||||
Rule Palestine 2075 only - Sep 14 2:00 1:00 S
|
||||
Rule Palestine 2075 only - Sep 21 2:00 1:00 S
|
||||
Rule Palestine 2076 only - Jul 25 2:00 0 -
|
||||
Rule Palestine 2076 only - Sep 5 2:00 1:00 S
|
||||
Rule Palestine 2076 only - Sep 12 2:00 1:00 S
|
||||
Rule Palestine 2077 only - Jul 17 2:00 0 -
|
||||
Rule Palestine 2077 only - Aug 28 2:00 1:00 S
|
||||
Rule Palestine 2077 only - Sep 4 2:00 1:00 S
|
||||
Rule Palestine 2078 only - Jul 9 2:00 0 -
|
||||
Rule Palestine 2078 only - Aug 13 2:00 1:00 S
|
||||
Rule Palestine 2078 only - Aug 20 2:00 1:00 S
|
||||
Rule Palestine 2079 only - Jun 24 2:00 0 -
|
||||
Rule Palestine 2079 only - Aug 5 2:00 1:00 S
|
||||
Rule Palestine 2079 only - Aug 12 2:00 1:00 S
|
||||
Rule Palestine 2080 only - Jun 15 2:00 0 -
|
||||
Rule Palestine 2080 only - Jul 20 2:00 1:00 S
|
||||
Rule Palestine 2080 only - Jul 27 2:00 1:00 S
|
||||
Rule Palestine 2081 only - Jun 7 2:00 0 -
|
||||
Rule Palestine 2081 only - Jul 12 2:00 1:00 S
|
||||
Rule Palestine 2081 only - Jul 19 2:00 1:00 S
|
||||
Rule Palestine 2082 only - May 23 2:00 0 -
|
||||
Rule Palestine 2082 only - Jul 4 2:00 1:00 S
|
||||
Rule Palestine 2082 only - Jul 11 2:00 1:00 S
|
||||
Rule Palestine 2083 only - May 15 2:00 0 -
|
||||
Rule Palestine 2083 only - Jun 19 2:00 1:00 S
|
||||
Rule Palestine 2083 only - Jun 26 2:00 1:00 S
|
||||
Rule Palestine 2084 only - Apr 29 2:00 0 -
|
||||
Rule Palestine 2084 only - Jun 10 2:00 1:00 S
|
||||
Rule Palestine 2084 only - Jun 17 2:00 1:00 S
|
||||
Rule Palestine 2085 only - Apr 21 2:00 0 -
|
||||
Rule Palestine 2085 only - Jun 2 2:00 1:00 S
|
||||
Rule Palestine 2085 only - Jun 9 2:00 1:00 S
|
||||
Rule Palestine 2086 only - Apr 13 2:00 0 -
|
||||
Rule Palestine 2086 only - May 18 2:00 1:00 S
|
||||
Rule Palestine 2086 only - May 25 2:00 1:00 S
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Asia/Gaza 2:17:52 - LMT 1900 Oct
|
||||
@@ -3629,7 +3651,7 @@ Zone Asia/Hebron 2:20:23 - LMT 1900 Oct
|
||||
|
||||
# Philippines
|
||||
|
||||
# From Paul Eggert (2018-11-18):
|
||||
# From Paul Eggert (2024-01-21):
|
||||
# The Spanish initially used American (west-of-Greenwich) time.
|
||||
# It is unknown what time Manila kept when the British occupied it from
|
||||
# 1762-10-06 through 1764-04; for now assume it kept American time.
|
||||
@@ -3637,7 +3659,7 @@ Zone Asia/Hebron 2:20:23 - LMT 1900 Oct
|
||||
# Philippines, issued a proclamation announcing that 1844-12-30 was to
|
||||
# be immediately followed by 1845-01-01; see R.H. van Gent's
|
||||
# History of the International Date Line
|
||||
# https://www.staff.science.uu.nl/~gent0113/idl/idl_philippines.htm
|
||||
# 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):
|
||||
@@ -4064,7 +4086,8 @@ Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2
|
||||
# The English-language name of Vietnam's most populous city is "Ho Chi Minh
|
||||
# City"; use Ho_Chi_Minh below to avoid a name of more than 14 characters.
|
||||
|
||||
# From Paul Eggert (2022-07-27) after a 2014 heads-up from Trần Ngọc Quân:
|
||||
# From Paul Eggert (2024-01-14) after a 2014 heads-up from Trần Ngọc Quân
|
||||
# and a 2024-01-14 heads-up from Đoàn Trần Công Danh:
|
||||
# Trần Tiến Bình's authoritative book "Lịch Việt Nam: thế kỷ XX-XXI (1901-2100)"
|
||||
# (Nhà xuất bản Văn Hoá - Thông Tin, Hanoi, 2005), pp 49-50,
|
||||
# is quoted verbatim in:
|
||||
@@ -4094,14 +4117,35 @@ Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2
|
||||
#
|
||||
# Trần cites the following sources; it's unclear which supplied the info above.
|
||||
#
|
||||
# Hoàng Xuân Hãn: "Lịch và lịch Việt Nam". Tập san Khoa học Xã hội,
|
||||
# No. 9, Paris, February 1982.
|
||||
# Hoàng Xuân Hãn: "Lịch và lịch Việt Nam". Tập san Khoa học Xã hội,
|
||||
# No. 9, Paris, February 1982.
|
||||
#
|
||||
# Lê Thành Lân: "Lịch và niên biểu lịch sử hai mươi thế kỷ (0001-2010)",
|
||||
# NXB Thống kê, Hanoi, 2000.
|
||||
# Lê Thành Lân: "Lịch và niên biểu lịch sử hai mươi thế kỷ (0001-2010)",
|
||||
# NXB Thống kê, Hanoi, 2000.
|
||||
#
|
||||
# Lê Thành Lân: "Lịch hai thế kỷ (1802-2010) và các lịch vĩnh cửu",
|
||||
# NXB Thuận Hoá, Huế, 1995.
|
||||
# Lê Thành Lân: "Lịch hai thế kỷ (1802-2010) và các lịch vĩnh cửu",
|
||||
# NXB Thuận Hoá, Huế, 1995.
|
||||
#
|
||||
# Here is the decision for the September 1945 transition:
|
||||
# Võ Nguyên Giáp, Việt Nam Dân Quốc Công Báo, No. 1 (1945-09-29), page 13
|
||||
# http://baochi.nlv.gov.vn/baochi/cgi-bin/baochi?a=d&d=JwvzO19450929.2.5&dliv=none
|
||||
# It says that on 1945-09-01 at 24:00, Vietnam moved back two hours, to +07.
|
||||
# It also mentions a 1945-03-29 decree (by a Japanese Goveror-General)
|
||||
# to set the time zone to +09, but does not say whether that decree
|
||||
# merely legalized an earlier change to +09.
|
||||
#
|
||||
# July 1955 transition:
|
||||
# Ngô Đình Diệm, Công Báo Việt Nam, No. 92 (1955-07-02), page 1780-1781
|
||||
# Ordinance (Dụ) No. 46 (1955-06-25)
|
||||
# http://ddsnext.crl.edu/titles/32341#?c=0&m=29&s=0&cv=4&r=0&xywh=-89%2C342%2C1724%2C1216
|
||||
# It says that on 1955-07-01 at 01:00, South Vietnam moved back 1 hour (to +07).
|
||||
#
|
||||
# December 1959 transition:
|
||||
# Ngô Đình Diệm, Công Báo Việt Nam Cộng Hòa, 1960 part 1 (1960-01-02), page 62
|
||||
# Decree (Sắc lệnh) No. 362-TTP (1959-12-30)
|
||||
# http://ddsnext.crl.edu/titles/32341#?c=0&m=138&s=0&cv=793&r=0&xywh=-54%2C1504%2C1705%2C1202
|
||||
# It says that on 1959-12-31 at 23:00, South Vietnam moved forward 1 hour (to +08).
|
||||
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
#STDOFF 7:06:30.13
|
||||
@@ -4109,9 +4153,9 @@ Zone Asia/Ho_Chi_Minh 7:06:30 - LMT 1906 Jul 1
|
||||
7:06:30 - PLMT 1911 May 1 # Phù Liễn MT
|
||||
7:00 - +07 1942 Dec 31 23:00
|
||||
8:00 - +08 1945 Mar 14 23:00
|
||||
9:00 - +09 1945 Sep 2
|
||||
9:00 - +09 1945 Sep 1 24:00
|
||||
7:00 - +07 1947 Apr 1
|
||||
8:00 - +08 1955 Jul 1
|
||||
8:00 - +08 1955 Jul 1 01:00
|
||||
7:00 - +07 1959 Dec 31 23:00
|
||||
8:00 - +08 1975 Jun 13
|
||||
7:00 - +07
|
||||
|
||||
@@ -443,11 +443,11 @@ Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva
|
||||
|
||||
# French Polynesia
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Pacific/Gambier -8:59:48 - LMT 1912 Oct # Rikitea
|
||||
Zone Pacific/Gambier -8:59:48 - LMT 1912 Oct 1 # Rikitea
|
||||
-9:00 - -09
|
||||
Zone Pacific/Marquesas -9:18:00 - LMT 1912 Oct
|
||||
Zone Pacific/Marquesas -9:18:00 - LMT 1912 Oct 1
|
||||
-9:30 - -0930
|
||||
Zone Pacific/Tahiti -9:58:16 - LMT 1912 Oct # Papeete
|
||||
Zone Pacific/Tahiti -9:58:16 - LMT 1912 Oct 1 # Papeete
|
||||
-10:00 - -10
|
||||
# Clipperton (near North America) is administered from French Polynesia;
|
||||
# it is uninhabited.
|
||||
@@ -825,7 +825,7 @@ Zone Pacific/Apia 12:33:04 - LMT 1892 Jul 5
|
||||
# Solomon Is
|
||||
# excludes Bougainville, for which see Papua New Guinea
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Pacific/Guadalcanal 10:39:48 - LMT 1912 Oct # Honiara
|
||||
Zone Pacific/Guadalcanal 10:39:48 - LMT 1912 Oct 1 # Honiara
|
||||
11:00 - +11
|
||||
|
||||
# Tokelau
|
||||
@@ -986,6 +986,10 @@ Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila
|
||||
# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94.
|
||||
# https://www.jstor.org/stable/1774359
|
||||
#
|
||||
# For the 1911/1912 establishment of standard time in French possessions, see:
|
||||
# Société Française de Physique, Recueil de constantes physiques (1913),
|
||||
# page 752, 18b.
|
||||
#
|
||||
# A reliable and entertaining source about time zones is
|
||||
# Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997).
|
||||
#
|
||||
@@ -2062,7 +2066,7 @@ Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila
|
||||
# ordaining - by a masterpiece of diplomatic flattery - that
|
||||
# the Fourth of July should be celebrated twice in that year."
|
||||
# This happened in 1892, according to the Evening News (Sydney) of 1892-07-20.
|
||||
# https://www.staff.science.uu.nl/~gent0113/idl/idl.htm
|
||||
# https://webspace.science.uu.nl/~gent0113/idl/idl_alaska_samoa.htm
|
||||
|
||||
# Although Shanks & Pottenger says they both switched to UT -11:30
|
||||
# in 1911, and to -11 in 1950. many earlier sources give -11
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
# These entries are for uses not otherwise covered by the tz database.
|
||||
# Their main practical use is for platforms like Android that lack
|
||||
# support for POSIX-style TZ strings. On such platforms these entries
|
||||
# support for POSIX.1-2017-style TZ strings. On such platforms these entries
|
||||
# can be useful if the timezone database is wrong or if a ship or
|
||||
# aircraft at sea is not in a timezone.
|
||||
|
||||
|
||||
@@ -1013,9 +1013,34 @@ Zone Europe/Sofia 1:33:16 - LMT 1880
|
||||
# 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.
|
||||
# From Ivan Benovic (2024-01-30):
|
||||
# https://www.slov-lex.sk/pravne-predpisy/SK/ZZ/1946/54/
|
||||
# (This is an official link to the Czechoslovak Summer Time Act of
|
||||
# March 8, 1946 that authorizes the Czechoslovak government to set the
|
||||
# exact dates of change to summer time and back to Central European Time.
|
||||
# The act also implicitly confirms Central European Time as the
|
||||
# official time zone of Czechoslovakia and currently remains in force
|
||||
# in both the Czech Republic and Slovakia.)
|
||||
# https://www.psp.cz/eknih/1945pns/tisky/t0216_00.htm
|
||||
# (This is a link to the original legislative proposal dating back to
|
||||
# February 22, 1946. The accompanying memorandum to the proposal says
|
||||
# that an advisory committee on European railroad transportation that
|
||||
# met in Brussels in October 1945 decided that the change of time
|
||||
# should be carried out in all participating countries in a strictly
|
||||
# coordinated manner....)
|
||||
#
|
||||
# From Paul Eggert (2024-01-30):
|
||||
# The source for Czech data is: Kdy začíná a končí letní čas.
|
||||
# https://kalendar.beda.cz/kdy-zacina-a-konci-letni-cas
|
||||
# Its main text disagrees with its quoted sources only in 1918,
|
||||
# where the main text says spring and autumn transitions
|
||||
# occurred at 02:00 and 03:00 respectively (as usual),
|
||||
# whereas the 1918 source "Oznámení o zavedení letního času v roce 1918"
|
||||
# says transitions were at 01:00 and 02:00 respectively.
|
||||
# As the 1918 source appears to be a humorous piece, and it is
|
||||
# unlikely that Prague would have disagreed with its neighbors by an hour,
|
||||
# go with the main text for now.
|
||||
#
|
||||
# We know of no English-language name for historical Czech winter time;
|
||||
# abbreviate it as "GMT", as it happened to be GMT.
|
||||
#
|
||||
|
||||
@@ -26,13 +26,10 @@
|
||||
# This file is in the public domain.
|
||||
|
||||
# This file is generated automatically from the data in the public-domain
|
||||
# NIST format leap-seconds.list file, which can be copied from
|
||||
# <ftp://ftp.nist.gov/pub/time/leap-seconds.list>
|
||||
# or <ftp://ftp.boulder.nist.gov/pub/time/leap-seconds.list>.
|
||||
# The NIST file is used instead of its IERS upstream counterpart
|
||||
# NIST/IERS format leap-seconds.list file, which can be copied from
|
||||
# <https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list>
|
||||
# because under US law the NIST file is public domain
|
||||
# whereas the IERS file's copyright and license status is unclear.
|
||||
# or, in a variant with different comments, from
|
||||
# <ftp://ftp.boulder.nist.gov/pub/time/leap-seconds.list>.
|
||||
# For more about leap-seconds.list, please see
|
||||
# The NTP Timescale and Leap Seconds
|
||||
# <https://www.eecis.udel.edu/~mills/leap.html>.
|
||||
@@ -95,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 2024 Jun 28 00:00:00
|
||||
#Expires 2024 Dec 28 00:00:00
|
||||
|
||||
# POSIX timestamps for the data in this file:
|
||||
#updated 1467936000 (2016-07-08 00:00:00 UTC)
|
||||
#expires 1719532800 (2024-06-28 00:00:00 UTC)
|
||||
#updated 1704708379 (2024-01-08 10:06:19 UTC)
|
||||
#expires 1735344000 (2024-12-28 00:00:00 UTC)
|
||||
|
||||
# Updated through IERS Bulletin C66
|
||||
# File expires on: 28 June 2024
|
||||
# Updated through IERS Bulletin C (https://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat)
|
||||
# File expires on 28 December 2024
|
||||
|
||||
@@ -1291,6 +1291,10 @@ Zone America/Menominee -5:50:27 - LMT 1885 Sep 18 12:00
|
||||
# <http://cs.ucla.edu/~eggert/The-Waste-of-Daylight-19th.pdf>
|
||||
# [PDF] (1914-03)
|
||||
#
|
||||
# For the 1911/1912 establishment of standard time in French possessions, see:
|
||||
# Société Française de Physique, Recueil de constantes physiques (1913),
|
||||
# page 752, 18b.
|
||||
#
|
||||
# See the 'europe' file for Greenland.
|
||||
|
||||
# Canada
|
||||
@@ -1377,7 +1381,7 @@ Zone America/Menominee -5:50:27 - LMT 1885 Sep 18 12:00
|
||||
# From Paul Eggert (2014-10-18):
|
||||
# H. David Matthews and Mary Vincent's map
|
||||
# "It's about TIME", _Canadian Geographic_ (September-October 1998)
|
||||
# http://www.canadiangeographic.ca/Magazine/SO98/alacarte.asp
|
||||
# https://web.archive.org/web/19990827055050/https://canadiangeographic.ca/SO98/geomap.htm
|
||||
# contains detailed boundaries for regions observing nonstandard
|
||||
# time and daylight saving time arrangements in Canada circa 1998.
|
||||
#
|
||||
@@ -1665,6 +1669,15 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9
|
||||
# Some cities in the United States have pushed the deadline back
|
||||
# three weeks and will change over from daylight saving in October.
|
||||
|
||||
# From Chris Walton (2024-01-09):
|
||||
# The [Toronto] changes in 1947, 1948, and 1949 took place at 2:00 a.m. local
|
||||
# time instead of midnight.... Toronto Daily Star - ...
|
||||
# April 2, 1947 - Page 39 ... April 7, 1948 - Page 13 ...
|
||||
# April 2, 1949 - Page 1 ... April 7, 1949 - Page 24 ...
|
||||
# November 25, 1949 - Page 52 ... April 21, 1950 - Page 14 ...
|
||||
# September 19, 1950 - Page 46 ... September 20, 1950 - Page 3 ...
|
||||
# November 24, 1950 - Page 21
|
||||
|
||||
# From Arthur David Olson (2010-07-17):
|
||||
#
|
||||
# "Standard Time and Time Zones in Canada" appeared in
|
||||
@@ -1726,13 +1739,9 @@ Rule Toronto 1927 1937 - Sep Sun>=25 2:00 0 S
|
||||
Rule Toronto 1928 1937 - Apr Sun>=25 2:00 1:00 D
|
||||
Rule Toronto 1938 1940 - Apr lastSun 2:00 1:00 D
|
||||
Rule Toronto 1938 1939 - Sep lastSun 2:00 0 S
|
||||
Rule Toronto 1945 1946 - Sep lastSun 2:00 0 S
|
||||
Rule Toronto 1946 only - Apr lastSun 2:00 1:00 D
|
||||
Rule Toronto 1947 1949 - Apr lastSun 0:00 1:00 D
|
||||
Rule Toronto 1947 1948 - Sep lastSun 0:00 0 S
|
||||
Rule Toronto 1949 only - Nov lastSun 0:00 0 S
|
||||
Rule Toronto 1950 1973 - Apr lastSun 2:00 1:00 D
|
||||
Rule Toronto 1950 only - Nov lastSun 2:00 0 S
|
||||
Rule Toronto 1945 1948 - Sep lastSun 2:00 0 S
|
||||
Rule Toronto 1946 1973 - Apr lastSun 2:00 1:00 D
|
||||
Rule Toronto 1949 1950 - Nov lastSun 2:00 0 S
|
||||
Rule Toronto 1951 1956 - Sep lastSun 2:00 0 S
|
||||
# Shanks & Pottenger say Toronto ended DST a week early in 1971,
|
||||
# namely on 1971-10-24, but Mark Brader wrote (2003-05-31) that this
|
||||
@@ -3455,7 +3464,7 @@ Zone America/Jamaica -5:07:10 - LMT 1890 # Kingston
|
||||
# Martinique
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Martinique -4:04:20 - LMT 1890 # Fort-de-France
|
||||
-4:04:20 - FFMT 1911 May # Fort-de-France MT
|
||||
-4:04:20 - FFMT 1911 May 1 # Fort-de-France MT
|
||||
-4:00 - AST 1980 Apr 6
|
||||
-4:00 1:00 ADT 1980 Sep 28
|
||||
-4:00 - AST
|
||||
@@ -3562,7 +3571,7 @@ Zone America/Puerto_Rico -4:24:25 - LMT 1899 Mar 28 12:00 # San Juan
|
||||
# St Pierre and Miquelon
|
||||
# There are too many St Pierres elsewhere, so we'll use 'Miquelon'.
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Miquelon -3:44:40 - LMT 1911 May 15 # St Pierre
|
||||
Zone America/Miquelon -3:44:40 - LMT 1911 Jun 15 # St Pierre
|
||||
-4:00 - AST 1980 May
|
||||
-3:00 - -03 1987
|
||||
-3:00 Canada -03/-02
|
||||
|
||||
@@ -1593,8 +1593,11 @@ Zone Atlantic/Stanley -3:51:24 - LMT 1890
|
||||
-3:00 - -03
|
||||
|
||||
# French Guiana
|
||||
# For the 1911/1912 establishment of standard time in French possessions, see:
|
||||
# Société Française de Physique, Recueil de constantes physiques (1913),
|
||||
# page 752, 18b.
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Cayenne -3:29:20 - LMT 1911 Jul
|
||||
Zone America/Cayenne -3:29:20 - LMT 1911 Jul 1
|
||||
-4:00 - -04 1967 Oct
|
||||
-3:00 - -03
|
||||
|
||||
|
||||
@@ -40,6 +40,10 @@ ifeq ($(TOOLCHAIN_TYPE), gcc)
|
||||
# Need extra inlining to collapse all marking code into the hot marking loop
|
||||
BUILD_LIBJVM_shenandoahConcurrentMark.cpp_CXXFLAGS := --param inline-unit-growth=1000
|
||||
endif
|
||||
ifeq ($(call check-jvm-feature, dtrace), true)
|
||||
# DTRACE_PROBE macros trigger a maybe-uninitialized warning on 'ret'
|
||||
BUILD_LIBJVM_jni.cpp_CXXFLAGS := -Wno-maybe-uninitialized
|
||||
endif
|
||||
endif
|
||||
|
||||
LIBJVM_FDLIBM_COPY_OPT_FLAG := $(CXX_O_FLAG_NONE)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2023, 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
|
||||
@@ -30,6 +30,7 @@ import java.io.FileNotFoundException;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
@@ -312,9 +313,15 @@ public class GenerateCurrencyData {
|
||||
validCurrencyCodes.substring(i * 7 + 3, i * 7 + 6));
|
||||
checkCurrencyCode(currencyCode);
|
||||
int tableEntry = mainTable[(currencyCode.charAt(0) - 'A') * A_TO_Z + (currencyCode.charAt(1) - 'A')];
|
||||
if (tableEntry == INVALID_COUNTRY_ENTRY ||
|
||||
(tableEntry & SPECIAL_CASE_COUNTRY_MASK) != 0 ||
|
||||
(tableEntry & SIMPLE_CASE_COUNTRY_FINAL_CHAR_MASK) != (currencyCode.charAt(2) - 'A')) {
|
||||
|
||||
// Do not allow a future currency to be classified as an otherCurrency,
|
||||
// otherwise it will leak out into Currency:getAvailableCurrencies
|
||||
boolean futureCurrency = Arrays.asList(specialCaseNewCurrencies).contains(currencyCode);
|
||||
boolean simpleCurrency = (tableEntry & SIMPLE_CASE_COUNTRY_FINAL_CHAR_MASK) == (currencyCode.charAt(2) - 'A');
|
||||
|
||||
// If neither a simple currency, or one defined in the future
|
||||
// then the current currency is applicable to be added to the otherTable
|
||||
if (!futureCurrency && !simpleCurrency) {
|
||||
if (otherCurrenciesCount == maxOtherCurrencies) {
|
||||
throw new RuntimeException("too many other currencies");
|
||||
}
|
||||
|
||||
@@ -516,7 +516,6 @@ else
|
||||
LIBFREETYPE_LIBS := -lfreetype
|
||||
endif
|
||||
|
||||
# gcc_ftobjs.c := maybe-uninitialized required for GCC 7 builds.
|
||||
$(eval $(call SetupJdkLibrary, BUILD_LIBFREETYPE, \
|
||||
NAME := freetype, \
|
||||
OPTIMIZATION := HIGHEST, \
|
||||
@@ -529,7 +528,6 @@ else
|
||||
DISABLED_WARNINGS_microsoft := 4018 4267 4244 4312 4819, \
|
||||
DISABLED_WARNINGS_gcc := implicit-fallthrough cast-function-type bad-function-cast, \
|
||||
DISABLED_WARNINGS_clang := missing-declarations, \
|
||||
DISABLED_WARNINGS_gcc_ftobjs.c := maybe-uninitialized, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
))
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@@ -166,8 +166,10 @@ LIR_Address* LIRGenerator::generate_address(LIR_Opr base, LIR_Opr index,
|
||||
if (index->is_register()) {
|
||||
// apply the shift and accumulate the displacement
|
||||
if (shift > 0) {
|
||||
LIR_Opr tmp = new_pointer_register();
|
||||
__ shift_left(index, shift, tmp);
|
||||
// Use long register to avoid overflow when shifting large index values left.
|
||||
LIR_Opr tmp = new_register(T_LONG);
|
||||
__ convert(Bytecodes::_i2l, index, tmp);
|
||||
__ shift_left(tmp, shift, tmp);
|
||||
index = tmp;
|
||||
}
|
||||
if (large_disp != 0) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2012, 2017, SAP SE. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@@ -162,8 +162,10 @@ LIR_Address* LIRGenerator::generate_address(LIR_Opr base, LIR_Opr index,
|
||||
if (index->is_register()) {
|
||||
// Apply the shift and accumulate the displacement.
|
||||
if (shift > 0) {
|
||||
LIR_Opr tmp = new_pointer_register();
|
||||
__ shift_left(index, shift, tmp);
|
||||
// Use long register to avoid overflow when shifting large index values left.
|
||||
LIR_Opr tmp = new_register(T_LONG);
|
||||
__ convert(Bytecodes::_i2l, index, tmp);
|
||||
__ shift_left(tmp, shift, tmp);
|
||||
index = tmp;
|
||||
}
|
||||
if (large_disp != 0) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2016, 2017, SAP SE. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@@ -156,8 +156,10 @@ LIR_Address* LIRGenerator::generate_address(LIR_Opr base, LIR_Opr index,
|
||||
return new LIR_Address(base, index, type);
|
||||
} else {
|
||||
if (shift > 0) {
|
||||
LIR_Opr tmp = new_pointer_register();
|
||||
__ shift_left(index, shift, tmp);
|
||||
// Use long register to avoid overflow when shifting large index values left.
|
||||
LIR_Opr tmp = new_register(T_LONG);
|
||||
__ convert(Bytecodes::_i2l, index, tmp);
|
||||
__ shift_left(tmp, shift, tmp);
|
||||
index = tmp;
|
||||
}
|
||||
return new LIR_Address(base, index, disp, type);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 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
|
||||
@@ -160,8 +160,10 @@ LIR_Address* LIRGenerator::generate_address(LIR_Opr base, LIR_Opr index,
|
||||
if (index->is_register()) {
|
||||
// apply the shift and accumulate the displacement
|
||||
if (shift > 0) {
|
||||
LIR_Opr tmp = new_pointer_register();
|
||||
__ shift_left(index, shift, tmp);
|
||||
// Use long register to avoid overflow when shifting large index values left.
|
||||
LIR_Opr tmp = new_register(T_LONG);
|
||||
__ convert(Bytecodes::_i2l, index, tmp);
|
||||
__ shift_left(tmp, shift, tmp);
|
||||
index = tmp;
|
||||
}
|
||||
if (large_disp != 0) {
|
||||
|
||||
@@ -105,11 +105,11 @@ class CgroupV1Subsystem: public CgroupSubsystem {
|
||||
|
||||
private:
|
||||
/* controllers */
|
||||
CachingCgroupController* _memory = NULL;
|
||||
CgroupV1Controller* _cpuset = NULL;
|
||||
CachingCgroupController* _cpu = NULL;
|
||||
CgroupV1Controller* _cpuacct = NULL;
|
||||
CgroupV1Controller* _pids = NULL;
|
||||
CachingCgroupController* _memory;
|
||||
CgroupV1Controller* _cpuset;
|
||||
CachingCgroupController* _cpu;
|
||||
CgroupV1Controller* _cpuacct;
|
||||
CgroupV1Controller* _pids;
|
||||
|
||||
char * pids_max_val();
|
||||
|
||||
|
||||
@@ -51,10 +51,10 @@ class CgroupV2Controller: public CgroupController {
|
||||
class CgroupV2Subsystem: public CgroupSubsystem {
|
||||
private:
|
||||
/* One unified controller */
|
||||
CgroupController* _unified = NULL;
|
||||
CgroupController* _unified;
|
||||
/* Caching wrappers for cpu/memory metrics */
|
||||
CachingCgroupController* _memory = NULL;
|
||||
CachingCgroupController* _cpu = NULL;
|
||||
CachingCgroupController* _memory;
|
||||
CachingCgroupController* _cpu;
|
||||
|
||||
char *mem_limit_val();
|
||||
char *mem_swp_limit_val();
|
||||
|
||||
@@ -3040,6 +3040,9 @@ static void define_fill_new_machnode(bool used, FILE *fp_cpp) {
|
||||
fprintf(fp_cpp, " if( i != cisc_operand() ) \n");
|
||||
fprintf(fp_cpp, " to[i] = _opnds[i]->clone();\n");
|
||||
fprintf(fp_cpp, " }\n");
|
||||
fprintf(fp_cpp, " // Do not increment node index counter, since node reuses my index\n");
|
||||
fprintf(fp_cpp, " Compile* C = Compile::current();\n");
|
||||
fprintf(fp_cpp, " C->set_unique(C->unique() - 1);\n");
|
||||
fprintf(fp_cpp, "}\n");
|
||||
}
|
||||
fprintf(fp_cpp, "\n");
|
||||
|
||||
@@ -1921,14 +1921,13 @@ oop java_lang_Throwable::message(oop throwable) {
|
||||
}
|
||||
|
||||
|
||||
// Return Symbol for detailed_message or NULL
|
||||
Symbol* java_lang_Throwable::detail_message(oop throwable) {
|
||||
PRESERVE_EXCEPTION_MARK; // Keep original exception
|
||||
oop detailed_message = java_lang_Throwable::message(throwable);
|
||||
if (detailed_message != NULL) {
|
||||
return java_lang_String::as_symbol(detailed_message, THREAD);
|
||||
const char* java_lang_Throwable::message_as_utf8(oop throwable) {
|
||||
oop msg = java_lang_Throwable::message(throwable);
|
||||
const char* msg_utf8 = NULL;
|
||||
if (msg != NULL) {
|
||||
msg_utf8 = java_lang_String::as_utf8_string(msg);
|
||||
}
|
||||
return NULL;
|
||||
return msg_utf8;
|
||||
}
|
||||
|
||||
void java_lang_Throwable::set_message(oop throwable, oop value) {
|
||||
|
||||
@@ -532,11 +532,11 @@ class java_lang_Throwable: AllStatic {
|
||||
static void set_depth(oop throwable, int value);
|
||||
// Needed by JVMTI to filter out this internal field.
|
||||
static int get_backtrace_offset() { return backtrace_offset;}
|
||||
static int get_detailMessage_offset() { return detailMessage_offset;}
|
||||
// Message
|
||||
static int get_detailMessage_offset() { return detailMessage_offset;}
|
||||
static oop message(oop throwable);
|
||||
static const char* message_as_utf8(oop throwable);
|
||||
static void set_message(oop throwable, oop value);
|
||||
static Symbol* detail_message(oop throwable);
|
||||
static void print_stack_element(outputStream *st, const methodHandle& method, int bci);
|
||||
static void print_stack_usage(Handle stream);
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
// add new entry to the table
|
||||
void ResolutionErrorTable::add_entry(int index, unsigned int hash,
|
||||
const constantPoolHandle& pool, int cp_index,
|
||||
Symbol* error, Symbol* message)
|
||||
Symbol* error, const char* message)
|
||||
{
|
||||
assert_locked_or_safepoint(SystemDictionary_lock);
|
||||
assert(!pool.is_null() && error != NULL, "adding NULL obj");
|
||||
@@ -64,16 +64,14 @@ void ResolutionErrorEntry::set_error(Symbol* e) {
|
||||
_error->increment_refcount();
|
||||
}
|
||||
|
||||
void ResolutionErrorEntry::set_message(Symbol* c) {
|
||||
assert(c != NULL, "must set a value");
|
||||
_message = c;
|
||||
_message->increment_refcount();
|
||||
void ResolutionErrorEntry::set_message(const char* c) {
|
||||
_message = c != NULL ? os::strdup(c) : NULL;
|
||||
}
|
||||
|
||||
// create new error entry
|
||||
ResolutionErrorEntry* ResolutionErrorTable::new_entry(int hash, ConstantPool* pool,
|
||||
int cp_index, Symbol* error,
|
||||
Symbol* message)
|
||||
const char* message)
|
||||
{
|
||||
ResolutionErrorEntry* entry = (ResolutionErrorEntry*)Hashtable<ConstantPool*, mtClass>::new_entry(hash, pool);
|
||||
entry->set_cp_index(cp_index);
|
||||
@@ -87,7 +85,9 @@ void ResolutionErrorTable::free_entry(ResolutionErrorEntry *entry) {
|
||||
// decrement error refcount
|
||||
assert(entry->error() != NULL, "error should be set");
|
||||
entry->error()->decrement_refcount();
|
||||
entry->message()->decrement_refcount();
|
||||
if (entry->message() != NULL) {
|
||||
FREE_C_HEAP_ARRAY(char, entry->message());
|
||||
}
|
||||
Hashtable<ConstantPool*, mtClass>::free_entry(entry);
|
||||
}
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ public:
|
||||
ResolutionErrorTable(int table_size);
|
||||
|
||||
ResolutionErrorEntry* new_entry(int hash, ConstantPool* pool, int cp_index,
|
||||
Symbol* error, Symbol* message);
|
||||
Symbol* error, const char* message);
|
||||
void free_entry(ResolutionErrorEntry *entry);
|
||||
|
||||
ResolutionErrorEntry* bucket(int i) {
|
||||
@@ -62,7 +62,7 @@ public:
|
||||
}
|
||||
|
||||
void add_entry(int index, unsigned int hash,
|
||||
const constantPoolHandle& pool, int which, Symbol* error, Symbol* message);
|
||||
const constantPoolHandle& pool, int cp_index, Symbol* error, const char* error_msg);
|
||||
|
||||
|
||||
// find error given the constant pool and constant pool index
|
||||
@@ -94,7 +94,7 @@ class ResolutionErrorEntry : public HashtableEntry<ConstantPool*, mtClass> {
|
||||
private:
|
||||
int _cp_index;
|
||||
Symbol* _error;
|
||||
Symbol* _message;
|
||||
const char* _message;
|
||||
|
||||
public:
|
||||
ConstantPool* pool() const { return literal(); }
|
||||
@@ -105,8 +105,9 @@ class ResolutionErrorEntry : public HashtableEntry<ConstantPool*, mtClass> {
|
||||
Symbol* error() const { return _error; }
|
||||
void set_error(Symbol* e);
|
||||
|
||||
Symbol* message() const { return _message; }
|
||||
void set_message(Symbol* c);
|
||||
const char* message() const { return _message; }
|
||||
// The incoming message is copied to the C-Heap.
|
||||
void set_message(const char* c);
|
||||
|
||||
ResolutionErrorEntry* next() const {
|
||||
return (ResolutionErrorEntry*)HashtableEntry<ConstantPool*, mtClass>::next();
|
||||
|
||||
@@ -2290,7 +2290,7 @@ bool SystemDictionary::add_loader_constraint(Symbol* class_name,
|
||||
// Add entry to resolution error table to record the error when the first
|
||||
// attempt to resolve a reference to a class has failed.
|
||||
void SystemDictionary::add_resolution_error(const constantPoolHandle& pool, int which,
|
||||
Symbol* error, Symbol* message) {
|
||||
Symbol* error, const char* message) {
|
||||
unsigned int hash = resolution_errors()->compute_hash(pool, which);
|
||||
int index = resolution_errors()->hash_to_index(hash);
|
||||
{
|
||||
@@ -2306,7 +2306,7 @@ void SystemDictionary::delete_resolution_error(ConstantPool* pool) {
|
||||
|
||||
// Lookup resolution error table. Returns error if found, otherwise NULL.
|
||||
Symbol* SystemDictionary::find_resolution_error(const constantPoolHandle& pool, int which,
|
||||
Symbol** message) {
|
||||
const char** message) {
|
||||
unsigned int hash = resolution_errors()->compute_hash(pool, which);
|
||||
int index = resolution_errors()->hash_to_index(hash);
|
||||
{
|
||||
|
||||
@@ -579,10 +579,10 @@ public:
|
||||
// Record the error when the first attempt to resolve a reference from a constant
|
||||
// pool entry to a class fails.
|
||||
static void add_resolution_error(const constantPoolHandle& pool, int which, Symbol* error,
|
||||
Symbol* message);
|
||||
const char* message);
|
||||
static void delete_resolution_error(ConstantPool* pool);
|
||||
static Symbol* find_resolution_error(const constantPoolHandle& pool, int which,
|
||||
Symbol** message);
|
||||
const char** message);
|
||||
|
||||
|
||||
static ProtectionDomainCacheEntry* cache_get(Handle protection_domain);
|
||||
|
||||
@@ -1862,7 +1862,11 @@ PcDesc* PcDescContainer::find_pc_desc_internal(address pc, bool approximate, con
|
||||
|
||||
if (match_desc(upper, pc_offset, approximate)) {
|
||||
assert(upper == linear_search(search, pc_offset, approximate), "search ok");
|
||||
_pc_desc_cache.add_pc_desc(upper);
|
||||
if (!Thread::current_in_asgct()) {
|
||||
// we don't want to modify the cache if we're in ASGCT
|
||||
// which is typically called in a signal handler
|
||||
_pc_desc_cache.add_pc_desc(upper);
|
||||
}
|
||||
return upper;
|
||||
} else {
|
||||
assert(NULL == linear_search(search, pc_offset, approximate), "search ok");
|
||||
|
||||
150
src/hotspot/share/legal/siphash.md
Normal file
150
src/hotspot/share/legal/siphash.md
Normal file
@@ -0,0 +1,150 @@
|
||||
## SipHash v1.0-68c8a7c
|
||||
|
||||
### Notice
|
||||
SipHash reference C implementation
|
||||
|
||||
```
|
||||
Copyright (c) 2012-2021 Jean-Philippe Aumasson
|
||||
<jeanphilippe.aumasson@gmail.com>
|
||||
Copyright (c) 2012-2014 Daniel J. Bernstein <djb@cr.yp.to>
|
||||
To the extent possible under law, the author(s) have dedicated all copyright
|
||||
and related and neighboring rights to this software to the public domain
|
||||
worldwide. This software is distributed without any warranty.
|
||||
You should have received a copy of the CC0 Public Domain Dedication along
|
||||
with
|
||||
this software. If not, see
|
||||
<http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
```
|
||||
|
||||
### Licenses
|
||||
The code is dual-licensed CCO and MIT
|
||||
|
||||
#### MIT License
|
||||
```
|
||||
Copyright 2012-2024 JP Aumasson
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
```
|
||||
|
||||
#### CC0 1.0 Universal
|
||||
```
|
||||
Statement of Purpose
|
||||
|
||||
The laws of most jurisdictions throughout the world automatically confer
|
||||
exclusive Copyright and Related Rights (defined below) upon the creator and
|
||||
subsequent owner(s) (each and all, an "owner") of an original work of
|
||||
authorship and/or a database (each, a "Work").
|
||||
|
||||
Certain owners wish to permanently relinquish those rights to a Work for the
|
||||
purpose of contributing to a commons of creative, cultural and scientific
|
||||
works ("Commons") that the public can reliably and without fear of later
|
||||
claims of infringement build upon, modify, incorporate in other works, reuse
|
||||
and redistribute as freely as possible in any form whatsoever and for any
|
||||
purposes, including without limitation commercial purposes. These owners may
|
||||
contribute to the Commons to promote the ideal of a free culture and the
|
||||
further production of creative, cultural and scientific works, or to gain
|
||||
reputation or greater distribution for their Work in part through the use and
|
||||
efforts of others.
|
||||
|
||||
For these and/or other purposes and motivations, and without any expectation
|
||||
of additional consideration or compensation, the person associating CC0 with a
|
||||
Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
|
||||
and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
|
||||
and publicly distribute the Work under its terms, with knowledge of his or her
|
||||
Copyright and Related Rights in the Work and the meaning and intended legal
|
||||
effect of CC0 on those rights.
|
||||
|
||||
1. Copyright and Related Rights. A Work made available under CC0 may be
|
||||
protected by copyright and related or neighboring rights ("Copyright and
|
||||
Related Rights"). Copyright and Related Rights include, but are not limited
|
||||
to, the following:
|
||||
|
||||
i. the right to reproduce, adapt, distribute, perform, display, communicate,
|
||||
and translate a Work;
|
||||
|
||||
ii. moral rights retained by the original author(s) and/or performer(s);
|
||||
|
||||
iii. publicity and privacy rights pertaining to a person's image or likeness
|
||||
depicted in a Work;
|
||||
|
||||
iv. rights protecting against unfair competition in regards to a Work,
|
||||
subject to the limitations in paragraph 4(a), below;
|
||||
|
||||
v. rights protecting the extraction, dissemination, use and reuse of data in
|
||||
a Work;
|
||||
|
||||
vi. database rights (such as those arising under Directive 96/9/EC of the
|
||||
European Parliament and of the Council of 11 March 1996 on the legal
|
||||
protection of databases, and under any national implementation thereof,
|
||||
including any amended or successor version of such directive); and
|
||||
|
||||
vii. other similar, equivalent or corresponding rights throughout the world
|
||||
based on applicable law or treaty, and any national implementations thereof.
|
||||
|
||||
2. Waiver. To the greatest extent permitted by, but not in contravention of,
|
||||
applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
|
||||
unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
|
||||
and Related Rights and associated claims and causes of action, whether now
|
||||
known or unknown (including existing as well as future claims and causes of
|
||||
action), in the Work (i) in all territories worldwide, (ii) for the maximum
|
||||
duration provided by applicable law or treaty (including future time
|
||||
extensions), (iii) in any current or future medium and for any number of
|
||||
copies, and (iv) for any purpose whatsoever, including without limitation
|
||||
commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes
|
||||
the Waiver for the benefit of each member of the public at large and to the
|
||||
detriment of Affirmer's heirs and successors, fully intending that such Waiver
|
||||
shall not be subject to revocation, rescission, cancellation, termination, or
|
||||
any other legal or equitable action to disrupt the quiet enjoyment of the Work
|
||||
by the public as contemplated by Affirmer's express Statement of Purpose.
|
||||
|
||||
3. Public License Fallback. Should any part of the Waiver for any reason be
|
||||
judged legally invalid or ineffective under applicable law, then the Waiver
|
||||
shall be preserved to the maximum extent permitted taking into account
|
||||
Affirmer's express Statement of Purpose. In addition, to the extent the Waiver
|
||||
is so judged Affirmer hereby grants to each affected person a royalty-free,
|
||||
non transferable, non sublicensable, non exclusive, irrevocable and
|
||||
unconditional license to exercise Affirmer's Copyright and Related Rights in
|
||||
the Work (i) in all territories worldwide, (ii) for the maximum duration
|
||||
provided by applicable law or treaty (including future time extensions), (iii)
|
||||
in any current or future medium and for any number of copies, and (iv) for any
|
||||
purpose whatsoever, including without limitation commercial, advertising or
|
||||
promotional purposes (the "License"). The License shall be deemed effective as
|
||||
of the date CC0 was applied by Affirmer to the Work. Should any part of the
|
||||
License for any reason be judged legally invalid or ineffective under
|
||||
applicable law, such partial invalidity or ineffectiveness shall not
|
||||
invalidate the remainder of the License, and in such case Affirmer hereby
|
||||
affirms that he or she will not (i) exercise any of his or her remaining
|
||||
Copyright and Related Rights in the Work or (ii) assert any associated claims
|
||||
and causes of action with respect to the Work, in either case contrary to
|
||||
Affirmer's express Statement of Purpose.
|
||||
|
||||
4. Limitations and Disclaimers.
|
||||
|
||||
a. No trademark or patent rights held by Affirmer are waived, abandoned,
|
||||
surrendered, licensed or otherwise affected by this document.
|
||||
|
||||
b. Affirmer offers the Work as-is and makes no representations or warranties
|
||||
of any kind concerning the Work, express, implied, statutory or otherwise,
|
||||
including without limitation warranties of title, merchantability, fitness
|
||||
for a particular purpose, non infringement, or the absence of latent or
|
||||
other defects, accuracy, or the present or absence of errors, whether or not
|
||||
discoverable, all to the greatest extent permissible under applicable law.
|
||||
|
||||
c. Affirmer disclaims responsibility for clearing rights of other persons
|
||||
that may apply to the Work or any use thereof, including without limitation
|
||||
any person's Copyright and Related Rights in the Work. Further, Affirmer
|
||||
disclaims responsibility for obtaining any necessary consents, permissions
|
||||
or other rights required for any use of the Work.
|
||||
|
||||
d. Affirmer understands and acknowledges that Creative Commons is not a
|
||||
party to this document and has no duty or obligation with respect to this
|
||||
CC0 or use of the Work.
|
||||
|
||||
For more information, please see
|
||||
<http://creativecommons.org/publicdomain/zero/1.0/>
|
||||
|
||||
```
|
||||
@@ -734,13 +734,16 @@ void ConstantPool::resolve_string_constants_impl(const constantPoolHandle& this_
|
||||
}
|
||||
}
|
||||
|
||||
Symbol* ConstantPool::exception_message(const constantPoolHandle& this_cp, int which, constantTag tag, oop pending_exception) {
|
||||
const char* ConstantPool::exception_message(const constantPoolHandle& this_cp, int which, constantTag tag, oop pending_exception) {
|
||||
// Note: caller needs ResourceMark
|
||||
|
||||
// Dig out the detailed message to reuse if possible
|
||||
Symbol* message = java_lang_Throwable::detail_message(pending_exception);
|
||||
if (message != NULL) {
|
||||
return message;
|
||||
const char* msg = java_lang_Throwable::message_as_utf8(pending_exception);
|
||||
if (msg != NULL) {
|
||||
return msg;
|
||||
}
|
||||
|
||||
Symbol* message = NULL;
|
||||
// Return specific message for the tag
|
||||
switch (tag.value()) {
|
||||
case JVM_CONSTANT_UnresolvedClass:
|
||||
@@ -763,16 +766,16 @@ Symbol* ConstantPool::exception_message(const constantPoolHandle& this_cp, int w
|
||||
ShouldNotReachHere();
|
||||
}
|
||||
|
||||
return message;
|
||||
return message != NULL ? message->as_C_string() : NULL;
|
||||
}
|
||||
|
||||
void ConstantPool::throw_resolution_error(const constantPoolHandle& this_cp, int which, TRAPS) {
|
||||
Symbol* message = NULL;
|
||||
ResourceMark rm(THREAD);
|
||||
const char* message = NULL;
|
||||
Symbol* error = SystemDictionary::find_resolution_error(this_cp, which, &message);
|
||||
assert(error != NULL && message != NULL, "checking");
|
||||
CLEAR_PENDING_EXCEPTION;
|
||||
ResourceMark rm;
|
||||
THROW_MSG(error, message->as_C_string());
|
||||
THROW_MSG(error, message);
|
||||
}
|
||||
|
||||
// If resolution for Class, Dynamic constant, MethodHandle or MethodType fails, save the
|
||||
@@ -790,7 +793,9 @@ void ConstantPool::save_and_throw_exception(const constantPoolHandle& this_cp, i
|
||||
// and OutOfMemoryError, etc, or if the thread was hit by stop()
|
||||
// Needs clarification to section 5.4.3 of the VM spec (see 6308271)
|
||||
} else if (this_cp->tag_at(which).value() != error_tag) {
|
||||
Symbol* message = exception_message(this_cp, which, tag, PENDING_EXCEPTION);
|
||||
ResourceMark rm(THREAD);
|
||||
|
||||
const char* message = exception_message(this_cp, which, tag, PENDING_EXCEPTION);
|
||||
SystemDictionary::add_resolution_error(this_cp, which, error, message);
|
||||
// CAS in the tag. If a thread beat us to registering this error that's fine.
|
||||
// If another thread resolved the reference, this is a race condition. This
|
||||
|
||||
@@ -878,7 +878,7 @@ class ConstantPool : public Metadata {
|
||||
bool must_resolve, Handle if_not_available, TRAPS);
|
||||
|
||||
// Exception handling
|
||||
static Symbol* exception_message(const constantPoolHandle& this_cp, int which, constantTag tag, oop pending_exception);
|
||||
static const char* exception_message(const constantPoolHandle& this_cp, int which, constantTag tag, oop pending_exception);
|
||||
static void save_and_throw_exception(const constantPoolHandle& this_cp, int which, constantTag tag, TRAPS);
|
||||
|
||||
public:
|
||||
|
||||
@@ -484,9 +484,9 @@ bool ConstantPoolCacheEntry::save_and_throw_indy_exc(
|
||||
CLEAR_PENDING_EXCEPTION;
|
||||
return false;
|
||||
}
|
||||
|
||||
ResourceMark rm(THREAD);
|
||||
Symbol* error = PENDING_EXCEPTION->klass()->name();
|
||||
Symbol* message = java_lang_Throwable::detail_message(PENDING_EXCEPTION);
|
||||
const char* message = java_lang_Throwable::message_as_utf8(PENDING_EXCEPTION);
|
||||
assert(message != NULL, "Missing detail message");
|
||||
|
||||
SystemDictionary::add_resolution_error(cpool, index, error, message);
|
||||
|
||||
@@ -40,9 +40,13 @@ Symbol::Symbol(const u1* name, int length, int refcount) {
|
||||
_refcount = refcount;
|
||||
_length = length;
|
||||
_identity_hash = (short)os::random();
|
||||
for (int i = 0; i < _length; i++) {
|
||||
byte_at_put(i, name[i]);
|
||||
}
|
||||
// _body[0..1] are allocated in the header just by coincidence in the current
|
||||
// implementation of Symbol. They are read by identity_hash(), so make sure they
|
||||
// are initialized.
|
||||
// No other code should assume that _body[0..1] are always allocated. E.g., do
|
||||
// not unconditionally read base()[0] as that will be invalid for an empty Symbol.
|
||||
_body[0] = _body[1] = 0;
|
||||
memcpy(_body, name, length);
|
||||
}
|
||||
|
||||
void* Symbol::operator new(size_t sz, int len, TRAPS) throw() {
|
||||
|
||||
@@ -128,11 +128,6 @@ class Symbol : public MetaspaceObj {
|
||||
return (int)heap_word_size(byte_size(length));
|
||||
}
|
||||
|
||||
void byte_at_put(int index, int value) {
|
||||
assert(index >=0 && index < _length, "symbol index overflow");
|
||||
_body[index] = value;
|
||||
}
|
||||
|
||||
Symbol(const u1* name, int length, int refcount);
|
||||
void* operator new(size_t size, int len, TRAPS) throw();
|
||||
void* operator new(size_t size, int len, Arena* arena, TRAPS) throw();
|
||||
|
||||
@@ -554,8 +554,9 @@ void AsyncGetCallTrace(ASGCT_CallTrace *trace, jint depth, void* ucontext) {
|
||||
return;
|
||||
}
|
||||
|
||||
// !important! make sure all to call thread->set_in_asgct(false) before every return
|
||||
thread->set_in_asgct(true);
|
||||
|
||||
// signify to other code in the VM that we're in ASGCT
|
||||
ThreadInAsgct tia(thread);
|
||||
|
||||
switch (thread->thread_state()) {
|
||||
case _thread_new:
|
||||
@@ -614,7 +615,6 @@ void AsyncGetCallTrace(ASGCT_CallTrace *trace, jint depth, void* ucontext) {
|
||||
trace->num_frames = ticks_unknown_state; // -7
|
||||
break;
|
||||
}
|
||||
thread->set_in_asgct(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -321,6 +321,7 @@ Thread::Thread() {
|
||||
}
|
||||
|
||||
MACOS_AARCH64_ONLY(DEBUG_ONLY(_wx_init = false));
|
||||
_in_asgct = false;
|
||||
}
|
||||
|
||||
void Thread::initialize_thread_current() {
|
||||
|
||||
@@ -762,6 +762,31 @@ protected:
|
||||
void init_wx();
|
||||
WXMode enable_wx(WXMode new_state);
|
||||
#endif // __APPLE__ && AARCH64
|
||||
|
||||
private:
|
||||
bool _in_asgct;
|
||||
public:
|
||||
bool in_asgct() const { return _in_asgct; }
|
||||
void set_in_asgct(bool value) { _in_asgct = value; }
|
||||
static bool current_in_asgct() {
|
||||
Thread *cur = Thread::current_or_null_safe();
|
||||
return cur != NULL && cur->in_asgct();
|
||||
}
|
||||
};
|
||||
|
||||
class ThreadInAsgct {
|
||||
private:
|
||||
Thread* _thread;
|
||||
public:
|
||||
ThreadInAsgct(Thread* thread) : _thread(thread) {
|
||||
assert(thread != NULL, "invariant");
|
||||
assert(!thread->in_asgct(), "invariant");
|
||||
thread->set_in_asgct(true);
|
||||
}
|
||||
~ThreadInAsgct() {
|
||||
assert(_thread->in_asgct(), "invariant");
|
||||
_thread->set_in_asgct(false);
|
||||
}
|
||||
};
|
||||
|
||||
// Inline implementation of Thread::current()
|
||||
|
||||
@@ -529,11 +529,11 @@ void Exceptions::debug_check_abort_helper(Handle exception, const char* message)
|
||||
// for logging exceptions
|
||||
void Exceptions::log_exception(Handle exception, const char* message) {
|
||||
ResourceMark rm;
|
||||
Symbol* detail_message = java_lang_Throwable::detail_message(exception());
|
||||
const char* detail_message = java_lang_Throwable::message_as_utf8(exception());
|
||||
if (detail_message != NULL) {
|
||||
log_info(exceptions)("Exception <%s: %s>\n thrown in %s",
|
||||
exception->print_value_string(),
|
||||
detail_message->as_C_string(),
|
||||
detail_message,
|
||||
message);
|
||||
} else {
|
||||
log_info(exceptions)("Exception <%s>\n thrown in %s",
|
||||
|
||||
@@ -32,6 +32,8 @@ import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.jar.JarOutputStream;
|
||||
import java.util.jar.Pack200;
|
||||
import java.util.zip.CRC32;
|
||||
@@ -78,8 +80,13 @@ class NativeUnpack {
|
||||
private int _estFileLimit; // ditto
|
||||
private int _prevPercent = -1; // for monotonicity
|
||||
|
||||
private final CRC32 _crc32 = new CRC32();
|
||||
private byte[] _buf = new byte[1<<14];
|
||||
private final CRC32 _crc32 = new CRC32();
|
||||
private static final int MAX_BUFFER_SIZE = 1 << 20; // 1 MB byte[]
|
||||
private byte[] _buf = new byte[1 << 14]; // 16 KB byte[] initially
|
||||
private List<byte[]> _extra_buf = new LinkedList<>(); // extra buffers
|
||||
// for large files
|
||||
private byte[] _current_buf; // buffer being filled
|
||||
private int _current_buf_pos; // position to fill in more data
|
||||
|
||||
private UnpackerImpl _p200;
|
||||
private PropMap _props;
|
||||
@@ -196,41 +203,44 @@ class NativeUnpack {
|
||||
updateProgress(); // reset progress bar
|
||||
for (;;) {
|
||||
// Read the packed bits.
|
||||
long counts = start(presetInput, 0);
|
||||
_byteCount = _estByteLimit = 0; // reset partial scan counts
|
||||
++_segCount; // just finished scanning a whole segment...
|
||||
int nextSeg = (int)( counts >>> 32 );
|
||||
int nextFile = (int)( counts >>> 0 );
|
||||
long counts = start(presetInput, 0), consumed;
|
||||
try {
|
||||
_byteCount = _estByteLimit = 0; // reset partial scan counts
|
||||
++_segCount; // just finished scanning a whole segment...
|
||||
int nextSeg = (int) (counts >>> 32);
|
||||
int nextFile = (int) (counts >>> 0);
|
||||
|
||||
// Estimate eventual total number of segments and files.
|
||||
_estSegLimit = _segCount + nextSeg;
|
||||
double filesAfterThisSeg = _fileCount + nextFile;
|
||||
_estFileLimit = (int)( (filesAfterThisSeg *
|
||||
_estSegLimit) / _segCount );
|
||||
// Estimate eventual total number of segments and files.
|
||||
_estSegLimit = _segCount + nextSeg;
|
||||
double filesAfterThisSeg = _fileCount + nextFile;
|
||||
_estFileLimit = (int) ((filesAfterThisSeg *
|
||||
_estSegLimit) / _segCount);
|
||||
|
||||
// Write the files.
|
||||
int[] intParts = { 0,0, 0, 0 };
|
||||
// intParts = {size.hi/lo, mod, defl}
|
||||
Object[] parts = { intParts, null, null, null };
|
||||
// parts = { {intParts}, name, data0/1 }
|
||||
while (getNextFile(parts)) {
|
||||
//BandStructure.printArrayTo(System.out, intParts, 0, parts.length);
|
||||
String name = (String) parts[1];
|
||||
long size = ( (long)intParts[0] << 32)
|
||||
+ (((long)intParts[1] << 32) >>> 32);
|
||||
// Write the files.
|
||||
int[] intParts = {0, 0, 0, 0};
|
||||
// intParts = {size.hi/lo, mod, defl}
|
||||
Object[] parts = {intParts, null, null, null};
|
||||
// parts = { {intParts}, name, data0/1 }
|
||||
while (getNextFile(parts)) {
|
||||
//BandStructure.printArrayTo(System.out, intParts, 0, parts.length);
|
||||
String name = (String) parts[1];
|
||||
long size = ((long) intParts[0] << 32)
|
||||
+ (((long) intParts[1] << 32) >>> 32);
|
||||
|
||||
long mtime = (modtime != Constants.NO_MODTIME ) ?
|
||||
modtime : intParts[2] ;
|
||||
boolean deflateHint = (intParts[3] != 0);
|
||||
ByteBuffer data0 = (ByteBuffer) parts[2];
|
||||
ByteBuffer data1 = (ByteBuffer) parts[3];
|
||||
writeEntry(jstream, name, mtime, size, deflateHint,
|
||||
data0, data1);
|
||||
++_fileCount;
|
||||
updateProgress();
|
||||
long mtime = (modtime != Constants.NO_MODTIME) ?
|
||||
modtime : intParts[2];
|
||||
boolean deflateHint = (intParts[3] != 0);
|
||||
ByteBuffer data0 = (ByteBuffer) parts[2];
|
||||
ByteBuffer data1 = (ByteBuffer) parts[3];
|
||||
writeEntry(jstream, name, mtime, size, deflateHint,
|
||||
data0, data1);
|
||||
++_fileCount;
|
||||
updateProgress();
|
||||
}
|
||||
presetInput = getUnusedInput();
|
||||
} finally {
|
||||
consumed = finish();
|
||||
}
|
||||
presetInput = getUnusedInput();
|
||||
long consumed = finish();
|
||||
if (_verbose > 0)
|
||||
Utils.log.info("bytes consumed = "+consumed);
|
||||
if (presetInput == null &&
|
||||
@@ -257,76 +267,145 @@ class NativeUnpack {
|
||||
// Note: caller is responsible to finish with jstream.
|
||||
}
|
||||
|
||||
private void writeEntry(JarOutputStream j, String name,
|
||||
long mtime, long lsize, boolean deflateHint,
|
||||
ByteBuffer data0, ByteBuffer data1) throws IOException {
|
||||
int size = (int)lsize;
|
||||
if (size != lsize)
|
||||
throw new IOException("file too large: "+lsize);
|
||||
|
||||
CRC32 crc32 = _crc32;
|
||||
|
||||
if (_verbose > 1)
|
||||
Utils.log.fine("Writing entry: "+name+" size="+size
|
||||
+(deflateHint?" deflated":""));
|
||||
|
||||
if (_buf.length < size) {
|
||||
int newSize = size;
|
||||
while (newSize < _buf.length) {
|
||||
newSize <<= 1;
|
||||
if (newSize <= 0) {
|
||||
newSize = size;
|
||||
break;
|
||||
}
|
||||
}
|
||||
_buf = new byte[newSize];
|
||||
private void writeEntry(JarOutputStream j, String name, long mtime,
|
||||
long lsize, boolean deflateHint, ByteBuffer data0,
|
||||
ByteBuffer data1) throws IOException {
|
||||
if (lsize < 0 || lsize > Integer.MAX_VALUE) {
|
||||
throw new IOException("file too large: " + lsize);
|
||||
}
|
||||
assert(_buf.length >= size);
|
||||
int size = (int) lsize;
|
||||
|
||||
int fillp = 0;
|
||||
if (data0 != null) {
|
||||
int size0 = data0.capacity();
|
||||
data0.get(_buf, fillp, size0);
|
||||
fillp += size0;
|
||||
}
|
||||
if (data1 != null) {
|
||||
int size1 = data1.capacity();
|
||||
data1.get(_buf, fillp, size1);
|
||||
fillp += size1;
|
||||
}
|
||||
while (fillp < size) {
|
||||
// Fill in rest of data from the stream itself.
|
||||
int nr = in.read(_buf, fillp, size - fillp);
|
||||
if (nr <= 0) throw new IOException("EOF at end of archive");
|
||||
fillp += nr;
|
||||
if (_verbose > 1) {
|
||||
Utils.log.fine("Writing entry: " + name + " size=" + size +
|
||||
(deflateHint ? " deflated" : ""));
|
||||
}
|
||||
|
||||
ZipEntry z = new ZipEntry(name);
|
||||
z.setTime(mtime * 1000);
|
||||
|
||||
z.setSize(size);
|
||||
if (size == 0) {
|
||||
z.setMethod(ZipOutputStream.STORED);
|
||||
z.setSize(0);
|
||||
z.setCompressedSize(size);
|
||||
z.setCrc(0);
|
||||
z.setCompressedSize(0);
|
||||
j.putNextEntry(z);
|
||||
} else if (!deflateHint) {
|
||||
z.setMethod(ZipOutputStream.STORED);
|
||||
z.setSize(size);
|
||||
z.setCompressedSize(size);
|
||||
crc32.reset();
|
||||
crc32.update(_buf, 0, size);
|
||||
z.setCrc(crc32.getValue());
|
||||
writeEntryData(j, z, data0, data1, size, true);
|
||||
} else {
|
||||
z.setMethod(Deflater.DEFLATED);
|
||||
z.setSize(size);
|
||||
writeEntryData(j, z, data0, data1, size, false);
|
||||
}
|
||||
|
||||
j.putNextEntry(z);
|
||||
|
||||
if (size > 0)
|
||||
j.write(_buf, 0, size);
|
||||
|
||||
j.closeEntry();
|
||||
|
||||
if (_verbose > 0) Utils.log.info("Writing " + Utils.zeString(z));
|
||||
}
|
||||
|
||||
private void writeEntryData(JarOutputStream j, ZipEntry z, ByteBuffer data0,
|
||||
ByteBuffer data1, int size, boolean computeCrc32)
|
||||
throws IOException {
|
||||
prepareReadBuffers(size);
|
||||
try {
|
||||
int inBytes = size;
|
||||
inBytes -= readDataByteBuffer(data0);
|
||||
inBytes -= readDataByteBuffer(data1);
|
||||
inBytes -= readDataInputStream(inBytes);
|
||||
if (inBytes != 0L) {
|
||||
throw new IOException("invalid size: " + size);
|
||||
}
|
||||
if (computeCrc32) {
|
||||
_crc32.reset();
|
||||
processReadData((byte[] buff, int offset, int len) -> {
|
||||
_crc32.update(buff, offset, len);
|
||||
});
|
||||
z.setCrc(_crc32.getValue());
|
||||
}
|
||||
j.putNextEntry(z);
|
||||
processReadData((byte[] buff, int offset, int len) -> {
|
||||
j.write(buff, offset, len);
|
||||
});
|
||||
} finally {
|
||||
resetReadBuffers();
|
||||
}
|
||||
}
|
||||
|
||||
private void prepareReadBuffers(int size) {
|
||||
if (_buf.length < size && _buf.length < MAX_BUFFER_SIZE) {
|
||||
// Grow the regular buffer to accomodate lsize up to a limit.
|
||||
long newIdealSize = _buf.length;
|
||||
while (newIdealSize < size && newIdealSize < MAX_BUFFER_SIZE) {
|
||||
// Never overflows: size is [0, 0x7FFFFFFF].
|
||||
newIdealSize <<= 1;
|
||||
}
|
||||
int newSize = (int) Long.min(newIdealSize, MAX_BUFFER_SIZE);
|
||||
_buf = new byte[newSize];
|
||||
}
|
||||
resetReadBuffers();
|
||||
}
|
||||
|
||||
private void resetReadBuffers() {
|
||||
_extra_buf.clear();
|
||||
_current_buf = _buf;
|
||||
_current_buf_pos = 0;
|
||||
}
|
||||
|
||||
private int readDataByteBuffer(ByteBuffer data) throws IOException {
|
||||
if (data == null) {
|
||||
return 0;
|
||||
}
|
||||
return readData(data.remaining(),
|
||||
(byte[] buff, int offset, int len) -> {
|
||||
data.get(buff, offset, len);
|
||||
return len;
|
||||
});
|
||||
}
|
||||
|
||||
private int readDataInputStream(int inBytes) throws IOException {
|
||||
return readData(inBytes, (byte[] buff, int offset, int len) -> {
|
||||
return in.read(buff, offset, len);
|
||||
});
|
||||
}
|
||||
|
||||
private static interface ReadDataCB {
|
||||
public int read(byte[] buff, int offset, int len) throws IOException;
|
||||
}
|
||||
|
||||
private int readData(int bytesToRead, ReadDataCB readDataCb)
|
||||
throws IOException {
|
||||
int bytesRemaining = bytesToRead;
|
||||
while (bytesRemaining > 0) {
|
||||
if (_current_buf_pos == _current_buf.length) {
|
||||
byte[] newBuff = new byte[Integer.min(bytesRemaining,
|
||||
MAX_BUFFER_SIZE)];
|
||||
_extra_buf.add(newBuff);
|
||||
_current_buf = newBuff;
|
||||
_current_buf_pos = 0;
|
||||
}
|
||||
int current_buffer_space = _current_buf.length - _current_buf_pos;
|
||||
int nextRead = Integer.min(current_buffer_space, bytesRemaining);
|
||||
int bytesRead = readDataCb.read(_current_buf, _current_buf_pos,
|
||||
nextRead);
|
||||
if (bytesRead <= 0) {
|
||||
throw new IOException("EOF at end of archive");
|
||||
}
|
||||
_current_buf_pos += bytesRead;
|
||||
bytesRemaining -= bytesRead;
|
||||
}
|
||||
return bytesToRead - bytesRemaining;
|
||||
}
|
||||
|
||||
private static interface ProcessDataCB {
|
||||
public void apply(byte[] buff, int offset, int len) throws IOException;
|
||||
}
|
||||
|
||||
private void processReadData(ProcessDataCB processDataCB)
|
||||
throws IOException {
|
||||
processDataCB.apply(_buf, 0, _buf == _current_buf ? _current_buf_pos :
|
||||
_buf.length);
|
||||
for (byte[] buff : _extra_buf) {
|
||||
// Extra buffers are allocated of a size such that they are always
|
||||
// full, including the last one.
|
||||
processDataCB.apply(buff, 0, buff.length);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1261,53 +1261,74 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
|
||||
}
|
||||
|
||||
private void expect100Continue() throws IOException {
|
||||
// Expect: 100-Continue was set, so check the return code for
|
||||
// Acceptance
|
||||
int oldTimeout = http.getReadTimeout();
|
||||
boolean enforceTimeOut = false;
|
||||
boolean timedOut = false;
|
||||
if (oldTimeout <= 0) {
|
||||
// 5s read timeout in case the server doesn't understand
|
||||
// Expect: 100-Continue
|
||||
http.setReadTimeout(5000);
|
||||
enforceTimeOut = true;
|
||||
// Expect: 100-Continue was set, so check the return code for
|
||||
// Acceptance
|
||||
int oldTimeout = http.getReadTimeout();
|
||||
boolean timedOut = false;
|
||||
boolean tempTimeOutSet = false;
|
||||
if (oldTimeout <= 0 || oldTimeout > 5000) {
|
||||
if (logger.isLoggable(PlatformLogger.Level.FINE)) {
|
||||
logger.fine("Timeout currently set to " +
|
||||
oldTimeout + " temporarily setting it to 5 seconds");
|
||||
}
|
||||
// 5s read timeout in case the server doesn't understand
|
||||
// Expect: 100-Continue
|
||||
http.setReadTimeout(5000);
|
||||
tempTimeOutSet = true;
|
||||
}
|
||||
|
||||
try {
|
||||
http.parseHTTP(responses, pi, this);
|
||||
} catch (SocketTimeoutException se) {
|
||||
if (!enforceTimeOut) {
|
||||
throw se;
|
||||
}
|
||||
timedOut = true;
|
||||
http.setIgnoreContinue(true);
|
||||
try {
|
||||
http.parseHTTP(responses, pi, this);
|
||||
} catch (SocketTimeoutException se) {
|
||||
if (logger.isLoggable(PlatformLogger.Level.FINE)) {
|
||||
logger.fine("SocketTimeoutException caught," +
|
||||
" will attempt to send body regardless");
|
||||
}
|
||||
if (!timedOut) {
|
||||
// Can't use getResponseCode() yet
|
||||
String resp = responses.getValue(0);
|
||||
// Parse the response which is of the form:
|
||||
// HTTP/1.1 417 Expectation Failed
|
||||
// HTTP/1.1 100 Continue
|
||||
if (resp != null && resp.startsWith("HTTP/")) {
|
||||
String[] sa = resp.split("\\s+");
|
||||
responseCode = -1;
|
||||
try {
|
||||
// Response code is 2nd token on the line
|
||||
if (sa.length > 1)
|
||||
responseCode = Integer.parseInt(sa[1]);
|
||||
} catch (NumberFormatException numberFormatException) {
|
||||
timedOut = true;
|
||||
}
|
||||
|
||||
if (!timedOut) {
|
||||
// Can't use getResponseCode() yet
|
||||
String resp = responses.getValue(0);
|
||||
// Parse the response which is of the form:
|
||||
// HTTP/1.1 417 Expectation Failed
|
||||
// HTTP/1.1 100 Continue
|
||||
if (resp != null && resp.startsWith("HTTP/")) {
|
||||
String[] sa = resp.split("\\s+");
|
||||
responseCode = -1;
|
||||
try {
|
||||
// Response code is 2nd token on the line
|
||||
if (sa.length > 1)
|
||||
responseCode = Integer.parseInt(sa[1]);
|
||||
if (logger.isLoggable(PlatformLogger.Level.FINE)) {
|
||||
logger.fine("response code received " + responseCode);
|
||||
}
|
||||
}
|
||||
if (responseCode != 100) {
|
||||
throw new ProtocolException("Server rejected operation");
|
||||
} catch (NumberFormatException numberFormatException) {
|
||||
}
|
||||
}
|
||||
if (responseCode != 100) {
|
||||
// responseCode will be returned to caller
|
||||
throw new ProtocolException("Server rejected operation");
|
||||
}
|
||||
}
|
||||
|
||||
// If timeout was changed, restore to original value
|
||||
if (tempTimeOutSet) {
|
||||
if (logger.isLoggable(PlatformLogger.Level.FINE)) {
|
||||
logger.fine("Restoring original timeout : " + oldTimeout);
|
||||
}
|
||||
http.setReadTimeout(oldTimeout);
|
||||
}
|
||||
|
||||
responseCode = -1;
|
||||
responses.reset();
|
||||
// Proceed
|
||||
// Ignore any future 100 continue messages
|
||||
http.setIgnoreContinue(true);
|
||||
if (logger.isLoggable(PlatformLogger.Level.FINE)) {
|
||||
logger.fine("Set Ignore Continue to true");
|
||||
}
|
||||
|
||||
responseCode = -1;
|
||||
responses.reset();
|
||||
// Proceed
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1369,7 +1390,6 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
|
||||
boolean expectContinue = false;
|
||||
String expects = requests.findValue("Expect");
|
||||
if ("100-Continue".equalsIgnoreCase(expects) && streaming()) {
|
||||
http.setIgnoreContinue(false);
|
||||
expectContinue = true;
|
||||
}
|
||||
|
||||
@@ -1378,6 +1398,7 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
|
||||
}
|
||||
|
||||
if (expectContinue) {
|
||||
http.setIgnoreContinue(false);
|
||||
expect100Continue();
|
||||
}
|
||||
ps = (PrintStream)http.getOutputStream();
|
||||
@@ -1419,6 +1440,7 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
|
||||
}
|
||||
}
|
||||
|
||||
// Streaming returns true if there is a request body to send
|
||||
public boolean streaming () {
|
||||
return (fixedContentLength != -1) || (fixedContentLengthLong != -1) ||
|
||||
(chunkLength != -1);
|
||||
|
||||
@@ -280,14 +280,6 @@ public final class RSAPrivateCrtKeyImpl
|
||||
return keyParams;
|
||||
}
|
||||
|
||||
// return a string representation of this key for debugging
|
||||
@Override
|
||||
public String toString() {
|
||||
return "SunRsaSign " + type.keyAlgo + " private CRT key, "
|
||||
+ n.bitLength() + " bits" + "\n params: " + keyParams
|
||||
+ "\n modulus: " + n + "\n private exponent: " + d;
|
||||
}
|
||||
|
||||
// utility method for parsing DER encoding of RSA private keys in PKCS#1
|
||||
// format as defined in RFC 8017 Appendix A.1.2, i.e. SEQ of version, n,
|
||||
// e, d, p, q, pe, qe, and coeff, and return the parsed components.
|
||||
|
||||
@@ -135,14 +135,6 @@ public final class RSAPrivateKeyImpl extends PKCS8Key implements RSAPrivateKey {
|
||||
return keyParams;
|
||||
}
|
||||
|
||||
// return a string representation of this key for debugging
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Sun " + type.keyAlgo + " private key, " + n.bitLength()
|
||||
+ " bits" + "\n params: " + keyParams + "\n modulus: " + n
|
||||
+ "\n private exponent: " + d;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restores the state of this object from the stream.
|
||||
* <p>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2005, 2023, 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
|
||||
@@ -266,6 +266,7 @@ XBB=XBB
|
||||
XBC=XBC
|
||||
XBD=XBD
|
||||
XCD=XCD
|
||||
XCG=XCG
|
||||
XDR=XDR
|
||||
XFO=XFO
|
||||
XFU=XFU
|
||||
@@ -491,6 +492,7 @@ xbb=European Monetary Unit
|
||||
xbc=European Unit of Account (XBC)
|
||||
xbd=European Unit of Account (XBD)
|
||||
xcd=East Caribbean Dollar
|
||||
xcg=Caribbean Guilder
|
||||
xdr=Special Drawing Rights
|
||||
xfo=French Gold Franc
|
||||
xfu=French UIC-Franc
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2004, 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,8 +26,12 @@ package sun.awt;
|
||||
|
||||
import java.awt.RenderingHints;
|
||||
import static java.awt.RenderingHints.*;
|
||||
import static java.util.concurrent.TimeUnit.SECONDS;
|
||||
import java.awt.color.ColorSpace;
|
||||
import java.awt.image.*;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.security.AccessController;
|
||||
import java.security.PrivilegedAction;
|
||||
|
||||
@@ -194,6 +198,74 @@ public abstract class UNIXToolkit extends SunToolkit
|
||||
return img;
|
||||
}
|
||||
|
||||
private static volatile Boolean shouldDisableSystemTray = null;
|
||||
|
||||
/**
|
||||
* There is an issue displaying the xembed icons in appIndicators
|
||||
* area with certain Gnome Shell versions.
|
||||
* To avoid any loss of quality of service, we are disabling
|
||||
* SystemTray support in such cases.
|
||||
*
|
||||
* @return true if system tray should be disabled
|
||||
*/
|
||||
public boolean shouldDisableSystemTray() {
|
||||
Boolean result = shouldDisableSystemTray;
|
||||
if (result == null) {
|
||||
synchronized (GTK_LOCK) {
|
||||
result = shouldDisableSystemTray;
|
||||
if (result == null) {
|
||||
String desktop = AccessController.doPrivileged(
|
||||
new GetPropertyAction("sun.desktop"));
|
||||
if ("gnome".equals(desktop)) {
|
||||
@SuppressWarnings("removal")
|
||||
Integer gnomeShellMajorVersion =
|
||||
AccessController
|
||||
.doPrivileged((PrivilegedAction<Integer>)
|
||||
this::getGnomeShellMajorVersion);
|
||||
|
||||
if (gnomeShellMajorVersion == null
|
||||
|| gnomeShellMajorVersion < 45) {
|
||||
|
||||
return shouldDisableSystemTray = true;
|
||||
}
|
||||
}
|
||||
shouldDisableSystemTray = result = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private Integer getGnomeShellMajorVersion() {
|
||||
try {
|
||||
Process process =
|
||||
new ProcessBuilder("/usr/bin/gnome-shell", "--version")
|
||||
.start();
|
||||
try (InputStreamReader isr = new InputStreamReader(process.getInputStream());
|
||||
BufferedReader reader = new BufferedReader(isr)) {
|
||||
|
||||
if (process.waitFor(2, SECONDS) && process.exitValue() == 0) {
|
||||
String line = reader.readLine();
|
||||
if (line != null) {
|
||||
String[] versionComponents = line
|
||||
.replaceAll("[^\\d.]", "")
|
||||
.split("\\.");
|
||||
|
||||
if (versionComponents.length >= 1) {
|
||||
return Integer.parseInt(versionComponents[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (IOException
|
||||
| InterruptedException
|
||||
| IllegalThreadStateException
|
||||
| NumberFormatException ignored) {
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a BufferedImage which contains the Gtk icon requested. If no
|
||||
* such icon exists or an error occurs loading the icon the result will
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 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
|
||||
@@ -30,6 +30,7 @@ import java.awt.peer.SystemTrayPeer;
|
||||
import sun.awt.SunToolkit;
|
||||
import sun.awt.AppContext;
|
||||
import sun.awt.AWTAccessor;
|
||||
import sun.awt.UNIXToolkit;
|
||||
import sun.util.logging.PlatformLogger;
|
||||
|
||||
public class XSystemTrayPeer implements SystemTrayPeer, XMSelectionListener {
|
||||
@@ -48,22 +49,32 @@ public class XSystemTrayPeer implements SystemTrayPeer, XMSelectionListener {
|
||||
private static final XAtom _NET_SYSTEM_TRAY_OPCODE = XAtom.get("_NET_SYSTEM_TRAY_OPCODE");
|
||||
private static final XAtom _NET_WM_ICON = XAtom.get("_NET_WM_ICON");
|
||||
private static final long SYSTEM_TRAY_REQUEST_DOCK = 0;
|
||||
private final boolean shouldDisableSystemTray;
|
||||
|
||||
XSystemTrayPeer(SystemTray target) {
|
||||
this.target = target;
|
||||
peerInstance = this;
|
||||
|
||||
selection.addSelectionListener(this);
|
||||
UNIXToolkit tk = (UNIXToolkit)Toolkit.getDefaultToolkit();
|
||||
shouldDisableSystemTray = tk.shouldDisableSystemTray();
|
||||
|
||||
long selection_owner = selection.getOwner(SCREEN);
|
||||
available = (selection_owner != XConstants.None);
|
||||
if (!shouldDisableSystemTray) {
|
||||
selection.addSelectionListener(this);
|
||||
|
||||
if (log.isLoggable(PlatformLogger.Level.FINE)) {
|
||||
log.fine(" check if system tray is available. selection owner: " + selection_owner);
|
||||
long selection_owner = selection.getOwner(SCREEN);
|
||||
available = (selection_owner != XConstants.None);
|
||||
|
||||
if (log.isLoggable(PlatformLogger.Level.FINE)) {
|
||||
log.fine(" check if system tray is available. selection owner: " + selection_owner);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void ownerChanged(int screen, XMSelection sel, long newOwner, long data, long timestamp) {
|
||||
if (shouldDisableSystemTray) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (screen != SCREEN) {
|
||||
return;
|
||||
}
|
||||
@@ -77,6 +88,10 @@ public class XSystemTrayPeer implements SystemTrayPeer, XMSelectionListener {
|
||||
}
|
||||
|
||||
public void ownerDeath(int screen, XMSelection sel, long deadOwner) {
|
||||
if (shouldDisableSystemTray) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (screen != SCREEN) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -90,6 +90,7 @@ typedef HRESULT(__stdcall *PFNCLOSETHEMEDATA)(HTHEME hTheme);
|
||||
typedef HRESULT(__stdcall *PFNDRAWTHEMEBACKGROUND)(HTHEME hTheme, HDC hdc,
|
||||
int iPartId, int iStateId, const RECT *pRect, const RECT *pClipRect);
|
||||
|
||||
typedef HTHEME(__stdcall *PFNOPENTHEMEDATA)(HWND hwnd, LPCWSTR pszClassList);
|
||||
typedef HTHEME(__stdcall *PFNOPENTHEMEDATAFORDPI)(HWND hwnd, LPCWSTR pszClassList, UINT dpi);
|
||||
|
||||
typedef HRESULT (__stdcall *PFNDRAWTHEMETEXT)(HTHEME hTheme, HDC hdc,
|
||||
@@ -134,6 +135,7 @@ typedef HRESULT (__stdcall *PFNGETTHEMETRANSITIONDURATION)
|
||||
(HTHEME hTheme, int iPartId, int iStateIdFrom, int iStateIdTo,
|
||||
int iPropId, DWORD *pdwDuration);
|
||||
|
||||
static PFNOPENTHEMEDATA OpenThemeDataFunc = NULL;
|
||||
static PFNOPENTHEMEDATAFORDPI OpenThemeDataForDpiFunc = NULL;
|
||||
static PFNDRAWTHEMEBACKGROUND DrawThemeBackground = NULL;
|
||||
static PFNCLOSETHEMEDATA CloseThemeData = NULL;
|
||||
@@ -154,13 +156,17 @@ static PFNISTHEMEBACKGROUNDPARTIALLYTRANSPARENT
|
||||
//this function might not exist on Windows XP
|
||||
static PFNGETTHEMETRANSITIONDURATION GetThemeTransitionDuration = NULL;
|
||||
|
||||
constexpr unsigned int defaultDPI = 96;
|
||||
|
||||
BOOL InitThemes() {
|
||||
|
||||
static BOOL InitThemes() {
|
||||
static HMODULE hModThemes = NULL;
|
||||
hModThemes = JDK_LoadSystemLibrary("UXTHEME.DLL");
|
||||
DTRACE_PRINTLN1("InitThemes hModThemes = %x\n", hModThemes);
|
||||
if(hModThemes) {
|
||||
DTRACE_PRINTLN("Loaded UxTheme.dll\n");
|
||||
OpenThemeDataFunc = (PFNOPENTHEMEDATA)GetProcAddress(hModThemes,
|
||||
"OpenThemeData");
|
||||
OpenThemeDataForDpiFunc = (PFNOPENTHEMEDATAFORDPI)GetProcAddress(
|
||||
hModThemes, "OpenThemeDataForDpi");
|
||||
DrawThemeBackground = (PFNDRAWTHEMEBACKGROUND)GetProcAddress(
|
||||
@@ -198,7 +204,7 @@ BOOL InitThemes() {
|
||||
(PFNGETTHEMETRANSITIONDURATION)GetProcAddress(hModThemes,
|
||||
"GetThemeTransitionDuration");
|
||||
|
||||
if(OpenThemeDataForDpiFunc
|
||||
if((OpenThemeDataForDpiFunc || OpenThemeDataFunc)
|
||||
&& DrawThemeBackground
|
||||
&& CloseThemeData
|
||||
&& DrawThemeText
|
||||
@@ -218,10 +224,12 @@ BOOL InitThemes() {
|
||||
DTRACE_PRINTLN("Loaded function pointers.\n");
|
||||
// We need to make sure we can load the Theme.
|
||||
// Use the default DPI value of 96 on windows.
|
||||
constexpr unsigned int defaultDPI = 96;
|
||||
HTHEME hTheme = OpenThemeDataForDpiFunc (
|
||||
AwtToolkit::GetInstance().GetHWnd(),
|
||||
L"Button", defaultDPI);
|
||||
HTHEME hTheme = OpenThemeDataForDpiFunc
|
||||
? OpenThemeDataForDpiFunc(AwtToolkit::GetInstance().GetHWnd(),
|
||||
L"Button", defaultDPI)
|
||||
: OpenThemeDataFunc(AwtToolkit::GetInstance().GetHWnd(),
|
||||
L"Button");
|
||||
|
||||
if(hTheme) {
|
||||
DTRACE_PRINTLN("Loaded Theme data.\n");
|
||||
CloseThemeData(hTheme);
|
||||
@@ -285,11 +293,13 @@ JNIEXPORT jlong JNICALL Java_sun_awt_windows_ThemeReader_openTheme
|
||||
JNU_ThrowOutOfMemoryError(env, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// We need to open the Theme on a Window that will stick around.
|
||||
// The best one for that purpose is the Toolkit window.
|
||||
HTHEME htheme = OpenThemeDataForDpiFunc(
|
||||
AwtToolkit::GetInstance().GetHWnd(),
|
||||
str, dpi);
|
||||
HTHEME htheme = OpenThemeDataForDpiFunc
|
||||
? OpenThemeDataForDpiFunc(AwtToolkit::GetInstance().GetHWnd(), str, dpi)
|
||||
: OpenThemeDataFunc(AwtToolkit::GetInstance().GetHWnd(), str);
|
||||
|
||||
JNU_ReleaseStringPlatformChars(env, widget, str);
|
||||
return (jlong) htheme;
|
||||
}
|
||||
@@ -469,9 +479,14 @@ JNIEXPORT void JNICALL Java_sun_awt_windows_ThemeReader_paintBackground
|
||||
|
||||
rect.left = 0;
|
||||
rect.top = 0;
|
||||
rect.bottom = rectBottom;
|
||||
rect.right = rectRight;
|
||||
|
||||
if (OpenThemeDataForDpiFunc) {
|
||||
rect.bottom = rectBottom;
|
||||
rect.right = rectRight;
|
||||
} else {
|
||||
rect.bottom = h;
|
||||
rect.right = w;
|
||||
}
|
||||
ZeroMemory(pSrcBits,(BITS_PER_PIXEL>>3)*w*h);
|
||||
|
||||
HRESULT hres = DrawThemeBackground(hTheme, memDC, part, state, &rect, NULL);
|
||||
@@ -494,6 +509,28 @@ JNIEXPORT void JNICALL Java_sun_awt_windows_ThemeReader_paintBackground
|
||||
ReleaseDC(NULL,defaultDC);
|
||||
}
|
||||
|
||||
static void rescale(SIZE *size) {
|
||||
static int dpiX = -1;
|
||||
static int dpiY = -1;
|
||||
|
||||
if (dpiX == -1 || dpiY == -1) {
|
||||
HWND hWnd = ::GetDesktopWindow();
|
||||
HDC hDC = ::GetDC(hWnd);
|
||||
dpiX = ::GetDeviceCaps(hDC, LOGPIXELSX);
|
||||
dpiY = ::GetDeviceCaps(hDC, LOGPIXELSY);
|
||||
::ReleaseDC(hWnd, hDC);
|
||||
}
|
||||
|
||||
if (dpiX !=0 && dpiX != defaultDPI) {
|
||||
float invScaleX = (float) defaultDPI / dpiX;
|
||||
size->cx = (int) round(size->cx * invScaleX);
|
||||
}
|
||||
if (dpiY != 0 && dpiY != defaultDPI) {
|
||||
float invScaleY = (float) defaultDPI / dpiY;
|
||||
size->cy = (int) round(size->cy * invScaleY);
|
||||
}
|
||||
}
|
||||
|
||||
jobject newInsets(JNIEnv *env, jint top, jint left, jint bottom, jint right) {
|
||||
if (env->EnsureLocalCapacity(2) < 0) {
|
||||
return NULL;
|
||||
@@ -785,6 +822,10 @@ JNIEXPORT jobject JNICALL Java_sun_awt_windows_ThemeReader_getPartSize
|
||||
CHECK_NULL_RETURN(dimMID, NULL);
|
||||
}
|
||||
|
||||
if (!OpenThemeDataForDpiFunc) {
|
||||
rescale(&size);
|
||||
}
|
||||
|
||||
jobject dimObj = env->NewObject(dimClassID, dimMID, size.cx, size.cy);
|
||||
if (safe_ExceptionOccurred(env)) {
|
||||
env->ExceptionDescribe();
|
||||
|
||||
@@ -103,14 +103,10 @@ final class ConnectionPool {
|
||||
return false;
|
||||
}
|
||||
if (secure && destination != null) {
|
||||
if (destination.getHostName() != null) {
|
||||
if (!destination.getHostName().equalsIgnoreCase(
|
||||
other.destination.getHostName())) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
if (other.destination.getHostName() != null)
|
||||
return false;
|
||||
String hostString = destination.getHostString();
|
||||
if (hostString == null || !hostString.equalsIgnoreCase(
|
||||
other.destination.getHostString())) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -75,10 +75,14 @@ abstract class CKey implements Key, Length {
|
||||
|
||||
protected final String algorithm;
|
||||
|
||||
protected CKey(String algorithm, NativeHandles handles, int keyLength) {
|
||||
private final boolean isPublic;
|
||||
|
||||
protected CKey(String algorithm, NativeHandles handles, int keyLength,
|
||||
boolean isPublic) {
|
||||
this.algorithm = algorithm;
|
||||
this.handles = handles;
|
||||
this.keyLength = keyLength;
|
||||
this.isPublic = isPublic;
|
||||
}
|
||||
|
||||
// Native method to cleanup the key handle.
|
||||
@@ -101,6 +105,18 @@ abstract class CKey implements Key, Length {
|
||||
return algorithm;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
String typeStr;
|
||||
if (handles.hCryptKey != 0) {
|
||||
typeStr = getKeyType(handles.hCryptKey) + ", container=" +
|
||||
getContainerName(handles.hCryptProv);
|
||||
} else {
|
||||
typeStr = "CNG";
|
||||
}
|
||||
return algorithm + " " + (isPublic ? "PublicKey" : "PrivateKey") +
|
||||
" [size=" + keyLength + " bits, type=" + typeStr + "]";
|
||||
}
|
||||
|
||||
protected native static String getContainerName(long hCryptProv);
|
||||
|
||||
protected native static String getKeyType(long hCryptKey);
|
||||
|
||||
@@ -41,7 +41,7 @@ class CPrivateKey extends CKey implements PrivateKey {
|
||||
private static final long serialVersionUID = 8113152807912338063L;
|
||||
|
||||
private CPrivateKey(String alg, NativeHandles handles, int keyLength) {
|
||||
super(alg, handles, keyLength);
|
||||
super(alg, handles, keyLength, false);
|
||||
}
|
||||
|
||||
// Called by native code inside security.cpp
|
||||
@@ -64,16 +64,6 @@ class CPrivateKey extends CKey implements PrivateKey {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
if (handles.hCryptKey != 0) {
|
||||
return algorithm + "PrivateKey [size=" + keyLength + " bits, type=" +
|
||||
getKeyType(handles.hCryptKey) + ", container=" +
|
||||
getContainerName(handles.hCryptProv) + "]";
|
||||
} else {
|
||||
return algorithm + "PrivateKey [size=" + keyLength + " bits, type=CNG]";
|
||||
}
|
||||
}
|
||||
|
||||
// This class is not serializable
|
||||
private void writeObject(java.io.ObjectOutputStream out)
|
||||
throws java.io.IOException {
|
||||
|
||||
@@ -110,9 +110,8 @@ public abstract class CPublicKey extends CKey implements PublicKey {
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append(algorithm).append("PublicKey [size=").append(keyLength)
|
||||
.append("]\n ECPoint: ").append(getW())
|
||||
StringBuffer sb = new StringBuffer(super.toString());
|
||||
sb.append("\n ECPoint: ").append(getW())
|
||||
.append("\n params: ").append(getParams());
|
||||
return sb.toString();
|
||||
}
|
||||
@@ -129,16 +128,8 @@ public abstract class CPublicKey extends CKey implements PublicKey {
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append(algorithm).append("PublicKey [size=").append(keyLength)
|
||||
.append(" bits, type=");
|
||||
if (handles.hCryptKey != 0) {
|
||||
sb.append(getKeyType(handles.hCryptKey))
|
||||
.append(", container=").append(getContainerName(handles.hCryptProv));
|
||||
} else {
|
||||
sb.append("CNG");
|
||||
}
|
||||
sb.append("]\n modulus: ").append(getModulus())
|
||||
StringBuffer sb = new StringBuffer(super.toString());
|
||||
sb.append("\n modulus: ").append(getModulus())
|
||||
.append("\n public exponent: ").append(getPublicExponent());
|
||||
return sb.toString();
|
||||
}
|
||||
@@ -209,7 +200,7 @@ public abstract class CPublicKey extends CKey implements PublicKey {
|
||||
|
||||
protected CPublicKey(
|
||||
String alg, NativeHandles handles, int keyLength) {
|
||||
super(alg, handles, keyLength);
|
||||
super(alg, handles, keyLength, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -21,6 +21,11 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
# All tests
|
||||
|
||||
all = \
|
||||
:hotspot_all
|
||||
|
||||
hotspot_all = \
|
||||
/
|
||||
|
||||
@@ -28,6 +33,8 @@ hotspot_all_no_apps = \
|
||||
/ \
|
||||
-applications
|
||||
|
||||
# Component test groups
|
||||
|
||||
hotspot_compiler = \
|
||||
compiler
|
||||
|
||||
@@ -417,6 +424,21 @@ hotspot_rest_runtime = \
|
||||
-:hotspot_nmt \
|
||||
-:hotspot_tier2_runtime_platform_agnostic
|
||||
|
||||
jcstress_part1 = \
|
||||
applications/jcstress/seqcst.java
|
||||
|
||||
jcstress_part2 = \
|
||||
applications/jcstress/accessAtomic.java \
|
||||
applications/jcstress/acqrel.java \
|
||||
applications/jcstress/atomics.java \
|
||||
applications/jcstress/coherence.java \
|
||||
applications/jcstress/locks.java
|
||||
|
||||
jcstress_part3 = \
|
||||
applications/jcstress \
|
||||
-:jcstress_part1 \
|
||||
-:jcstress_part2
|
||||
|
||||
# Stress tests against information provided by VM via JMX
|
||||
vmTestbase_nsk_monitoring = \
|
||||
vmTestbase/nsk/monitoring
|
||||
|
||||
@@ -29,6 +29,7 @@ import jdk.test.lib.process.ProcessTools;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintStream;
|
||||
import java.nio.file.Files;
|
||||
@@ -51,11 +52,6 @@ import java.util.function.Predicate;
|
||||
* Use jcstress test suite to generate jtreg tests in 'test.src' or current
|
||||
* directory. Used version is defined in JcstressRunner class.
|
||||
*
|
||||
* Each generated jtreg test file will contain several tests. Subdirectories are
|
||||
* used to allow running all tests from a file using command line. 'copy',
|
||||
* 'acqrel', 'fences', 'atomicity', 'seqcst.sync', 'seqcst.volatiles' and
|
||||
* 'other' tests will be generated.
|
||||
*
|
||||
* This generator depends on testlibrary, therefore it should be compiled and
|
||||
* added to classpath. One can replace @notest by @test in jtreg test
|
||||
* description above to run this class with jtreg.
|
||||
@@ -97,58 +93,18 @@ public class TestGenerator {
|
||||
" */\n\n", years);
|
||||
}
|
||||
|
||||
private static enum JcstressGroup {
|
||||
MEMEFFECTS("memeffects"),
|
||||
COPY("copy"),
|
||||
ACQREL("acqrel"),
|
||||
FENCES("fences"),
|
||||
ATOMICITY("atomicity"),
|
||||
SEQCST_SYNC("seqcst.sync"),
|
||||
SEQCST_VOLATILES("seqcst.volatiles"),
|
||||
OTHER("other", JcstressGroup.otherFilter());
|
||||
|
||||
private final String groupName;
|
||||
private final Predicate<String> filter;
|
||||
|
||||
private JcstressGroup(String groupName, Predicate<String> filter) {
|
||||
this.groupName = groupName;
|
||||
this.filter = filter;
|
||||
}
|
||||
|
||||
private JcstressGroup(String groupName) {
|
||||
this(groupName, JcstressGroup.nameFilter(groupName));
|
||||
}
|
||||
|
||||
private static Predicate<String> nameFilter(String group) {
|
||||
return s -> s.startsWith("org.openjdk.jcstress.tests." + group + ".");
|
||||
}
|
||||
|
||||
private static Predicate<String> otherFilter() {
|
||||
return (s) -> {
|
||||
for (JcstressGroup g : EnumSet.complementOf(EnumSet.of(OTHER))) {
|
||||
if (g.filter.test(s)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public static String DESC_FORMAT = "\n"
|
||||
+ "/**\n"
|
||||
+ " * @test %1$s\n"
|
||||
+ " * @library /test/lib /\n"
|
||||
+ " * @run driver/timeout=2400 " + JcstressRunner.class.getName()
|
||||
+ " * @run driver/timeout=21600 " + JcstressRunner.class.getName()
|
||||
// verbose output
|
||||
+ " -v"
|
||||
// test mode preset
|
||||
+ " -m default"
|
||||
// test name
|
||||
+ " -t %1$s\n"
|
||||
+ " -t org.openjdk.jcstress.tests.%1$s\\.\n"
|
||||
+ " */\n";
|
||||
|
||||
public static void main(String[] args) {
|
||||
public static void main(String[] args) throws IOException {
|
||||
Path path = JcstressRunner.pathToArtifact();
|
||||
Path output;
|
||||
try {
|
||||
@@ -162,56 +118,32 @@ public class TestGenerator {
|
||||
} catch (Exception e) {
|
||||
throw new Error("Can not get list of tests", e);
|
||||
}
|
||||
for (JcstressGroup group : JcstressGroup.values()) {
|
||||
try {
|
||||
try (BufferedReader reader = Files.newBufferedReader(output)) {
|
||||
// skip first 4 lines: name, -{80}, revision and empty line
|
||||
for (int i = 0; i < 4; ++i) {
|
||||
reader.readLine();
|
||||
}
|
||||
new TestGenerator(group).generate(reader);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new Error("Generating tests for " + group.name()
|
||||
+ " has failed", e);
|
||||
}
|
||||
}
|
||||
|
||||
BufferedReader reader = Files.newBufferedReader(output);
|
||||
|
||||
reader.lines()
|
||||
.skip(4) // skip first 4 lines: name, -{80}, revision and empty line
|
||||
.map(s -> s.split("\\.")[4]) // group by the package name following "org.openjdk.jcstress.tests."
|
||||
.distinct()
|
||||
.filter(s -> !s.startsWith("sample")) // skip sample test
|
||||
.forEach(TestGenerator::generate);
|
||||
|
||||
output.toFile().delete();
|
||||
}
|
||||
|
||||
private final JcstressGroup group;
|
||||
|
||||
private TestGenerator(JcstressGroup group) {
|
||||
this.group = group;
|
||||
}
|
||||
|
||||
private void generate(BufferedReader reader) throws IOException {
|
||||
// array is needed to change value inside a lambda
|
||||
long[] count = {0L};
|
||||
String root = Utils.TEST_SRC;
|
||||
Path testFile = Paths.get(root)
|
||||
.resolve(group.groupName)
|
||||
.resolve("Test.java");
|
||||
File testDir = testFile.getParent().toFile();
|
||||
if (!testDir.mkdirs() && !testDir.exists()) {
|
||||
throw new Error("Can not create directories for "
|
||||
+ testFile.toString());
|
||||
}
|
||||
private static void generate(String group) {
|
||||
Path testFile = Paths.get(Utils.TEST_SRC).resolve(group + ".java");
|
||||
|
||||
System.out.println("Generating " + testFile);
|
||||
try (PrintStream ps = new PrintStream(testFile.toFile())) {
|
||||
ps.print(COPYRIGHT);
|
||||
ps.printf("/* DO NOT MODIFY THIS FILE. GENERATED BY %s */\n",
|
||||
getClass().getName());
|
||||
TestGenerator.class.getName());
|
||||
|
||||
reader.lines()
|
||||
.filter(group.filter)
|
||||
.forEach(s -> {
|
||||
count[0]++;
|
||||
ps.printf(DESC_FORMAT, s);
|
||||
});
|
||||
ps.printf(DESC_FORMAT, group);
|
||||
ps.print('\n');
|
||||
} catch (FileNotFoundException e) {
|
||||
System.out.println("Failed to generate tests for " + group);
|
||||
}
|
||||
System.out.printf("%d tests generated in %s%n",
|
||||
count[0], group.groupName);
|
||||
}
|
||||
}
|
||||
|
||||
31
test/hotspot/jtreg/applications/jcstress/accessAtomic.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/accessAtomic.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test accessAtomic
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.accessAtomic\.
|
||||
*/
|
||||
|
||||
31
test/hotspot/jtreg/applications/jcstress/acqrel.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/acqrel.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test acqrel
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.acqrel\.
|
||||
*/
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
31
test/hotspot/jtreg/applications/jcstress/atomicity.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/atomicity.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test atomicity
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.atomicity\.
|
||||
*/
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
31
test/hotspot/jtreg/applications/jcstress/atomics.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/atomics.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test atomics
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.atomics\.
|
||||
*/
|
||||
|
||||
31
test/hotspot/jtreg/applications/jcstress/causality.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/causality.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test causality
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.causality\.
|
||||
*/
|
||||
|
||||
31
test/hotspot/jtreg/applications/jcstress/coherence.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/coherence.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test coherence
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.coherence\.
|
||||
*/
|
||||
|
||||
31
test/hotspot/jtreg/applications/jcstress/copy.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/copy.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test copy
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.copy\.
|
||||
*/
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
31
test/hotspot/jtreg/applications/jcstress/countdownlatch.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/countdownlatch.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test countdownlatch
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.countdownlatch\.
|
||||
*/
|
||||
|
||||
31
test/hotspot/jtreg/applications/jcstress/defaultValues.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/defaultValues.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test defaultValues
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.defaultValues\.
|
||||
*/
|
||||
|
||||
31
test/hotspot/jtreg/applications/jcstress/executors.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/executors.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test executors
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.executors\.
|
||||
*/
|
||||
|
||||
31
test/hotspot/jtreg/applications/jcstress/fences.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/fences.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test fences
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.fences\.
|
||||
*/
|
||||
|
||||
@@ -1,829 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.FencedAcquireReleaseTest
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.FencedAcquireReleaseTest
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.FencedDekkerTest
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.FencedDekkerTest
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.FencedPublicationTest
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.FencedPublicationTest
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.FencedReadTwiceTest
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.FencedReadTwiceTest
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.UnfencedAcquireReleaseTest
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.UnfencedAcquireReleaseTest
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.UnfencedDekkerTest
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.UnfencedDekkerTest
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.UnfencedPublicationTest
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.UnfencedPublicationTest
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.UnfencedReadTwiceTest
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.UnfencedReadTwiceTest
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.AcquireFenceBoolean
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.AcquireFenceBoolean
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.AcquireFenceByte
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.AcquireFenceByte
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.AcquireFenceChar
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.AcquireFenceChar
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.AcquireFenceDouble
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.AcquireFenceDouble
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.AcquireFenceFloat
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.AcquireFenceFloat
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.AcquireFenceInt
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.AcquireFenceInt
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.AcquireFenceLong
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.AcquireFenceLong
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.AcquireFenceShort
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.AcquireFenceShort
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.AcquireFenceString
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.AcquireFenceString
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.FullFenceBoolean
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.FullFenceBoolean
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.FullFenceByte
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.FullFenceByte
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.FullFenceChar
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.FullFenceChar
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.FullFenceDouble
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.FullFenceDouble
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.FullFenceFloat
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.FullFenceFloat
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.FullFenceInt
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.FullFenceInt
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.FullFenceLong
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.FullFenceLong
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.FullFenceShort
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.FullFenceShort
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.FullFenceString
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.FullFenceString
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.LoadLoadFenceBoolean
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.LoadLoadFenceBoolean
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.LoadLoadFenceByte
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.LoadLoadFenceByte
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.LoadLoadFenceChar
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.LoadLoadFenceChar
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.LoadLoadFenceDouble
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.LoadLoadFenceDouble
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.LoadLoadFenceFloat
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.LoadLoadFenceFloat
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.LoadLoadFenceInt
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.LoadLoadFenceInt
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.LoadLoadFenceLong
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.LoadLoadFenceLong
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.LoadLoadFenceShort
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.LoadLoadFenceShort
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.LoadLoadFenceString
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.LoadLoadFenceString
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.FullFenceBoolean
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.FullFenceBoolean
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.FullFenceByte
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.FullFenceByte
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.FullFenceChar
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.FullFenceChar
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.FullFenceDouble
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.FullFenceDouble
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.FullFenceFloat
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.FullFenceFloat
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.FullFenceInt
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.FullFenceInt
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.FullFenceLong
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.FullFenceLong
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.FullFenceShort
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.FullFenceShort
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.FullFenceString
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.FullFenceString
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.ReleaseFenceBoolean
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.ReleaseFenceBoolean
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.ReleaseFenceByte
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.ReleaseFenceByte
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.ReleaseFenceChar
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.ReleaseFenceChar
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.ReleaseFenceDouble
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.ReleaseFenceDouble
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.ReleaseFenceFloat
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.ReleaseFenceFloat
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.ReleaseFenceInt
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.ReleaseFenceInt
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.ReleaseFenceLong
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.ReleaseFenceLong
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.ReleaseFenceShort
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.ReleaseFenceShort
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.ReleaseFenceString
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.ReleaseFenceString
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.AcquireFenceBoolean
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.AcquireFenceBoolean
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.AcquireFenceByte
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.AcquireFenceByte
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.AcquireFenceChar
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.AcquireFenceChar
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.AcquireFenceDouble
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.AcquireFenceDouble
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.AcquireFenceFloat
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.AcquireFenceFloat
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.AcquireFenceInt
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.AcquireFenceInt
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.AcquireFenceLong
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.AcquireFenceLong
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.AcquireFenceShort
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.AcquireFenceShort
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.AcquireFenceString
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.AcquireFenceString
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.FullFenceBoolean
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.FullFenceBoolean
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.FullFenceByte
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.FullFenceByte
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.FullFenceChar
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.FullFenceChar
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.FullFenceDouble
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.FullFenceDouble
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.FullFenceFloat
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.FullFenceFloat
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.FullFenceInt
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.FullFenceInt
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.FullFenceLong
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.FullFenceLong
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.FullFenceShort
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.FullFenceShort
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.FullFenceString
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest2.FullFenceString
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreLoadFenceTest.FullFenceBoolean
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreLoadFenceTest.FullFenceBoolean
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreLoadFenceTest.FullFenceByte
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreLoadFenceTest.FullFenceByte
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreLoadFenceTest.FullFenceChar
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreLoadFenceTest.FullFenceChar
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreLoadFenceTest.FullFenceDouble
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreLoadFenceTest.FullFenceDouble
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreLoadFenceTest.FullFenceFloat
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreLoadFenceTest.FullFenceFloat
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreLoadFenceTest.FullFenceInt
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreLoadFenceTest.FullFenceInt
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreLoadFenceTest.FullFenceLong
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreLoadFenceTest.FullFenceLong
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreLoadFenceTest.FullFenceShort
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreLoadFenceTest.FullFenceShort
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreLoadFenceTest.FullFenceString
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreLoadFenceTest.FullFenceString
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.FullFenceBoolean
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.FullFenceBoolean
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.FullFenceByte
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.FullFenceByte
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.FullFenceChar
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.FullFenceChar
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.FullFenceDouble
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.FullFenceDouble
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.FullFenceFloat
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.FullFenceFloat
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.FullFenceInt
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.FullFenceInt
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.FullFenceLong
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.FullFenceLong
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.FullFenceShort
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.FullFenceShort
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.FullFenceString
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.FullFenceString
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.ReleaseFenceBoolean
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.ReleaseFenceBoolean
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.ReleaseFenceByte
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.ReleaseFenceByte
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.ReleaseFenceChar
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.ReleaseFenceChar
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.ReleaseFenceDouble
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.ReleaseFenceDouble
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.ReleaseFenceFloat
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.ReleaseFenceFloat
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.ReleaseFenceInt
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.ReleaseFenceInt
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.ReleaseFenceLong
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.ReleaseFenceLong
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.ReleaseFenceShort
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.ReleaseFenceShort
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.ReleaseFenceString
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.ReleaseFenceString
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.StoreStoreFenceBoolean
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.StoreStoreFenceBoolean
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.StoreStoreFenceByte
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.StoreStoreFenceByte
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.StoreStoreFenceChar
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.StoreStoreFenceChar
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.StoreStoreFenceDouble
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.StoreStoreFenceDouble
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.StoreStoreFenceFloat
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.StoreStoreFenceFloat
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.StoreStoreFenceInt
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.StoreStoreFenceInt
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.StoreStoreFenceLong
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.StoreStoreFenceLong
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.StoreStoreFenceShort
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.StoreStoreFenceShort
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.StoreStoreFenceString
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest1.StoreStoreFenceString
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.FullFenceBoolean
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.FullFenceBoolean
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.FullFenceByte
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.FullFenceByte
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.FullFenceChar
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.FullFenceChar
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.FullFenceDouble
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.FullFenceDouble
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.FullFenceFloat
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.FullFenceFloat
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.FullFenceInt
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.FullFenceInt
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.FullFenceLong
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.FullFenceLong
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.FullFenceShort
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.FullFenceShort
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.FullFenceString
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.FullFenceString
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.ReleaseFenceBoolean
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.ReleaseFenceBoolean
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.ReleaseFenceByte
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.ReleaseFenceByte
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.ReleaseFenceChar
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.ReleaseFenceChar
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.ReleaseFenceDouble
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.ReleaseFenceDouble
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.ReleaseFenceFloat
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.ReleaseFenceFloat
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.ReleaseFenceInt
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.ReleaseFenceInt
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.ReleaseFenceLong
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.ReleaseFenceLong
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.ReleaseFenceShort
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.ReleaseFenceShort
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.ReleaseFenceString
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.ReleaseFenceString
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.StoreStoreFenceBoolean
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.StoreStoreFenceBoolean
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.StoreStoreFenceByte
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.StoreStoreFenceByte
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.StoreStoreFenceChar
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.StoreStoreFenceChar
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.StoreStoreFenceDouble
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.StoreStoreFenceDouble
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.StoreStoreFenceFloat
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.StoreStoreFenceFloat
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.StoreStoreFenceInt
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.StoreStoreFenceInt
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.StoreStoreFenceLong
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.StoreStoreFenceLong
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.StoreStoreFenceShort
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.StoreStoreFenceShort
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.StoreStoreFenceString
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=2400 applications.jcstress.JcstressRunner -v -m default -t org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.StoreStoreFenceString
|
||||
*/
|
||||
|
||||
31
test/hotspot/jtreg/applications/jcstress/future.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/future.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test future
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.future\.
|
||||
*/
|
||||
|
||||
31
test/hotspot/jtreg/applications/jcstress/init.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/init.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test init
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.init\.
|
||||
*/
|
||||
|
||||
31
test/hotspot/jtreg/applications/jcstress/initClass.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/initClass.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test initClass
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.initClass\.
|
||||
*/
|
||||
|
||||
31
test/hotspot/jtreg/applications/jcstress/initLen.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/initLen.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test initLen
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.initLen\.
|
||||
*/
|
||||
|
||||
31
test/hotspot/jtreg/applications/jcstress/interrupt.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/interrupt.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test interrupt
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.interrupt\.
|
||||
*/
|
||||
|
||||
31
test/hotspot/jtreg/applications/jcstress/locks.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/locks.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test locks
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.locks\.
|
||||
*/
|
||||
|
||||
31
test/hotspot/jtreg/applications/jcstress/memeffects.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/memeffects.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test memeffects
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.memeffects\.
|
||||
*/
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
31
test/hotspot/jtreg/applications/jcstress/seqcst.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/seqcst.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test seqcst
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.seqcst\.
|
||||
*/
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
31
test/hotspot/jtreg/applications/jcstress/singletons.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/singletons.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test singletons
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.singletons\.
|
||||
*/
|
||||
|
||||
31
test/hotspot/jtreg/applications/jcstress/strings.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/strings.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test strings
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.strings\.
|
||||
*/
|
||||
|
||||
31
test/hotspot/jtreg/applications/jcstress/tearing.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/tearing.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test tearing
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.tearing\.
|
||||
*/
|
||||
|
||||
31
test/hotspot/jtreg/applications/jcstress/unsafe.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/unsafe.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test unsafe
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.unsafe\.
|
||||
*/
|
||||
|
||||
31
test/hotspot/jtreg/applications/jcstress/varhandles.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/varhandles.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test varhandles
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.varhandles\.
|
||||
*/
|
||||
|
||||
31
test/hotspot/jtreg/applications/jcstress/volatiles.java
Normal file
31
test/hotspot/jtreg/applications/jcstress/volatiles.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, 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.
|
||||
*/
|
||||
|
||||
/* DO NOT MODIFY THIS FILE. GENERATED BY applications.jcstress.TestGenerator */
|
||||
|
||||
/**
|
||||
* @test volatiles
|
||||
* @library /test/lib /
|
||||
* @run driver/timeout=21600 applications.jcstress.JcstressRunner -v -t org.openjdk.jcstress.tests.volatiles\.
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,599 @@
|
||||
/*
|
||||
* Copyright (c) 2023, 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.
|
||||
*/
|
||||
|
||||
package compiler.regalloc;
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @bug 8317507
|
||||
* @summary Test that C2's PhaseRegAlloc::_node_regs (a post-register-allocation
|
||||
* mapping from machine nodes to assigned registers) does not overflow
|
||||
* in the face of a program with a high-density of CISC spilling
|
||||
* candidate nodes.
|
||||
* @run main/othervm -Xcomp -XX:CompileOnly=compiler.regalloc.TestNodeRegArrayOverflow::testWithCompilerUnrolling
|
||||
-XX:CompileCommand=dontinline,compiler.regalloc.TestNodeRegArrayOverflow::dontInline
|
||||
compiler.regalloc.TestNodeRegArrayOverflow compiler
|
||||
* @run main/othervm -Xcomp -XX:CompileOnly=compiler.regalloc.TestNodeRegArrayOverflow::testWithManualUnrolling
|
||||
-XX:CompileCommand=dontinline,compiler.regalloc.TestNodeRegArrayOverflow::dontInline
|
||||
compiler.regalloc.TestNodeRegArrayOverflow manual
|
||||
*/
|
||||
|
||||
public class TestNodeRegArrayOverflow {
|
||||
|
||||
static int dontInline() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
static float testWithCompilerUnrolling(float inc) {
|
||||
int i = 0, j = 0;
|
||||
// This non-inlined method call causes 'inc' to be spilled.
|
||||
float f = dontInline();
|
||||
// This two-level reduction loop is unrolled 512 times, which is
|
||||
// requested by the SLP-specific unrolling analysis, but not vectorized.
|
||||
// Because 'inc' is spilled, each of the unrolled AddF nodes is
|
||||
// CISC-spill converted (PhaseChaitin::fixup_spills()). Before the fix,
|
||||
// this causes the unique node index counter (Compile::_unique) to grow
|
||||
// beyond the size of the node register array
|
||||
// (PhaseRegAlloc::_node_regs), and leads to overflow when accessed for
|
||||
// nodes that are created later (e.g. during the peephole phase).
|
||||
while (i++ < 128) {
|
||||
for (j = 0; j < 16; j++) {
|
||||
f += inc;
|
||||
}
|
||||
}
|
||||
return f;
|
||||
}
|
||||
|
||||
// This test reproduces the same failure as 'testWithCompilerUnrolling'
|
||||
// without relying on loop transformations.
|
||||
static float testWithManualUnrolling(float inc) {
|
||||
int i = 0, j = 0;
|
||||
float f = dontInline();
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
f += inc;
|
||||
return f;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
switch (args[0]) {
|
||||
case "compiler":
|
||||
testWithCompilerUnrolling(0);
|
||||
break;
|
||||
case "manual":
|
||||
testWithManualUnrolling(0);
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException("Invalid mode: " + args[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -205,7 +205,8 @@ public class LevelTransitionTest extends TieredLevelsTest {
|
||||
}
|
||||
|
||||
private static class CompileMethodHolder {
|
||||
private final int iter = 10;
|
||||
// Make sure that loop backedge is never taken to prevent unexpected OSR compilations.
|
||||
private final int iter = 1;
|
||||
private int field = 42;
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2023, 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
|
||||
@@ -53,7 +53,7 @@ public class TestArrayAllocatorMallocLimit {
|
||||
private static final String printFlagsFinalPattern = " *size_t *" + flagName + " *:?= *(\\d+) *\\{experimental\\} *";
|
||||
|
||||
public static void testDefaultValue() throws Exception {
|
||||
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(
|
||||
ProcessBuilder pb = GCArguments.createTestJvm(
|
||||
"-XX:+UnlockExperimentalVMOptions", "-XX:+PrintFlagsFinal", "-version");
|
||||
|
||||
OutputAnalyzer output = new OutputAnalyzer(pb.start());
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
#
|
||||
# Copyright (c) 2018, 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.
|
||||
#
|
||||
|
||||
exclusiveAccess.dirs=.
|
||||
@@ -1,24 +0,0 @@
|
||||
#
|
||||
# Copyright (c) 2018, 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.
|
||||
#
|
||||
|
||||
exclusiveAccess.dirs=.
|
||||
@@ -20,6 +20,14 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
# All tests
|
||||
|
||||
all = \
|
||||
:jaxp_all
|
||||
|
||||
jaxp_all = \
|
||||
/
|
||||
|
||||
# Tiered testing definitions
|
||||
|
||||
# No jaxp tests are tier 1.
|
||||
@@ -34,6 +42,3 @@ tier3 =
|
||||
|
||||
# No tier 4 tests.
|
||||
tier4 =
|
||||
|
||||
jaxp_all = \
|
||||
javax/xml/jaxp
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2015, 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
|
||||
@@ -23,7 +23,9 @@
|
||||
package jaxp.library;
|
||||
|
||||
|
||||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.nio.file.Path;
|
||||
import java.security.CodeSource;
|
||||
import java.security.Permission;
|
||||
import java.security.PermissionCollection;
|
||||
@@ -161,7 +163,7 @@ public class JAXPPolicyManager {
|
||||
*/
|
||||
class TestPolicy extends Policy {
|
||||
private final static Set<String> TEST_JARS =
|
||||
Set.of("jtreg.jar", "javatest.jar", "testng.jar", "jcommander.jar");
|
||||
Set.of("jtreg.*jar", "javatest.*jar", "testng.*jar", "jcommander.*jar");
|
||||
private final PermissionCollection permissions = new Permissions();
|
||||
|
||||
private ThreadLocal<Map<Integer, Permission>> transientPermissions = new ThreadLocal<>();
|
||||
@@ -213,9 +215,10 @@ class TestPolicy extends Policy {
|
||||
private boolean isTestMachineryDomain(ProtectionDomain domain) {
|
||||
CodeSource cs = (domain == null) ? null : domain.getCodeSource();
|
||||
URL loc = (cs == null) ? null : cs.getLocation();
|
||||
String path = (loc == null) ? null : loc.getPath();
|
||||
return path != null && TEST_JARS.stream()
|
||||
.filter(path::endsWith)
|
||||
URI uri = (loc == null) ? null : URI.create(loc.toString());
|
||||
String name = (uri == null) ? null : Path.of(uri).getFileName().toString();
|
||||
return name != null && TEST_JARS.stream()
|
||||
.filter(name::matches)
|
||||
.findAny()
|
||||
.isPresent();
|
||||
}
|
||||
|
||||
@@ -517,7 +517,6 @@ java/lang/management/MemoryMXBean/PendingAllGC.sh 8158837 generic-
|
||||
# jdk_io
|
||||
|
||||
java/io/pathNames/GeneralWin32.java 8180264 windows-all
|
||||
java/io/File/createTempFile/SpecialTempFile.java 8274122 windows11
|
||||
|
||||
############################################################################
|
||||
|
||||
|
||||
@@ -20,6 +20,17 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
# All tests
|
||||
#
|
||||
|
||||
all = \
|
||||
:jdk_all
|
||||
|
||||
jdk_all = \
|
||||
/
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
# Tiered testing definitions
|
||||
|
||||
@@ -57,12 +57,11 @@ public class JdwpOnThrowTest {
|
||||
private static AttachingConnector attachingConnector;
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
int port = findFreePort();
|
||||
try (Debuggee debuggee = Debuggee.launcher("ThrowCaughtException").setAddress("localhost:" + port)
|
||||
.enableOnThrow("Ex", "Start").setSuspended(true).launch()) {
|
||||
try (Debuggee debuggee = Debuggee.launcher("ThrowCaughtException")
|
||||
.enableOnThrow("Ex").setSuspended(true).launch()) {
|
||||
VirtualMachine vm = null;
|
||||
try {
|
||||
vm = attach("localhost", "" + port);
|
||||
vm = attach("localhost", debuggee.getAddress());
|
||||
EventQueue queue = vm.eventQueue();
|
||||
log("Waiting for exception event");
|
||||
long start = System.currentTimeMillis();
|
||||
@@ -111,14 +110,6 @@ public class JdwpOnThrowTest {
|
||||
}
|
||||
}
|
||||
|
||||
private static int findFreePort() {
|
||||
try (ServerSocket socket = new ServerSocket(0)) {
|
||||
return socket.getLocalPort();
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private static VirtualMachine attach(String address, String port) throws IOException {
|
||||
if (attachingConnector == null) {
|
||||
attachingConnector = (AttachingConnector)getConnector(ATTACH_CONNECTOR);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2018, 2023, 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,6 +24,7 @@
|
||||
package lib.jdb;
|
||||
|
||||
import jdk.test.lib.Utils;
|
||||
import jdk.test.lib.util.Pair;
|
||||
import jdk.test.lib.process.ProcessTools;
|
||||
|
||||
import java.io.Closeable;
|
||||
@@ -32,6 +33,7 @@ import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
import java.util.function.Function;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -65,12 +67,12 @@ public class Debuggee implements Closeable {
|
||||
public static class Launcher {
|
||||
private final String mainClass;
|
||||
private final List<String> options = new LinkedList<>();
|
||||
private String vmOptions = null;
|
||||
private String transport = "dt_socket";
|
||||
private String address = null;
|
||||
private boolean suspended = true;
|
||||
private String onthrow = "";
|
||||
private boolean waitForPortPrint = true;
|
||||
private String expectedOutputBeforeThrow = "";
|
||||
private static final String LAUNCH_ECHO_STRING = "Listen Args:";
|
||||
|
||||
private Launcher(String mainClass) {
|
||||
this.mainClass = mainClass;
|
||||
@@ -83,6 +85,10 @@ public class Debuggee implements Closeable {
|
||||
this.options.addAll(options);
|
||||
return this;
|
||||
}
|
||||
public Launcher addVMOptions(String vmOptions) {
|
||||
this.vmOptions = vmOptions;
|
||||
return this;
|
||||
}
|
||||
// default is "dt_socket"
|
||||
public Launcher setTransport(String value) {
|
||||
transport = value;
|
||||
@@ -99,17 +105,17 @@ public class Debuggee implements Closeable {
|
||||
return this;
|
||||
}
|
||||
|
||||
// required to pass non null port with address and emit string before the throw
|
||||
public Launcher enableOnThrow(String value, String expectedOutputBeforeThrow) {
|
||||
this.onthrow = value;
|
||||
this.waitForPortPrint = false;
|
||||
this.expectedOutputBeforeThrow = expectedOutputBeforeThrow;
|
||||
public Launcher enableOnThrow(String exceptionClassName) {
|
||||
this.onthrow = exceptionClassName;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ProcessBuilder prepare() {
|
||||
List<String> debuggeeArgs = new LinkedList<>();
|
||||
String onthrowArgs = onthrow.isEmpty() ? "" : ",onthrow=" + onthrow + ",launch=exit";
|
||||
if (vmOptions != null) {
|
||||
debuggeeArgs.add(vmOptions);
|
||||
}
|
||||
String onthrowArgs = onthrow.isEmpty() ? "" : ",onthrow=" + onthrow + ",launch=echo " + LAUNCH_ECHO_STRING;
|
||||
debuggeeArgs.add("-agentlib:jdwp=transport=" + transport
|
||||
+ (address == null ? "" : ",address=" + address)
|
||||
+ ",server=y,suspend=" + (suspended ? "y" : "n")
|
||||
@@ -120,41 +126,57 @@ public class Debuggee implements Closeable {
|
||||
}
|
||||
|
||||
public Debuggee launch(String name) {
|
||||
return new Debuggee(prepare(), name, waitForPortPrint, expectedOutputBeforeThrow);
|
||||
return new Debuggee(prepare(), name,
|
||||
onthrow.isEmpty() ?
|
||||
Launcher::parseListenAddress :
|
||||
Launcher::parseLaunchEchoListenAddress
|
||||
);
|
||||
}
|
||||
public Debuggee launch() {
|
||||
return launch("debuggee");
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses debuggee output to get listening transport and address, printed by `launch=echo`.
|
||||
* Returns null if the string specified does not contain required info.
|
||||
*/
|
||||
private static Pair<String, String> parseLaunchEchoListenAddress(String debuggeeOutput) {
|
||||
Pattern listenRegexp = Pattern.compile(LAUNCH_ECHO_STRING + " \\b(.+)\\b \\b(.+)\\b");
|
||||
Matcher m = listenRegexp.matcher(debuggeeOutput);
|
||||
if (m.find()) {
|
||||
return new Pair<String, String>(m.group(1), m.group(2));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses debuggee output to get listening transport and address, printed by `launch=echo`.
|
||||
* Returns null if the string specified does not contain required info.
|
||||
*/
|
||||
private static Pair<String, String> parseListenAddress(String debuggeeOutput) {
|
||||
Pattern listenRegexp = Pattern.compile("Listening for transport \\b(.+)\\b at address: \\b(.+)\\b");
|
||||
Matcher m = listenRegexp.matcher(debuggeeOutput);
|
||||
if (m.find()) {
|
||||
return new Pair<String, String>(m.group(1), m.group(2));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// starts the process, waits for "Listening for transport" output and detects transport/address
|
||||
private Debuggee(ProcessBuilder pb, String name, boolean waitForPortPrint, String expectedOutputBeforeThrow) {
|
||||
// debuggeeListen[0] - transport, debuggeeListen[1] - address
|
||||
// starts the process, waits until the provided addressDetector detects transport/address from the process output
|
||||
private Debuggee(ProcessBuilder pb, String name, Function<String, Pair<String, String>> addressDetector) {
|
||||
String[] debuggeeListen = new String[2];
|
||||
Pattern listenRegexp = Pattern.compile("Listening for transport \\b(.+)\\b at address: \\b(.+)\\b");
|
||||
if (!waitForPortPrint) {
|
||||
try {
|
||||
p = ProcessTools.startProcess(name, pb, s -> {output.add(s);}, s -> {
|
||||
return s.equals(expectedOutputBeforeThrow);
|
||||
}, 30, TimeUnit.SECONDS);
|
||||
} catch (IOException | InterruptedException | TimeoutException ex) {
|
||||
throw new RuntimeException("failed to launch debuggee", ex);
|
||||
}
|
||||
transport = null;
|
||||
address = null;
|
||||
return;
|
||||
}
|
||||
try {
|
||||
p = ProcessTools.startProcess(name, pb,
|
||||
s -> output.add(s), // output consumer
|
||||
s -> { // warm-up predicate
|
||||
Matcher m = listenRegexp.matcher(s);
|
||||
if (!m.matches()) {
|
||||
return false;
|
||||
s -> {
|
||||
Pair<String, String> addr = addressDetector.apply(s);
|
||||
if (addr != null) {
|
||||
debuggeeListen[0] = addr.first;
|
||||
debuggeeListen[1] = addr.second;
|
||||
return true;
|
||||
}
|
||||
debuggeeListen[0] = m.group(1);
|
||||
debuggeeListen[1] = m.group(2);
|
||||
return true;
|
||||
return false;
|
||||
},
|
||||
30, TimeUnit.SECONDS);
|
||||
transport = debuggeeListen[0];
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2021, 2023, 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
|
||||
@@ -124,7 +124,7 @@ public class LdapPoolTimeoutTest {
|
||||
// assertCompletion may wrap a CommunicationException in an RTE
|
||||
assertNotNull(msg);
|
||||
assertTrue(msg.contains("Network is unreachable")
|
||||
|| msg.contains("No route to host"));
|
||||
|| msg.contains("No route to host") || msg.contains("Connection timed out"));
|
||||
} catch (NamingException ex) {
|
||||
String msg = ex.getCause() == null ? ex.getMessage() : ex.getCause().getMessage();
|
||||
System.err.println("MSG: " + msg);
|
||||
|
||||
376
test/jdk/java/awt/Component/GetListenersTest.java
Normal file
376
test/jdk/java/awt/Component/GetListenersTest.java
Normal file
@@ -0,0 +1,376 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2023, 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 4240721
|
||||
@summary Test Component.getListeners API added in 1.3
|
||||
@key headful
|
||||
@run main GetListenersTest
|
||||
*/
|
||||
|
||||
import java.awt.Button;
|
||||
import java.awt.Canvas;
|
||||
import java.awt.Checkbox;
|
||||
import java.awt.CheckboxMenuItem;
|
||||
import java.awt.Choice;
|
||||
import java.awt.Component;
|
||||
import java.awt.EventQueue;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.Frame;
|
||||
import java.awt.Label;
|
||||
import java.awt.Menu;
|
||||
import java.awt.MenuBar;
|
||||
import java.awt.MenuItem;
|
||||
import java.awt.Panel;
|
||||
import java.awt.Scrollbar;
|
||||
import java.awt.TextArea;
|
||||
import java.awt.TextField;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.AdjustmentEvent;
|
||||
import java.awt.event.AdjustmentListener;
|
||||
import java.awt.event.ComponentAdapter;
|
||||
import java.awt.event.ComponentListener;
|
||||
import java.awt.event.ContainerAdapter;
|
||||
import java.awt.event.ContainerListener;
|
||||
import java.awt.event.FocusAdapter;
|
||||
import java.awt.event.FocusListener;
|
||||
import java.awt.event.HierarchyBoundsAdapter;
|
||||
import java.awt.event.HierarchyBoundsListener;
|
||||
import java.awt.event.HierarchyEvent;
|
||||
import java.awt.event.HierarchyListener;
|
||||
import java.awt.event.InputMethodEvent;
|
||||
import java.awt.event.InputMethodListener;
|
||||
import java.awt.event.ItemEvent;
|
||||
import java.awt.event.ItemListener;
|
||||
import java.awt.event.KeyAdapter;
|
||||
import java.awt.event.KeyListener;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseListener;
|
||||
import java.awt.event.MouseMotionAdapter;
|
||||
import java.awt.event.MouseMotionListener;
|
||||
import java.awt.event.MouseWheelEvent;
|
||||
import java.awt.event.MouseWheelListener;
|
||||
import java.awt.event.TextEvent;
|
||||
import java.awt.event.TextListener;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.awt.event.WindowFocusListener;
|
||||
import java.awt.event.WindowListener;
|
||||
import java.awt.event.WindowStateListener;
|
||||
import java.beans.BeanInfo;
|
||||
import java.beans.EventSetDescriptor;
|
||||
import java.beans.Introspector;
|
||||
import java.beans.PropertyChangeEvent;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.EventListener;
|
||||
|
||||
public class GetListenersTest {
|
||||
|
||||
public static void main(String args[]) throws Exception {
|
||||
EventQueue.invokeAndWait(()-> {
|
||||
// Create frame with a bunch of components
|
||||
// and test that each component returns
|
||||
// the right type of listeners from Component.getListeners
|
||||
GLTFrame gltFrame = new GLTFrame();
|
||||
try {
|
||||
gltFrame.initAndShowGui();
|
||||
gltFrame.test();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("Test failed", e);
|
||||
} finally {
|
||||
gltFrame.dispose();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
* Checks an object has a listener for every support listener type
|
||||
*/
|
||||
static void checkForListenersOfEveryType(Object object) throws Exception {
|
||||
Class type = object.getClass();
|
||||
|
||||
BeanInfo info = Introspector.getBeanInfo(type);
|
||||
EventSetDescriptor esets[] = info.getEventSetDescriptors();
|
||||
|
||||
// ensure there are listeners for every type
|
||||
for (int nset = 0; nset < esets.length; nset++) {
|
||||
Class listenerType = esets[nset].getListenerType();
|
||||
EventListener listener[] = getListeners(object, listenerType);
|
||||
// Skip PropertyChangeListener for now
|
||||
if (listener.length == 0 && validListenerToTest(listenerType)) {
|
||||
throw new RuntimeException("getListeners didn't return type "
|
||||
+ listenerType);
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println("************");
|
||||
System.out.println("PASSED: getListeners on "
|
||||
+ object + " has all the right listeners.");
|
||||
System.out.println("************");
|
||||
}
|
||||
|
||||
/*
|
||||
* Calls getListeners on the object
|
||||
*/
|
||||
static EventListener[] getListeners(Object object, Class type)
|
||||
throws Exception {
|
||||
Method methods[] = object.getClass().getMethods();
|
||||
Method method = null;
|
||||
|
||||
for (int nmethod = 0; nmethod < methods.length; nmethod++) {
|
||||
if (methods[nmethod].getName().equals("getListeners")) {
|
||||
method = methods[nmethod];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (method == null) {
|
||||
throw new RuntimeException("Object "
|
||||
+ object + " has no getListeners method");
|
||||
}
|
||||
Class params[] = {type};
|
||||
EventListener listeners[] = null;
|
||||
listeners = (EventListener[]) method.invoke(object, params);
|
||||
System.out.println("Listeners of type: " + type + " on " + object);
|
||||
GetListenersTest.printArray(listeners);
|
||||
return listeners;
|
||||
}
|
||||
|
||||
/*
|
||||
* Adds a listener of every type to the object
|
||||
*/
|
||||
static void addDummyListenersOfEveryType(Object object) throws Exception {
|
||||
Class type = object.getClass();
|
||||
|
||||
BeanInfo info = Introspector.getBeanInfo(type);
|
||||
EventSetDescriptor esets[] = info.getEventSetDescriptors();
|
||||
|
||||
// add every kind of listener
|
||||
for (int nset = 0; nset < esets.length; nset++) {
|
||||
Class listenerType = esets[nset].getListenerType();
|
||||
EventListener listener = makeListener(listenerType);
|
||||
Method addListenerMethod = esets[nset].getAddListenerMethod();
|
||||
Object params[] = {listener};
|
||||
addListenerMethod.invoke(object, params);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Determines what listeners to exclude from the test for now
|
||||
*/
|
||||
static boolean validListenerToTest(Class listenerType) {
|
||||
/* Don't have any provision for PropertyChangeListeners... */
|
||||
if ( listenerType == PropertyChangeListener.class ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static void testGetListeners(Object object) throws Exception {
|
||||
GetListenersTest.addDummyListenersOfEveryType(object);
|
||||
GetListenersTest.checkForListenersOfEveryType(object);
|
||||
}
|
||||
|
||||
static void printArray(Object objects[]) {
|
||||
System.out.println("{");
|
||||
for(int n = 0; n < objects.length; n++) {
|
||||
System.out.println("\t"+objects[n]+",");
|
||||
}
|
||||
System.out.println("}");
|
||||
}
|
||||
|
||||
/*
|
||||
* Makes a dummy listener implementation for the given listener type
|
||||
*/
|
||||
static EventListener makeListener(Class listenerType) throws Exception {
|
||||
Object map[][] = {
|
||||
{ActionListener.class, MyActionAdapter.class},
|
||||
{AdjustmentListener.class, MyAdjustmentAdapter.class},
|
||||
{ComponentListener.class, MyComponentAdapter.class},
|
||||
{ContainerListener.class, MyContainerAdapter.class},
|
||||
{FocusListener.class, MyFocusAdapter.class},
|
||||
{HierarchyBoundsListener.class, MyHierarchyBoundsAdapter.class},
|
||||
{HierarchyListener.class, MyHierarchyAdapter.class},
|
||||
{InputMethodListener.class, MyInputMethodAdapter.class},
|
||||
{ItemListener.class, MyItemAdapter.class},
|
||||
{KeyListener.class, MyKeyAdapter.class},
|
||||
{MouseListener.class, MyMouseAdapter.class},
|
||||
{MouseMotionListener.class, MyMouseMotionAdapter.class},
|
||||
{MouseWheelListener.class, MyMouseWheelAdapter.class},
|
||||
{TextListener.class, MyTextAdapter.class},
|
||||
{WindowListener.class, MyWindowAdapter.class},
|
||||
{WindowFocusListener.class, MyWindowFocusAdapter.class},
|
||||
{WindowStateListener.class, MyWindowStateAdapter.class},
|
||||
{PropertyChangeListener.class, MyPropertyChangeAdapter.class},
|
||||
};
|
||||
|
||||
for (int n = 0; n < map.length; n++) {
|
||||
if (map[n][0] == listenerType) {
|
||||
Class adapterClass = (Class) map[n][1];
|
||||
EventListener listener =
|
||||
(EventListener) adapterClass.newInstance();
|
||||
return listener;
|
||||
}
|
||||
}
|
||||
|
||||
throw new RuntimeException("No adapter found for listener type "
|
||||
+ listenerType);
|
||||
}
|
||||
}
|
||||
|
||||
class GLTFrame extends Frame {
|
||||
MenuItem mitem;
|
||||
CheckboxMenuItem cmitem;
|
||||
|
||||
GLTFrame() {
|
||||
super("Component.getListeners API Test");
|
||||
}
|
||||
|
||||
public void initAndShowGui() {
|
||||
setLayout(new FlowLayout());
|
||||
|
||||
add(new Label("Label"));
|
||||
add(new Button("Button"));
|
||||
add(new Checkbox("Checkbox"));
|
||||
Choice c = new Choice();
|
||||
c.add("choice");
|
||||
java.awt.List l = new java.awt.List();
|
||||
l.add("list");
|
||||
add(new Scrollbar());
|
||||
add(new TextField("TextField"));
|
||||
add(new TextArea("TextArea"));
|
||||
add(new Panel());
|
||||
add(new Canvas());
|
||||
|
||||
MenuBar menuBar = new MenuBar();
|
||||
Menu menu = new Menu("Menu");
|
||||
mitem = new MenuItem("Item 1");
|
||||
cmitem = new CheckboxMenuItem("Item 2");
|
||||
menu.add(mitem);
|
||||
menu.add(cmitem);
|
||||
menuBar.add(menu);
|
||||
setMenuBar(menuBar);
|
||||
|
||||
pack();
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
public void test() throws Exception {
|
||||
// test Frame.getListeners
|
||||
GetListenersTest.testGetListeners(this);
|
||||
|
||||
//
|
||||
// test getListeners on menu items
|
||||
//
|
||||
GetListenersTest.testGetListeners(mitem);
|
||||
GetListenersTest.testGetListeners(cmitem);
|
||||
|
||||
//
|
||||
// test getListeners on all AWT Components
|
||||
//
|
||||
Component components[] = getComponents();
|
||||
for (int nc = 0; nc < components.length; nc++) {
|
||||
GetListenersTest.testGetListeners(components[nc]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/************************************************
|
||||
* Dummy listener implementations we add to our components/models/objects
|
||||
*/
|
||||
|
||||
class MyPropertyChangeAdapter implements PropertyChangeListener {
|
||||
public void propertyChange(PropertyChangeEvent evt) {}
|
||||
}
|
||||
|
||||
class MyActionAdapter implements ActionListener {
|
||||
public void actionPerformed(ActionEvent ev) {
|
||||
}
|
||||
}
|
||||
|
||||
class MyAdjustmentAdapter implements AdjustmentListener {
|
||||
public void adjustmentValueChanged(AdjustmentEvent e) {
|
||||
}
|
||||
}
|
||||
|
||||
class MyHierarchyAdapter implements HierarchyListener {
|
||||
public void hierarchyChanged(HierarchyEvent e) {
|
||||
}
|
||||
}
|
||||
|
||||
class MyInputMethodAdapter implements InputMethodListener {
|
||||
public void inputMethodTextChanged(InputMethodEvent event) {
|
||||
}
|
||||
|
||||
public void caretPositionChanged(InputMethodEvent event) {
|
||||
}
|
||||
}
|
||||
|
||||
class MyItemAdapter implements ItemListener {
|
||||
public void itemStateChanged(ItemEvent e) {
|
||||
}
|
||||
}
|
||||
|
||||
class MyTextAdapter implements TextListener {
|
||||
public void textValueChanged(TextEvent e) {
|
||||
}
|
||||
}
|
||||
|
||||
class MyComponentAdapter extends ComponentAdapter {
|
||||
}
|
||||
|
||||
class MyContainerAdapter extends ContainerAdapter {
|
||||
}
|
||||
|
||||
class MyFocusAdapter extends FocusAdapter {
|
||||
}
|
||||
|
||||
class MyHierarchyBoundsAdapter extends HierarchyBoundsAdapter {
|
||||
}
|
||||
|
||||
class MyKeyAdapter extends KeyAdapter {
|
||||
}
|
||||
|
||||
class MyMouseAdapter extends MouseAdapter {
|
||||
}
|
||||
|
||||
class MyMouseMotionAdapter extends MouseMotionAdapter {
|
||||
}
|
||||
|
||||
class MyMouseWheelAdapter implements MouseWheelListener {
|
||||
public void mouseWheelMoved(MouseWheelEvent e) {}
|
||||
}
|
||||
|
||||
class MyWindowAdapter extends WindowAdapter {
|
||||
}
|
||||
|
||||
class MyWindowFocusAdapter implements WindowFocusListener {
|
||||
public void windowGainedFocus(WindowEvent t) {}
|
||||
public void windowLostFocus(WindowEvent t) {}
|
||||
}
|
||||
|
||||
class MyWindowStateAdapter extends WindowAdapter {
|
||||
}
|
||||
127
test/jdk/java/awt/Container/OpenedPopupFrameDisposal.java
Normal file
127
test/jdk/java/awt/Container/OpenedPopupFrameDisposal.java
Normal file
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2023, 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 4852790
|
||||
@summary Frame disposal must remove opened popup without exception
|
||||
@key headful
|
||||
*/
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.EventQueue;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.Point;
|
||||
import java.awt.Robot;
|
||||
import java.awt.event.InputEvent;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JMenuBar;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
|
||||
public class OpenedPopupFrameDisposal {
|
||||
public static final int SIZE = 300;
|
||||
|
||||
volatile JFrame jf = null;
|
||||
volatile JComboBox<String> jcb = null;
|
||||
|
||||
public void start() {
|
||||
jf = new JFrame("OpenedPopupFrameDisposal - Frame to dispose");
|
||||
// Note that original bug cannot be reproduced without JMenuBar present.
|
||||
jf.setJMenuBar(new JMenuBar());
|
||||
jf.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
|
||||
jf.setLocationRelativeTo(null);
|
||||
jf.addWindowListener(new WindowAdapter() {
|
||||
public void windowClosing(WindowEvent evt) {
|
||||
jf.setVisible(false);
|
||||
jf.dispose();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
JPanel panel = new JPanel(new FlowLayout());
|
||||
jcb = new JComboBox<>();
|
||||
jcb.addItem("one");
|
||||
jcb.addItem("two");
|
||||
jcb.addItem("Three");
|
||||
panel.add(jcb);
|
||||
|
||||
jf.getContentPane().add(panel, BorderLayout.CENTER);
|
||||
jf.pack();
|
||||
jf.setSize(new Dimension(SIZE, SIZE));
|
||||
|
||||
jf.setVisible(true);
|
||||
|
||||
}
|
||||
|
||||
public void test() throws Exception {
|
||||
Robot robot = new Robot();
|
||||
robot.delay(1000); // wait for jf visible
|
||||
Point pt = jf.getLocationOnScreen();
|
||||
|
||||
int x, y;
|
||||
|
||||
x = pt.x + SIZE / 2;
|
||||
y = pt.y + SIZE / 2;
|
||||
|
||||
robot.mouseMove(x, y);
|
||||
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
|
||||
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
|
||||
robot.delay(1000);
|
||||
|
||||
pt = jcb.getLocationOnScreen();
|
||||
x = pt.x + jcb.getWidth() / 2;
|
||||
y = pt.y + jcb.getHeight() / 2;
|
||||
|
||||
robot.mouseMove(x, y);
|
||||
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
|
||||
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
|
||||
robot.delay(1000);
|
||||
|
||||
// Here on disposal we had a NullPointerException
|
||||
EventQueue.invokeAndWait(() -> {
|
||||
if (jf != null) {
|
||||
jf.setVisible(false);
|
||||
jf.dispose();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
OpenedPopupFrameDisposal imt = new OpenedPopupFrameDisposal();
|
||||
try {
|
||||
EventQueue.invokeAndWait(imt::start);
|
||||
imt.test();
|
||||
} finally {
|
||||
EventQueue.invokeAndWait(() -> {
|
||||
if (imt.jf != null) {
|
||||
imt.jf.dispose();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user