Compare commits

...

50 Commits

Author SHA1 Message Date
Martin Balao
4597cc3525 8319851: Improve exception logging
Reviewed-by: mbaesken
Backport-of: 87dfeeb14fdd0fa1648a8bec91b5b713cc2c1b83
2024-04-03 17:01:22 +02:00
Martin Balao
c6b1d04179 8317507: C2 compilation fails with "Exceeded _node_regs array"
Reviewed-by: roland, andrew
Backport-of: a5818972c1
2024-03-27 08:02:40 +01:00
Martin Balao
a57f289f7d 8322122: Enhance generation of addresses
Co-authored-by: Andrew Brygin <bae@openjdk.org>
Reviewed-by: bae
Backport-of: 1a4a46e102a2bc282fcbec571169867d715f4ade
2024-03-27 07:52:03 +01:00
Martin Balao
44165ab678 8322114: Improve Pack 200 handling
Co-authored-by: Alexey Bakhtin <abakhtin@openjdk.org>
Reviewed-by: fferrari, abakhtin, mbalao
2024-03-27 07:51:15 +01:00
Alexey Bakhtin
ab21b1e989 8318340: Improve RSA key implementations
Reviewed-by: mbalao
Backport-of: 62d9cec1d6b804a70381bfb8ac902b6bb649f8ae
2024-03-27 07:23:07 +01:00
Yuri Nesterenko
4d72038fbc 8315708: Enhance HTTP/2 client usage
Reviewed-by: mbalao
Backport-of: 4bd9637dfe12d330afd7409c27c5778b28a24cf4
2024-03-26 22:45:48 +01:00
Goetz Lindenmaier
bd29eb6eec 8327391: Add SipHash attribution file
Backport-of: fcf48ab3d3
2024-03-15 08:51:04 +00:00
Sergey Bylokhov
5c5687d4ab 8322750: Test "api/java_awt/interactive/SystemTrayTests.html" failed because A blue ball icon is added outside of the system tray
Reviewed-by: phh
Backport-of: 5a988a5087
2024-03-05 15:10:13 +00:00
Anton Bobrov
1bb3ed339b 8314164: java/net/HttpURLConnection/HttpURLConnectionExpectContinueTest.java fails intermittently in timeout
Backport-of: fbaaac63d4
2024-02-27 12:21:58 +00:00
Aleksey Shipilev
d2d988af90 8292182: [TESTLIB] Enhance JAXPPolicyManager to setup required permissions for jtreg version 7 jar
Backport-of: aa5b718933
2024-02-27 10:28:55 +00:00
Aleksey Shipilev
64269a3c5a 8285756: clean up use of bad arguments for @clean in langtools tests
Backport-of: 3312d8c620
2024-02-27 10:20:22 +00:00
Amos Shi
7bed7f1b2d 8274122: java/io/File/createTempFile/SpecialTempFile.java fails in Windows 11
Reviewed-by: mbaesken
Backport-of: d6ad2f1715
2024-02-27 09:53:45 +00:00
Aleksey Shipilev
10f08844e5 8207855: Make applications/jcstress invoke tests in batches
Backport-of: 4805473049
2024-02-27 09:37:45 +00:00
Anton Bobrov
a855cab3e3 8308336: Test java/net/HttpURLConnection/HttpURLConnectionExpectContinueTest.java failed: java.net.BindException: Address already in use
Backport-of: a48bcf3671
2024-02-27 09:26:38 +00:00
Sergey Bylokhov
a60a5c4305 8321151: JDK-8294427 breaks Windows L&F on all older Windows versions
Backport-of: f695ca5884
2024-02-26 18:20:14 +00:00
Anton Bobrov
93c5f7c50d 8326503: [11u] java/net/HttpURLConnection/HttpURLConnectionExpectContinueTest.java fail because of package org.junit.jupiter.api does not exist
Reviewed-by: sgehwolf
2024-02-26 15:50:06 +00:00
Aleksey Shipilev
8dc28922c2 8323515: Create test alias "all" for all test roots
Reviewed-by: phh
Backport-of: 8b9bf75880
2024-02-26 08:53:41 +00:00
Andrew Lu
e075097dc8 8294158: HTML formatting for PassFailJFrame instructions
Backport-of: 14090ef603
2024-02-26 07:07:45 +00:00
Andrew John Hughes
ea06b5c966 8321480: ISO 4217 Amendment 176 Update
Reviewed-by: goetz
Backport-of: 223018a3aa
2024-02-23 17:20:35 +00:00
Andrew Lu
776f1e31a9 8294535: Add screen capture functionality to PassFailJFrame
Backport-of: dbb788f34d
2024-02-23 09:06:04 +00:00
Goetz Lindenmaier
6711fc8da7 8321408: Add Certainly roots R1 and E1
Reviewed-by: shade
Backport-of: e8f7eaeefe
2024-02-23 08:46:52 +00:00
Andrew Lu
43a56c89c6 8307299: Move more DnD tests to open
Backport-of: 950c5df859
2024-02-23 07:54:04 +00:00
Andrew Lu
fe8c20c8de 8306681: Open source more AWT DnD related tests
Backport-of: 05af487a2d
2024-02-23 02:29:30 +00:00
SendaoYan
30dfe8115d 8323640: [TESTBUG]testMemoryFailCount in jdk/internal/platform/docker/TestDockerMemoryMetrics.java always fail because OOM killed
Backport-of: 791b427f44
2024-02-22 18:04:31 +00:00
Anton Bobrov
1b207cc9cc 8054022: HttpURLConnection timeouts with Expect: 100-Continue and no chunking
Backport-of: 78839e9815
2024-02-22 09:53:46 +00:00
Amos Shi
f4cf239df1 8315602: Open source swing security manager test
Reviewed-by: rrich
Backport-of: fd6442c079
2024-02-22 07:53:30 +00:00
Andrew Lu
398f486c2a 8306812: Open source several AWT Miscellaneous tests
Backport-of: c494770ca0
2024-02-22 02:59:43 +00:00
Andrew Lu
aeb6381306 8306640: Open source several AWT TextArea related tests
Backport-of: 169a7c27a7
2024-02-22 02:56:17 +00:00
Andrew Lu
97241329cf 8306752: Open source several container and component AWT tests
Backport-of: 88d9ebf8e8
2024-02-22 02:55:56 +00:00
Andrew Lu
c9052141c1 8306755: Open source few Swing JComponent and AbstractButton tests
Backport-of: f3e8bd1d11
2024-02-22 02:55:28 +00:00
Andrew John Hughes
382942dffb 8326109: GCC 13 reports maybe-uninitialized warnings for jni.cpp with dtrace enabled
Reviewed-by: phh
2024-02-21 16:44:58 +00:00
Andrew Lu
de3ae6f265 8318468: compiler/tiered/LevelTransitionTest.java fails with -XX:CompileThreshold=100 -XX:TieredStopAtLevel=1
Backport-of: 61d0db3838
2024-02-19 09:34:42 +00:00
Amos Shi
38a60d78c4 8318983: Fix comment typo in PKCS12Passwd.java
Backport-of: 949846986f
2024-02-19 08:45:07 +00:00
Amos Shi
cc88c3ca4e 8317307: test/jdk/com/sun/jndi/ldap/LdapPoolTimeoutTest.java fails with ConnectException: Connection timed out: no further information
Backport-of: b9b82631bf
2024-02-19 08:44:50 +00:00
Amos Shi
ccd4c98e39 8319668: Fixup of jar filename typo in BadFactoryTest.sh
Backport-of: 63ad868e18
2024-02-19 08:43:14 +00:00
Amos Shi
a5e6577c5b 8315680: java/lang/ref/ReachabilityFenceTest.java should run with -Xbatch
Backport-of: a290256bbf
2024-02-19 08:41:58 +00:00
Amos Shi
92cb5eb766 8319456: jdk/jfr/event/gc/collection/TestGCCauseWith[Serial|Parallel].java : GC cause 'GCLocker Initiated GC' not in the valid causes
Backport-of: 7c7f8ea30d
2024-02-19 08:41:41 +00:00
Johannes Bechberger
ddc3e41100 8318736: com/sun/jdi/JdwpOnThrowTest.java failed with "transport error 202: bind failed: Address already in use"
Reviewed-by: mbaesken
Backport-of: 28e1a33856
2024-02-19 08:37:57 +00:00
Amos Shi
6ecf198c7c 8316001: GC: Make TestArrayAllocatorMallocLimit use createTestJvm
Backport-of: 86dde5e02b
2024-02-19 08:36:41 +00:00
Amos Shi
f7cd14cc2b 8307123: Fix deprecation warnings in DPrinter
Backport-of: b76f320e76
2024-02-19 08:35:20 +00:00
Sergey Bylokhov
8af22e796a 8324347: Enable "maybe-uninitialized" warning for FreeType 2.13.1
Backport-of: 781f368d42
2024-02-17 11:26:43 +00:00
Goetz Lindenmaier
10894a07f0 8304314: StackWalkTest.java fails after CODETOOLS-7903373
Backport-of: d5a150706e
2024-02-16 09:56:50 +00:00
Sergey Bylokhov
1047521856 8318603: Parallelize sun/java2d/marlin/ClipShapeTest.java
Reviewed-by: phh
Backport-of: 6c7029ffd4
2024-02-16 04:49:34 +00:00
Jonathan Dowland
1f516f62f2 8324307: [11u] hotspot fails to build with GCC 12 and newer (non-static data member initializers)
Reviewed-by: sgehwolf
2024-02-15 21:50:46 +00:00
Jonathan Dowland
bcdad92ce0 8249087: Always initialize _body[0..1] in Symbol constructor
Reviewed-by: sgehwolf
Backport-of: 112bbcb396
2024-02-15 21:50:29 +00:00
Johannes Bechberger
daf393a3fa 8304725: AsyncGetCallTrace can cause SIGBUS on M1
Reviewed-by: phh, jbachorik
Backport-of: d8af7a6014
2024-02-15 17:08:28 +00:00
Jonathan Dowland
621048ac87 8247818: GCC 10 warning stringop-overflow with symbol code
Reviewed-by: andrew, stuefe
Backport-of: ed31b661d3
2024-02-15 09:06:29 +00:00
Dan Lutker
a60fb5a71d 8325150: (tz) Update Timezone Data to 2024a
Reviewed-by: phh
Backport-of: 917838e0a5
2024-02-09 18:52:12 +00:00
Elif Aslan
1f85c15d3b 8318608: Enable parallelism in vmTestbase/nsk/stress/threads tests
Backport-of: cee44a6255
2024-02-07 07:42:39 +00:00
Elif Aslan
5aa8538b17 8318607: Enable parallelism in vmTestbase/nsk/stress/jni tests
Backport-of: 43f31d7385
2024-02-07 07:42:18 +00:00
151 changed files with 7848 additions and 70152 deletions

