This commit is contained in:
Prasanta Sadhukhan 2020-05-02 09:00:04 +05:30
commit 2731d62234
286 changed files with 2045 additions and 700 deletions

View File

@ -205,7 +205,7 @@ define SetupJavaCompilationBody
else ifeq ($$($1_COMPILER), interim) else ifeq ($$($1_COMPILER), interim)
# Use java server if it is enabled, and the user does not want a specialized # Use java server if it is enabled, and the user does not want a specialized
# class path. # class path.
ifeq ($$($1_ENABLE_JAVAC_SERVER+$$($1_CLASSPATH)), true+) ifeq ($$(ENABLE_JAVAC_SERVER)+$$($1_CLASSPATH), true+)
$1_JAVAC := $$(INTERIM_LANGTOOLS_ARGS) -m jdk.compiler.interim/com.sun.tools.sjavac.Main $1_JAVAC := $$(INTERIM_LANGTOOLS_ARGS) -m jdk.compiler.interim/com.sun.tools.sjavac.Main
# How to launch the server. This must use JAVA_DETACH, which is the "big" java # How to launch the server. This must use JAVA_DETACH, which is the "big" java

View File

@ -1,31 +0,0 @@
Owner: CN=AddTrust Class 1 CA Root, OU=AddTrust TTP Network, O=AddTrust AB, C=SE
Issuer: CN=AddTrust Class 1 CA Root, OU=AddTrust TTP Network, O=AddTrust AB, C=SE
Serial number: 1
Valid from: Tue May 30 10:38:31 GMT 2000 until: Sat May 30 10:38:31 GMT 2020
Signature algorithm name: SHA1withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3
-----BEGIN CERTIFICATE-----
MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEU
MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMw
MTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYD
VQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ul
CDtbKRY654eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6n
tGO0/7Gcrjyvd7ZWxbWroulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyl
dI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1Zmne3yzxbrww2ywkEtvrNTVokMsAsJch
PXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJuiGMx1I4S+6+JNM3GOGvDC
+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8wHQYDVR0O
BBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8E
BTADAQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBl
MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFk
ZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENB
IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxtZBsfzQ3duQH6lmM0MkhHma6X
7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0PhiVYrqW9yTkkz
43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJl
pz/+0WatC7xrmYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOA
WiFeIc9TVPC6b4nbqKqVz4vjccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
-----END CERTIFICATE-----

View File

@ -1,30 +0,0 @@
Owner: CN=KEYNECTIS ROOT CA, OU=ROOT, O=KEYNECTIS, C=FR
Issuer: CN=KEYNECTIS ROOT CA, OU=ROOT, O=KEYNECTIS, C=FR
Serial number: 1121bc276c5547af584eefd4ced629b2a285
Valid from: Tue May 26 00:00:00 GMT 2009 until: Tue May 26 00:00:00 GMT 2020
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3
-----BEGIN CERTIFICATE-----
MIID5TCCAs2gAwIBAgISESG8J2xVR69YTu/UztYpsqKFMA0GCSqGSIb3DQEBCwUA
MEwxCzAJBgNVBAYTAkZSMRIwEAYDVQQKEwlLRVlORUNUSVMxDTALBgNVBAsTBFJP
T1QxGjAYBgNVBAMTEUtFWU5FQ1RJUyBST09UIENBMB4XDTA5MDUyNjAwMDAwMFoX
DTIwMDUyNjAwMDAwMFowTDELMAkGA1UEBhMCRlIxEjAQBgNVBAoTCUtFWU5FQ1RJ
UzENMAsGA1UECxMEUk9PVDEaMBgGA1UEAxMRS0VZTkVDVElTIFJPT1QgQ0EwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDG/bMXhaGtJhuVaTUhPaSI+t7b
YDZAF2nCFGP7uNnCdBU3LpzQIM1pjYQyooVMFLSb8iWzVCqDPy2+D/M7ZNH/oFDv
d087TuE/C2SFmrpYftLDYtNkJaLUspc8d11jKjOS/M2CDZtUlYf1teuMzVvRyjAv
yYhGtc0NEbQYj+7RoT5dFegoz9/DkJtszNEMRXezOuuKkB3pr2RqiXupPUN0+uRn
IqH73E3E9WLJyiW0yYBgM6nde6ACv5YlCl7JXyl7tBeBi22BGdDZg1wFj0FpGmlD
gJ+or+DpjJGLJyuiJmDND/KkowKDjhiBwheKQxX5bfMdEKRanERhIyF62PvRAgMB
AAGjgcAwgb0wEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNVHQ8BAf8EBAMCAQYwVwYD
VR0fBFAwTjBMoEqgSIZGaHR0cDovL3RydXN0Y2VudGVyLWNybC5jZXJ0aWZpY2F0
Mi5jb20vS2V5bmVjdGlzL0tFWU5FQ1RJU19ST09UX0NBLmNybDAdBgNVHQ4EFgQU
77cjl9CokX+mz6YhwDSfzHdB4dAwHwYDVR0jBBgwFoAU77cjl9CokX+mz6YhwDSf
zHdB4dAwDQYJKoZIhvcNAQELBQADggEBABoxaZlCwuVAhaKfksNj1I8hOagZIf56
/MNNQPMr6EusW0xZk8bcfguvfF+VhWu9x2+6wb74xjpnS5PGBWk+JC3wG5HGPj/s
QhiTbAMkim75IGcrfG2rNMkqIjMN132P7tI2ZELINZpuGWHLjWfwaKfQJAXmwxe6
Ra58Q7WAeANNIHMF/EMQnTVpQnWUJYIrpjuQGN7Bqa/zLZW/lafPGJfhWeKirxoW
YQ33E3FTkzf9PK8AHWyLFK9Gloy2UnzMLU7N4elLCu6a/nqY5ym6G9ocutxrzQQO
JkCp63M8/lCoESdVvduOS+9PGO0V/72GmGbumiVxNGxQ8bJRy2adTSk=
-----END CERTIFICATE-----

View File

@ -1,5 +1,5 @@
# #
# Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
@ -282,6 +282,7 @@ charset ISO-8859-16 ISO_8859_16
alias iso-ir-226 alias iso-ir-226
alias ISO_8859-16:2001 alias ISO_8859-16:2001
alias ISO_8859-16 alias ISO_8859-16
alias ISO8859_16
alias latin10 alias latin10
alias l10 alias l10
alias csISO885916 alias csISO885916
@ -697,7 +698,7 @@ charset x-euc-jp-linux EUC_JP_LINUX
charset x-eucJP-Open EUC_JP_Open charset x-eucJP-Open EUC_JP_Open
package sun.nio.cs.ext package sun.nio.cs.ext
type template type template
hisname EUC_JP_Solari hisname EUC_JP_Solaris
ascii true ascii true
alias EUC_JP_Solaris # JDK historical alias EUC_JP_Solaris # JDK historical
alias eucJP-open alias eucJP-open
@ -1391,7 +1392,7 @@ charset x-IBM833 IBM833
charset x-IBM834 IBM834 # EBCDIC DBCS-only Korean charset x-IBM834 IBM834 # EBCDIC DBCS-only Korean
package sun.nio.cs.ext package sun.nio.cs.ext
type source type template
alias cp834 alias cp834
alias ibm834 alias ibm834
alias 834 alias 834
@ -1485,7 +1486,7 @@ charset x-IBM949 IBM949
charset x-IBM949C IBM949C charset x-IBM949C IBM949C
package sun.nio.cs.ext package sun.nio.cs.ext
type source type template
alias cp949C # JDK historical alias cp949C # JDK historical
alias ibm949C alias ibm949C
alias ibm-949C alias ibm-949C

View File

@ -1,2 +1,2 @@
Github: https://raw.githubusercontent.com/publicsuffix/list/33c1c788decfed1052089fa27e3005fe4088dec3/public_suffix_list.dat Github: https://raw.githubusercontent.com/publicsuffix/list/cbbba1d234670453df9c930dfbf510c0474d4301/public_suffix_list.dat
Date: 2019-09-28 Date: 2020-04-24

View File

