Skip to content

Commit a54f9f7

Browse files
committed
Merge master jdk-11.0.23+5 into openj9-staging
Signed-off-by: J9 Build <[email protected]>
2 parents 01d3d43 + d080716 commit a54f9f7

File tree

91 files changed

+6376
-69717
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+6376
-69717
lines changed

make/data/cacerts/certainlyroote1

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
Owner: CN=Certainly Root E1, O=Certainly, C=US
2+
Issuer: CN=Certainly Root E1, O=Certainly, C=US
3+
Serial number: 62533b1470333275cf98d9ab9bfccf8
4+
Valid from: Thu Apr 01 00:00:00 GMT 2021 until: Sun Apr 01 00:00:00 GMT 2046
5+
Signature algorithm name: SHA384withECDSA
6+
Subject Public Key Algorithm: 384-bit EC (secp384r1) key
7+
Version: 3
8+
-----BEGIN CERTIFICATE-----
9+
MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQsw
10+
CQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlu
11+
bHkgUm9vdCBFMTAeFw0yMTA0MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJ
12+
BgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlubHkxGjAYBgNVBAMTEUNlcnRhaW5s
13+
eSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4fxzf7flHh4axpMCK
14+
+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9YBk2
15+
QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8E
16+
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4
17+
hevIIgcwCgYIKoZIzj0EAwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozm
18+
ut6Dacpps6kFtZaSF4fC0urQe87YQVt8rgIwRt7qy12a7DLCZRawTDBcMPPaTnOG
19+
BtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR
20+
-----END CERTIFICATE-----

make/data/cacerts/certainlyrootr1

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
Owner: CN=Certainly Root R1, O=Certainly, C=US
2+
Issuer: CN=Certainly Root R1, O=Certainly, C=US
3+
Serial number: 8e0ff94b907168653354f4d44439b7e0
4+
Valid from: Thu Apr 01 00:00:00 GMT 2021 until: Sun Apr 01 00:00:00 GMT 2046
5+
Signature algorithm name: SHA256withRSA
6+
Subject Public Key Algorithm: 4096-bit RSA key
7+
Version: 3
8+
-----BEGIN CERTIFICATE-----
9+
MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAw
10+
PTELMAkGA1UEBhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2Vy
11+
dGFpbmx5IFJvb3QgUjEwHhcNMjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9
12+
MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0
13+
YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANA2
14+
1B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O5MQT
15+
vqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbed
16+
aFySpvXl8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b0
17+
1C7jcvk2xusVtyWMOvwlDbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5
18+
r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGIXsXwClTNSaa/ApzSRKft43jvRl5tcdF5
19+
cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkNKPl6I7ENPT2a/Z2B7yyQ
20+
wHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQAjeZjOVJ
21+
6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA
22+
2CnbrlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyH
23+
Wyf5QBGenDPBt+U1VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMR
24+
eiFPCyEQtkA6qyI6BJyLm4SGcprSp6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB
25+
/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTgqj8ljZ9EXME66C6u
26+
d0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAszHQNTVfSVcOQr
27+
PbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d
28+
8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi
29+
1wrykXprOQ4vMMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrd
30+
rRT90+7iIgXr0PK3aBLXWopBGsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9di
31+
taY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+gjwN/KUD+nsa2UUeYNrEjvn8K8l7
32+
lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgHJBu6haEaBQmAupVj
33+
yTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7fpYn
34+
Kx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLy
35+
yCwzk5Iwx06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5n
36+
wXARPbv0+Em34yaXOp/SX3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6
37+
OV+KmalBWQewLK8=
38+
-----END CERTIFICATE-----

make/data/currency/CurrencyData.properties

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ formatVersion=3
3232
# Version of the currency code information in this class.
3333
# It is a serial number that accompanies with each amendment.
3434

35-
dataVersion=175
35+
dataVersion=176
3636

3737
# List of all valid ISO 4217 currency codes.
3838
# To ensure compatibility, do not remove codes.
@@ -55,7 +55,7 @@ all=ADP020-AED784-AFA004-AFN971-ALL008-AMD051-ANG532-AOA973-ARS032-ATS040-AUD036
5555
SRD968-SRG740-SSP728-STD678-STN930-SVC222-SYP760-SZL748-THB764-TJS972-TMM795-TMT934-TND788-TOP776-\
5656
TPE626-TRL792-TRY949-TTD780-TWD901-TZS834-UAH980-UGX800-USD840-USN997-USS998-UYI940-\
5757
UYU858-UZS860-VEB862-VED926-VEF937-VES928-VND704-VUV548-WST882-XAF950-XAG961-XAU959-XBA955-\
58-
XBB956-XBC957-XBD958-XCD951-XDR960-XFO000-XFU000-XOF952-XPD964-XPF953-\
58+
XBB956-XBC957-XBD958-XCD951-XCG532-XDR960-XFO000-XFU000-XOF952-XPD964-XPF953-\
5959
XPT962-XSU994-XTS963-XUA965-XXX999-YER886-YUM891-ZAR710-ZMK894-ZMW967-ZWD716-ZWL932-\
6060
ZWN942-ZWR935
6161