View 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-----

View 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-----

View File

@@ -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

View File

@@ -21,4 +21,4 @@
# or visit www.oracle.com if you need additional information or have any
# questions.
#
tzdata2023d
tzdata2024a

View File

@@ -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
###############################################################################

View File

@@ -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

View File

@@ -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

View File

@@ -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.

View File

@@ -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.
#

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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");
}

View File

@@ -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), \
))

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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);

View File

@@ -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) {

View File

@@ -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();

View File

@@ -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();

View File

@@ -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");

View File

@@ -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) {

View File

@@ -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);

View File

@@ -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);
}

View File

@@ -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();

View File

@@ -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);
{

View File

@@ -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);

View File

@@ -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");

View 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/>
```

View File

@@ -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

View File

@@ -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:

View File

@@ -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);

View File

@@ -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() {

View File

@@ -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();

View File

@@ -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);
}

View File

@@ -321,6 +321,7 @@ Thread::Thread() {
}
MACOS_AARCH64_ONLY(DEBUG_ONLY(_wx_init = false));
_in_asgct = false;
}
void Thread::initialize_thread_current() {

View File

@@ -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()

View File

@@ -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",

View File

@@ -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);
};
}
}

View File

@@ -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);

View File

@@ -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.

View File

@@ -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>

View File

@@ -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

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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();

View File

@@ -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;

View File

@@ -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);

View File

@@ -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 {

View File

@@ -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

View File

@@ -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

View File

@@ -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);
}
}

View 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\.
*/

View 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

View 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

View 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\.
*/

View 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\.
*/

View 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\.
*/

View 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

View 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\.
*/

View 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\.
*/

View 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\.
*/

View 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\.
*/

View File

@@ -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
*/

View 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\.
*/

View 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\.
*/

View 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\.
*/

View 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\.
*/

View 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\.
*/

View 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\.
*/

View 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

View 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

View 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\.
*/

View 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\.
*/

View 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\.
*/

View 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\.
*/

View 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\.
*/

View 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\.
*/

View File

@@ -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]);
}
}
}

View File

@@ -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;
/**

View File

@@ -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());

View File

@@ -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=.

View File

@@ -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=.

View File

@@ -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

View File

@@ -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();
}

View File

@@ -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
############################################################################

View File

@@ -20,6 +20,17 @@
# questions.
#
###############################################################################
#
# All tests
#
all = \
:jdk_all
jdk_all = \
/
###############################################################################
#
# Tiered testing definitions

View File

@@ -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);

View File

@@ -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];

View File

@@ -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);

View 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 {
}

View 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