@ -79,7 +79,6 @@ exchange.aero
express.aero express.aero
federation.aero federation.aero
flight.aero flight.aero
freight.aero
fuel.aero fuel.aero
gliding.aero gliding.aero
government.aero government.aero
@ -213,6 +212,7 @@ ac.at
co.at co.at
gv.at gv.at
or.at or.at
sth.ac.at
// au : https://en.wikipedia.org/wiki/.au // au : https://en.wikipedia.org/wiki/.au
// http://www.auda.org.au/ // http://www.auda.org.au/
@ -241,7 +241,7 @@ wa.au
// 3LDs // 3LDs
act.edu.au act.edu.au
catholic.edu.au catholic.edu.au
eq.edu.au // eq.edu.au - Removed at the request of the Queensland Department of Education
nsw.edu.au nsw.edu.au
nt.edu.au nt.edu.au
qld.edu.au qld.edu.au
@ -719,11 +719,13 @@ gouv.ci
*.ck *.ck
!www.ck !www.ck
// cl : https://en.wikipedia.org/wiki/.cl // cl : https://www.nic.cl
// Confirmed by .CL registry <hsalgado@nic.cl>
cl cl
gov.cl aprendemas.cl
gob.cl
co.cl co.cl
gob.cl
gov.cl
mil.cl mil.cl
// cm : https://en.wikipedia.org/wiki/.cm plus bug 981927 // cm : https://en.wikipedia.org/wiki/.cm plus bug 981927
@ -982,8 +984,19 @@ fi
// TODO: Check for updates (expected to be phased out around Q1/2009) // TODO: Check for updates (expected to be phased out around Q1/2009)
aland.fi aland.fi
// fj : https://en.wikipedia.org/wiki/.fj // fj : http://domains.fj/
*.fj // Submitted by registry <garth.miller@cocca.org.nz> 2020-02-11
fj
ac.fj
biz.fj
com.fj
gov.fj
info.fj
mil.fj
name.fj
net.fj
org.fj
pro.fj
// fk : https://en.wikipedia.org/wiki/.fk // fk : https://en.wikipedia.org/wiki/.fk
*.fk *.fk
@ -1368,7 +1381,7 @@ it
gov.it gov.it
edu.it edu.it
// Reserved geo-names (regions and provinces): // Reserved geo-names (regions and provinces):
// http://www.nic.it/sites/default/files/docs/Regulation_assignation_v7.1.pdf // https://www.nic.it/sites/default/files/archivio/docs/Regulation_assignation_v7.1.pdf
// Regions // Regions
abr.it abr.it
abruzzo.it abruzzo.it
@ -5886,14 +5899,9 @@ gov.rs
in.rs in.rs
org.rs org.rs
// ru : https://cctld.ru/en/domains/domens_ru/reserved/ // ru : https://cctld.ru/files/pdf/docs/en/rules_ru-rf.pdf
// Submitted by George Georgievsky <gug@cctld.ru>
ru ru
ac.ru
edu.ru
gov.ru
int.ru
mil.ru
test.ru
// rw : https://www.ricta.org.rw/sites/default/files/resources/registry_registrar_contract_0.pdf // rw : https://www.ricta.org.rw/sites/default/files/resources/registry_registrar_contract_0.pdf
rw rw
@ -6038,9 +6046,12 @@ org.sn
perso.sn perso.sn
univ.sn univ.sn
// so : http://www.soregistry.com/ // so : http://sonic.so/policies/
so so
com.so com.so
edu.so
gov.so
me.so
net.so net.so
org.so org.so
@ -6510,7 +6521,7 @@ k12.ok.us
k12.or.us k12.or.us
k12.pa.us k12.pa.us
k12.pr.us k12.pr.us
k12.ri.us // k12.ri.us Removed at request of Kim Cournoyer <netsupport@staff.ri.net>
k12.sc.us k12.sc.us
// k12.sd.us Bug 934131 - Removed at request of James Booze <James.Booze@k12.sd.us> // k12.sd.us Bug 934131 - Removed at request of James Booze <James.Booze@k12.sd.us>
k12.tn.us k12.tn.us
@ -6797,8 +6808,13 @@ yt
مصر مصر
// xn--e1a4c ("eu", Cyrillic) : EU // xn--e1a4c ("eu", Cyrillic) : EU
// https://eurid.eu
ею ею
// xn--qxa6a ("eu", Greek) : EU
// https://eurid.eu
ευ
// xn--mgbah1a3hjkrd ("Mauritania", Arabic) : MR // xn--mgbah1a3hjkrd ("Mauritania", Arabic) : MR
موريتانيا موريتانيا
@ -6955,7 +6971,8 @@ yt
ак.срб ак.срб
// xn--p1ai ("rf", Russian-Cyrillic) : RU // xn--p1ai ("rf", Russian-Cyrillic) : RU
// http://www.cctld.ru/en/docs/rulesrf.php // https://cctld.ru/files/pdf/docs/en/rules_ru-rf.pdf
// Submitted by George Georgievsky <gug@cctld.ru>
рф рф
// xn--wgbl6a ("Qatar", Arabic) : QA // xn--wgbl6a ("Qatar", Arabic) : QA
@ -7075,7 +7092,7 @@ org.zw
// newGTLDs // newGTLDs
// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2019-09-26T16:43:02Z // List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2020-04-02T18:20:31Z
// This list is auto-generated, don't edit it manually. // This list is auto-generated, don't edit it manually.
// aaa : 2015-02-26 American Automobile Association, Inc. // aaa : 2015-02-26 American Automobile Association, Inc.
aaa aaa
@ -7197,6 +7214,9 @@ alsace
// alstom : 2015-07-30 ALSTOM // alstom : 2015-07-30 ALSTOM
alstom alstom
// amazon : 2019-12-19 Amazon Registry Services, Inc.
amazon
// americanexpress : 2015-07-31 American Express Travel Related Services Company, Inc. // americanexpress : 2015-07-31 American Express Travel Related Services Company, Inc.
americanexpress americanexpress
@ -7296,7 +7316,7 @@ auto
// autos : 2014-01-09 DERAutos, LLC // autos : 2014-01-09 DERAutos, LLC
autos autos
// avianca : 2015-01-08 Aerovias del Continente Americano S.A. Avianca // avianca : 2015-01-08 Avianca Holdings S.A.
avianca avianca
// aws : 2015-06-25 Amazon Registry Services, Inc. // aws : 2015-06-25 Amazon Registry Services, Inc.
@ -7374,7 +7394,7 @@ bcn
// beats : 2015-05-14 Beats Electronics, LLC // beats : 2015-05-14 Beats Electronics, LLC
beats beats
// beauty : 2015-12-03 L'Oréal // beauty : 2015-12-03 XYZ.COM LLC
beauty beauty
// beer : 2014-01-09 Minds + Machines Group Limited // beer : 2014-01-09 Minds + Machines Group Limited
@ -7587,9 +7607,6 @@ careers
// cars : 2014-11-13 Cars Registry Limited // cars : 2014-11-13 Cars Registry Limited
cars cars
// cartier : 2014-06-23 Richemont DNS Inc.
cartier
// casa : 2013-11-21 Minds + Machines Group Limited // casa : 2013-11-21 Minds + Machines Group Limited
casa casa
@ -7668,9 +7685,6 @@ christmas
// chrome : 2014-07-24 Charleston Road Registry Inc. // chrome : 2014-07-24 Charleston Road Registry Inc.
chrome chrome
// chrysler : 2015-07-30 FCA US LLC.
chrysler
// church : 2014-02-06 Binky Moon, LLC // church : 2014-02-06 Binky Moon, LLC
church church
@ -7836,7 +7850,7 @@ cuisinella
// cymru : 2014-05-08 Nominet UK // cymru : 2014-05-08 Nominet UK
cymru cymru
// cyou : 2015-01-22 Beijing Gamease Age Digital Technology Co., Ltd. // cyou : 2015-01-22 ShortDot SA
cyou cyou
// dabur : 2014-02-06 Dabur India Limited // dabur : 2014-02-06 Dabur India Limited
@ -7950,9 +7964,6 @@ docs
// doctor : 2016-06-02 Binky Moon, LLC // doctor : 2016-06-02 Binky Moon, LLC
doctor doctor
// dodge : 2015-07-30 FCA US LLC.
dodge
// dog : 2014-12-04 Binky Moon, LLC // dog : 2014-12-04 Binky Moon, LLC
dog dog
@ -8058,9 +8069,6 @@ eus
// events : 2013-12-05 Binky Moon, LLC // events : 2013-12-05 Binky Moon, LLC
events events
// everbank : 2014-05-15 EverBank
everbank
// exchange : 2014-03-06 Binky Moon, LLC // exchange : 2014-03-06 Binky Moon, LLC
exchange exchange
@ -8334,7 +8342,7 @@ gmail
// gmbh : 2016-01-29 Binky Moon, LLC // gmbh : 2016-01-29 Binky Moon, LLC
gmbh gmbh
// gmo : 2014-01-09 GMO Internet Pte. Ltd. // gmo : 2014-01-09 GMO Internet, Inc.
gmo gmo
// gmx : 2014-04-24 1&1 Mail & Media GmbH // gmx : 2014-04-24 1&1 Mail & Media GmbH
@ -8409,7 +8417,7 @@ guitars
// guru : 2013-08-27 Binky Moon, LLC // guru : 2013-08-27 Binky Moon, LLC
guru guru
// hair : 2015-12-03 L'Oréal // hair : 2015-12-03 XYZ.COM LLC
hair hair
// hamburg : 2014-02-20 Hamburg Top-Level-Domain GmbH // hamburg : 2014-02-20 Hamburg Top-Level-Domain GmbH
@ -8745,9 +8753,6 @@ kyoto
// lacaixa : 2014-01-09 Fundación Bancaria Caixa dEstalvis i Pensions de Barcelona, “la Caixa” // lacaixa : 2014-01-09 Fundación Bancaria Caixa dEstalvis i Pensions de Barcelona, “la Caixa”
lacaixa lacaixa
// ladbrokes : 2015-08-06 LADBROKES INTERNATIONAL PLC
ladbrokes
// lamborghini : 2015-06-04 Automobili Lamborghini S.p.A. // lamborghini : 2015-06-04 Automobili Lamborghini S.p.A.
lamborghini lamborghini
@ -8760,9 +8765,6 @@ lancaster
// lancia : 2015-07-31 Fiat Chrysler Automobiles N.V. // lancia : 2015-07-31 Fiat Chrysler Automobiles N.V.
lancia lancia
// lancome : 2015-07-23 L'Oréal
lancome
// land : 2013-09-10 Binky Moon, LLC // land : 2013-09-10 Binky Moon, LLC
land land
@ -8814,9 +8816,6 @@ lexus
// lgbt : 2014-05-08 Afilias Limited // lgbt : 2014-05-08 Afilias Limited
lgbt lgbt
// liaison : 2014-10-02 Liaison Technologies, Incorporated
liaison
// lidl : 2014-09-18 Schwarz Domains und Services GmbH & Co. KG // lidl : 2014-09-18 Schwarz Domains und Services GmbH & Co. KG
lidl lidl
@ -8937,7 +8936,7 @@ maif
// maison : 2013-12-05 Binky Moon, LLC // maison : 2013-12-05 Binky Moon, LLC
maison maison
// makeup : 2015-01-15 L'Oréal // makeup : 2015-01-15 XYZ.COM LLC
makeup makeup
// man : 2014-12-04 MAN SE // man : 2014-12-04 MAN SE
@ -9060,9 +9059,6 @@ money
// monster : 2015-09-11 XYZ.COM LLC // monster : 2015-09-11 XYZ.COM LLC
monster monster
// mopar : 2015-07-30 FCA US LLC.
mopar
// mormon : 2013-12-05 IRI Domain Management, LLC ("Applicant") // mormon : 2013-12-05 IRI Domain Management, LLC ("Applicant")
mormon mormon
@ -9084,9 +9080,6 @@ mov
// movie : 2015-02-05 Binky Moon, LLC // movie : 2015-02-05 Binky Moon, LLC
movie movie
// movistar : 2014-10-16 Telefónica S.A.
movistar
// msd : 2015-07-23 MSD Registry Holdings, Inc. // msd : 2015-07-23 MSD Registry Holdings, Inc.
msd msd
@ -9102,9 +9095,6 @@ mutual
// nab : 2015-08-20 National Australia Bank Limited // nab : 2015-08-20 National Australia Bank Limited
nab nab
// nadex : 2014-12-11 Nadex Domains, Inc.
nadex
// nagoya : 2013-10-24 GMO Registry, Inc. // nagoya : 2013-10-24 GMO Registry, Inc.
nagoya nagoya
@ -9345,9 +9335,6 @@ photos
// physio : 2014-05-01 PhysBiz Pty Ltd // physio : 2014-05-01 PhysBiz Pty Ltd
physio physio
// piaget : 2014-10-16 Richemont DNS Inc.
piaget
// pics : 2013-11-14 Uniregistry, Corp. // pics : 2013-11-14 Uniregistry, Corp.
pics pics
@ -9459,7 +9446,7 @@ qpon
// quebec : 2013-12-19 PointQuébec Inc // quebec : 2013-12-19 PointQuébec Inc
quebec quebec
// quest : 2015-03-26 Quest ION Limited // quest : 2015-03-26 XYZ.COM LLC
quest quest
// qvc : 2015-07-30 QVC, Inc. // qvc : 2015-07-30 QVC, Inc.
@ -9789,7 +9776,7 @@ site
// ski : 2015-04-09 Afilias Limited // ski : 2015-04-09 Afilias Limited
ski ski
// skin : 2015-01-15 L'Oréal // skin : 2015-01-15 XYZ.COM LLC
skin skin
// sky : 2014-06-19 Sky International AG // sky : 2014-06-19 Sky International AG
@ -9858,9 +9845,6 @@ spreadbetting
// srl : 2015-05-07 InterNetX, Corp // srl : 2015-05-07 InterNetX, Corp
srl srl
// srt : 2015-07-30 FCA US LLC.
srt
// stada : 2014-11-13 STADA Arzneimittel AG // stada : 2014-11-13 STADA Arzneimittel AG
stada stada
@ -9987,9 +9971,6 @@ tech
// technology : 2013-09-13 Binky Moon, LLC // technology : 2013-09-13 Binky Moon, LLC
technology technology
// telefonica : 2014-10-16 Telefónica S.A.
telefonica
// temasek : 2014-08-07 Temasek Holdings (Private) Limited // temasek : 2014-08-07 Temasek Holdings (Private) Limited
temasek temasek
@ -10083,7 +10064,7 @@ trading
// training : 2013-11-07 Binky Moon, LLC // training : 2013-11-07 Binky Moon, LLC
training training
// travel : Dog Beach, LLC // travel : 2015-10-09 Dog Beach, LLC
travel travel
// travelchannel : 2015-07-02 Lifestyle Domain Holdings, Inc. // travelchannel : 2015-07-02 Lifestyle Domain Holdings, Inc.
@ -10122,9 +10103,6 @@ ubank
// ubs : 2014-12-11 UBS AG // ubs : 2014-12-11 UBS AG
ubs ubs
// uconnect : 2015-07-30 FCA US LLC.
uconnect
// unicom : 2015-10-15 China United Network Communications Corporation Limited // unicom : 2015-10-15 China United Network Communications Corporation Limited
unicom unicom
@ -10194,9 +10172,6 @@ visa
// vision : 2013-12-05 Binky Moon, LLC // vision : 2013-12-05 Binky Moon, LLC
vision vision
// vistaprint : 2014-09-18 Vistaprint Limited
vistaprint
// viva : 2014-11-07 Saudi Telecom Company // viva : 2014-11-07 Saudi Telecom Company
viva viva
@ -10245,9 +10220,6 @@ wang
// wanggou : 2014-12-18 Amazon Registry Services, Inc. // wanggou : 2014-12-18 Amazon Registry Services, Inc.
wanggou wanggou
// warman : 2015-06-18 Weir Group IP Limited
warman
// watch : 2013-11-14 Binky Moon, LLC // watch : 2013-11-14 Binky Moon, LLC
watch watch
@ -10362,7 +10334,7 @@ xin
// xn--3bst00m : 2013-09-13 Eagle Horizon Limited // xn--3bst00m : 2013-09-13 Eagle Horizon Limited
集团 集团
// xn--3ds443g : 2013-09-08 TLD REGISTRY LIMITED // xn--3ds443g : 2013-09-08 TLD REGISTRY LIMITED OY
在线 在线
// xn--3oq18vl8pn36a : 2015-07-02 Volkswagen (China) Investment Co., Ltd. // xn--3oq18vl8pn36a : 2015-07-02 Volkswagen (China) Investment Co., Ltd.
@ -10377,7 +10349,7 @@ xin
// xn--45q11c : 2013-11-21 Zodiac Gemini Ltd // xn--45q11c : 2013-11-21 Zodiac Gemini Ltd
八卦 八卦
// xn--4gbrim : 2013-10-04 Suhub Electronic Establishment // xn--4gbrim : 2013-10-04 Fans TLD Limited
موقع موقع
// xn--55qw42g : 2013-11-08 China Organizational Name Administration Center // xn--55qw42g : 2013-11-08 China Organizational Name Administration Center
@ -10437,10 +10409,13 @@ xin
// xn--cck2b3b : 2015-02-26 Amazon Registry Services, Inc. // xn--cck2b3b : 2015-02-26 Amazon Registry Services, Inc.
ストア ストア
// xn--cckwcxetd : 2019-12-19 Amazon Registry Services, Inc.
アマゾン
// xn--cg4bki : 2013-09-27 SAMSUNG SDS CO., LTD // xn--cg4bki : 2013-09-27 SAMSUNG SDS CO., LTD
삼성 삼성
// xn--czr694b : 2014-01-16 Dot Trademark TLD Holding Company Limited // xn--czr694b : 2014-01-16 Internet DotTrademark Organisation Limited
商标 商标
// xn--czrs0t : 2013-12-19 Binky Moon, LLC // xn--czrs0t : 2013-12-19 Binky Moon, LLC
@ -10458,16 +10433,13 @@ xin
// xn--efvy88h : 2014-08-22 Guangzhou YU Wei Information Technology Co., Ltd. // xn--efvy88h : 2014-08-22 Guangzhou YU Wei Information Technology Co., Ltd.
新闻 新闻
// xn--estv75g : 2015-02-19 Industrial and Commercial Bank of China Limited
工行
// xn--fct429k : 2015-04-09 Amazon Registry Services, Inc. // xn--fct429k : 2015-04-09 Amazon Registry Services, Inc.
家電 家電
// xn--fhbei : 2015-01-15 VeriSign Sarl // xn--fhbei : 2015-01-15 VeriSign Sarl
كوم كوم
// xn--fiq228c5hs : 2013-09-08 TLD REGISTRY LIMITED // xn--fiq228c5hs : 2013-09-08 TLD REGISTRY LIMITED OY
中文网 中文网
// xn--fiq64b : 2013-10-14 CITIC Group Corporation // xn--fiq64b : 2013-10-14 CITIC Group Corporation
@ -10497,7 +10469,7 @@ xin
// xn--i1b6b1a6a2e : 2013-11-14 Public Interest Registry // xn--i1b6b1a6a2e : 2013-11-14 Public Interest Registry
संगठन संगठन
// xn--imr513n : 2014-12-11 Dot Trademark TLD Holding Company Limited // xn--imr513n : 2014-12-11 Internet DotTrademark Organisation Limited
餐厅 餐厅
// xn--io0a7i : 2013-11-14 China Internet Network Information Center (CNNIC) // xn--io0a7i : 2013-11-14 China Internet Network Information Center (CNNIC)
@ -10506,6 +10478,9 @@ xin
// xn--j1aef : 2015-01-15 VeriSign Sarl // xn--j1aef : 2015-01-15 VeriSign Sarl
ком ком
// xn--jlq480n2rg : 2019-12-19 Amazon Registry Services, Inc.
亚马逊
// xn--jlq61u9w7b : 2015-01-08 Nokia Corporation // xn--jlq61u9w7b : 2015-01-08 Nokia Corporation
诺基亚 诺基亚
@ -10566,7 +10541,7 @@ xin
// xn--nyqy26a : 2014-11-07 Stable Tone Limited // xn--nyqy26a : 2014-11-07 Stable Tone Limited
健康 健康
// xn--otu796d : 2017-08-06 Dot Trademark TLD Holding Company Limited // xn--otu796d : 2017-08-06 Jiang Yu Liang Cai Technology Company Limited
招聘 招聘
// xn--p1acf : 2013-12-12 Rusnames Limited // xn--p1acf : 2013-12-12 Rusnames Limited
@ -10641,7 +10616,7 @@ yahoo
// yamaxun : 2014-12-18 Amazon Registry Services, Inc. // yamaxun : 2014-12-18 Amazon Registry Services, Inc.
yamaxun yamaxun
// yandex : 2014-04-10 YANDEX, LLC // yandex : 2014-04-10 Yandex Europe B.V.
yandex yandex
// yodobashi : 2014-11-20 YODOBASHI CAMERA CO.,LTD. // yodobashi : 2014-11-20 YODOBASHI CAMERA CO.,LTD.
@ -10691,6 +10666,12 @@ cc.ua
inf.ua inf.ua
ltd.ua ltd.ua
// Adobe : https://www.adobe.com/
// Submitted by Ian Boston <boston@adobe.com>
adobeaemcloud.com
adobeaemcloud.net
*.dev.adobeaemcloud.com
// Agnat sp. z o.o. : https://domena.pl // Agnat sp. z o.o. : https://domena.pl
// Submitted by Przemyslaw Plewa <it-admin@domena.pl> // Submitted by Przemyslaw Plewa <it-admin@domena.pl>
beep.pl beep.pl
@ -10808,6 +10789,10 @@ s3-website.eu-west-2.amazonaws.com
s3-website.eu-west-3.amazonaws.com s3-website.eu-west-3.amazonaws.com
s3-website.us-east-2.amazonaws.com s3-website.us-east-2.amazonaws.com
// Amsterdam Wireless: https://www.amsterdamwireless.nl/
// Submitted by Imre Jonk <hostmaster@amsterdamwireless.nl>
amsw.nl
// Amune : https://amune.org/ // Amune : https://amune.org/
// Submitted by Team Amune <cert@amune.org> // Submitted by Team Amune <cert@amune.org>
t3l3p0rt.net t3l3p0rt.net
@ -10842,12 +10827,6 @@ sweetpepper.org
// Submitted by Vincent Tseng <vincenttseng@asustor.com> // Submitted by Vincent Tseng <vincenttseng@asustor.com>
myasustor.com myasustor.com
// Automattic Inc. : https://automattic.com/
// Submitted by Alex Concha <alex.concha@automattic.com>
go-vip.co
go-vip.net
wpcomstaging.com
// AVM : https://avm.de // AVM : https://avm.de
// Submitted by Andreas Weise <a.weise@avm.de> // Submitted by Andreas Weise <a.weise@avm.de>
myfritz.net myfritz.net
@ -10984,8 +10963,9 @@ certmgr.org
xenapponazure.com xenapponazure.com
// Civilized Discourse Construction Kit, Inc. : https://www.discourse.org/ // Civilized Discourse Construction Kit, Inc. : https://www.discourse.org/
// Submitted by Rishabh Nambiar <rishabh.nambiar@discourse.org> // Submitted by Rishabh Nambiar & Michael Brown <team@discourse.org>
discourse.group discourse.group
discourse.team
// ClearVox : http://www.clearvox.nl/ // ClearVox : http://www.clearvox.nl/
// Submitted by Leon Rowland <leon@clearvox.nl> // Submitted by Leon Rowland <leon@clearvox.nl>
@ -11000,6 +10980,10 @@ cleverapps.io
*.lcl.dev *.lcl.dev
*.stg.dev *.stg.dev
// Clic2000 : https://clic2000.fr
// Submitted by Mathilde Blanchemanche <mathilde@clic2000.fr>
clic2000.net
// Cloud66 : https://www.cloud66.com/ // Cloud66 : https://www.cloud66.com/
// Submitted by Khash Sajadi <khash@cloud66.com> // Submitted by Khash Sajadi <khash@cloud66.com>
c66.me c66.me
@ -11082,6 +11066,15 @@ co.no
webhosting.be webhosting.be
hosting-cluster.nl hosting-cluster.nl
// Coordination Center for TLD RU and XN--P1AI : https://cctld.ru/en/domains/domens_ru/reserved/
// Submitted by George Georgievsky <gug@cctld.ru>
ac.ru
edu.ru
gov.ru
int.ru
mil.ru
test.ru
// COSIMO GmbH : http://www.cosimo.de // COSIMO GmbH : http://www.cosimo.de
// Submitted by Rene Marticke <rmarticke@cosimo.de> // Submitted by Rene Marticke <rmarticke@cosimo.de>
dyn.cosidns.de dyn.cosidns.de
@ -11106,6 +11099,18 @@ realm.cz
// Submitted by Jonathan Rudenberg <jonathan@cupcake.io> // Submitted by Jonathan Rudenberg <jonathan@cupcake.io>
cupcake.is cupcake.is
// Curv UG : https://curv-labs.de/
// Submitted by Marvin Wiesner <Marvin@curv-labs.de>
curv.dev
// Customer OCI - Oracle Dyn https://cloud.oracle.com/home https://dyn.com/dns/
// Submitted by Gregory Drake <support@dyn.com>
// Note: This is intended to also include customer-oci.com due to wildcards implicitly including the current label
*.customer-oci.com
*.oci.customer-oci.com
*.ocp.customer-oci.com
*.ocs.customer-oci.com
// cyon GmbH : https://www.cyon.ch/ // cyon GmbH : https://www.cyon.ch/
// Submitted by Dominic Luechinger <dol@cyon.ch> // Submitted by Dominic Luechinger <dol@cyon.ch>
cyon.link cyon.link
@ -11133,11 +11138,23 @@ firm.dk
reg.dk reg.dk
store.dk store.dk
// dappnode.io : https://dappnode.io/
// Submitted by Abel Boldu / DAppNode Team <community@dappnode.io>
dyndns.dappnode.io
// dapps.earth : https://dapps.earth/ // dapps.earth : https://dapps.earth/
// Submitted by Daniil Burdakov <icqkill@gmail.com> // Submitted by Daniil Burdakov <icqkill@gmail.com>
*.dapps.earth *.dapps.earth
*.bzz.dapps.earth *.bzz.dapps.earth
// Dark, Inc. : https://darklang.com
// Submitted by Paul Biggar <ops@darklang.com>
builtwithdark.com
// Datawire, Inc : https://www.datawire.io
// Submitted by Richard Li <secalert@datawire.io>
edgestack.me
// Debian : https://www.debian.org/ // Debian : https://www.debian.org/
// Submitted by Peter Palfrader / Debian Sysadmin Team <dsa-publicsuffixlist@debian.org> // Submitted by Peter Palfrader / Debian Sysadmin Team <dsa-publicsuffixlist@debian.org>
debian.net debian.net
@ -11511,6 +11528,10 @@ dynv6.net
// Submitted by Vladimir Dudr <info@e4you.cz> // Submitted by Vladimir Dudr <info@e4you.cz>
e4.cz e4.cz
// En root‽ : https://en-root.org
// Submitted by Emmanuel Raviart <emmanuel@raviart.com>
en-root.fr
// Enalean SAS: https://www.enalean.com // Enalean SAS: https://www.enalean.com
// Submitted by Thomas Cottier <thomas.cottier@enalean.com> // Submitted by Thomas Cottier <thomas.cottier@enalean.com>
mytuleap.com mytuleap.com
@ -11603,6 +11624,10 @@ twmail.org
mymailer.com.tw mymailer.com.tw
url.tw url.tw
// Fabrica Technologies, Inc. : https://www.fabrica.dev/
// Submitted by Eric Jiang <eric@fabrica.dev>
onfabrica.com
// Facebook, Inc. // Facebook, Inc.
// Submitted by Peter Ruibal <public-suffix@fb.com> // Submitted by Peter Ruibal <public-suffix@fb.com>
apps.fbsbx.com apps.fbsbx.com
@ -11686,6 +11711,7 @@ vologda.su
// Fancy Bits, LLC : http://getchannels.com // Fancy Bits, LLC : http://getchannels.com
// Submitted by Aman Gupta <aman@getchannels.com> // Submitted by Aman Gupta <aman@getchannels.com>
channelsdvr.net channelsdvr.net
u.channelsdvr.net
// Fastly Inc. : http://www.fastly.com/ // Fastly Inc. : http://www.fastly.com/
// Submitted by Fastly Security <security@fastly.com> // Submitted by Fastly Security <security@fastly.com>
@ -11704,6 +11730,10 @@ global.ssl.fastly.net
// Submitted by Likhachev Vasiliy <lihachev@fastvps.ru> // Submitted by Likhachev Vasiliy <lihachev@fastvps.ru>
fastpanel.direct fastpanel.direct
fastvps-server.com fastvps-server.com
myfast.space
myfast.host
fastvps.site
fastvps.host
// Featherhead : https://featherhead.xyz/ // Featherhead : https://featherhead.xyz/
// Submitted by Simon Menke <simon@featherhead.xyz> // Submitted by Simon Menke <simon@featherhead.xyz>
@ -11717,6 +11747,13 @@ cloud.fedoraproject.org
app.os.fedoraproject.org app.os.fedoraproject.org
app.os.stg.fedoraproject.org app.os.stg.fedoraproject.org
// FearWorks Media Ltd. : https://fearworksmedia.co.uk
// submitted by Keith Fairley <domains@fearworksmedia.co.uk>
conn.uk
copro.uk
couk.me
ukco.me
// Fermax : https://fermax.com/ // Fermax : https://fermax.com/
// submitted by Koen Van Isterdael <k.vanisterdael@fermax.be> // submitted by Koen Van Isterdael <k.vanisterdael@fermax.be>
mydobiss.com mydobiss.com
@ -11737,9 +11774,12 @@ firebaseapp.com
// Flynn : https://flynn.io // Flynn : https://flynn.io
// Submitted by Jonathan Rudenberg <jonathan@flynn.io> // Submitted by Jonathan Rudenberg <jonathan@flynn.io>
flynnhub.com
flynnhosting.net flynnhosting.net
// Frederik Braun https://frederik-braun.com
// Submitted by Frederik Braun <fb@frederik-braun.com>
0e.vc
// Freebox : http://www.freebox.fr // Freebox : http://www.freebox.fr
// Submitted by Romain Fliedel <rfliedel@freebox.fr> // Submitted by Romain Fliedel <rfliedel@freebox.fr>
freebox-os.com freebox-os.com
@ -11773,8 +11813,9 @@ service.gov.uk
gehirn.ne.jp gehirn.ne.jp
usercontent.jp usercontent.jp
// Gentlent, Limited : https://www.gentlent.com // Gentlent, Inc. : https://www.gentlent.com
// Submitted by Tom Klein <tklein@gentlent.com> // Submitted by Tom Klein <tom@gentlent.com>
gentapps.com
lab.ms lab.ms
// GitHub, Inc. // GitHub, Inc.
@ -11819,6 +11860,7 @@ a.run.app
web.app web.app
*.0emm.com *.0emm.com
appspot.com appspot.com
*.r.appspot.com
blogspot.ae blogspot.ae
blogspot.al blogspot.al
blogspot.am blogspot.am
@ -11903,6 +11945,14 @@ publishproxy.com
withgoogle.com withgoogle.com
withyoutube.com withyoutube.com
// Aaron Marais' Gitlab pages: https://lab.aaronleem.co.za
// Submitted by Aaron Marais <its_me@aaronleem.co.za>
graphox.us
// Group 53, LLC : https://www.group53.com
// Submitted by Tyler Todd <noc@nova53.net>
awsmppl.com
// Hakaran group: http://hakaran.cz // Hakaran group: http://hakaran.cz
// Submited by Arseniy Sokolov <security@hakaran.cz> // Submited by Arseniy Sokolov <security@hakaran.cz>
fin.ci fin.ci
@ -11952,6 +12002,7 @@ col.ng
firm.ng firm.ng
gen.ng gen.ng
ltd.ng ltd.ng
ngo.ng
ng.school ng.school
sch.so sch.so
@ -12028,8 +12079,9 @@ pixolino.com
ipifony.net ipifony.net
// IServ GmbH : https://iserv.eu // IServ GmbH : https://iserv.eu
// Submitted by Kim-Alexander Brodowski <kim.brodowski@iserv.eu> // Submitted by Kim-Alexander Brodowski <info@iserv.eu>
mein-iserv.de mein-iserv.de
schulserver.de
test-iserv.de test-iserv.de
iserv.dev iserv.dev
@ -12072,6 +12124,10 @@ uni5.net
// Submitted by Roy Keene <rkeene@knightpoint.com> // Submitted by Roy Keene <rkeene@knightpoint.com>
knightpoint.systems knightpoint.systems
// KUROKU LTD : https://kuroku.ltd/
// Submitted by DisposaBoy <security@oya.to>
oya.to
// .KRD : http://nic.krd/data/krd/Registration%20Policy.pdf // .KRD : http://nic.krd/data/krd/Registration%20Policy.pdf
co.krd co.krd
edu.krd edu.krd
@ -12211,8 +12267,8 @@ eu.meteorapp.com
co.pl co.pl
// Microsoft Corporation : http://microsoft.com // Microsoft Corporation : http://microsoft.com
// Submitted by Justin Luk <juluk@microsoft.com> // Submitted by Mostafa Elzeiny <moelzein@microsoft.com>
azurecontainer.io *.azurecontainer.io
azurewebsites.net azurewebsites.net
azure-mobile.net azure-mobile.net
cloudapp.net cloudapp.net
@ -12258,6 +12314,7 @@ nctu.me
// Netlify : https://www.netlify.com // Netlify : https://www.netlify.com
// Submitted by Jessica Parsons <jessica@netlify.com> // Submitted by Jessica Parsons <jessica@netlify.com>
bitballoon.com bitballoon.com
netlify.app
netlify.com netlify.com
// Neustar Inc. // Neustar Inc.
@ -12415,12 +12472,13 @@ pcloud.host
nyc.mn nyc.mn
// NymNom : https://nymnom.com/ // NymNom : https://nymnom.com/
// Submitted by Dave McCormack <dave.mccormack@nymnom.com> // Submitted by NymNom <psl@nymnom.com>
nom.ae nom.ae
nom.af nom.af
nom.ai nom.ai
nom.al nom.al
nym.by nym.by
nom.bz
nym.bz nym.bz
nom.cl nom.cl
nym.ec nym.ec
@ -12442,6 +12500,7 @@ nom.li
nym.li nym.li
nym.lt nym.lt
nym.lu nym.lu
nom.lv
nym.me nym.me
nom.mk nom.mk
nym.mn nym.mn
@ -12466,6 +12525,10 @@ nom.uy
nom.vc nom.vc
nom.vg nom.vg
// Observable, Inc. : https://observablehq.com
// Submitted by Mike Bostock <dns@observablehq.com>
static.observableusercontent.com
// Octopodal Solutions, LLC. : https://ulterius.io/ // Octopodal Solutions, LLC. : https://ulterius.io/
// Submitted by Andrew Sampson <andrew@ulterius.io> // Submitted by Andrew Sampson <andrew@ulterius.io>
cya.gg cya.gg
@ -12486,6 +12549,10 @@ opencraft.hosting
// Submitted by Yngve Pettersen <yngve@opera.com> // Submitted by Yngve Pettersen <yngve@opera.com>
operaunite.com operaunite.com
// Oursky Limited : https://skygear.io/
// Submited by Skygear Developer <hello@skygear.io>
skygearapp.com
// OutSystems // OutSystems
// Submitted by Duarte Santos <domain-admin@outsystemscloud.com> // Submitted by Duarte Santos <domain-admin@outsystemscloud.com>
outsystemscloud.com outsystemscloud.com
@ -12528,6 +12595,10 @@ gotpantheon.com
// Submitted by Steve Leung <steveleung@peplink.com> // Submitted by Steve Leung <steveleung@peplink.com>
mypep.link mypep.link
// Perspecta : https://perspecta.com/
// Submitted by Kenneth Van Alstyne <kvanalstyne@perspecta.com>
perspecta.cloud
// Planet-Work : https://www.planet-work.com/ // Planet-Work : https://www.planet-work.com/
// Submitted by Frédéric VANNIÈRE <f.vanniere@planet-work.com> // Submitted by Frédéric VANNIÈRE <f.vanniere@planet-work.com>
on-web.fr on-web.fr
@ -12537,6 +12608,12 @@ on-web.fr
*.platform.sh *.platform.sh
*.platformsh.site *.platformsh.site
// Platter: https://platter.dev
// Submitted by Patrick Flor <patrick@platter.dev>
platter-app.com
platter-app.dev
platterp.us
// Port53 : https://port53.io/ // Port53 : https://port53.io/
// Submitted by Maximilian Schieder <maxi@zeug.co> // Submitted by Maximilian Schieder <maxi@zeug.co>
dyn53.io dyn53.io
@ -12578,6 +12655,10 @@ pubtls.org
// Submitted by Xavier De Cock <xdecock@gmail.com> // Submitted by Xavier De Cock <xdecock@gmail.com>
qualifioapp.com qualifioapp.com
// QuickBackend: https://www.quickbackend.com
// Submitted by Dani Biro <dani@pymet.com>
qbuser.com
// Redstar Consultants : https://www.redstarconsultants.com/ // Redstar Consultants : https://www.redstarconsultants.com/
// Submitted by Jons Slemmer <jons@redstarconsultants.com> // Submitted by Jons Slemmer <jons@redstarconsultants.com>
instantcloud.cn instantcloud.cn
@ -12590,6 +12671,11 @@ ras.ru
// Submitted by Daniel Dent (https://www.danieldent.com/) // Submitted by Daniel Dent (https://www.danieldent.com/)
qa2.com qa2.com
// QCX
// Submitted by Cassandra Beelen <cassandra@beelen.one>
qcx.io
*.sys.qcx.io
// QNAP System Inc : https://www.qnap.com // QNAP System Inc : https://www.qnap.com
// Submitted by Nick Chang <nickchang@qnap.com> // Submitted by Nick Chang <nickchang@qnap.com>
dev-myqnapcloud.com dev-myqnapcloud.com
@ -12612,6 +12698,7 @@ rackmaze.net
// Rancher Labs, Inc : https://rancher.com // Rancher Labs, Inc : https://rancher.com
// Submitted by Vincent Fiduccia <domains@rancher.com> // Submitted by Vincent Fiduccia <domains@rancher.com>
*.on-k3s.io
*.on-rancher.cloud *.on-rancher.cloud
*.on-rio.io *.on-rio.io
@ -12665,6 +12752,10 @@ logoip.com
// Submitted by Hanno Böck <hanno@schokokeks.org> // Submitted by Hanno Böck <hanno@schokokeks.org>
schokokeks.net schokokeks.net
// Scottish Government: https://www.gov.scot
// Submitted by Martin Ellis <martin.ellis@gov.scot>
gov.scot
// Scry Security : http://www.scrysec.com // Scry Security : http://www.scrysec.com
// Submitted by Shante Adam <shante@skyhat.io> // Submitted by Shante Adam <shante@skyhat.io>
scrysec.com scrysec.com
@ -12682,6 +12773,10 @@ my-firewall.org
myfirewall.org myfirewall.org
spdns.org spdns.org
// Senseering GmbH : https://www.senseering.de
// Submitted by Felix Mönckemeyer <f.moenckemeyer@senseering.de>
senseering.net
// Service Online LLC : http://drs.ua/ // Service Online LLC : http://drs.ua/
// Submitted by Serhii Bulakh <support@drs.ua> // Submitted by Serhii Bulakh <support@drs.ua>
biz.ua biz.ua
@ -12700,6 +12795,10 @@ myshopblocks.com
// Submitted by Craig McMahon <craig@shopitcommerce.com> // Submitted by Craig McMahon <craig@shopitcommerce.com>
shopitsite.com shopitsite.com
// shopware AG : https://shopware.com
// Submitted by Jens Küper <cloud@shopware.com>
shopware.store
// Siemens Mobility GmbH // Siemens Mobility GmbH
// Submitted by Oliver Graebner <security@mo-siemens.io> // Submitted by Oliver Graebner <security@mo-siemens.io>
mo-siemens.io mo-siemens.io
@ -12732,6 +12831,10 @@ static.land
dev.static.land dev.static.land
sites.static.land sites.static.land
// Sony Interactive Entertainment LLC : https://sie.com/
// Submitted by David Coles <david.coles@sony.com>
playstation-cloud.com
// SourceLair PC : https://www.sourcelair.com // SourceLair PC : https://www.sourcelair.com
// Submitted by Antonis Kalipetis <akalipetis@sourcelair.com> // Submitted by Antonis Kalipetis <akalipetis@sourcelair.com>
apps.lair.io apps.lair.io
@ -12906,6 +13009,11 @@ inc.hk
virtualuser.de virtualuser.de
virtual-user.de virtual-user.de
// urown.net : https://urown.net
// Submitted by Hostmaster <hostmaster@urown.net>
urown.cloud
dnsupdate.info
// .US // .US
// Submitted by Ed Moore <Ed.Moore@lib.de.us> // Submitted by Ed Moore <Ed.Moore@lib.de.us>
lib.de.us lib.de.us
@ -12926,6 +13034,10 @@ v-info.info
// Submitted by Nathan van Bakel <info@voorloper.com> // Submitted by Nathan van Bakel <info@voorloper.com>
voorloper.cloud voorloper.cloud
// V.UA Domain Administrator : https://domain.v.ua/
// Submitted by Serhii Rostilo <sergey@rostilo.kiev.ua>
v.ua
// Waffle Computer Inc., Ltd. : https://docs.waffleinfo.com // Waffle Computer Inc., Ltd. : https://docs.waffleinfo.com
// Submitted by Masayuki Note <masa@blade.wafflecell.com> // Submitted by Masayuki Note <masa@blade.wafflecell.com>
wafflecell.com wafflecell.com
@ -12945,8 +13057,23 @@ wedeploy.sh
remotewd.com remotewd.com
// Wikimedia Labs : https://wikitech.wikimedia.org // Wikimedia Labs : https://wikitech.wikimedia.org
// Submitted by Yuvi Panda <yuvipanda@wikimedia.org> // Submitted by Arturo Borrero Gonzalez <aborrero@wikimedia.org>
wmflabs.org wmflabs.org
toolforge.org
wmcloud.org
// WISP : https://wisp.gg
// Submitted by Stepan Fedotov <stepan@wisp.gg>
panel.gg
daemon.panel.gg
// WoltLab GmbH : https://www.woltlab.com
// Submitted by Tim Düsterhus <security@woltlab.cloud>
myforum.community
community-pro.de
diskussionsbereich.de
community-pro.net
meinforum.net
// XenonCloud GbR: https://xenoncloud.net // XenonCloud GbR: https://xenoncloud.net
// Submitted by Julian Uphoff <publicsuffixlist@xenoncloud.net> // Submitted by Julian Uphoff <publicsuffixlist@xenoncloud.net>
@ -13010,7 +13137,10 @@ bss.design
// Submitted by Emil Stahl <esp@zitcom.dk> // Submitted by Emil Stahl <esp@zitcom.dk>
basicserver.io basicserver.io
virtualserver.io virtualserver.io
site.builder.nu
enterprisecloud.nu enterprisecloud.nu
// Mintere : https://mintere.com/
// Submitted by Ben Aubin <security@mintere.com>
mintere.site
// ===END PRIVATE DOMAINS=== // ===END PRIVATE DOMAINS===

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -61,6 +61,7 @@ public:
// Note: The main entry point for this module is via SystemDictionary. // Note: The main entry point for this module is via SystemDictionary.
// SystemDictionary::check_signature_loaders(Symbol* signature, // SystemDictionary::check_signature_loaders(Symbol* signature,
// Klass* klass_being_linked,
// Handle loader1, Handle loader2, // Handle loader1, Handle loader2,
// bool is_method, TRAPS) // bool is_method, TRAPS)