@@ -189,11 +189,11 @@ CR=CRC
189189
# COTE D'IVOIRE
190190
CI=XOF
191191
# CROATIA
192-
HR=HRK;2022-12-31-23-00-00;EUR
192+
HR=EUR
193193
# CUBA
194194
CU=CUP
195195
# Cura\u00e7ao
196-
CW=ANG
196+
CW=ANG;2025-04-01-04-00-00;XCG
197197
# CYPRUS
198198
CY=EUR
199199
# CZECHIA
@@ -510,7 +510,7 @@ SR=SRD
510510
# SVALBARD AND JAN MAYEN
511511
SJ=NOK
512512
# Sint Maarten (Dutch part)
513-
SX=ANG
513+
SX=ANG;2025-04-01-04-00-00;XCG
514514
# ESWATINI
515515
SZ=SZL
516516
# SWEDEN

make/hotspot/lib/JvmOverrideFiles.gmk

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ ifeq ($(TOOLCHAIN_TYPE), gcc)
4040
# Need extra inlining to collapse all marking code into the hot marking loop
4141
BUILD_LIBJVM_shenandoahConcurrentMark.cpp_CXXFLAGS := --param inline-unit-growth=1000
4242
endif
43+
ifeq ($(call check-jvm-feature, dtrace), true)
44+
# DTRACE_PROBE macros trigger a maybe-uninitialized warning on 'ret'
45+
BUILD_LIBJVM_jni.cpp_CXXFLAGS := -Wno-maybe-uninitialized
46+
endif
4347
endif
4448

4549
LIBJVM_FDLIBM_COPY_OPT_FLAG := $(CXX_O_FLAG_NONE)

make/jdk/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2001, 2023, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,7 @@
3030
import java.io.DataOutputStream;
3131
import java.io.FileOutputStream;
3232
import java.text.SimpleDateFormat;
33+
import java.util.Arrays;
3334
import java.util.Date;
3435
import java.util.HashMap;
3536
import java.util.Locale;
@@ -312,9 +313,15 @@ private static void buildOtherTables() {
312313
validCurrencyCodes.substring(i * 7 + 3, i * 7 + 6));
313314
checkCurrencyCode(currencyCode);
314315
int tableEntry = mainTable[(currencyCode.charAt(0) - 'A') * A_TO_Z + (currencyCode.charAt(1) - 'A')];
315-
if (tableEntry == INVALID_COUNTRY_ENTRY ||
316-
(tableEntry & SPECIAL_CASE_COUNTRY_MASK) != 0 ||
317-
(tableEntry & SIMPLE_CASE_COUNTRY_FINAL_CHAR_MASK) != (currencyCode.charAt(2) - 'A')) {
316+
317+
// Do not allow a future currency to be classified as an otherCurrency,
318+
// otherwise it will leak out into Currency:getAvailableCurrencies
319+
boolean futureCurrency = Arrays.asList(specialCaseNewCurrencies).contains(currencyCode);
320+
boolean simpleCurrency = (tableEntry & SIMPLE_CASE_COUNTRY_FINAL_CHAR_MASK) == (currencyCode.charAt(2) - 'A');
321+
322+
// If neither a simple currency, or one defined in the future
323+
// then the current currency is applicable to be added to the otherTable
324+
if (!futureCurrency && !simpleCurrency) {
318325
if (otherCurrenciesCount == maxOtherCurrencies) {
319326
throw new RuntimeException("too many other currencies");
320327
}

src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java

Lines changed: 63 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1261,53 +1261,74 @@ protected HttpClient getNewHttpClient(URL url, Proxy p,
12611261
}
12621262

12631263
private void expect100Continue() throws IOException {
1264-
// Expect: 100-Continue was set, so check the return code for
1265-
// Acceptance
1266-
int oldTimeout = http.getReadTimeout();
1267-
boolean enforceTimeOut = false;
1268-
boolean timedOut = false;
1269-
if (oldTimeout <= 0) {
1270-
// 5s read timeout in case the server doesn't understand
1271-
// Expect: 100-Continue
1272-
http.setReadTimeout(5000);
1273-
enforceTimeOut = true;
1274-
}
1264+
// Expect: 100-Continue was set, so check the return code for
1265+
// Acceptance
1266+
int oldTimeout = http.getReadTimeout();
1267+
boolean timedOut = false;
1268+
boolean tempTimeOutSet = false;
1269+
if (oldTimeout <= 0 || oldTimeout > 5000) {
1270+
if (logger.isLoggable(PlatformLogger.Level.FINE)) {
1271+
logger.fine("Timeout currently set to " +
1272+
oldTimeout + " temporarily setting it to 5 seconds");
1273+
}
1274+
// 5s read timeout in case the server doesn't understand
1275+
// Expect: 100-Continue
1276+
http.setReadTimeout(5000);
1277+
tempTimeOutSet = true;
1278+
}
12751279

1276-
try {
1277-
http.parseHTTP(responses, pi, this);
1278-
} catch (SocketTimeoutException se) {
1279-
if (!enforceTimeOut) {
1280-
throw se;
1281-
}
1282-
timedOut = true;
1283-
http.setIgnoreContinue(true);
1284-
}
1285-
if (!timedOut) {
1286-
// Can't use getResponseCode() yet
1287-
String resp = responses.getValue(0);
1288-
// Parse the response which is of the form:
1289-
// HTTP/1.1 417 Expectation Failed
1290-
// HTTP/1.1 100 Continue
1291-
if (resp != null && resp.startsWith("HTTP/")) {
1292-
String[] sa = resp.split("\\s+");
1293-
responseCode = -1;
1294-
try {
1295-
// Response code is 2nd token on the line
1296-
if (sa.length > 1)
1297-
responseCode = Integer.parseInt(sa[1]);
1298-
} catch (NumberFormatException numberFormatException) {
1280+
try {
1281+
http.parseHTTP(responses, pi, this);
1282+
} catch (SocketTimeoutException se) {
1283+
if (logger.isLoggable(PlatformLogger.Level.FINE)) {
1284+
logger.fine("SocketTimeoutException caught," +
1285+
" will attempt to send body regardless");
1286+
}
1287+
timedOut = true;
1288+
}
1289+
1290+
if (!timedOut) {
1291+
// Can't use getResponseCode() yet
1292+
String resp = responses.getValue(0);
1293+
// Parse the response which is of the form:
1294+
// HTTP/1.1 417 Expectation Failed
1295+
// HTTP/1.1 100 Continue
1296+
if (resp != null && resp.startsWith("HTTP/")) {
1297+
String[] sa = resp.split("\\s+");
1298+
responseCode = -1;
1299+
try {
1300+
// Response code is 2nd token on the line
1301+
if (sa.length > 1)
1302+
responseCode = Integer.parseInt(sa[1]);
1303+
if (logger.isLoggable(PlatformLogger.Level.FINE)) {
1304+
logger.fine("response code received " + responseCode);
12991305
}
1300-
}
1301-
if (responseCode != 100) {
1302-
throw new ProtocolException("Server rejected operation");
1306+
} catch (NumberFormatException numberFormatException) {
13031307
}
13041308
}
1309+
if (responseCode != 100) {
1310+
// responseCode will be returned to caller
1311+
throw new ProtocolException("Server rejected operation");
1312+
}
1313+
}
13051314

1315+
// If timeout was changed, restore to original value
1316+
if (tempTimeOutSet) {
1317+
if (logger.isLoggable(PlatformLogger.Level.FINE)) {
1318+
logger.fine("Restoring original timeout : " + oldTimeout);
1319+
}
13061320
http.setReadTimeout(oldTimeout);
1321+
}
13071322

1308-
responseCode = -1;
1309-
responses.reset();
1310-
// Proceed
1323+
// Ignore any future 100 continue messages
1324+
http.setIgnoreContinue(true);
1325+
if (logger.isLoggable(PlatformLogger.Level.FINE)) {
1326+
logger.fine("Set Ignore Continue to true");
1327+
}
1328+
1329+
responseCode = -1;
1330+
responses.reset();
1331+
// Proceed
13111332
}
13121333

13131334
/*
@@ -1369,7 +1390,6 @@ private synchronized OutputStream getOutputStream0() throws IOException {
13691390
boolean expectContinue = false;
13701391
String expects = requests.findValue("Expect");
13711392
if ("100-Continue".equalsIgnoreCase(expects) && streaming()) {
1372-
http.setIgnoreContinue(false);
13731393
expectContinue = true;
13741394
}
13751395

@@ -1378,6 +1398,7 @@ private synchronized OutputStream getOutputStream0() throws IOException {
13781398
}
13791399

13801400
if (expectContinue) {
1401+
http.setIgnoreContinue(false);
13811402
expect100Continue();
13821403
}
13831404
ps = (PrintStream)http.getOutputStream();
@@ -1419,6 +1440,7 @@ private synchronized OutputStream getOutputStream0() throws IOException {
14191440
}
14201441
}
14211442

1443+
// Streaming returns true if there is a request body to send
14221444
public boolean streaming () {
14231445
return (fixedContentLength != -1) || (fixedContentLengthLong != -1) ||
14241446
(chunkLength != -1);

src/java.base/share/classes/sun/util/resources/CurrencyNames.properties

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2005, 2022, Oracle and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2005, 2023, Oracle and/or its affiliates. All rights reserved.
33
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
#
55
# This code is free software; you can redistribute it and/or modify it
@@ -266,6 +266,7 @@ XBB=XBB
266266
XBC=XBC
267267
XBD=XBD
268268
XCD=XCD
269+
XCG=XCG
269270
XDR=XDR
270271
XFO=XFO
271272
XFU=XFU
@@ -491,6 +492,7 @@ xbb=European Monetary Unit
491492
xbc=European Unit of Account (XBC)
492493
xbd=European Unit of Account (XBD)
493494
xcd=East Caribbean Dollar
495+
xcg=Caribbean Guilder
494496
xdr=Special Drawing Rights
495497
xfo=French Gold Franc
496498
xfu=French UIC-Franc

0 commit comments

Comments
 (0)