View File

@ -2297,8 +2297,8 @@ Klass* SystemDictionary::find_constrained_instance_or_array_klass(
return klass; return klass;
} }
bool SystemDictionary::add_loader_constraint(Symbol* class_name, bool SystemDictionary::add_loader_constraint(Symbol* class_name,
Klass* klass_being_linked,
Handle class_loader1, Handle class_loader1,
Handle class_loader2, Handle class_loader2,
Thread* THREAD) { Thread* THREAD) {
@ -2336,6 +2336,12 @@ bool SystemDictionary::add_loader_constraint(Symbol* class_name,
InstanceKlass* klass2 = find_class(d_hash2, constraint_name, dictionary2); InstanceKlass* klass2 = find_class(d_hash2, constraint_name, dictionary2);
bool result = constraints()->add_entry(constraint_name, klass1, class_loader1, bool result = constraints()->add_entry(constraint_name, klass1, class_loader1,
klass2, class_loader2); klass2, class_loader2);
if (Arguments::is_dumping_archive() && klass_being_linked != NULL &&
!klass_being_linked->is_shared()) {
SystemDictionaryShared::record_linking_constraint(constraint_name,
InstanceKlass::cast(klass_being_linked),
class_loader1, class_loader2, THREAD);
}
if (Signature::is_array(class_name)) { if (Signature::is_array(class_name)) {
constraint_name->decrement_refcount(); constraint_name->decrement_refcount();
} }
@ -2457,7 +2463,7 @@ const char* SystemDictionary::find_nest_host_error(const constantPoolHandle& poo
// called (perhaps via an override) from the supertype. // called (perhaps via an override) from the supertype.
// //
// //
// SystemDictionary::check_signature_loaders(sig, l1, l2) // SystemDictionary::check_signature_loaders(sig, klass_being_linked, l1, l2)
// //
// Make sure all class components (including arrays) in the given // Make sure all class components (including arrays) in the given
// signature will be resolved to the same class in both loaders. // signature will be resolved to the same class in both loaders.
@ -2465,6 +2471,7 @@ const char* SystemDictionary::find_nest_host_error(const constantPoolHandle& poo
// NULL if no constraint failed. No exception except OOME is thrown. // NULL if no constraint failed. No exception except OOME is thrown.
// Arrays are not added to the loader constraint table, their elements are. // Arrays are not added to the loader constraint table, their elements are.
Symbol* SystemDictionary::check_signature_loaders(Symbol* signature, Symbol* SystemDictionary::check_signature_loaders(Symbol* signature,
Klass* klass_being_linked,
Handle loader1, Handle loader2, Handle loader1, Handle loader2,
bool is_method, TRAPS) { bool is_method, TRAPS) {
// Nothing to do if loaders are the same. // Nothing to do if loaders are the same.
@ -2478,7 +2485,7 @@ Symbol* SystemDictionary::check_signature_loaders(Symbol* signature,
// Note: In the future, if template-like types can take // Note: In the future, if template-like types can take
// arguments, we will want to recognize them and dig out class // arguments, we will want to recognize them and dig out class
// names hiding inside the argument lists. // names hiding inside the argument lists.
if (!add_loader_constraint(sig, loader1, loader2, THREAD)) { if (!add_loader_constraint(sig, klass_being_linked, loader1, loader2, THREAD)) {
return sig; return sig;
} }
} }
@ -2486,7 +2493,6 @@ Symbol* SystemDictionary::check_signature_loaders(Symbol* signature,
return NULL; return NULL;
} }
Method* SystemDictionary::find_method_handle_intrinsic(vmIntrinsics::ID iid, Method* SystemDictionary::find_method_handle_intrinsic(vmIntrinsics::ID iid,
Symbol* signature, Symbol* signature,
TRAPS) { TRAPS) {

View File

@ -494,10 +494,10 @@ public:
// Note: java_lang_Class::primitive_type is the inverse of java_mirror // Note: java_lang_Class::primitive_type is the inverse of java_mirror
// Check class loader constraints // Check class loader constraints
static bool add_loader_constraint(Symbol* name, Handle loader1, static bool add_loader_constraint(Symbol* name, Klass* klass_being_linked, Handle loader1,
Handle loader2, TRAPS); Handle loader2, TRAPS);
static Symbol* check_signature_loaders(Symbol* signature, Handle loader1, static Symbol* check_signature_loaders(Symbol* signature, Klass* klass_being_linked,
Handle loader2, bool is_method, TRAPS); Handle loader1, Handle loader2, bool is_method, TRAPS);
// JSR 292 // JSR 292
// find a java.lang.invoke.MethodHandle.invoke* method for a given signature // find a java.lang.invoke.MethodHandle.invoke* method for a given signature
@ -656,7 +656,12 @@ protected:
public: public:
static bool is_system_class_loader(oop class_loader); static bool is_system_class_loader(oop class_loader);
static bool is_platform_class_loader(oop class_loader); static bool is_platform_class_loader(oop class_loader);
static bool is_boot_class_loader(oop class_loader) { return class_loader == NULL; }
static bool is_builtin_class_loader(oop class_loader) {
return is_boot_class_loader(class_loader) ||
is_platform_class_loader(class_loader) ||
is_system_class_loader(class_loader);
}
// Returns TRUE if the method is a non-public member of class java.lang.Object. // Returns TRUE if the method is a non-public member of class java.lang.Object.
static bool is_nonpublic_Object_method(Method* m) { static bool is_nonpublic_Object_method(Method* m) {
assert(m != NULL, "Unexpected NULL Method*"); assert(m != NULL, "Unexpected NULL Method*");

View File

@ -69,11 +69,29 @@ DEBUG_ONLY(bool SystemDictionaryShared::_no_class_loading_should_happen = false;
class DumpTimeSharedClassInfo: public CHeapObj<mtClass> { class DumpTimeSharedClassInfo: public CHeapObj<mtClass> {
bool _excluded; bool _excluded;
public: public:
struct DTConstraint { struct DTLoaderConstraint {
Symbol* _name;
char _loader_type1;
char _loader_type2;
DTLoaderConstraint(Symbol* name, char l1, char l2) : _name(name), _loader_type1(l1), _loader_type2(l2) {
_name->increment_refcount();
}
DTLoaderConstraint() : _name(NULL), _loader_type1('0'), _loader_type2('0') {}
bool equals(const DTLoaderConstraint& t) {
return t._name == _name &&
((t._loader_type1 == _loader_type1 && t._loader_type2 == _loader_type2) ||
(t._loader_type2 == _loader_type1 && t._loader_type1 == _loader_type2));
}
};
struct DTVerifierConstraint {
Symbol* _name; Symbol* _name;
Symbol* _from_name; Symbol* _from_name;
DTConstraint() : _name(NULL), _from_name(NULL) {} DTVerifierConstraint() : _name(NULL), _from_name(NULL) {}
DTConstraint(Symbol* n, Symbol* fn) : _name(n), _from_name(fn) {} DTVerifierConstraint(Symbol* n, Symbol* fn) : _name(n), _from_name(fn) {
_name->increment_refcount();
_from_name->increment_refcount();
}
}; };
InstanceKlass* _klass; InstanceKlass* _klass;
@ -81,8 +99,9 @@ public:
int _id; int _id;
int _clsfile_size; int _clsfile_size;
int _clsfile_crc32; int _clsfile_crc32;
GrowableArray<DTConstraint>* _verifier_constraints; GrowableArray<DTVerifierConstraint>* _verifier_constraints;
GrowableArray<char>* _verifier_constraint_flags; GrowableArray<char>* _verifier_constraint_flags;
GrowableArray<DTLoaderConstraint>* _loader_constraints;
DumpTimeSharedClassInfo() { DumpTimeSharedClassInfo() {
_klass = NULL; _klass = NULL;
@ -93,16 +112,18 @@ public:
_excluded = false; _excluded = false;
_verifier_constraints = NULL; _verifier_constraints = NULL;
_verifier_constraint_flags = NULL; _verifier_constraint_flags = NULL;
_loader_constraints = NULL;
} }
void add_verification_constraint(InstanceKlass* k, Symbol* name, void add_verification_constraint(InstanceKlass* k, Symbol* name,
Symbol* from_name, bool from_field_is_protected, bool from_is_array, bool from_is_object); Symbol* from_name, bool from_field_is_protected, bool from_is_array, bool from_is_object);
void record_linking_constraint(Symbol* name, Handle loader1, Handle loader2);
bool is_builtin() { bool is_builtin() {
return SystemDictionaryShared::is_builtin(_klass); return SystemDictionaryShared::is_builtin(_klass);
} }
int num_constraints() { int num_verifier_constraints() {
if (_verifier_constraint_flags != NULL) { if (_verifier_constraint_flags != NULL) {
return _verifier_constraint_flags->length(); return _verifier_constraint_flags->length();
} else { } else {
@ -110,15 +131,29 @@ public:
} }
} }
int num_loader_constraints() {
if (_loader_constraints != NULL) {
return _loader_constraints->length();
} else {
return 0;
}
}
void metaspace_pointers_do(MetaspaceClosure* it) { void metaspace_pointers_do(MetaspaceClosure* it) {
it->push(&_klass); it->push(&_klass);
if (_verifier_constraints != NULL) { if (_verifier_constraints != NULL) {
for (int i = 0; i < _verifier_constraints->length(); i++) { for (int i = 0; i < _verifier_constraints->length(); i++) {
DTConstraint* cons = _verifier_constraints->adr_at(i); DTVerifierConstraint* cons = _verifier_constraints->adr_at(i);
it->push(&cons->_name); it->push(&cons->_name);
it->push(&cons->_from_name); it->push(&cons->_from_name);
} }
} }
if (_loader_constraints != NULL) {
for (int i = 0; i < _loader_constraints->length(); i++) {
DTLoaderConstraint* lc = _loader_constraints->adr_at(i);
it->push(&lc->_name);
}
}
} }
void set_excluded() { void set_excluded() {
@ -202,19 +237,32 @@ public:
int _clsfile_crc32; int _clsfile_crc32;
}; };
// This is different than DumpTimeSharedClassInfo::DTConstraint. We use // This is different than DumpTimeSharedClassInfo::DTVerifierConstraint. We use
// u4 instead of Symbol* to save space on 64-bit CPU. // u4 instead of Symbol* to save space on 64-bit CPU.
struct RTConstraint { struct RTVerifierConstraint {
u4 _name; u4 _name;
u4 _from_name; u4 _from_name;
Symbol* name() { return (Symbol*)(SharedBaseAddress + _name);}
Symbol* from_name() { return (Symbol*)(SharedBaseAddress + _from_name); }
};
struct RTLoaderConstraint {
u4 _name;
char _loader_type1;
char _loader_type2;
Symbol* constraint_name() {
return (Symbol*)(SharedBaseAddress + _name);
}
}; };
InstanceKlass* _klass; InstanceKlass* _klass;
int _num_constraints; int _num_verifier_constraints;
int _num_loader_constraints;
// optional CrcInfo _crc; (only for UNREGISTERED classes) // optional CrcInfo _crc; (only for UNREGISTERED classes)
// optional RTConstraint _verifier_constraints[_num_constraints] // optional RTLoaderConstraint _loader_constraint_types[_num_loader_constraints]
// optional char _verifier_constraint_flags[_num_constraints] // optional RTVerifierConstraint _verifier_constraints[_num_verifier_constraints]
// optional char _verifier_constraint_flags[_num_verifier_constraints]
private: private:
static size_t header_size_size() { static size_t header_size_size() {
@ -227,34 +275,46 @@ private:
return 0; return 0;
} }
} }
static size_t verifier_constraints_size(int num_constraints) { static size_t verifier_constraints_size(int num_verifier_constraints) {
return sizeof(RTConstraint) * num_constraints; return sizeof(RTVerifierConstraint) * num_verifier_constraints;
} }
static size_t verifier_constraint_flags_size(int num_constraints) { static size_t verifier_constraint_flags_size(int num_verifier_constraints) {
return sizeof(char) * num_constraints; return sizeof(char) * num_verifier_constraints;
}
static size_t loader_constraints_size(int num_loader_constraints) {
return sizeof(RTLoaderConstraint) * num_loader_constraints;
} }
public: public:
static size_t byte_size(InstanceKlass* klass, int num_constraints) { static size_t byte_size(InstanceKlass* klass, int num_verifier_constraints, int num_loader_constraints) {
return header_size_size() + return header_size_size() +
crc_size(klass) + crc_size(klass) +
verifier_constraints_size(num_constraints) + loader_constraints_size(num_loader_constraints) +
verifier_constraint_flags_size(num_constraints); verifier_constraints_size(num_verifier_constraints) +
verifier_constraint_flags_size(num_verifier_constraints);
} }
private: private:
size_t crc_offset() const { size_t crc_offset() const {
return header_size_size(); return header_size_size();
} }
size_t verifier_constraints_offset() const {
size_t loader_constraints_offset() const {
return crc_offset() + crc_size(_klass); return crc_offset() + crc_size(_klass);
} }
size_t verifier_constraints_offset() const {
return loader_constraints_offset() + loader_constraints_size(_num_loader_constraints);
}
size_t verifier_constraint_flags_offset() const { size_t verifier_constraint_flags_offset() const {
return verifier_constraints_offset() + verifier_constraints_size(_num_constraints); return verifier_constraints_offset() + verifier_constraints_size(_num_verifier_constraints);
} }
void check_constraint_offset(int i) const { void check_verifier_constraint_offset(int i) const {
assert(0 <= i && i < _num_constraints, "sanity"); assert(0 <= i && i < _num_verifier_constraints, "sanity");
}
void check_loader_constraint_offset(int i) const {
assert(0 <= i && i < _num_loader_constraints, "sanity");
} }
public: public:
@ -262,20 +322,30 @@ public:
assert(crc_size(_klass) > 0, "must be"); assert(crc_size(_klass) > 0, "must be");
return (CrcInfo*)(address(this) + crc_offset()); return (CrcInfo*)(address(this) + crc_offset());
} }
RTConstraint* verifier_constraints() { RTVerifierConstraint* verifier_constraints() {
assert(_num_constraints > 0, "sanity"); assert(_num_verifier_constraints > 0, "sanity");
return (RTConstraint*)(address(this) + verifier_constraints_offset()); return (RTVerifierConstraint*)(address(this) + verifier_constraints_offset());
} }
RTConstraint* verifier_constraint_at(int i) { RTVerifierConstraint* verifier_constraint_at(int i) {
check_constraint_offset(i); check_verifier_constraint_offset(i);
return verifier_constraints() + i; return verifier_constraints() + i;
} }
char* verifier_constraint_flags() { char* verifier_constraint_flags() {
assert(_num_constraints > 0, "sanity"); assert(_num_verifier_constraints > 0, "sanity");
return (char*)(address(this) + verifier_constraint_flags_offset()); return (char*)(address(this) + verifier_constraint_flags_offset());
} }
RTLoaderConstraint* loader_constraints() {
assert(_num_loader_constraints > 0, "sanity");
return (RTLoaderConstraint*)(address(this) + loader_constraints_offset());
}
RTLoaderConstraint* loader_constraint_at(int i) {
check_loader_constraint_offset(i);
return loader_constraints() + i;
}
static u4 object_delta_u4(Symbol* sym) { static u4 object_delta_u4(Symbol* sym) {
if (DynamicDumpSharedSpaces) { if (DynamicDumpSharedSpaces) {
sym = DynamicArchive::original_to_target(sym); sym = DynamicArchive::original_to_target(sym);
@ -290,19 +360,29 @@ public:
c->_clsfile_size = info._clsfile_size; c->_clsfile_size = info._clsfile_size;
c->_clsfile_crc32 = info._clsfile_crc32; c->_clsfile_crc32 = info._clsfile_crc32;
} }
_num_constraints = info.num_constraints(); _num_verifier_constraints = info.num_verifier_constraints();
if (_num_constraints > 0) { _num_loader_constraints = info.num_loader_constraints();
RTConstraint* constraints = verifier_constraints(); int i;
if (_num_verifier_constraints > 0) {
RTVerifierConstraint* vf_constraints = verifier_constraints();
char* flags = verifier_constraint_flags(); char* flags = verifier_constraint_flags();
int i; for (i = 0; i < _num_verifier_constraints; i++) {
for (i = 0; i < _num_constraints; i++) { vf_constraints[i]._name = object_delta_u4(info._verifier_constraints->at(i)._name);
constraints[i]._name = object_delta_u4(info._verifier_constraints->at(i)._name); vf_constraints[i]._from_name = object_delta_u4(info._verifier_constraints->at(i)._from_name);
constraints[i]._from_name = object_delta_u4(info._verifier_constraints->at(i)._from_name);
} }
for (i = 0; i < _num_constraints; i++) { for (i = 0; i < _num_verifier_constraints; i++) {
flags[i] = info._verifier_constraint_flags->at(i); flags[i] = info._verifier_constraint_flags->at(i);
} }
} }
if (_num_loader_constraints > 0) {
RTLoaderConstraint* ld_constraints = loader_constraints();
for (i = 0; i < _num_loader_constraints; i++) {
ld_constraints[i]._name = object_delta_u4(info._loader_constraints->at(i)._name);
ld_constraints[i]._loader_type1 = info._loader_constraints->at(i)._loader_type1;
ld_constraints[i]._loader_type2 = info._loader_constraints->at(i)._loader_type2;
}
}
if (DynamicDumpSharedSpaces) { if (DynamicDumpSharedSpaces) {
_klass = DynamicArchive::original_to_target(info._klass); _klass = DynamicArchive::original_to_target(info._klass);
} }
@ -314,15 +394,8 @@ public:
crc()->_clsfile_crc32 == clsfile_crc32; crc()->_clsfile_crc32 == clsfile_crc32;
} }
Symbol* get_constraint_name(int i) { char verifier_constraint_flag(int i) {
return (Symbol*)(SharedBaseAddress + verifier_constraint_at(i)->_name); check_verifier_constraint_offset(i);
}
Symbol* get_constraint_from_name(int i) {
return (Symbol*)(SharedBaseAddress + verifier_constraint_at(i)->_from_name);
}
char get_constraint_flag(int i) {
check_constraint_offset(i);
return verifier_constraint_flags()[i]; return verifier_constraint_flags()[i];
} }
@ -386,7 +459,6 @@ oop SystemDictionaryShared::shared_jar_manifest(int index) {
return _shared_jar_manifests->obj_at(index); return _shared_jar_manifests->obj_at(index);
} }
Handle SystemDictionaryShared::get_shared_jar_manifest(int shared_path_index, TRAPS) { Handle SystemDictionaryShared::get_shared_jar_manifest(int shared_path_index, TRAPS) {
Handle manifest ; Handle manifest ;
if (shared_jar_manifest(shared_path_index) == NULL) { if (shared_jar_manifest(shared_path_index) == NULL) {
@ -1034,7 +1106,7 @@ void SystemDictionaryShared::remove_dumptime_info(InstanceKlass* k) {
} }
if (p->_verifier_constraints != NULL) { if (p->_verifier_constraints != NULL) {
for (int i = 0; i < p->_verifier_constraints->length(); i++) { for (int i = 0; i < p->_verifier_constraints->length(); i++) {
DumpTimeSharedClassInfo::DTConstraint constraint = p->_verifier_constraints->at(i); DumpTimeSharedClassInfo::DTVerifierConstraint constraint = p->_verifier_constraints->at(i);
if (constraint._name != NULL ) { if (constraint._name != NULL ) {
constraint._name->decrement_refcount(); constraint._name->decrement_refcount();
} }
@ -1042,11 +1114,21 @@ void SystemDictionaryShared::remove_dumptime_info(InstanceKlass* k) {
constraint._from_name->decrement_refcount(); constraint._from_name->decrement_refcount();
} }
} }
FREE_C_HEAP_ARRAY(DTConstraint, p->_verifier_constraints); FREE_C_HEAP_ARRAY(DumpTimeSharedClassInfo::DTVerifierConstraint, p->_verifier_constraints);
p->_verifier_constraints = NULL; p->_verifier_constraints = NULL;
FREE_C_HEAP_ARRAY(char, p->_verifier_constraint_flags);
p->_verifier_constraint_flags = NULL;
}
if (p->_loader_constraints != NULL) {
for (int i = 0; i < p->_loader_constraints->length(); i++) {
DumpTimeSharedClassInfo::DTLoaderConstraint ld = p->_loader_constraints->at(i);
if (ld._name != NULL) {
ld._name->decrement_refcount();
}
}
FREE_C_HEAP_ARRAY(DumpTimeSharedClassInfo::DTLoaderConstraint, p->_loader_constraints);
p->_loader_constraints = NULL;
} }
FREE_C_HEAP_ARRAY(char, p->_verifier_constraint_flags);
p->_verifier_constraint_flags = NULL;
_dumptime_table->remove(k); _dumptime_table->remove(k);
} }
@ -1246,19 +1328,19 @@ bool SystemDictionaryShared::add_verification_constraint(InstanceKlass* k, Symbo
void DumpTimeSharedClassInfo::add_verification_constraint(InstanceKlass* k, Symbol* name, void DumpTimeSharedClassInfo::add_verification_constraint(InstanceKlass* k, Symbol* name,
Symbol* from_name, bool from_field_is_protected, bool from_is_array, bool from_is_object) { Symbol* from_name, bool from_field_is_protected, bool from_is_array, bool from_is_object) {
if (_verifier_constraints == NULL) { if (_verifier_constraints == NULL) {
_verifier_constraints = new(ResourceObj::C_HEAP, mtClass) GrowableArray<DTConstraint>(4, true, mtClass); _verifier_constraints = new(ResourceObj::C_HEAP, mtClass) GrowableArray<DTVerifierConstraint>(4, true, mtClass);
} }
if (_verifier_constraint_flags == NULL) { if (_verifier_constraint_flags == NULL) {
_verifier_constraint_flags = new(ResourceObj::C_HEAP, mtClass) GrowableArray<char>(4, true, mtClass); _verifier_constraint_flags = new(ResourceObj::C_HEAP, mtClass) GrowableArray<char>(4, true, mtClass);
} }
GrowableArray<DTConstraint>* vc_array = _verifier_constraints; GrowableArray<DTVerifierConstraint>* vc_array = _verifier_constraints;
for (int i = 0; i < vc_array->length(); i++) { for (int i = 0; i < vc_array->length(); i++) {
DTConstraint* p = vc_array->adr_at(i); DTVerifierConstraint* p = vc_array->adr_at(i);
if (name == p->_name && from_name == p->_from_name) { if (name == p->_name && from_name == p->_from_name) {
return; return;
} }
} }
DTConstraint cons(name, from_name); DTVerifierConstraint cons(name, from_name);
vc_array->append(cons); vc_array->append(cons);
GrowableArray<char>* vcflags_array = _verifier_constraint_flags; GrowableArray<char>* vcflags_array = _verifier_constraint_flags;
@ -1276,17 +1358,76 @@ void DumpTimeSharedClassInfo::add_verification_constraint(InstanceKlass* k, Symb
} }
} }
static char get_loader_type_by(oop loader) {
assert(SystemDictionary::is_builtin_class_loader(loader), "Must be built-in loader");
if (SystemDictionary::is_boot_class_loader(loader)) {
return (char)ClassLoader::BOOT_LOADER;
} else if (SystemDictionary::is_platform_class_loader(loader)) {
return (char)ClassLoader::PLATFORM_LOADER;
} else {
assert(SystemDictionary::is_system_class_loader(loader), "Class loader mismatch");
return (char)ClassLoader::APP_LOADER;
}
}
static oop get_class_loader_by(char type) {
if (type == (char)ClassLoader::BOOT_LOADER) {
return (oop)NULL;
} else if (type == (char)ClassLoader::PLATFORM_LOADER) {
return SystemDictionary::java_platform_loader();
} else {
assert (type == (char)ClassLoader::APP_LOADER, "Sanity");
return SystemDictionary::java_system_loader();
}
}
void DumpTimeSharedClassInfo::record_linking_constraint(Symbol* name, Handle loader1, Handle loader2) {
assert(loader1 != loader2, "sanity");
LogTarget(Info, class, loader, constraints) log;
if (_loader_constraints == NULL) {
_loader_constraints = new (ResourceObj::C_HEAP, mtClass) GrowableArray<DTLoaderConstraint>(4, true, mtClass);
}
char lt1 = get_loader_type_by(loader1());
char lt2 = get_loader_type_by(loader2());
DTLoaderConstraint lc(name, lt1, lt2);
for (int i = 0; i < _loader_constraints->length(); i++) {
DTLoaderConstraint dt = _loader_constraints->at(i);
if (lc.equals(dt)) {
if (log.is_enabled()) {
ResourceMark rm;
// Use loader[0]/loader[1] to be consistent with the logs in loaderConstraints.cpp
log.print("[CDS record loader constraint for class: %s constraint_name: %s loader[0]: %s loader[1]: %s already added]",
_klass->external_name(), name->as_C_string(),
ClassLoaderData::class_loader_data(loader1())->loader_name_and_id(),
ClassLoaderData::class_loader_data(loader2())->loader_name_and_id());
}
return;
}
}
_loader_constraints->append(lc);
if (log.is_enabled()) {
ResourceMark rm;
// Use loader[0]/loader[1] to be consistent with the logs in loaderConstraints.cpp
log.print("[CDS record loader constraint for class: %s constraint_name: %s loader[0]: %s loader[1]: %s total %d]",
_klass->external_name(), name->as_C_string(),
ClassLoaderData::class_loader_data(loader1())->loader_name_and_id(),
ClassLoaderData::class_loader_data(loader2())->loader_name_and_id(),
_loader_constraints->length());
}
}
void SystemDictionaryShared::check_verification_constraints(InstanceKlass* klass, void SystemDictionaryShared::check_verification_constraints(InstanceKlass* klass,
TRAPS) { TRAPS) {
assert(!DumpSharedSpaces && UseSharedSpaces, "called at run time with CDS enabled only"); assert(!DumpSharedSpaces && UseSharedSpaces, "called at run time with CDS enabled only");
RunTimeSharedClassInfo* record = RunTimeSharedClassInfo::get_for(klass); RunTimeSharedClassInfo* record = RunTimeSharedClassInfo::get_for(klass);
int length = record->_num_constraints; int length = record->_num_verifier_constraints;
if (length > 0) { if (length > 0) {
for (int i = 0; i < length; i++) { for (int i = 0; i < length; i++) {
Symbol* name = record->get_constraint_name(i); RunTimeSharedClassInfo::RTVerifierConstraint* vc = record->verifier_constraint_at(i);
Symbol* from_name = record->get_constraint_from_name(i); Symbol* name = vc->name();
char c = record->get_constraint_flag(i); Symbol* from_name = vc->from_name();
char c = record->verifier_constraint_flag(i);
if (log_is_enabled(Trace, cds, verification)) { if (log_is_enabled(Trace, cds, verification)) {
ResourceMark rm(THREAD); ResourceMark rm(THREAD);
@ -1316,6 +1457,109 @@ void SystemDictionaryShared::check_verification_constraints(InstanceKlass* klass
} }
} }
// Record class loader constraints that are checked inside
// InstanceKlass::link_class(), so that these can be checked quickly
// at runtime without laying out the vtable/itables.
void SystemDictionaryShared::record_linking_constraint(Symbol* name, InstanceKlass* klass,
Handle loader1, Handle loader2, TRAPS) {
// A linking constraint check is executed when:
// - klass extends or implements type S
// - klass overrides method S.M(...) with X.M
// - If klass defines the method M, X is
// the same as klass.
// - If klass does not define the method M,
// X must be a supertype of klass and X.M is
// a default method defined by X.
// - loader1 = X->class_loader()
// - loader2 = S->class_loader()
// - loader1 != loader2
// - M's paramater(s) include an object type T
// We require that
// - whenever loader1 and loader2 try to
// resolve the type T, they must always resolve to
// the same InstanceKlass.
// NOTE: type T may or may not be currently resolved in
// either of these two loaders. The check itself does not
// try to resolve T.
oop klass_loader = klass->class_loader();
assert(klass_loader != NULL, "should not be called for boot loader");
assert(loader1 != loader2, "must be");
if (!is_system_class_loader(klass_loader) &&
!is_platform_class_loader(klass_loader)) {
// If klass is loaded by system/platform loaders, we can
// guarantee that klass and S must be loaded by the same
// respective loader between dump time and run time, and
// the exact same check on (name, loader1, loader2) will
// be executed. Hence, we can cache this check and execute
// it at runtime without walking the vtable/itables.
//
// This cannot be guaranteed for classes loaded by other
// loaders, so we bail.
return;
}
if (THREAD->is_VM_thread()) {
assert(DynamicDumpSharedSpaces, "must be");
// We are re-laying out the vtable/itables of the *copy* of
// a class during the final stage of dynamic dumping. The
// linking constraints for this class has already been recorded.
return;
}
Arguments::assert_is_dumping_archive();
DumpTimeSharedClassInfo* info = find_or_allocate_info_for(klass);
info->record_linking_constraint(name, loader1, loader2);
}
// returns true IFF there's no need to re-initialize the i/v-tables for klass for
// the purpose of checking class loader constraints.
bool SystemDictionaryShared::check_linking_constraints(InstanceKlass* klass, TRAPS) {
assert(!DumpSharedSpaces && UseSharedSpaces, "called at run time with CDS enabled only");
LogTarget(Info, class, loader, constraints) log;
if (klass->is_shared_boot_class()) {
// No class loader constraint check performed for boot classes.
return true;
}
if (klass->is_shared_platform_class() || klass->is_shared_app_class()) {
RunTimeSharedClassInfo* info = RunTimeSharedClassInfo::get_for(klass);
assert(info != NULL, "Sanity");
if (info->_num_loader_constraints > 0) {
HandleMark hm;
for (int i = 0; i < info->_num_loader_constraints; i++) {
RunTimeSharedClassInfo::RTLoaderConstraint* lc = info->loader_constraint_at(i);
Symbol* name = lc->constraint_name();
Handle loader1(THREAD, get_class_loader_by(lc->_loader_type1));
Handle loader2(THREAD, get_class_loader_by(lc->_loader_type2));
if (log.is_enabled()) {
ResourceMark rm(THREAD);
log.print("[CDS add loader constraint for class %s symbol %s loader[0] %s loader[1] %s",
klass->external_name(), name->as_C_string(),
ClassLoaderData::class_loader_data(loader1())->loader_name_and_id(),
ClassLoaderData::class_loader_data(loader2())->loader_name_and_id());
}
if (!SystemDictionary::add_loader_constraint(name, klass, loader1, loader2, THREAD)) {
// Loader constraint violation has been found. The caller
// will re-layout the vtable/itables to produce the correct
// exception.
if (log.is_enabled()) {
log.print(" failed]");
}
return false;
}
if (log.is_enabled()) {
log.print(" succeeded]");
}
}
return true; // for all recorded constraints added successully.
}
}
if (log.is_enabled()) {
ResourceMark rm(THREAD);
log.print("[CDS has not recorded loader constraint for class %s]", klass->external_name());
}
return false;
}
class EstimateSizeForArchive : StackObj { class EstimateSizeForArchive : StackObj {
size_t _shared_class_info_size; size_t _shared_class_info_size;
int _num_builtin_klasses; int _num_builtin_klasses;
@ -1330,7 +1574,7 @@ public:
bool do_entry(InstanceKlass* k, DumpTimeSharedClassInfo& info) { bool do_entry(InstanceKlass* k, DumpTimeSharedClassInfo& info) {
if (!info.is_excluded()) { if (!info.is_excluded()) {
size_t byte_size = RunTimeSharedClassInfo::byte_size(info._klass, info.num_constraints()); size_t byte_size = RunTimeSharedClassInfo::byte_size(info._klass, info.num_verifier_constraints(), info.num_loader_constraints());
_shared_class_info_size += align_up(byte_size, BytesPerWord); _shared_class_info_size += align_up(byte_size, BytesPerWord);
} }
return true; // keep on iterating return true; // keep on iterating
@ -1360,7 +1604,7 @@ public:
bool do_entry(InstanceKlass* k, DumpTimeSharedClassInfo& info) { bool do_entry(InstanceKlass* k, DumpTimeSharedClassInfo& info) {
if (!info.is_excluded() && info.is_builtin() == _is_builtin) { if (!info.is_excluded() && info.is_builtin() == _is_builtin) {
size_t byte_size = RunTimeSharedClassInfo::byte_size(info._klass, info.num_constraints()); size_t byte_size = RunTimeSharedClassInfo::byte_size(info._klass, info.num_verifier_constraints(), info.num_loader_constraints());
RunTimeSharedClassInfo* record; RunTimeSharedClassInfo* record;
record = (RunTimeSharedClassInfo*)MetaspaceShared::read_only_space_alloc(byte_size); record = (RunTimeSharedClassInfo*)MetaspaceShared::read_only_space_alloc(byte_size);
record->init(info); record->init(info);

View File

@ -285,6 +285,9 @@ public:
TRAPS) NOT_CDS_RETURN; TRAPS) NOT_CDS_RETURN;
static void set_class_has_failed_verification(InstanceKlass* ik) NOT_CDS_RETURN; static void set_class_has_failed_verification(InstanceKlass* ik) NOT_CDS_RETURN;
static bool has_class_failed_verification(InstanceKlass* ik) NOT_CDS_RETURN_(false); static bool has_class_failed_verification(InstanceKlass* ik) NOT_CDS_RETURN_(false);
static bool check_linking_constraints(InstanceKlass* klass, TRAPS) NOT_CDS_RETURN_(false);
static void record_linking_constraint(Symbol* name, InstanceKlass* klass,
Handle loader1, Handle loader2, TRAPS) NOT_CDS_RETURN;
static bool is_builtin(InstanceKlass* k) { static bool is_builtin(InstanceKlass* k) {
return (k->shared_classpath_index() != UNREGISTERED_INDEX); return (k->shared_classpath_index() != UNREGISTERED_INDEX);
} }

View File

@ -37,7 +37,7 @@ bool ShenandoahConcurrentRoots::should_do_concurrent_roots() {
} }
bool ShenandoahConcurrentRoots::can_do_concurrent_class_unloading() { bool ShenandoahConcurrentRoots::can_do_concurrent_class_unloading() {
#if defined(X86) && !defined(SOLARIS) #if (defined(X86) || defined(AARCH64)) && !defined(SOLARIS)
return ShenandoahCodeRootsStyle == 2 && return ShenandoahCodeRootsStyle == 2 &&
ClassUnloading; ClassUnloading;
#else #else

View File

@ -148,9 +148,23 @@ void ShenandoahPhaseTimings::record_phase_time(Phase phase, double time) {
void ShenandoahPhaseTimings::record_workers_start(Phase phase) { void ShenandoahPhaseTimings::record_workers_start(Phase phase) {
assert(is_worker_phase(phase), "Phase should accept worker phase times: %s", phase_name(phase)); assert(is_worker_phase(phase), "Phase should accept worker phase times: %s", phase_name(phase));
for (uint i = 1; i < _num_par_phases; i++) { // Special case: these phases can enter multiple times, need to reset
worker_data(phase, ParPhase(i))->reset(); // their worker data every time.
if (phase == heap_iteration_roots) {
for (uint i = 1; i < _num_par_phases; i++) {
worker_data(phase, ParPhase(i))->reset();
}
} }
#ifdef ASSERT
for (uint i = 1; i < _num_par_phases; i++) {
ShenandoahWorkerData* wd = worker_data(phase, ParPhase(i));
for (uint c = 0; c < _max_workers; c++) {
assert(wd->get(c) == ShenandoahWorkerData::uninitialized(),
"Should not be set: %s", phase_name(worker_par_phase(phase, ParPhase(i))));
}
}
#endif
} }
void ShenandoahPhaseTimings::record_workers_end(Phase phase) { void ShenandoahPhaseTimings::record_workers_end(Phase phase) {
@ -178,6 +192,9 @@ void ShenandoahPhaseTimings::flush_cycle_to_global() {
for (uint i = 0; i < _num_phases; i++) { for (uint i = 0; i < _num_phases; i++) {
_global_data[i].add(_cycle_data[i]); _global_data[i].add(_cycle_data[i]);
_cycle_data[i] = 0; _cycle_data[i] = 0;
if (_worker_data[i] != NULL) {
_worker_data[i]->reset();
}
} }
OrderAccess::fence(); OrderAccess::fence();
} }

View File

@ -664,7 +664,9 @@ void LinkResolver::check_method_loader_constraints(const LinkInfo& link_info,
ResourceMark rm(THREAD); ResourceMark rm(THREAD);
Symbol* failed_type_symbol = Symbol* failed_type_symbol =
SystemDictionary::check_signature_loaders(link_info.signature(), current_loader, SystemDictionary::check_signature_loaders(link_info.signature(),
/*klass_being_linked*/ NULL, // We are not linking class
current_loader,
resolved_loader, true, CHECK); resolved_loader, true, CHECK);
if (failed_type_symbol != NULL) { if (failed_type_symbol != NULL) {
Klass* current_class = link_info.current_klass(); Klass* current_class = link_info.current_klass();
@ -700,6 +702,7 @@ void LinkResolver::check_field_loader_constraints(Symbol* field, Symbol* sig,
ResourceMark rm(THREAD); // needed for check_signature_loaders ResourceMark rm(THREAD); // needed for check_signature_loaders
Symbol* failed_type_symbol = Symbol* failed_type_symbol =
SystemDictionary::check_signature_loaders(sig, SystemDictionary::check_signature_loaders(sig,
/*klass_being_linked*/ NULL, // We are not linking class
ref_loader, sel_loader, ref_loader, sel_loader,
false, false,
CHECK); CHECK);

View File

@ -919,20 +919,22 @@ bool InstanceKlass::link_class_impl(TRAPS) {
// fabricate new Method*s. // fabricate new Method*s.
// also does loader constraint checking // also does loader constraint checking
// //
// initialize_vtable and initialize_itable need to be rerun for // initialize_vtable and initialize_itable need to be rerun
// a shared class if the class is not loaded by the NULL classloader. // for a shared class if
ClassLoaderData * loader_data = class_loader_data(); // 1) the class is loaded by custom class loader or
if (!(is_shared() && // 2) the class is loaded by built-in class loader but failed to add archived loader constraints
loader_data->is_the_null_class_loader_data())) { bool need_init_table = true;
if (is_shared() && SystemDictionaryShared::check_linking_constraints(this, THREAD)) {
need_init_table = false;
}
if (need_init_table) {
vtable().initialize_vtable(true, CHECK_false); vtable().initialize_vtable(true, CHECK_false);
itable().initialize_itable(true, CHECK_false); itable().initialize_itable(true, CHECK_false);
} }
#ifdef ASSERT #ifdef ASSERT
else { vtable().verify(tty, true);
vtable().verify(tty, true); // In case itable verification is ever added.
// In case itable verification is ever added. // itable().verify(tty, true);
// itable().verify(tty, true);
}
#endif #endif
set_init_state(linked); set_init_state(linked);
if (JvmtiExport::should_post_class_prepare()) { if (JvmtiExport::should_post_class_prepare()) {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -491,9 +491,9 @@ bool klassVtable::update_inherited_vtable(InstanceKlass* klass, const methodHand
if (target_loader() != super_loader()) { if (target_loader() != super_loader()) {
ResourceMark rm(THREAD); ResourceMark rm(THREAD);
Symbol* failed_type_symbol = Symbol* failed_type_symbol =
SystemDictionary::check_signature_loaders(signature, target_loader, SystemDictionary::check_signature_loaders(signature, _klass,
super_loader, true, target_loader, super_loader,
CHECK_(false)); true, CHECK_(false));
if (failed_type_symbol != NULL) { if (failed_type_symbol != NULL) {
stringStream ss; stringStream ss;
ss.print("loader constraint violation for class %s: when selecting " ss.print("loader constraint violation for class %s: when selecting "
@ -1230,6 +1230,7 @@ void klassItable::initialize_itable_for_interface(int method_table_offset, Insta
ResourceMark rm(THREAD); ResourceMark rm(THREAD);
Symbol* failed_type_symbol = Symbol* failed_type_symbol =
SystemDictionary::check_signature_loaders(m->signature(), SystemDictionary::check_signature_loaders(m->signature(),
_klass,
method_holder_loader, method_holder_loader,
interface_loader, interface_loader,
true, CHECK); true, CHECK);

View File

@ -525,6 +525,7 @@ static SpecialFlag const special_jvm_flags[] = {
{ "MonitorBound", JDK_Version::jdk(14), JDK_Version::jdk(15), JDK_Version::jdk(16) }, { "MonitorBound", JDK_Version::jdk(14), JDK_Version::jdk(15), JDK_Version::jdk(16) },
{ "PrintVMQWaitTime", JDK_Version::jdk(15), JDK_Version::jdk(16), JDK_Version::jdk(17) }, { "PrintVMQWaitTime", JDK_Version::jdk(15), JDK_Version::jdk(16), JDK_Version::jdk(17) },
{ "UseNewFieldLayout", JDK_Version::jdk(15), JDK_Version::jdk(16), JDK_Version::jdk(17) }, { "UseNewFieldLayout", JDK_Version::jdk(15), JDK_Version::jdk(16), JDK_Version::jdk(17) },
{ "ForceNUMA", JDK_Version::jdk(15), JDK_Version::jdk(16), JDK_Version::jdk(17) },
// --- Deprecated alias flags (see also aliased_jvm_flags) - sorted by obsolete_in then expired_in: // --- Deprecated alias flags (see also aliased_jvm_flags) - sorted by obsolete_in then expired_in:
{ "DefaultMaxRAMFraction", JDK_Version::jdk(8), JDK_Version::undefined(), JDK_Version::undefined() }, { "DefaultMaxRAMFraction", JDK_Version::jdk(8), JDK_Version::undefined(), JDK_Version::undefined() },

View File

@ -192,7 +192,7 @@ const size_t minimumSymbolTableSize = 1024;
range(os::vm_allocation_granularity(), NOT_LP64(2*G) LP64_ONLY(8192*G)) \ range(os::vm_allocation_granularity(), NOT_LP64(2*G) LP64_ONLY(8192*G)) \
\ \
product(bool, ForceNUMA, false, \ product(bool, ForceNUMA, false, \
"Force NUMA optimizations on single-node/UMA systems") \ "(Deprecated) Force NUMA optimizations on single-node/UMA systems") \
\ \
product(uintx, NUMAChunkResizeWeight, 20, \ product(uintx, NUMAChunkResizeWeight, 20, \
"Percentage (0-100) used to weight the current sample when " \ "Percentage (0-100) used to weight the current sample when " \

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -80,7 +80,9 @@ class Handle {
oop operator -> () const { return non_null_obj(); } oop operator -> () const { return non_null_obj(); }
bool operator == (oop o) const { return obj() == o; } bool operator == (oop o) const { return obj() == o; }
bool operator != (oop o) const { return obj() != o; }
bool operator == (const Handle& h) const { return obj() == h.obj(); } bool operator == (const Handle& h) const { return obj() == h.obj(); }
bool operator != (const Handle& h) const { return obj() != h.obj(); }
// Null checks // Null checks
bool is_null() const { return _handle == NULL; } bool is_null() const { return _handle == NULL; }

View File

@ -339,7 +339,7 @@ void mutex_init() {
#if INCLUDE_JVMTI #if INCLUDE_JVMTI
def(CDSClassFileStream_lock , PaddedMutex , max_nonleaf, false, _safepoint_check_always); def(CDSClassFileStream_lock , PaddedMutex , max_nonleaf, false, _safepoint_check_always);
#endif #endif
def(DumpTimeTable_lock , PaddedMutex , leaf, true, _safepoint_check_never); def(DumpTimeTable_lock , PaddedMutex , leaf - 1, true, _safepoint_check_never);
#endif // INCLUDE_CDS #endif // INCLUDE_CDS
#if INCLUDE_JVMCI #if INCLUDE_JVMCI

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2012, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -224,8 +224,8 @@ public class CLDRLocaleProviderAdapter extends JRELocaleProviderAdapter {
if (supportedLocaleString == null) { if (supportedLocaleString == null) {
return Collections.emptySet(); return Collections.emptySet();
} }
Set<String> tagset = new HashSet<>();
StringTokenizer tokens = new StringTokenizer(supportedLocaleString); StringTokenizer tokens = new StringTokenizer(supportedLocaleString);
Set<String> tagset = new HashSet<>(Math.max((int)(tokens.countTokens() / 0.75f) + 1, 16));
while (tokens.hasMoreTokens()) { while (tokens.hasMoreTokens()) {
tagset.add(tokens.nextToken()); tagset.add(tokens.nextToken());
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2012, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -444,8 +444,8 @@ public class JRELocaleProviderAdapter extends LocaleProviderAdapter implements R
if (supportedLocaleString == null) { if (supportedLocaleString == null) {
return Collections.emptySet(); return Collections.emptySet();
} }
Set<String> tagset = new HashSet<>();
StringTokenizer tokens = new StringTokenizer(supportedLocaleString); StringTokenizer tokens = new StringTokenizer(supportedLocaleString);
Set<String> tagset = new HashSet<>(Math.max((int)(tokens.countTokens() / 0.75f) + 1, 16));
while (tokens.hasMoreTokens()) { while (tokens.hasMoreTokens()) {
tagset.add(tokens.nextToken()); tagset.add(tokens.nextToken());
} }

View File

@ -11,7 +11,7 @@ If you do not wish to use the Public Suffix List, you may remove the
The Source Code of this file is available under the The Source Code of this file is available under the
Mozilla Public License, v. 2.0 and is located at Mozilla Public License, v. 2.0 and is located at
https://raw.githubusercontent.com/publicsuffix/list/33c1c788decfed1052089fa27e3005fe4088dec3/public_suffix_list.dat. https://raw.githubusercontent.com/publicsuffix/list/cbbba1d234670453df9c930dfbf510c0474d4301/public_suffix_list.dat.
If a copy of the MPL was not distributed with this file, you can obtain one If a copy of the MPL was not distributed with this file, you can obtain one
at https://mozilla.org/MPL/2.0/. at https://mozilla.org/MPL/2.0/.

View File

@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -27,7 +27,7 @@
/* /*
*/ */
package sun.nio.cs.ext; package $PACKAGE$;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.charset.Charset; import java.nio.charset.Charset;
@ -41,7 +41,7 @@ import static sun.nio.cs.CharsetMapping.*;
public class IBM834 extends Charset public class IBM834 extends Charset
{ {
public IBM834() { public IBM834() {
super("x-IBM834", ExtendedCharsets.aliasesFor("x-IBM834")); super("x-IBM834", $ALIASES$);
} }
public boolean contains(Charset cs) { public boolean contains(Charset cs) {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -23,7 +23,7 @@
* questions. * questions.
*/ */
package sun.nio.cs.ext; package $PACKAGE$;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder; import java.nio.charset.CharsetDecoder;
@ -36,7 +36,7 @@ public class IBM949C extends Charset implements HistoricallyNamedCharset
{ {
public IBM949C() { public IBM949C() {
super("x-IBM949C", ExtendedCharsets.aliasesFor("x-IBM949C")); super("x-IBM949C", $ALIASES$);
} }
public String historicalName() { public String historicalName() {

View File

@ -33,7 +33,7 @@ import java.util.Map;
*/ */
public final class ApplicationLayout implements PathGroup.Facade<ApplicationLayout> { public final class ApplicationLayout implements PathGroup.Facade<ApplicationLayout> {
enum PathRole { enum PathRole {
RUNTIME, APP, LAUNCHERS, DESKTOP, APP_MODS, DLLS RUNTIME, APP, LAUNCHERS, DESKTOP, APP_MODS, DLLS, RELEASE
} }
ApplicationLayout(Map<Object, Path> paths) { ApplicationLayout(Map<Object, Path> paths) {
@ -96,6 +96,13 @@ public final class ApplicationLayout implements PathGroup.Facade<ApplicationLayo
return pathGroup().getPath(PathRole.DESKTOP); return pathGroup().getPath(PathRole.DESKTOP);
} }
/**
* Path to release file in the Java runtime directory.
*/
public Path runtimeRelease() {
return pathGroup().getPath(PathRole.RELEASE);
}
static ApplicationLayout linuxAppImage() { static ApplicationLayout linuxAppImage() {
return new ApplicationLayout(Map.of( return new ApplicationLayout(Map.of(
PathRole.LAUNCHERS, Path.of("bin"), PathRole.LAUNCHERS, Path.of("bin"),
@ -103,7 +110,8 @@ public final class ApplicationLayout implements PathGroup.Facade<ApplicationLayo
PathRole.RUNTIME, Path.of("lib/runtime"), PathRole.RUNTIME, Path.of("lib/runtime"),
PathRole.DESKTOP, Path.of("lib"), PathRole.DESKTOP, Path.of("lib"),
PathRole.DLLS, Path.of("lib"), PathRole.DLLS, Path.of("lib"),
PathRole.APP_MODS, Path.of("lib/app/mods") PathRole.APP_MODS, Path.of("lib/app/mods"),
PathRole.RELEASE, Path.of("lib/runtime/release")
)); ));
} }
@ -114,7 +122,8 @@ public final class ApplicationLayout implements PathGroup.Facade<ApplicationLayo
PathRole.RUNTIME, Path.of("runtime"), PathRole.RUNTIME, Path.of("runtime"),
PathRole.DESKTOP, Path.of(""), PathRole.DESKTOP, Path.of(""),
PathRole.DLLS, Path.of(""), PathRole.DLLS, Path.of(""),
PathRole.APP_MODS, Path.of("app/mods") PathRole.APP_MODS, Path.of("app/mods"),
PathRole.RELEASE, Path.of("runtime/release")
)); ));
} }
@ -125,7 +134,8 @@ public final class ApplicationLayout implements PathGroup.Facade<ApplicationLayo
PathRole.RUNTIME, Path.of("Contents/runtime"), PathRole.RUNTIME, Path.of("Contents/runtime"),
PathRole.DESKTOP, Path.of("Contents/Resources"), PathRole.DESKTOP, Path.of("Contents/Resources"),
PathRole.DLLS, Path.of("Contents/MacOS"), PathRole.DLLS, Path.of("Contents/MacOS"),
PathRole.APP_MODS, Path.of("Contents/app/mods") PathRole.APP_MODS, Path.of("Contents/app/mods"),
PathRole.RELEASE, Path.of("Contents/runtime/Contents/Home/release")
)); ));
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -170,6 +170,11 @@ public class Arguments {
setOptionValue("arguments", arguments); setOptionValue("arguments", arguments);
}), }),
JLINK_OPTIONS ("jlink-options", OptionCategories.PROPERTY, () -> {
List<String> options = getArgumentList(popArg());
setOptionValue("jlink-options", options);
}),
ICON ("icon", OptionCategories.PROPERTY), ICON ("icon", OptionCategories.PROPERTY),
COPYRIGHT ("copyright", OptionCategories.PROPERTY), COPYRIGHT ("copyright", OptionCategories.PROPERTY),
@ -264,6 +269,7 @@ public class Arguments {
MODULE_PATH ("module-path", "p", OptionCategories.MODULAR), MODULE_PATH ("module-path", "p", OptionCategories.MODULAR),
BIND_SERVICES ("bind-services", OptionCategories.PROPERTY, () -> { BIND_SERVICES ("bind-services", OptionCategories.PROPERTY, () -> {
showDeprecation("bind-services");
setOptionValue("bind-services", true); setOptionValue("bind-services", true);
}), }),
@ -579,7 +585,11 @@ public class Arguments {
CLIOptions.PREDEFINED_RUNTIME_IMAGE.getIdWithPrefix(), CLIOptions.PREDEFINED_RUNTIME_IMAGE.getIdWithPrefix(),
CLIOptions.BIND_SERVICES.getIdWithPrefix()); CLIOptions.BIND_SERVICES.getIdWithPrefix());
} }
if (allOptions.contains(CLIOptions.JLINK_OPTIONS)) {
throw new PackagerException("ERR_MutuallyExclusiveOptions",
CLIOptions.PREDEFINED_RUNTIME_IMAGE.getIdWithPrefix(),
CLIOptions.JLINK_OPTIONS.getIdWithPrefix());
}
} }
if (hasMainJar && hasMainModule) { if (hasMainJar && hasMainModule) {
throw new PackagerException("ERR_BothMainJarAndModule"); throw new PackagerException("ERR_BothMainJarAndModule");
@ -809,4 +819,8 @@ public class Arguments {
return null; return null;
} }
private static void showDeprecation(String option) {
Log.error(MessageFormat.format(I18N.getString("warning.deprecation"),
option));
}
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -315,7 +315,8 @@ public class DeployParams {
StandardBundlerParam.MODULE_PATH.getID(), StandardBundlerParam.MODULE_PATH.getID(),
StandardBundlerParam.ADD_MODULES.getID(), StandardBundlerParam.ADD_MODULES.getID(),
StandardBundlerParam.LIMIT_MODULES.getID(), StandardBundlerParam.LIMIT_MODULES.getID(),
StandardBundlerParam.FILE_ASSOCIATIONS.getID() StandardBundlerParam.FILE_ASSOCIATIONS.getID(),
StandardBundlerParam.JLINK_OPTIONS.getID()
)); ));
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -145,6 +145,8 @@ final class JLinkBundlerHelper {
StandardBundlerParam.ADD_MODULES.fetchFrom(params); StandardBundlerParam.ADD_MODULES.fetchFrom(params);
Set<String> limitModules = Set<String> limitModules =
StandardBundlerParam.LIMIT_MODULES.fetchFrom(params); StandardBundlerParam.LIMIT_MODULES.fetchFrom(params);
List<String> options =
StandardBundlerParam.JLINK_OPTIONS.fetchFrom(params);
Path outputDir = imageBuilder.getRuntimeRoot(); Path outputDir = imageBuilder.getRuntimeRoot();
File mainJar = getMainJar(params); File mainJar = getMainJar(params);
ModFile.ModType mainJarType = ModFile.ModType.Unknown; ModFile.ModType mainJarType = ModFile.ModType.Unknown;
@ -181,7 +183,7 @@ final class JLinkBundlerHelper {
} }
runJLink(outputDir, modulePath, modules, limitModules, runJLink(outputDir, modulePath, modules, limitModules,
new HashMap<String,String>(), bindServices); options, bindServices);
imageBuilder.prepareApplicationFiles(params); imageBuilder.prepareApplicationFiles(params);
} }
@ -316,7 +318,7 @@ final class JLinkBundlerHelper {
private static void runJLink(Path output, List<Path> modulePath, private static void runJLink(Path output, List<Path> modulePath,
Set<String> modules, Set<String> limitModules, Set<String> modules, Set<String> limitModules,
HashMap<String, String> user, boolean bindServices) List<String> options, boolean bindServices)
throws PackagerException { throws PackagerException {
// This is just to ensure jlink is given a non-existant directory // This is just to ensure jlink is given a non-existant directory
@ -342,20 +344,19 @@ final class JLinkBundlerHelper {
args.add("--limit-modules"); args.add("--limit-modules");
args.add(getStringList(limitModules)); args.add(getStringList(limitModules));
} }
if (user != null && !user.isEmpty()) { if (options != null) {
for (Map.Entry<String, String> entry : user.entrySet()) { for (String option : options) {
args.add(entry.getKey()); if (option.startsWith("--output") ||
args.add(entry.getValue()); option.startsWith("--add-modules") ||
} option.startsWith("--module-path")) {
} else { throw new PackagerException("error.blocked.option", option);
args.add("--strip-native-commands"); }
args.add("--strip-debug"); args.add(option);
args.add("--no-man-pages");
args.add("--no-header-files");
if (bindServices) {
args.add("--bind-services");
} }
} }
if (bindServices) {
args.add("--bind-services");
}
StringWriter writer = new StringWriter(); StringWriter writer = new StringWriter();
PrintWriter pw = new PrintWriter(writer); PrintWriter pw = new PrintWriter(writer);

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -70,6 +70,11 @@ class StandardBundlerParam<T> extends BundlerParamInfo<T> {
private static final String JAVABASEJMOD = "java.base.jmod"; private static final String JAVABASEJMOD = "java.base.jmod";
private final static String DEFAULT_VERSION = "1.0"; private final static String DEFAULT_VERSION = "1.0";
private final static String DEFAULT_RELEASE = "1"; private final static String DEFAULT_RELEASE = "1";
private final static String[] DEFAULT_JLINK_OPTIONS = {
"--strip-native-commands",
"--strip-debug",
"--no-man-pages",
"--no-header-files"};
StandardBundlerParam(String id, Class<T> valueType, StandardBundlerParam(String id, Class<T> valueType,
Function<Map<String, ? super Object>, T> defaultValueFunction, Function<Map<String, ? super Object>, T> defaultValueFunction,
@ -479,6 +484,14 @@ class StandardBundlerParam<T> extends BundlerParamInfo<T> {
(s, p) -> new LinkedHashSet<>(Arrays.asList(s.split(","))) (s, p) -> new LinkedHashSet<>(Arrays.asList(s.split(",")))
); );
@SuppressWarnings("unchecked")
static final StandardBundlerParam<List<String>> JLINK_OPTIONS =
new StandardBundlerParam<>(
Arguments.CLIOptions.JLINK_OPTIONS.getId(),
(Class<List<String>>) (Object) List.class,
p -> Arrays.asList(DEFAULT_JLINK_OPTIONS),
(s, p) -> null);
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
static final BundlerParamInfo<Set<String>> LIMIT_MODULES = static final BundlerParamInfo<Set<String>> LIMIT_MODULES =
new StandardBundlerParam<>( new StandardBundlerParam<>(

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -85,6 +85,7 @@ class ValidOptions {
options.put(CLIOptions.JAVA_OPTIONS.getId(), USE.LAUNCHER); options.put(CLIOptions.JAVA_OPTIONS.getId(), USE.LAUNCHER);
options.put(CLIOptions.ADD_LAUNCHER.getId(), USE.LAUNCHER); options.put(CLIOptions.ADD_LAUNCHER.getId(), USE.LAUNCHER);
options.put(CLIOptions.BIND_SERVICES.getId(), USE.LAUNCHER); options.put(CLIOptions.BIND_SERVICES.getId(), USE.LAUNCHER);
options.put(CLIOptions.JLINK_OPTIONS.getId(), USE.LAUNCHER);
options.put(CLIOptions.LICENSE_FILE.getId(), USE.INSTALL); options.put(CLIOptions.LICENSE_FILE.getId(), USE.INSTALL);
options.put(CLIOptions.INSTALL_DIR.getId(), USE.INSTALL); options.put(CLIOptions.INSTALL_DIR.getId(), USE.INSTALL);

View File

@ -1,5 +1,5 @@
# #
# Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
@ -107,6 +107,12 @@ Generic Options:\n\
\ --bind-services \n\ \ --bind-services \n\
\ Pass on --bind-services option to jlink (which will link in \n\ \ Pass on --bind-services option to jlink (which will link in \n\
\ service provider modules and their dependences) \n\ \ service provider modules and their dependences) \n\
\ This option is deprecated. Use "--jlink-options" option instead. \n\
\ --jlink-options <jlink options> \n\
\ A space separated list of options to pass to jlink \n\
\ If not specified, defaults to "--strip-native-commands \n\
\ --strip-debug --no-man-pages --no-header-files" \n\
\ This option can be used multiple times.\n\
\ --runtime-image <file path>\n\ \ --runtime-image <file path>\n\
\ Path of the predefined runtime image that will be copied into\n\ \ Path of the predefined runtime image that will be copied into\n\
\ the application image\n\ \ the application image\n\

View File

@ -1,5 +1,5 @@
# #
# Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
@ -63,9 +63,11 @@ error.tool-not-found.advice=Please install {0}
error.tool-old-version=Can not find {0} {1} or newer error.tool-old-version=Can not find {0} {1} or newer
error.tool-old-version.advice=Please install {0} {1} or newer error.tool-old-version.advice=Please install {0} {1} or newer
error.jlink.failed=jlink failed with: {0} error.jlink.failed=jlink failed with: {0}
error.blocked.option=jlink option [{0}] is not permitted in --jlink-options
warning.module.does.not.exist=Module [{0}] does not exist warning.module.does.not.exist=Module [{0}] does not exist
warning.no.jdk.modules.found=Warning: No JDK Modules found warning.no.jdk.modules.found=Warning: No JDK Modules found
warning.deprecation=Warning: Option "{0}" is deprecated and may be removed in a future release
MSG_BundlerFailed=Error: Bundler "{1}" ({0}) failed to produce a package MSG_BundlerFailed=Error: Bundler "{1}" ({0}) failed to produce a package
MSG_BundlerConfigException=Bundler {0} skipped because of a configuration problem: {1} \n\ MSG_BundlerConfigException=Bundler {0} skipped because of a configuration problem: {1} \n\

View File

@ -1,5 +1,5 @@
# #
# Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
@ -63,9 +63,11 @@ error.tool-not-found.advice={0}\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\
error.tool-old-version={0} {1}\u4EE5\u964D\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 error.tool-old-version={0} {1}\u4EE5\u964D\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
error.tool-old-version.advice={0} {1}\u4EE5\u964D\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u3066\u304F\u3060\u3055\u3044 error.tool-old-version.advice={0} {1}\u4EE5\u964D\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u3066\u304F\u3060\u3055\u3044
error.jlink.failed=jlink\u304C\u6B21\u3067\u5931\u6557\u3057\u307E\u3057\u305F: {0} error.jlink.failed=jlink\u304C\u6B21\u3067\u5931\u6557\u3057\u307E\u3057\u305F: {0}
error.blocked.option=jlink option [{0}] is not permitted in --jlink-options
warning.module.does.not.exist=\u30E2\u30B8\u30E5\u30FC\u30EB[{0}]\u306F\u5B58\u5728\u3057\u307E\u305B\u3093 warning.module.does.not.exist=\u30E2\u30B8\u30E5\u30FC\u30EB[{0}]\u306F\u5B58\u5728\u3057\u307E\u305B\u3093
warning.no.jdk.modules.found=\u8B66\u544A: JDK\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 warning.no.jdk.modules.found=\u8B66\u544A: JDK\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
warning.deprecation=Warning: Option "{0}" is deprecated and may be removed in a future release
MSG_BundlerFailed=\u30A8\u30E9\u30FC: \u30D0\u30F3\u30C9\u30E9"{1}" ({0})\u304C\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u751F\u6210\u306B\u5931\u6557\u3057\u307E\u3057\u305F MSG_BundlerFailed=\u30A8\u30E9\u30FC: \u30D0\u30F3\u30C9\u30E9"{1}" ({0})\u304C\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u751F\u6210\u306B\u5931\u6557\u3057\u307E\u3057\u305F
MSG_BundlerConfigException=\u69CB\u6210\u306E\u554F\u984C\u306E\u305F\u3081\u3001\u30D0\u30F3\u30C9\u30E9{0}\u304C\u30B9\u30AD\u30C3\u30D7\u3055\u308C\u307E\u3057\u305F: {1} \n\u6B21\u306E\u4FEE\u6B63\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044: {2} MSG_BundlerConfigException=\u69CB\u6210\u306E\u554F\u984C\u306E\u305F\u3081\u3001\u30D0\u30F3\u30C9\u30E9{0}\u304C\u30B9\u30AD\u30C3\u30D7\u3055\u308C\u307E\u3057\u305F: {1} \n\u6B21\u306E\u4FEE\u6B63\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044: {2}

View File

@ -1,5 +1,5 @@
# #
# Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
@ -63,9 +63,11 @@ error.tool-not-found.advice=\u8BF7\u5B89\u88C5 {0}
error.tool-old-version=\u627E\u4E0D\u5230 {0} {1}\u6216\u66F4\u65B0\u7248\u672C error.tool-old-version=\u627E\u4E0D\u5230 {0} {1}\u6216\u66F4\u65B0\u7248\u672C
error.tool-old-version.advice=\u8BF7\u5B89\u88C5 {0} {1}\u6216\u66F4\u65B0\u7248\u672C error.tool-old-version.advice=\u8BF7\u5B89\u88C5 {0} {1}\u6216\u66F4\u65B0\u7248\u672C
error.jlink.failed=jlink \u5931\u8D25\uFF0C\u51FA\u73B0 {0} error.jlink.failed=jlink \u5931\u8D25\uFF0C\u51FA\u73B0 {0}
error.blocked.option=jlink option [{0}] is not permitted in --jlink-options
warning.module.does.not.exist=\u6A21\u5757 [{0}] \u4E0D\u5B58\u5728 warning.module.does.not.exist=\u6A21\u5757 [{0}] \u4E0D\u5B58\u5728
warning.no.jdk.modules.found=\u8B66\u544A: \u672A\u627E\u5230 JDK \u6A21\u5757 warning.no.jdk.modules.found=\u8B66\u544A: \u672A\u627E\u5230 JDK \u6A21\u5757
warning.deprecation=Warning: Option "{0}" is deprecated and may be removed in a future release
MSG_BundlerFailed=\u9519\u8BEF\uFF1A\u6253\u5305\u7A0B\u5E8F "{1}" ({0}) \u65E0\u6CD5\u751F\u6210\u7A0B\u5E8F\u5305 MSG_BundlerFailed=\u9519\u8BEF\uFF1A\u6253\u5305\u7A0B\u5E8F "{1}" ({0}) \u65E0\u6CD5\u751F\u6210\u7A0B\u5E8F\u5305
MSG_BundlerConfigException=\u7531\u4E8E\u914D\u7F6E\u95EE\u9898, \u8DF3\u8FC7\u4E86\u6253\u5305\u7A0B\u5E8F{0}: {1} \n\u4FEE\u590D\u5EFA\u8BAE: {2} MSG_BundlerConfigException=\u7531\u4E8E\u914D\u7F6E\u95EE\u9898, \u8DF3\u8FC7\u4E86\u6253\u5305\u7A0B\u5E8F{0}: {1} \n\u4FEE\u590D\u5EFA\u8BAE: {2}

View File

@ -323,6 +323,7 @@ hotspot_appcds_dynamic = \
-runtime/cds/appcds/cacheObject \ -runtime/cds/appcds/cacheObject \
-runtime/cds/appcds/customLoader \ -runtime/cds/appcds/customLoader \
-runtime/cds/appcds/dynamicArchive \ -runtime/cds/appcds/dynamicArchive \
-runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java \
-runtime/cds/appcds/javaldr/ArrayTest.java \ -runtime/cds/appcds/javaldr/ArrayTest.java \
-runtime/cds/appcds/javaldr/GCSharedStringsDuringDump.java \ -runtime/cds/appcds/javaldr/GCSharedStringsDuringDump.java \
-runtime/cds/appcds/javaldr/HumongousDuringDump.java \ -runtime/cds/appcds/javaldr/HumongousDuringDump.java \

View File

@ -135,6 +135,131 @@ import java.io.IOException;
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu * -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu
* gc.stress.gcbasher.TestGCBasherWithShenandoah 120000 * gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
*/ */
/*
* @test TestGCBasherDeoptWithShenandoah
* @key gc
* @key stress
* @library /
* @requires vm.gc.Shenandoah
* @requires vm.flavor == "server" & !vm.emulatedClient & !vm.graal.enabled & vm.opt.ClassUnloading != false
* @summary Stress Shenandoah GC with nmethod barrier forced deoptimization enabled.
*
* @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=passive
* -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
* -XX:+ShenandoahVerify -XX:+ShenandoahDegeneratedGC
* gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
*
* @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=passive
* -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
* -XX:+ShenandoahVerify -XX:-ShenandoahDegeneratedGC
* gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
*/
/*
* @test TestGCBasherDeoptWithShenandoah
* @key gc
* @key stress
* @library /
* @requires vm.gc.Shenandoah
* @requires vm.flavor == "server" & !vm.emulatedClient & !vm.graal.enabled & vm.opt.ClassUnloading != false
* @summary Stress Shenandoah GC with nmethod barrier forced deoptimization enabled.
*
* @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
* -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=aggressive
* -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
* -XX:+ShenandoahOOMDuringEvacALot
* gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
*
* @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
* -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=aggressive
* -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
* -XX:+ShenandoahAllocFailureALot
* gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
*
* @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
* -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=aggressive
* -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
* gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
*/
/*
* @test TestGCBasherDeoptWithShenandoah
* @key gc
* @key stress
* @library /
* @requires vm.gc.Shenandoah
* @requires vm.flavor == "server" & !vm.emulatedClient & !vm.graal.enabled & vm.opt.ClassUnloading != false
* @summary Stress Shenandoah GC with nmethod barrier forced deoptimization enabled.
*
* @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
* -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=adaptive
* -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
* -XX:+ShenandoahVerify
* gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
*
* @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
* -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=adaptive
* -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
* gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
*
* @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
* -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=compact
* -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
* gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
*/
/*
* @test TestGCBasherDeoptWithShenandoah
* @key gc
* @key stress
* @library /
* @requires vm.gc.Shenandoah
* @requires vm.flavor == "server" & !vm.emulatedClient & !vm.graal.enabled & vm.opt.ClassUnloading != false
* @summary Stress Shenandoah GC with nmethod barrier forced deoptimization enabled.
*
* @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu -XX:ShenandoahGCHeuristics=aggressive
* -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
* -XX:+ShenandoahOOMDuringEvacALot
* gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
*
* @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu -XX:ShenandoahGCHeuristics=aggressive
* -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
* -XX:+ShenandoahAllocFailureALot
* gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
*
* @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu -XX:ShenandoahGCHeuristics=aggressive
* -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
* gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
*/
/*
* @test TestGCBasherDeoptWithShenandoah
* @key gc
* @key stress
* @library /
* @requires vm.gc.Shenandoah
* @requires vm.flavor == "server" & !vm.emulatedClient & !vm.graal.enabled & vm.opt.ClassUnloading != false
* @summary Stress Shenandoah GC with nmethod barrier forced deoptimization enabled.
*
* @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu
* -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
* -XX:+ShenandoahVerify
* gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
*
* @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu
* -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
* gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
*/
public class TestGCBasherWithShenandoah { public class TestGCBasherWithShenandoah {
public static void main(String[] args) throws IOException { public static void main(String[] args) throws IOException {
TestGCBasher.main(args); TestGCBasher.main(args);

View File

@ -77,8 +77,6 @@ public class invocationC1Tests {
int major_version = klassbuf[6] << 8 | klassbuf[7]; int major_version = klassbuf[6] << 8 | klassbuf[7];
runTest("invokespecial.Generator", String.valueOf(major_version)); runTest("invokespecial.Generator", String.valueOf(major_version));
runTest("invokeinterface.Generator", String.valueOf(major_version)); runTest("invokeinterface.Generator", String.valueOf(major_version));
runTest("invokevirtual.Generator", String.valueOf(major_version));
// Uncomment this test once JDK-8226588 is fixed
// runTest("invokevirtual.Generator", String.valueOf(major_version));
} }
} }

View File

@ -73,8 +73,7 @@ public class invokevirtualTests {
byte klassbuf[] = InMemoryJavaCompiler.compile("blah", "public class blah { }"); byte klassbuf[] = InMemoryJavaCompiler.compile("blah", "public class blah { }");
int major_version = klassbuf[6] << 8 | klassbuf[7]; int major_version = klassbuf[6] << 8 | klassbuf[7];
runTest(String.valueOf(major_version), "-Xint"); runTest(String.valueOf(major_version), "-Xint");
// Uncomment the below test once JDK-8226588 is fixed runTest(String.valueOf(major_version), "-Xcomp");
// runTest(String.valueOf(major_version), "-Xcomp");
// Test old class file version. // Test old class file version.
runTest("51", "-Xint"); // JDK-7 runTest("51", "-Xint"); // JDK-7

View File

@ -0,0 +1,98 @@
/*
* Copyright (c) 2020, 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
* @requires vm.cds
* @summary Test class loader constraint checks for archived classes (dynamic archive)
* @library /test/lib
* /test/hotspot/jtreg/runtime/cds/appcds
* /test/hotspot/jtreg/runtime/cds/appcds/test-classes
* /test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive
* @modules java.base/jdk.internal.misc
* jdk.httpserver
* @run driver DynamicLoaderConstraintsTest
*/
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import jdk.test.lib.Asserts;
public class DynamicLoaderConstraintsTest extends DynamicArchiveTestBase {
static String mainClass = LoaderConstraintsApp.class.getName();
static String appJar = null;
static String appClasses[] = {
mainClass,
HttpHandler.class.getName(),
HttpExchange.class.getName(),
Asserts.class.getName(),
MyHttpHandler.class.getName(),
MyHttpHandlerB.class.getName(),
MyHttpHandlerC.class.getName(),
MyClassLoader.class.getName()
};
public static void main(String[] args) throws Exception {
runTest(DynamicLoaderConstraintsTest::doTest);
}
static void doTest() throws Exception {
appJar = ClassFileInstaller.writeJar("loader_constraints.jar", appClasses);
doTest(false);
doTest(true);
}
/*
* errorInDump:
* true: Even when dumping the archive, execute the code that would cause
* LinkageError, to see how the VM can handle such error during
* dump time.
* false: At dump time, simply load all the necessary test classes without
* causing LinkageError. This ensures the test classes will be
* archived so we can test CDS's handling of loader constraints during
* run time.
*/
static void doTest(boolean errorInDump) throws Exception {
for (int i = 1; i <= 3; i++) {
String topArchiveName = getNewArchiveName();
String testCase = Integer.toString(i);
String cmdLine[] = new String[] {
"-cp", appJar,
"--add-modules",
"java.base,jdk.httpserver",
"--add-exports",
"java.base/jdk.internal.misc=ALL-UNNAMED",
"-Xlog:class+load,class+loader+constraints",
mainClass, testCase
};
String[] dumpCmdLine = cmdLine;
if (!errorInDump) {
dumpCmdLine = TestCommon.concat(dumpCmdLine, "loadClassOnly");
}
dump(topArchiveName, dumpCmdLine).assertNormalExit();
run(topArchiveName, cmdLine).assertNormalExit();
}
}
}

View File

@ -0,0 +1,150 @@
/*
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import com.sun.net.httpserver.HttpHandler;
import jdk.internal.misc.Unsafe;
import jdk.test.lib.Asserts;
import java.io.InputStream;
import java.net.URL;
// Test cases:
//
// 1. load HttpExchange in apploader, define HttpExchange in parent (platform) loader,
// then load MyHttpHandler => fail.
// 2. define HttpExchange in parent (platform) loader, load MyHttpHandler,
// then try to define HttpExchange in child (app) loader => fail.
// 3. no LinkageError should be throw when linking a class that does not override/implement any
// methods.
class LoaderConstraintsApp {
static void defineHttpExchangeWithAppLoader() throws Exception {
Unsafe unsafe = Unsafe.getUnsafe();
URL url = new URL("jrt://modules/jdk.httpserver/com/sun/net/httpserver/HttpExchange.class");
byte[] bytes;
try (InputStream is = url.openStream()) {
bytes = is.readAllBytes();
}
Class fakeClass = unsafe.defineClass("com/sun/net/httpserver/HttpExchange", bytes, 0, bytes.length,
LoaderConstraintsApp.class.getClassLoader(),
LoaderConstraintsApp.class.getProtectionDomain());
System.out.println("fake HttpExchange = " + fakeClass.hashCode());
System.out.println("fake HttpExchange (loader) = " + fakeClass.getClassLoader());
}
static void resolveHttpExchangeInParentLoader(ClassLoader loader) throws Exception {
Class realClass = Class.forName("com.sun.net.httpserver.HttpExchange", false, loader);
System.out.println("real HttpExchange = " + realClass.hashCode());
System.out.println("real HttpExchange (loader) = " + realClass.getClassLoader());
}
static void doTest(int k) throws Exception {
ClassLoader appLoader = LoaderConstraintsApp.class.getClassLoader();
ClassLoader platformLoader = appLoader.getParent();
if (k == 1) {
defineHttpExchangeWithAppLoader();
// Resolve HttpExchange in parent loader (platform loader) - should be OK.
resolveHttpExchangeInParentLoader(platformLoader);
try {
// This must fail since the two loaders have resolved different versions of HttpExchange
HttpHandler h1 = new MyHttpHandler();
throw new RuntimeException("Load HttpExchange with platform loader did not fail as expected");
} catch (LinkageError e) {
System.out.println("Expected: " + e);
Asserts.assertTrue(e.getMessage().contains("loader constraint violation in interface itable initialization for class MyHttpHandler"));
e.printStackTrace(System.out);
}
} else if (k == 2) {
// Resolve HttpExchange in parent loader (platform loader) - this should succeed
resolveHttpExchangeInParentLoader(platformLoader);
// Load MyHttpHandler in app loader -- this should succeed, but it should
// create a class loader constraint that app loader must resolve the same HttpExchange
// class as the platform loader
HttpHandler h2 = new MyHttpHandler();
// Try to resolve a different HttpExchange class in the app loader. It must fail
try {
defineHttpExchangeWithAppLoader();
throw new RuntimeException("defineHttpExchangeWithAppLoader() did not fail as expected");
} catch (LinkageError e) {
System.out.println("Expected: " + e);
e.printStackTrace(System.out);
}
} else if (k == 3) {
// Resolve a different HttpExchange in platform and app loaders
resolveHttpExchangeInParentLoader(platformLoader);
defineHttpExchangeWithAppLoader();
// MyHttpHandlerB should still link, as it doesn't override HttpHandler.handle(HttpExchange)
MyHttpHandlerB.touch();
MyClassLoader loader = new MyClassLoader(platformLoader, appLoader);
try {
// MyHttpHandlerC should link, as its loader (MyClassLoader) resolves the same
// HttpExchange as the platform loader.
Class C = loader.loadClass("MyHttpHandlerC");
System.out.println("MyHttpHandlerC = " + C);
System.out.println("MyHttpHandlerC (loader) = " + C.getClassLoader());
HttpHandler handlerC = (HttpHandler)C.newInstance();
try {
// If the following is executed during CDS dynamic dump, a loader constraint is checked when resolving
// the HttpHandler.handle(HttpExchange) method reference inside MyHttpHandlerB.test(). This constraint must
// not be saved into the CDS archive for MyHttpHandlerB, or it would prevent MyHttpHandlerB
// from being linked during runtime.
MyHttpHandlerB.test(handlerC);
throw new RuntimeException("MyHttpHandlerB.test() did not fail as expected");
} catch (LinkageError e) {
System.out.println("Expected: " + e);
Asserts.assertTrue(e.getMessage().matches(".*constraint violation: when resolving interface method .*.HttpHandler.handle.*"));
e.printStackTrace(System.out);
}
} catch (Exception e) {
throw new RuntimeException("Unexpected exception", e);
}
} else {
// should not be other value
throw new RuntimeException("Wrong option specified k = " + k);
}
}
public static void main(String... args) throws Throwable {
if (args.length < 1) {
// option of {1, 2}
throw new RuntimeException("Wrong number of arguments");
}
if (args.length >= 2 && "loadClassOnly".equals(args[1])) {
System.out.println("Loading: " + MyHttpHandler.class);
System.out.println("Loading: " + MyHttpHandlerB.class);
System.exit(0);
}
int k = Integer.valueOf(args[0]);
if (k < 1 && k > 3) {
throw new RuntimeException("Arg is out of range [1,3] k = " + k);
}
doTest(k);
}
}

View File

@ -0,0 +1,77 @@
/*
* Copyright (c) 2020, 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
* @requires vm.cds
* @summary Test class loader constraint checks for archived classes
* @library /test/lib
* /test/hotspot/jtreg/runtime/cds/appcds
* /test/hotspot/jtreg/runtime/cds/appcds/test-classes
* @modules java.base/jdk.internal.misc
* jdk.httpserver
* @run driver LoaderConstraintsTest
*/
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import jdk.test.lib.Asserts;
public class LoaderConstraintsTest {
static String mainClass = LoaderConstraintsApp.class.getName();
static String appJar = null;
static String appClasses[] = {
mainClass,
HttpHandler.class.getName(),
HttpExchange.class.getName(),
Asserts.class.getName(),
MyHttpHandler.class.getName(),
MyHttpHandlerB.class.getName(),
MyHttpHandlerC.class.getName(),
MyClassLoader.class.getName()
};
static void doTest() throws Exception {
appJar = ClassFileInstaller.writeJar("loader_constraints.jar", appClasses);
TestCommon.dump(appJar, appClasses, "-Xlog:cds+load");
String joptsMain[] = TestCommon.concat("-cp", appJar,
"-Xlog:cds",
"-Xlog:class+loader+constraints=debug",
"--add-exports",
"java.base/jdk.internal.misc=ALL-UNNAMED",
mainClass);
runWithArchive(joptsMain, "1");
runWithArchive(joptsMain, "2");
runWithArchive(joptsMain, "3");
}
static void runWithArchive(String[] optsMain, String arg) throws Exception {
String cmd[] = TestCommon.concat(optsMain, arg);
TestCommon.run(cmd).assertNormalExit();
}
public static void main(String... args) throws Exception {
doTest();
}
}

View File

@ -0,0 +1,55 @@
/*
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import java.io.InputStream;
import java.io.IOException;
public class MyClassLoader extends ClassLoader {
ClassLoader parent;
ClassLoader appLoader;
public MyClassLoader(ClassLoader parent, ClassLoader appLoader) {
super(parent);
this.parent = parent;
this.appLoader = appLoader;
}
public Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
System.out.println("MyClassLoader: loadClass(\"" + name + "\", " + resolve + ")");
Class c;
if (name.equals("MyHttpHandlerC")) {
byte[] bytes;
try (InputStream is = appLoader.getResourceAsStream("MyHttpHandlerC.class")) {
bytes = is.readAllBytes();
} catch (IOException e) {
throw new RuntimeException("Unexpected", e);
}
c = defineClass(name, bytes, 0, bytes.length);
} else {
c = super.loadClass(name, resolve);
}
System.out.println("MyClassLoader: loaded " + name + " = " + c);
return c;
}
}

View File

@ -0,0 +1,29 @@
/*
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
public class MyHttpHandler implements HttpHandler {
public void handle(HttpExchange exchange) {}
}

View File

@ -0,0 +1,43 @@
/*
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import java.io.IOException;
public abstract class MyHttpHandlerB implements HttpHandler {
// This class doesn't implement handle(), so it can be linked even
// if the App loader resolves a different HttpExchange than the Platform loader.
/* public void handle(HttpExchange exchange) {} */
static void touch() {
}
static public void test(HttpHandler handler) throws IOException {
// This method call must fail to link.
handler.handle(null);
}
}

View File

@ -0,0 +1,43 @@
/*
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import java.io.IOException;
public class MyHttpHandlerC implements HttpHandler {
public MyHttpHandlerC() {}
// This class overrides handle(), but its loader (MyClassLoader) resolves the same
// HttpExchange as the platfom loader (whose handle() method is overidden), so when
// MyHttpHandlerC loaded it should be able to link
public void handle(HttpExchange exchange) {
throw new RuntimeException("MyHttpHandlerB.test() must not be able to invoke this method");
}
static public void test(HttpHandler handler) throws IOException {
// This method call must fail to link.
handler.handle(null);
}
}

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ClassObjectReference/reflectedType/reflectype002. * @summary converted from VM Testbase nsk/jdi/ClassObjectReference/reflectedType/reflectype002.
* VM Testbase keywords: [jpda, jdi, nonconcurrent] * VM Testbase keywords: [jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ClassUnloadEvent/className/classname001. * @summary converted from VM Testbase nsk/jdi/ClassUnloadEvent/className/classname001.
* VM Testbase keywords: [jpda, jdi, nonconcurrent] * VM Testbase keywords: [jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ClassUnloadEvent/classSignature/signature001. * @summary converted from VM Testbase nsk/jdi/ClassUnloadEvent/classSignature/signature001.
* VM Testbase keywords: [jpda, jdi, nonconcurrent] * VM Testbase keywords: [jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ClassUnloadRequest/addClassExclusionFilter/exclfilter001. * @summary converted from VM Testbase nsk/jdi/ClassUnloadRequest/addClassExclusionFilter/exclfilter001.
* VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent] * VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ClassUnloadRequest/addClassFilter/filter001. * @summary converted from VM Testbase nsk/jdi/ClassUnloadRequest/addClassFilter/filter001.
* VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent] * VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2007, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -23,6 +23,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ObjectReference/referringObjects/referringObjects002. * @summary converted from VM Testbase nsk/jdi/ObjectReference/referringObjects/referringObjects002.
* VM Testbase keywords: [quick, jpda, jdi, feature_jdk6_jpda, vm6] * VM Testbase keywords: [quick, jpda, jdi, feature_jdk6_jpda, vm6]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ReferenceType/allFields/allfields003. * @summary converted from VM Testbase nsk/jdi/ReferenceType/allFields/allfields003.
* VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent] * VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ReferenceType/allMethods/allmethods003. * @summary converted from VM Testbase nsk/jdi/ReferenceType/allMethods/allmethods003.
* VM Testbase keywords: [jpda, jdi, nonconcurrent] * VM Testbase keywords: [jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ReferenceType/classObject/classobj002. * @summary converted from VM Testbase nsk/jdi/ReferenceType/classObject/classobj002.
* VM Testbase keywords: [jpda, jdi, nonconcurrent] * VM Testbase keywords: [jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ReferenceType/equals/equals002. * @summary converted from VM Testbase nsk/jdi/ReferenceType/equals/equals002.
* VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent] * VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ReferenceType/failedToInitialize/failedtoinit002. * @summary converted from VM Testbase nsk/jdi/ReferenceType/failedToInitialize/failedtoinit002.
* VM Testbase keywords: [jpda, jdi, nonconcurrent] * VM Testbase keywords: [jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ReferenceType/fieldByName/fieldbyname003. * @summary converted from VM Testbase nsk/jdi/ReferenceType/fieldByName/fieldbyname003.
* VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent] * VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ReferenceType/fields/fields003. * @summary converted from VM Testbase nsk/jdi/ReferenceType/fields/fields003.
* VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent] * VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ReferenceType/hashCode/hashcode002. * @summary converted from VM Testbase nsk/jdi/ReferenceType/hashCode/hashcode002.
* VM Testbase keywords: [jpda, jdi, nonconcurrent] * VM Testbase keywords: [jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ReferenceType/isAbstract/isabstract002. * @summary converted from VM Testbase nsk/jdi/ReferenceType/isAbstract/isabstract002.
* VM Testbase keywords: [jpda, jdi, nonconcurrent] * VM Testbase keywords: [jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ReferenceType/isInitialized/isinit002. * @summary converted from VM Testbase nsk/jdi/ReferenceType/isInitialized/isinit002.
* VM Testbase keywords: [jpda, jdi, nonconcurrent] * VM Testbase keywords: [jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ReferenceType/isPrepared/isprepared002. * @summary converted from VM Testbase nsk/jdi/ReferenceType/isPrepared/isprepared002.
* VM Testbase keywords: [jpda, jdi, nonconcurrent] * VM Testbase keywords: [jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ReferenceType/isVerified/isverified002. * @summary converted from VM Testbase nsk/jdi/ReferenceType/isVerified/isverified002.
* VM Testbase keywords: [jpda, jdi, nonconcurrent] * VM Testbase keywords: [jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ReferenceType/methods/methods003. * @summary converted from VM Testbase nsk/jdi/ReferenceType/methods/methods003.
* VM Testbase keywords: [jpda, jdi, nonconcurrent] * VM Testbase keywords: [jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ReferenceType/methodsByName_s/methbyname_s003. * @summary converted from VM Testbase nsk/jdi/ReferenceType/methodsByName_s/methbyname_s003.
* VM Testbase keywords: [jpda, jdi, nonconcurrent] * VM Testbase keywords: [jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ReferenceType/methodsByName_ss/methbyname_ss003. * @summary converted from VM Testbase nsk/jdi/ReferenceType/methodsByName_ss/methbyname_ss003.
* VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent] * VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ReferenceType/name/name002. * @summary converted from VM Testbase nsk/jdi/ReferenceType/name/name002.
* VM Testbase keywords: [jpda, jdi, nonconcurrent] * VM Testbase keywords: [jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ReferenceType/sourceName/sourcename002. * @summary converted from VM Testbase nsk/jdi/ReferenceType/sourceName/sourcename002.
* VM Testbase keywords: [jpda, jdi, nonconcurrent] * VM Testbase keywords: [jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ReferenceType/visibleFields/visibfield003. * @summary converted from VM Testbase nsk/jdi/ReferenceType/visibleFields/visibfield003.
* VM Testbase keywords: [jpda, jdi, nonconcurrent] * VM Testbase keywords: [jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/ReferenceType/visibleMethods/visibmethod003. * @summary converted from VM Testbase nsk/jdi/ReferenceType/visibleMethods/visibmethod003.
* VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent] * VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2007, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -23,6 +23,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jdi/VirtualMachine/instanceCounts/instancecounts003. * @summary converted from VM Testbase nsk/jdi/VirtualMachine/instanceCounts/instancecounts003.
* VM Testbase keywords: [quick, jpda, jdi, feature_jdk6_jpda, vm6] * VM Testbase keywords: [quick, jpda, jdi, feature_jdk6_jpda, vm6]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,7 +24,7 @@
/* /*
* @test * @test
* @key stress * @key stress randomness
* *
* @summary converted from VM Testbase nsk/jdi/stress/serial/forceEarlyReturn002. * @summary converted from VM Testbase nsk/jdi/stress/serial/forceEarlyReturn002.
* VM Testbase keywords: [stress, quick, jpda, jdi, feature_jdk6_jpda, vm6] * VM Testbase keywords: [stress, quick, jpda, jdi, feature_jdk6_jpda, vm6]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,7 +24,7 @@
/* /*
* @test * @test
* @key stress * @key stress randomness
* *
* @summary converted from VM Testbase nsk/jdi/stress/serial/heapwalking002. * @summary converted from VM Testbase nsk/jdi/stress/serial/heapwalking002.
* VM Testbase keywords: [stress, jpda, jdi, feature_jdk6_jpda, vm6] * VM Testbase keywords: [stress, jpda, jdi, feature_jdk6_jpda, vm6]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -25,7 +25,7 @@
/* /*
* @test * @test
* @modules jdk.jdi/com.sun.tools.jdi:+open * @modules jdk.jdi/com.sun.tools.jdi:+open
* @key stress * @key stress randomness
* *
* @summary converted from VM Testbase nsk/jdi/stress/serial/mixed002. * @summary converted from VM Testbase nsk/jdi/stress/serial/mixed002.
* VM Testbase keywords: [stress, jpda, jdi, feature_jdk6_jpda, vm6] * VM Testbase keywords: [stress, jpda, jdi, feature_jdk6_jpda, vm6]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -25,7 +25,7 @@
/* /*
* @test * @test
* @modules jdk.jdi/com.sun.tools.jdi:+open * @modules jdk.jdi/com.sun.tools.jdi:+open
* @key stress * @key stress randomness
* *
* @summary converted from VM Testbase nsk/jdi/stress/serial/monitorEvents002. * @summary converted from VM Testbase nsk/jdi/stress/serial/monitorEvents002.
* VM Testbase keywords: [stress, quick, jpda, jdi, feature_jdk6_jpda, vm6] * VM Testbase keywords: [stress, quick, jpda, jdi, feature_jdk6_jpda, vm6]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,7 +24,7 @@
/* /*
* @test * @test
* @key stress * @key stress randomness
* *
* @summary converted from VM Testbase nsk/jdi/stress/serial/ownedMonitorsAndFrames002. * @summary converted from VM Testbase nsk/jdi/stress/serial/ownedMonitorsAndFrames002.
* VM Testbase keywords: [stress, quick, jpda, jdi, feature_jdk6_jpda, vm6] * VM Testbase keywords: [stress, quick, jpda, jdi, feature_jdk6_jpda, vm6]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jvmti/AttachOnDemand/attach020. * @summary converted from VM Testbase nsk/jvmti/AttachOnDemand/attach020.
* VM Testbase keywords: [jpda, jvmti, noras, feature_282, vm6, jdk, nonconcurrent] * VM Testbase keywords: [jpda, jvmti, noras, feature_282, vm6, jdk, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jvmti/AttachOnDemand/attach021. * @summary converted from VM Testbase nsk/jvmti/AttachOnDemand/attach021.
* VM Testbase keywords: [jpda, jvmti, noras, feature_282, vm6, jdk, nonconcurrent] * VM Testbase keywords: [jpda, jvmti, noras, feature_282, vm6, jdk, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jvmti/AttachOnDemand/attach022. * @summary converted from VM Testbase nsk/jvmti/AttachOnDemand/attach022.
* VM Testbase keywords: [jpda, jvmti, noras, feature_282, vm6, jdk, nonconcurrent] * VM Testbase keywords: [jpda, jvmti, noras, feature_282, vm6, jdk, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jvmti/CompiledMethodUnload/compmethunload001. * @summary converted from VM Testbase nsk/jvmti/CompiledMethodUnload/compmethunload001.
* VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent] * VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jvmti/GarbageCollectionFinish/gcfinish001. * @summary converted from VM Testbase nsk/jvmti/GarbageCollectionFinish/gcfinish001.
* VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent] * VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jvmti/GarbageCollectionStart/gcstart001. * @summary converted from VM Testbase nsk/jvmti/GarbageCollectionStart/gcstart001.
* VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent] * VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jvmti/GarbageCollectionStart/gcstart002. * @summary converted from VM Testbase nsk/jvmti/GarbageCollectionStart/gcstart002.
* VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent] * VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -39,7 +39,6 @@
package nsk.jvmti.IterateThroughHeap.abort; package nsk.jvmti.IterateThroughHeap.abort;
import java.util.Random;
import java.io.PrintStream; import java.io.PrintStream;
import nsk.share.*; import nsk.share.*;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -66,7 +66,6 @@
package nsk.jvmti.IterateThroughHeap.callbacks; package nsk.jvmti.IterateThroughHeap.callbacks;
import java.util.Random;
import java.io.PrintStream; import java.io.PrintStream;
import nsk.share.*; import nsk.share.*;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -22,7 +22,6 @@
*/ */
package nsk.jvmti.IterateThroughHeap.concrete_klass_filter; package nsk.jvmti.IterateThroughHeap.concrete_klass_filter;
import java.util.Random;
import java.io.PrintStream; import java.io.PrintStream;
import nsk.share.*; import nsk.share.*;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -22,7 +22,6 @@
*/ */
package nsk.jvmti.IterateThroughHeap.filter_tagged; package nsk.jvmti.IterateThroughHeap.filter_tagged;
import java.util.Random;
import java.io.PrintStream; import java.io.PrintStream;
import nsk.share.*; import nsk.share.*;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -22,7 +22,6 @@
*/ */
package nsk.jvmti.IterateThroughHeap.non_concrete_klass_filter; package nsk.jvmti.IterateThroughHeap.non_concrete_klass_filter;
import java.util.Random;
import java.io.PrintStream; import java.io.PrintStream;
import nsk.share.*; import nsk.share.*;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jvmti/ObjectFree/objfree001. * @summary converted from VM Testbase nsk/jvmti/ObjectFree/objfree001.
* VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent] * VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -25,6 +25,7 @@
/* /*
* @test * @test
* *
* @key randomness
* @summary converted from VM Testbase nsk/jvmti/RedefineClasses/StressRedefine. * @summary converted from VM Testbase nsk/jvmti/RedefineClasses/StressRedefine.
* VM Testbase keywords: [quick, jpda, jvmti, noras, redefine, javac, jdk] * VM Testbase keywords: [quick, jpda, jvmti, noras, redefine, javac, jdk]
* *

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -25,6 +25,7 @@
/* /*
* @test * @test
* *
* @key randomness
* @summary converted from VM Testbase nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption. * @summary converted from VM Testbase nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption.
* VM Testbase keywords: [quick, jpda, jvmti, noras, redefine, javac, jdk] * VM Testbase keywords: [quick, jpda, jvmti, noras, redefine, javac, jdk]
* *

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2007, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,13 +24,14 @@ package nsk.jvmti.ResourceExhausted;
import java.io.*; import java.io.*;
import java.util.Random; import java.util.Random;
import jdk.test.lib.Utils;
import nsk.share.Consts; import nsk.share.Consts;
public class resexhausted004 { public class resexhausted004 {
public static int run(String args[], PrintStream out) { public static int run(String args[], PrintStream out) {
Random selector = new Random(System.currentTimeMillis()); Random selector = Utils.getRandomInstance();
int r; int r;
for ( int i = 4 + selector.nextInt() & 3; i > 0; i-- ) { for ( int i = 4 + selector.nextInt() & 3; i > 0; i-- ) {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -25,6 +25,7 @@
/* /*
* @test * @test
* *
* @key randomness
* @summary converted from VM Testbase nsk/jvmti/ResourceExhausted/resexhausted004. * @summary converted from VM Testbase nsk/jvmti/ResourceExhausted/resexhausted004.
* VM Testbase keywords: [jpda, jvmti, noras, vm6, nonconcurrent, quarantine, exclude] * VM Testbase keywords: [jpda, jvmti, noras, vm6, nonconcurrent, quarantine, exclude]
* VM Testbase comments: 7013634 6606767 * VM Testbase comments: 7013634 6606767

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jvmti/scenarios/allocation/AP12/ap12t001. * @summary converted from VM Testbase nsk/jvmti/scenarios/allocation/AP12/ap12t001.
* VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent] * VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jvmti/scenarios/events/EM02/em02t002. * @summary converted from VM Testbase nsk/jvmti/scenarios/events/EM02/em02t002.
* VM Testbase keywords: [jpda, jvmti, onload_only_logic, noras, nonconcurrent] * VM Testbase keywords: [jpda, jvmti, onload_only_logic, noras, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jvmti/scenarios/events/EM02/em02t003. * @summary converted from VM Testbase nsk/jvmti/scenarios/events/EM02/em02t003.
* VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent] * VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jvmti/scenarios/events/EM02/em02t005. * @summary converted from VM Testbase nsk/jvmti/scenarios/events/EM02/em02t005.
* VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent] * VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jvmti/scenarios/events/EM02/em02t006. * @summary converted from VM Testbase nsk/jvmti/scenarios/events/EM02/em02t006.
* VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent] * VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent]

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,6 +24,7 @@
/* /*
* @test * @test
* @key randomness
* *
* @summary converted from VM Testbase nsk/jvmti/scenarios/events/EM07/em07t002. * @summary converted from VM Testbase nsk/jvmti/scenarios/events/EM07/em07t002.
* VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent] * VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent]

Some files were not shown because too many files have changed in this diff Show More