Merge
This commit is contained in:
commit
2731d62234
@ -205,7 +205,7 @@ define SetupJavaCompilationBody
|
||||
else ifeq ($$($1_COMPILER), interim)
|
||||
# Use java server if it is enabled, and the user does not want a specialized
|
||||
# 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
|
||||
|
||||
# How to launch the server. This must use JAVA_DETACH, which is the "big" java
|
||||
|
@ -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-----
|
@ -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-----
|
@ -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.
|
||||
#
|
||||
# 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_8859-16:2001
|
||||
alias ISO_8859-16
|
||||
alias ISO8859_16
|
||||
alias latin10
|
||||
alias l10
|
||||
alias csISO885916
|
||||
@ -697,7 +698,7 @@ charset x-euc-jp-linux EUC_JP_LINUX
|
||||
charset x-eucJP-Open EUC_JP_Open
|
||||
package sun.nio.cs.ext
|
||||
type template
|
||||
hisname EUC_JP_Solari
|
||||
hisname EUC_JP_Solaris
|
||||
ascii true
|
||||
alias EUC_JP_Solaris # JDK historical
|
||||
alias eucJP-open
|
||||
@ -1391,7 +1392,7 @@ charset x-IBM833 IBM833
|
||||
|
||||
charset x-IBM834 IBM834 # EBCDIC DBCS-only Korean
|
||||
package sun.nio.cs.ext
|
||||
type source
|
||||
type template
|
||||
alias cp834
|
||||
alias ibm834
|
||||
alias 834
|
||||
@ -1485,7 +1486,7 @@ charset x-IBM949 IBM949
|
||||
|
||||
charset x-IBM949C IBM949C
|
||||
package sun.nio.cs.ext
|
||||
type source
|
||||
type template
|
||||
alias cp949C # JDK historical
|
||||
alias ibm949C
|
||||
alias ibm-949C
|
||||
|
@ -1,2 +1,2 @@
|
||||
Github: https://raw.githubusercontent.com/publicsuffix/list/33c1c788decfed1052089fa27e3005fe4088dec3/public_suffix_list.dat
|
||||
Date: 2019-09-28
|
||||
Github: https://raw.githubusercontent.com/publicsuffix/list/cbbba1d234670453df9c930dfbf510c0474d4301/public_suffix_list.dat
|
||||
Date: 2020-04-24
|
||||
|
@ -79,7 +79,6 @@ exchange.aero
|
||||
express.aero
|
||||
federation.aero
|
||||
flight.aero
|
||||
freight.aero
|
||||
fuel.aero
|
||||
gliding.aero
|
||||
government.aero
|
||||
@ -213,6 +212,7 @@ ac.at
|
||||
co.at
|
||||
gv.at
|
||||
or.at
|
||||
sth.ac.at
|
||||
|
||||
// au : https://en.wikipedia.org/wiki/.au
|
||||
// http://www.auda.org.au/
|
||||
@ -241,7 +241,7 @@ wa.au
|
||||
// 3LDs
|
||||
act.edu.au
|
||||
catholic.edu.au
|
||||
eq.edu.au
|
||||
// eq.edu.au - Removed at the request of the Queensland Department of Education
|
||||
nsw.edu.au
|
||||
nt.edu.au
|
||||
qld.edu.au
|
||||
@ -719,11 +719,13 @@ gouv.ci
|
||||
*.ck
|
||||
!www.ck
|
||||
|
||||
// cl : https://en.wikipedia.org/wiki/.cl
|
||||
// cl : https://www.nic.cl
|
||||
// Confirmed by .CL registry <hsalgado@nic.cl>
|
||||
cl
|
||||
gov.cl
|
||||
gob.cl
|
||||
aprendemas.cl
|
||||
co.cl
|
||||
gob.cl
|
||||
gov.cl
|
||||
mil.cl
|
||||
|
||||
// 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)
|
||||
aland.fi
|
||||
|
||||
// fj : https://en.wikipedia.org/wiki/.fj
|
||||
*.fj
|
||||
// fj : http://domains.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
|
||||
@ -1368,7 +1381,7 @@ it
|
||||
gov.it
|
||||
edu.it
|
||||
// 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
|
||||
abr.it
|
||||
abruzzo.it
|
||||
@ -5886,14 +5899,9 @@ gov.rs
|
||||
in.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
|
||||
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
|
||||
@ -6038,9 +6046,12 @@ org.sn
|
||||
perso.sn
|
||||
univ.sn
|
||||
|
||||
// so : http://www.soregistry.com/
|
||||
// so : http://sonic.so/policies/
|
||||
so
|
||||
com.so
|
||||
edu.so
|
||||
gov.so
|
||||
me.so
|
||||
net.so
|
||||
org.so
|
||||
|
||||
@ -6510,7 +6521,7 @@ k12.ok.us
|
||||
k12.or.us
|
||||
k12.pa.us
|
||||
k12.pr.us
|
||||
k12.ri.us
|
||||
// k12.ri.us Removed at request of Kim Cournoyer <netsupport@staff.ri.net>
|
||||
k12.sc.us
|
||||
// k12.sd.us Bug 934131 - Removed at request of James Booze <James.Booze@k12.sd.us>
|
||||
k12.tn.us
|
||||
@ -6797,8 +6808,13 @@ yt
|
||||
مصر
|
||||
|
||||
// xn--e1a4c ("eu", Cyrillic) : EU
|
||||
// https://eurid.eu
|
||||
ею
|
||||
|
||||
// xn--qxa6a ("eu", Greek) : EU
|
||||
// https://eurid.eu
|
||||
ευ
|
||||
|
||||
// xn--mgbah1a3hjkrd ("Mauritania", Arabic) : MR
|
||||
موريتانيا
|
||||
|
||||
@ -6955,7 +6971,8 @@ yt
|
||||
ак.срб
|
||||
|
||||
// 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
|
||||
@ -7075,7 +7092,7 @@ org.zw
|
||||
|
||||
// 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.
|
||||
// aaa : 2015-02-26 American Automobile Association, Inc.
|
||||
aaa
|
||||
@ -7197,6 +7214,9 @@ alsace
|
||||
// alstom : 2015-07-30 ALSTOM
|
||||
alstom
|
||||
|
||||
// amazon : 2019-12-19 Amazon Registry Services, Inc.
|
||||
amazon
|
||||
|
||||
// americanexpress : 2015-07-31 American Express Travel Related Services Company, Inc.
|
||||
americanexpress
|
||||
|
||||
@ -7296,7 +7316,7 @@ auto
|
||||
// autos : 2014-01-09 DERAutos, LLC
|
||||
autos
|
||||
|
||||
// avianca : 2015-01-08 Aerovias del Continente Americano S.A. Avianca
|
||||
// avianca : 2015-01-08 Avianca Holdings S.A.
|
||||
avianca
|
||||
|
||||
// aws : 2015-06-25 Amazon Registry Services, Inc.
|
||||
@ -7374,7 +7394,7 @@ bcn
|
||||
// beats : 2015-05-14 Beats Electronics, LLC
|
||||
beats
|
||||
|
||||
// beauty : 2015-12-03 L'Oréal
|
||||
// beauty : 2015-12-03 XYZ.COM LLC
|
||||
beauty
|
||||
|
||||
// beer : 2014-01-09 Minds + Machines Group Limited
|
||||
@ -7587,9 +7607,6 @@ careers
|
||||
// cars : 2014-11-13 Cars Registry Limited
|
||||
cars
|
||||
|
||||
// cartier : 2014-06-23 Richemont DNS Inc.
|
||||
cartier
|
||||
|
||||
// casa : 2013-11-21 Minds + Machines Group Limited
|
||||
casa
|
||||
|
||||
@ -7668,9 +7685,6 @@ christmas
|
||||
// chrome : 2014-07-24 Charleston Road Registry Inc.
|
||||
chrome
|
||||
|
||||
// chrysler : 2015-07-30 FCA US LLC.
|
||||
chrysler
|
||||
|
||||
// church : 2014-02-06 Binky Moon, LLC
|
||||
church
|
||||
|
||||
@ -7836,7 +7850,7 @@ cuisinella
|
||||
// cymru : 2014-05-08 Nominet UK
|
||||
cymru
|
||||
|
||||
// cyou : 2015-01-22 Beijing Gamease Age Digital Technology Co., Ltd.
|
||||
// cyou : 2015-01-22 ShortDot SA
|
||||
cyou
|
||||
|
||||
// dabur : 2014-02-06 Dabur India Limited
|
||||
@ -7950,9 +7964,6 @@ docs
|
||||
// doctor : 2016-06-02 Binky Moon, LLC
|
||||
doctor
|
||||
|
||||
// dodge : 2015-07-30 FCA US LLC.
|
||||
dodge
|
||||
|
||||
// dog : 2014-12-04 Binky Moon, LLC
|
||||
dog
|
||||
|
||||
@ -8058,9 +8069,6 @@ eus
|
||||
// events : 2013-12-05 Binky Moon, LLC
|
||||
events
|
||||
|
||||
// everbank : 2014-05-15 EverBank
|
||||
everbank
|
||||
|
||||
// exchange : 2014-03-06 Binky Moon, LLC
|
||||
exchange
|
||||
|
||||
@ -8334,7 +8342,7 @@ gmail
|
||||
// gmbh : 2016-01-29 Binky Moon, LLC
|
||||
gmbh
|
||||
|
||||
// gmo : 2014-01-09 GMO Internet Pte. Ltd.
|
||||
// gmo : 2014-01-09 GMO Internet, Inc.
|
||||
gmo
|
||||
|
||||
// gmx : 2014-04-24 1&1 Mail & Media GmbH
|
||||
@ -8409,7 +8417,7 @@ guitars
|
||||
// guru : 2013-08-27 Binky Moon, LLC
|
||||
guru
|
||||
|
||||
// hair : 2015-12-03 L'Oréal
|
||||
// hair : 2015-12-03 XYZ.COM LLC
|
||||
hair
|
||||
|
||||
// hamburg : 2014-02-20 Hamburg Top-Level-Domain GmbH
|
||||
@ -8745,9 +8753,6 @@ kyoto
|
||||
// lacaixa : 2014-01-09 Fundación Bancaria Caixa d’Estalvis i Pensions de Barcelona, “la Caixa”
|
||||
lacaixa
|
||||
|
||||
// ladbrokes : 2015-08-06 LADBROKES INTERNATIONAL PLC
|
||||
ladbrokes
|
||||
|
||||
// lamborghini : 2015-06-04 Automobili Lamborghini S.p.A.
|
||||
lamborghini
|
||||
|
||||
@ -8760,9 +8765,6 @@ lancaster
|
||||
// lancia : 2015-07-31 Fiat Chrysler Automobiles N.V.
|
||||
lancia
|
||||
|
||||
// lancome : 2015-07-23 L'Oréal
|
||||
lancome
|
||||
|
||||
// land : 2013-09-10 Binky Moon, LLC
|
||||
land
|
||||
|
||||
@ -8814,9 +8816,6 @@ lexus
|
||||
// lgbt : 2014-05-08 Afilias Limited
|
||||
lgbt
|
||||
|
||||
// liaison : 2014-10-02 Liaison Technologies, Incorporated
|
||||
liaison
|
||||
|
||||
// lidl : 2014-09-18 Schwarz Domains und Services GmbH & Co. KG
|
||||
lidl
|
||||
|
||||
@ -8937,7 +8936,7 @@ maif
|
||||
// maison : 2013-12-05 Binky Moon, LLC
|
||||
maison
|
||||
|
||||
// makeup : 2015-01-15 L'Oréal
|
||||
// makeup : 2015-01-15 XYZ.COM LLC
|
||||
makeup
|
||||
|
||||
// man : 2014-12-04 MAN SE
|
||||
@ -9060,9 +9059,6 @@ money
|
||||
// monster : 2015-09-11 XYZ.COM LLC
|
||||
monster
|
||||
|
||||
// mopar : 2015-07-30 FCA US LLC.
|
||||
mopar
|
||||
|
||||
// mormon : 2013-12-05 IRI Domain Management, LLC ("Applicant")
|
||||
mormon
|
||||
|
||||
@ -9084,9 +9080,6 @@ mov
|
||||
// movie : 2015-02-05 Binky Moon, LLC
|
||||
movie
|
||||
|
||||
// movistar : 2014-10-16 Telefónica S.A.
|
||||
movistar
|
||||
|
||||
// msd : 2015-07-23 MSD Registry Holdings, Inc.
|
||||
msd
|
||||
|
||||
@ -9102,9 +9095,6 @@ mutual
|
||||
// nab : 2015-08-20 National Australia Bank Limited
|
||||
nab
|
||||
|
||||
// nadex : 2014-12-11 Nadex Domains, Inc.
|
||||
nadex
|
||||
|
||||
// nagoya : 2013-10-24 GMO Registry, Inc.
|
||||
nagoya
|
||||
|
||||
@ -9345,9 +9335,6 @@ photos
|
||||
// physio : 2014-05-01 PhysBiz Pty Ltd
|
||||
physio
|
||||
|
||||
// piaget : 2014-10-16 Richemont DNS Inc.
|
||||
piaget
|
||||
|
||||
// pics : 2013-11-14 Uniregistry, Corp.
|
||||
pics
|
||||
|
||||
@ -9459,7 +9446,7 @@ qpon
|
||||
// quebec : 2013-12-19 PointQuébec Inc
|
||||
quebec
|
||||
|
||||
// quest : 2015-03-26 Quest ION Limited
|
||||
// quest : 2015-03-26 XYZ.COM LLC
|
||||
quest
|
||||
|
||||
// qvc : 2015-07-30 QVC, Inc.
|
||||
@ -9789,7 +9776,7 @@ site
|
||||
// ski : 2015-04-09 Afilias Limited
|
||||
ski
|
||||
|
||||
// skin : 2015-01-15 L'Oréal
|
||||
// skin : 2015-01-15 XYZ.COM LLC
|
||||
skin
|
||||
|
||||
// sky : 2014-06-19 Sky International AG
|
||||
@ -9858,9 +9845,6 @@ spreadbetting
|
||||
// srl : 2015-05-07 InterNetX, Corp
|
||||
srl
|
||||
|
||||
// srt : 2015-07-30 FCA US LLC.
|
||||
srt
|
||||
|
||||
// stada : 2014-11-13 STADA Arzneimittel AG
|
||||
stada
|
||||
|
||||
@ -9987,9 +9971,6 @@ tech
|
||||
// technology : 2013-09-13 Binky Moon, LLC
|
||||
technology
|
||||
|
||||
// telefonica : 2014-10-16 Telefónica S.A.
|
||||
telefonica
|
||||
|
||||
// temasek : 2014-08-07 Temasek Holdings (Private) Limited
|
||||
temasek
|
||||
|
||||
@ -10083,7 +10064,7 @@ trading
|
||||
// training : 2013-11-07 Binky Moon, LLC
|
||||
training
|
||||
|
||||
// travel : Dog Beach, LLC
|
||||
// travel : 2015-10-09 Dog Beach, LLC
|
||||
travel
|
||||
|
||||
// travelchannel : 2015-07-02 Lifestyle Domain Holdings, Inc.
|
||||
@ -10122,9 +10103,6 @@ ubank
|
||||
// ubs : 2014-12-11 UBS AG
|
||||
ubs
|
||||
|
||||
// uconnect : 2015-07-30 FCA US LLC.
|
||||
uconnect
|
||||
|
||||
// unicom : 2015-10-15 China United Network Communications Corporation Limited
|
||||
unicom
|
||||
|
||||
@ -10194,9 +10172,6 @@ visa
|
||||
// vision : 2013-12-05 Binky Moon, LLC
|
||||
vision
|
||||
|
||||
// vistaprint : 2014-09-18 Vistaprint Limited
|
||||
vistaprint
|
||||
|
||||
// viva : 2014-11-07 Saudi Telecom Company
|
||||
viva
|
||||
|
||||
@ -10245,9 +10220,6 @@ wang
|
||||
// wanggou : 2014-12-18 Amazon Registry Services, Inc.
|
||||
wanggou
|
||||
|
||||
// warman : 2015-06-18 Weir Group IP Limited
|
||||
warman
|
||||
|
||||
// watch : 2013-11-14 Binky Moon, LLC
|
||||
watch
|
||||
|
||||
@ -10362,7 +10334,7 @@ xin
|
||||
// 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.
|
||||
@ -10377,7 +10349,7 @@ xin
|
||||
// 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
|
||||
@ -10437,10 +10409,13 @@ xin
|
||||
// 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--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
|
||||
@ -10458,16 +10433,13 @@ xin
|
||||
// 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--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
|
||||
@ -10497,7 +10469,7 @@ xin
|
||||
// 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)
|
||||
@ -10506,6 +10478,9 @@ xin
|
||||
// xn--j1aef : 2015-01-15 VeriSign Sarl
|
||||
ком
|
||||
|
||||
// xn--jlq480n2rg : 2019-12-19 Amazon Registry Services, Inc.
|
||||
亚马逊
|
||||
|
||||
// xn--jlq61u9w7b : 2015-01-08 Nokia Corporation
|
||||
诺基亚
|
||||
|
||||
@ -10566,7 +10541,7 @@ xin
|
||||
// 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
|
||||
@ -10641,7 +10616,7 @@ yahoo
|
||||
// yamaxun : 2014-12-18 Amazon Registry Services, Inc.
|
||||
yamaxun
|
||||
|
||||
// yandex : 2014-04-10 YANDEX, LLC
|
||||
// yandex : 2014-04-10 Yandex Europe B.V.
|
||||
yandex
|
||||
|
||||
// yodobashi : 2014-11-20 YODOBASHI CAMERA CO.,LTD.
|
||||
@ -10691,6 +10666,12 @@ cc.ua
|
||||
inf.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
|
||||
// Submitted by Przemyslaw Plewa <it-admin@domena.pl>
|
||||
beep.pl
|
||||
@ -10808,6 +10789,10 @@ s3-website.eu-west-2.amazonaws.com
|
||||
s3-website.eu-west-3.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/
|
||||
// Submitted by Team Amune <cert@amune.org>
|
||||
t3l3p0rt.net
|
||||
@ -10842,12 +10827,6 @@ sweetpepper.org
|
||||
// Submitted by Vincent Tseng <vincenttseng@asustor.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
|
||||
// Submitted by Andreas Weise <a.weise@avm.de>
|
||||
myfritz.net
|
||||
@ -10984,8 +10963,9 @@ certmgr.org
|
||||
xenapponazure.com
|
||||
|
||||
// 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.team
|
||||
|
||||
// ClearVox : http://www.clearvox.nl/
|
||||
// Submitted by Leon Rowland <leon@clearvox.nl>
|
||||
@ -11000,6 +10980,10 @@ cleverapps.io
|
||||
*.lcl.dev
|
||||
*.stg.dev
|
||||
|
||||
// Clic2000 : https://clic2000.fr
|
||||
// Submitted by Mathilde Blanchemanche <mathilde@clic2000.fr>
|
||||
clic2000.net
|
||||
|
||||
// Cloud66 : https://www.cloud66.com/
|
||||
// Submitted by Khash Sajadi <khash@cloud66.com>
|
||||
c66.me
|
||||
@ -11082,6 +11066,15 @@ co.no
|
||||
webhosting.be
|
||||
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
|
||||
// Submitted by Rene Marticke <rmarticke@cosimo.de>
|
||||
dyn.cosidns.de
|
||||
@ -11106,6 +11099,18 @@ realm.cz
|
||||
// Submitted by Jonathan Rudenberg <jonathan@cupcake.io>
|
||||
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/
|
||||
// Submitted by Dominic Luechinger <dol@cyon.ch>
|
||||
cyon.link
|
||||
@ -11133,11 +11138,23 @@ firm.dk
|
||||
reg.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/
|
||||
// Submitted by Daniil Burdakov <icqkill@gmail.com>
|
||||
*.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/
|
||||
// Submitted by Peter Palfrader / Debian Sysadmin Team <dsa-publicsuffixlist@debian.org>
|
||||
debian.net
|
||||
@ -11511,6 +11528,10 @@ dynv6.net
|
||||
// Submitted by Vladimir Dudr <info@e4you.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
|
||||
// Submitted by Thomas Cottier <thomas.cottier@enalean.com>
|
||||
mytuleap.com
|
||||
@ -11603,6 +11624,10 @@ twmail.org
|
||||
mymailer.com.tw
|
||||
url.tw
|
||||
|
||||
// Fabrica Technologies, Inc. : https://www.fabrica.dev/
|
||||
// Submitted by Eric Jiang <eric@fabrica.dev>
|
||||
onfabrica.com
|
||||
|
||||
// Facebook, Inc.
|
||||
// Submitted by Peter Ruibal <public-suffix@fb.com>
|
||||
apps.fbsbx.com
|
||||
@ -11686,6 +11711,7 @@ vologda.su
|
||||
// Fancy Bits, LLC : http://getchannels.com
|
||||
// Submitted by Aman Gupta <aman@getchannels.com>
|
||||
channelsdvr.net
|
||||
u.channelsdvr.net
|
||||
|
||||
// Fastly Inc. : http://www.fastly.com/
|
||||
// Submitted by Fastly Security <security@fastly.com>
|
||||
@ -11704,6 +11730,10 @@ global.ssl.fastly.net
|
||||
// Submitted by Likhachev Vasiliy <lihachev@fastvps.ru>
|
||||
fastpanel.direct
|
||||
fastvps-server.com
|
||||
myfast.space
|
||||
myfast.host
|
||||
fastvps.site
|
||||
fastvps.host
|
||||
|
||||
// Featherhead : https://featherhead.xyz/
|
||||
// Submitted by Simon Menke <simon@featherhead.xyz>
|
||||
@ -11717,6 +11747,13 @@ cloud.fedoraproject.org
|
||||
app.os.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/
|
||||
// submitted by Koen Van Isterdael <k.vanisterdael@fermax.be>
|
||||
mydobiss.com
|
||||
@ -11737,9 +11774,12 @@ firebaseapp.com
|
||||
|
||||
// Flynn : https://flynn.io
|
||||
// Submitted by Jonathan Rudenberg <jonathan@flynn.io>
|
||||
flynnhub.com
|
||||
flynnhosting.net
|
||||
|
||||
// Frederik Braun https://frederik-braun.com
|
||||
// Submitted by Frederik Braun <fb@frederik-braun.com>
|
||||
0e.vc
|
||||
|
||||
// Freebox : http://www.freebox.fr
|
||||
// Submitted by Romain Fliedel <rfliedel@freebox.fr>
|
||||
freebox-os.com
|
||||
@ -11773,8 +11813,9 @@ service.gov.uk
|
||||
gehirn.ne.jp
|
||||
usercontent.jp
|
||||
|
||||
// Gentlent, Limited : https://www.gentlent.com
|
||||
// Submitted by Tom Klein <tklein@gentlent.com>
|
||||
// Gentlent, Inc. : https://www.gentlent.com
|
||||
// Submitted by Tom Klein <tom@gentlent.com>
|
||||
gentapps.com
|
||||
lab.ms
|
||||
|
||||
// GitHub, Inc.
|
||||
@ -11819,6 +11860,7 @@ a.run.app
|
||||
web.app
|
||||
*.0emm.com
|
||||
appspot.com
|
||||
*.r.appspot.com
|
||||
blogspot.ae
|
||||
blogspot.al
|
||||
blogspot.am
|
||||
@ -11903,6 +11945,14 @@ publishproxy.com
|
||||
withgoogle.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
|
||||
// Submited by Arseniy Sokolov <security@hakaran.cz>
|
||||
fin.ci
|
||||
@ -11952,6 +12002,7 @@ col.ng
|
||||
firm.ng
|
||||
gen.ng
|
||||
ltd.ng
|
||||
ngo.ng
|
||||
ng.school
|
||||
sch.so
|
||||
|
||||
@ -12028,8 +12079,9 @@ pixolino.com
|
||||
ipifony.net
|
||||
|
||||
// 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
|
||||
schulserver.de
|
||||
test-iserv.de
|
||||
iserv.dev
|
||||
|
||||
@ -12072,6 +12124,10 @@ uni5.net
|
||||
// Submitted by Roy Keene <rkeene@knightpoint.com>
|
||||
knightpoint.systems
|
||||
|
||||
// KUROKU LTD : https://kuroku.ltd/
|
||||
// Submitted by DisposaBoy <security@oya.to>
|
||||
oya.to
|
||||
|
||||
// .KRD : http://nic.krd/data/krd/Registration%20Policy.pdf
|
||||
co.krd
|
||||
edu.krd
|
||||
@ -12211,8 +12267,8 @@ eu.meteorapp.com
|
||||
co.pl
|
||||
|
||||
// Microsoft Corporation : http://microsoft.com
|
||||
// Submitted by Justin Luk <juluk@microsoft.com>
|
||||
azurecontainer.io
|
||||
// Submitted by Mostafa Elzeiny <moelzein@microsoft.com>
|
||||
*.azurecontainer.io
|
||||
azurewebsites.net
|
||||
azure-mobile.net
|
||||
cloudapp.net
|
||||
@ -12258,6 +12314,7 @@ nctu.me
|
||||
// Netlify : https://www.netlify.com
|
||||
// Submitted by Jessica Parsons <jessica@netlify.com>
|
||||
bitballoon.com
|
||||
netlify.app
|
||||
netlify.com
|
||||
|
||||
// Neustar Inc.
|
||||
@ -12415,12 +12472,13 @@ pcloud.host
|
||||
nyc.mn
|
||||
|
||||
// NymNom : https://nymnom.com/
|
||||
// Submitted by Dave McCormack <dave.mccormack@nymnom.com>
|
||||
// Submitted by NymNom <psl@nymnom.com>
|
||||
nom.ae
|
||||
nom.af
|
||||
nom.ai
|
||||
nom.al
|
||||
nym.by
|
||||
nom.bz
|
||||
nym.bz
|
||||
nom.cl
|
||||
nym.ec
|
||||
@ -12442,6 +12500,7 @@ nom.li
|
||||
nym.li
|
||||
nym.lt
|
||||
nym.lu
|
||||
nom.lv
|
||||
nym.me
|
||||
nom.mk
|
||||
nym.mn
|
||||
@ -12466,6 +12525,10 @@ nom.uy
|
||||
nom.vc
|
||||
nom.vg
|
||||
|
||||
// Observable, Inc. : https://observablehq.com
|
||||
// Submitted by Mike Bostock <dns@observablehq.com>
|
||||
static.observableusercontent.com
|
||||
|
||||
// Octopodal Solutions, LLC. : https://ulterius.io/
|
||||
// Submitted by Andrew Sampson <andrew@ulterius.io>
|
||||
cya.gg
|
||||
@ -12486,6 +12549,10 @@ opencraft.hosting
|
||||
// Submitted by Yngve Pettersen <yngve@opera.com>
|
||||
operaunite.com
|
||||
|
||||
// Oursky Limited : https://skygear.io/
|
||||
// Submited by Skygear Developer <hello@skygear.io>
|
||||
skygearapp.com
|
||||
|
||||
// OutSystems
|
||||
// Submitted by Duarte Santos <domain-admin@outsystemscloud.com>
|
||||
outsystemscloud.com
|
||||
@ -12528,6 +12595,10 @@ gotpantheon.com
|
||||
// Submitted by Steve Leung <steveleung@peplink.com>
|
||||
mypep.link
|
||||
|
||||
// Perspecta : https://perspecta.com/
|
||||
// Submitted by Kenneth Van Alstyne <kvanalstyne@perspecta.com>
|
||||
perspecta.cloud
|
||||
|
||||
// Planet-Work : https://www.planet-work.com/
|
||||
// Submitted by Frédéric VANNIÈRE <f.vanniere@planet-work.com>
|
||||
on-web.fr
|
||||
@ -12537,6 +12608,12 @@ on-web.fr
|
||||
*.platform.sh
|
||||
*.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/
|
||||
// Submitted by Maximilian Schieder <maxi@zeug.co>
|
||||
dyn53.io
|
||||
@ -12578,6 +12655,10 @@ pubtls.org
|
||||
// Submitted by Xavier De Cock <xdecock@gmail.com>
|
||||
qualifioapp.com
|
||||
|
||||
// QuickBackend: https://www.quickbackend.com
|
||||
// Submitted by Dani Biro <dani@pymet.com>
|
||||
qbuser.com
|
||||
|
||||
// Redstar Consultants : https://www.redstarconsultants.com/
|
||||
// Submitted by Jons Slemmer <jons@redstarconsultants.com>
|
||||
instantcloud.cn
|
||||
@ -12590,6 +12671,11 @@ ras.ru
|
||||
// Submitted by Daniel Dent (https://www.danieldent.com/)
|
||||
qa2.com
|
||||
|
||||
// QCX
|
||||
// Submitted by Cassandra Beelen <cassandra@beelen.one>
|
||||
qcx.io
|
||||
*.sys.qcx.io
|
||||
|
||||
// QNAP System Inc : https://www.qnap.com
|
||||
// Submitted by Nick Chang <nickchang@qnap.com>
|
||||
dev-myqnapcloud.com
|
||||
@ -12612,6 +12698,7 @@ rackmaze.net
|
||||
|
||||
// Rancher Labs, Inc : https://rancher.com
|
||||
// Submitted by Vincent Fiduccia <domains@rancher.com>
|
||||
*.on-k3s.io
|
||||
*.on-rancher.cloud
|
||||
*.on-rio.io
|
||||
|
||||
@ -12665,6 +12752,10 @@ logoip.com
|
||||
// Submitted by Hanno Böck <hanno@schokokeks.org>
|
||||
schokokeks.net
|
||||
|
||||
// Scottish Government: https://www.gov.scot
|
||||
// Submitted by Martin Ellis <martin.ellis@gov.scot>
|
||||
gov.scot
|
||||
|
||||
// Scry Security : http://www.scrysec.com
|
||||
// Submitted by Shante Adam <shante@skyhat.io>
|
||||
scrysec.com
|
||||
@ -12682,6 +12773,10 @@ my-firewall.org
|
||||
myfirewall.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/
|
||||
// Submitted by Serhii Bulakh <support@drs.ua>
|
||||
biz.ua
|
||||
@ -12700,6 +12795,10 @@ myshopblocks.com
|
||||
// Submitted by Craig McMahon <craig@shopitcommerce.com>
|
||||
shopitsite.com
|
||||
|
||||
// shopware AG : https://shopware.com
|
||||
// Submitted by Jens Küper <cloud@shopware.com>
|
||||
shopware.store
|
||||
|
||||
// Siemens Mobility GmbH
|
||||
// Submitted by Oliver Graebner <security@mo-siemens.io>
|
||||
mo-siemens.io
|
||||
@ -12732,6 +12831,10 @@ static.land
|
||||
dev.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
|
||||
// Submitted by Antonis Kalipetis <akalipetis@sourcelair.com>
|
||||
apps.lair.io
|
||||
@ -12906,6 +13009,11 @@ inc.hk
|
||||
virtualuser.de
|
||||
virtual-user.de
|
||||
|
||||
// urown.net : https://urown.net
|
||||
// Submitted by Hostmaster <hostmaster@urown.net>
|
||||
urown.cloud
|
||||
dnsupdate.info
|
||||
|
||||
// .US
|
||||
// Submitted by Ed Moore <Ed.Moore@lib.de.us>
|
||||
lib.de.us
|
||||
@ -12926,6 +13034,10 @@ v-info.info
|
||||
// Submitted by Nathan van Bakel <info@voorloper.com>
|
||||
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
|
||||
// Submitted by Masayuki Note <masa@blade.wafflecell.com>
|
||||
wafflecell.com
|
||||
@ -12945,8 +13057,23 @@ wedeploy.sh
|
||||
remotewd.com
|
||||
|
||||
// Wikimedia Labs : https://wikitech.wikimedia.org
|
||||
// Submitted by Yuvi Panda <yuvipanda@wikimedia.org>
|
||||
// Submitted by Arturo Borrero Gonzalez <aborrero@wikimedia.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
|
||||
// Submitted by Julian Uphoff <publicsuffixlist@xenoncloud.net>
|
||||
@ -13010,7 +13137,10 @@ bss.design
|
||||
// Submitted by Emil Stahl <esp@zitcom.dk>
|
||||
basicserver.io
|
||||
virtualserver.io
|
||||
site.builder.nu
|
||||
enterprisecloud.nu
|
||||
|
||||
// Mintere : https://mintere.com/
|
||||
// Submitted by Ben Aubin <security@mintere.com>
|
||||
mintere.site
|
||||
|
||||
// ===END PRIVATE DOMAINS===
|
||||
|
@ -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.
|
||||
*
|
||||
* 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.
|
||||
// SystemDictionary::check_signature_loaders(Symbol* signature,
|
||||
// Klass* klass_being_linked,
|
||||
// Handle loader1, Handle loader2,
|
||||
// bool is_method, TRAPS)
|
||||
|
||||
|
@ -2297,8 +2297,8 @@ Klass* SystemDictionary::find_constrained_instance_or_array_klass(
|
||||
return klass;
|
||||
}
|
||||
|
||||
|
||||
bool SystemDictionary::add_loader_constraint(Symbol* class_name,
|
||||
Klass* klass_being_linked,
|
||||
Handle class_loader1,
|
||||
Handle class_loader2,
|
||||
Thread* THREAD) {
|
||||
@ -2336,6 +2336,12 @@ bool SystemDictionary::add_loader_constraint(Symbol* class_name,
|
||||
InstanceKlass* klass2 = find_class(d_hash2, constraint_name, dictionary2);
|
||||
bool result = constraints()->add_entry(constraint_name, klass1, class_loader1,
|
||||
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)) {
|
||||
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.
|
||||
//
|
||||
//
|
||||
// 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
|
||||
// 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.
|
||||
// Arrays are not added to the loader constraint table, their elements are.
|
||||
Symbol* SystemDictionary::check_signature_loaders(Symbol* signature,
|
||||
Klass* klass_being_linked,
|
||||
Handle loader1, Handle loader2,
|
||||
bool is_method, TRAPS) {
|
||||
// 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
|
||||
// arguments, we will want to recognize them and dig out class
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
@ -2486,7 +2493,6 @@ Symbol* SystemDictionary::check_signature_loaders(Symbol* signature,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
Method* SystemDictionary::find_method_handle_intrinsic(vmIntrinsics::ID iid,
|
||||
Symbol* signature,
|
||||
TRAPS) {
|
||||
|
@ -494,10 +494,10 @@ public:
|
||||
// Note: java_lang_Class::primitive_type is the inverse of java_mirror
|
||||
|
||||
// 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);
|
||||
static Symbol* check_signature_loaders(Symbol* signature, Handle loader1,
|
||||
Handle loader2, bool is_method, TRAPS);
|
||||
static Symbol* check_signature_loaders(Symbol* signature, Klass* klass_being_linked,
|
||||
Handle loader1, Handle loader2, bool is_method, TRAPS);
|
||||
|
||||
// JSR 292
|
||||
// find a java.lang.invoke.MethodHandle.invoke* method for a given signature
|
||||
@ -656,7 +656,12 @@ protected:
|
||||
public:
|
||||
static bool is_system_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.
|
||||
static bool is_nonpublic_Object_method(Method* m) {
|
||||
assert(m != NULL, "Unexpected NULL Method*");
|
||||
|
@ -69,11 +69,29 @@ DEBUG_ONLY(bool SystemDictionaryShared::_no_class_loading_should_happen = false;
|
||||
class DumpTimeSharedClassInfo: public CHeapObj<mtClass> {
|
||||
bool _excluded;
|
||||
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* _from_name;
|
||||
DTConstraint() : _name(NULL), _from_name(NULL) {}
|
||||
DTConstraint(Symbol* n, Symbol* fn) : _name(n), _from_name(fn) {}
|
||||
DTVerifierConstraint() : _name(NULL), _from_name(NULL) {}
|
||||
DTVerifierConstraint(Symbol* n, Symbol* fn) : _name(n), _from_name(fn) {
|
||||
_name->increment_refcount();
|
||||
_from_name->increment_refcount();
|
||||
}
|
||||
};
|
||||
|
||||
InstanceKlass* _klass;
|
||||
@ -81,8 +99,9 @@ public:
|
||||
int _id;
|
||||
int _clsfile_size;
|
||||
int _clsfile_crc32;
|
||||
GrowableArray<DTConstraint>* _verifier_constraints;
|
||||
GrowableArray<char>* _verifier_constraint_flags;
|
||||
GrowableArray<DTVerifierConstraint>* _verifier_constraints;
|
||||
GrowableArray<char>* _verifier_constraint_flags;
|
||||
GrowableArray<DTLoaderConstraint>* _loader_constraints;
|
||||
|
||||
DumpTimeSharedClassInfo() {
|
||||
_klass = NULL;
|
||||
@ -93,16 +112,18 @@ public:
|
||||
_excluded = false;
|
||||
_verifier_constraints = NULL;
|
||||
_verifier_constraint_flags = NULL;
|
||||
_loader_constraints = NULL;
|
||||
}
|
||||
|
||||
void add_verification_constraint(InstanceKlass* k, Symbol* name,
|
||||
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() {
|
||||
return SystemDictionaryShared::is_builtin(_klass);
|
||||
}
|
||||
|
||||
int num_constraints() {
|
||||
int num_verifier_constraints() {
|
||||
if (_verifier_constraint_flags != NULL) {
|
||||
return _verifier_constraint_flags->length();
|
||||
} 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) {
|
||||
it->push(&_klass);
|
||||
if (_verifier_constraints != NULL) {
|
||||
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->_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() {
|
||||
@ -202,19 +237,32 @@ public:
|
||||
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.
|
||||
struct RTConstraint {
|
||||
struct RTVerifierConstraint {
|
||||
u4 _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;
|
||||
int _num_constraints;
|
||||
int _num_verifier_constraints;
|
||||
int _num_loader_constraints;
|
||||
|
||||
// optional CrcInfo _crc; (only for UNREGISTERED classes)
|
||||
// optional RTConstraint _verifier_constraints[_num_constraints]
|
||||
// optional char _verifier_constraint_flags[_num_constraints]
|
||||
// optional CrcInfo _crc; (only for UNREGISTERED classes)
|
||||
// optional RTLoaderConstraint _loader_constraint_types[_num_loader_constraints]
|
||||
// optional RTVerifierConstraint _verifier_constraints[_num_verifier_constraints]
|
||||
// optional char _verifier_constraint_flags[_num_verifier_constraints]
|
||||
|
||||
private:
|
||||
static size_t header_size_size() {
|
||||
@ -227,34 +275,46 @@ private:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
static size_t verifier_constraints_size(int num_constraints) {
|
||||
return sizeof(RTConstraint) * num_constraints;
|
||||
static size_t verifier_constraints_size(int num_verifier_constraints) {
|
||||
return sizeof(RTVerifierConstraint) * num_verifier_constraints;
|
||||
}
|
||||
static size_t verifier_constraint_flags_size(int num_constraints) {
|
||||
return sizeof(char) * num_constraints;
|
||||
static size_t verifier_constraint_flags_size(int num_verifier_constraints) {
|
||||
return sizeof(char) * num_verifier_constraints;
|
||||
}
|
||||
static size_t loader_constraints_size(int num_loader_constraints) {
|
||||
return sizeof(RTLoaderConstraint) * num_loader_constraints;
|
||||
}
|
||||
|
||||
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() +
|
||||
crc_size(klass) +
|
||||
verifier_constraints_size(num_constraints) +
|
||||
verifier_constraint_flags_size(num_constraints);
|
||||
loader_constraints_size(num_loader_constraints) +
|
||||
verifier_constraints_size(num_verifier_constraints) +
|
||||
verifier_constraint_flags_size(num_verifier_constraints);
|
||||
}
|
||||
|
||||
private:
|
||||
size_t crc_offset() const {
|
||||
return header_size_size();
|
||||
}
|
||||
size_t verifier_constraints_offset() const {
|
||||
|
||||
size_t loader_constraints_offset() const {
|
||||
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 {
|
||||
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 {
|
||||
assert(0 <= i && i < _num_constraints, "sanity");
|
||||
void check_verifier_constraint_offset(int i) const {
|
||||
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:
|
||||
@ -262,20 +322,30 @@ public:
|
||||
assert(crc_size(_klass) > 0, "must be");
|
||||
return (CrcInfo*)(address(this) + crc_offset());
|
||||
}
|
||||
RTConstraint* verifier_constraints() {
|
||||
assert(_num_constraints > 0, "sanity");
|
||||
return (RTConstraint*)(address(this) + verifier_constraints_offset());
|
||||
RTVerifierConstraint* verifier_constraints() {
|
||||
assert(_num_verifier_constraints > 0, "sanity");
|
||||
return (RTVerifierConstraint*)(address(this) + verifier_constraints_offset());
|
||||
}
|
||||
RTConstraint* verifier_constraint_at(int i) {
|
||||
check_constraint_offset(i);
|
||||
RTVerifierConstraint* verifier_constraint_at(int i) {
|
||||
check_verifier_constraint_offset(i);
|
||||
return verifier_constraints() + i;
|
||||
}
|
||||
|
||||
char* verifier_constraint_flags() {
|
||||
assert(_num_constraints > 0, "sanity");
|
||||
assert(_num_verifier_constraints > 0, "sanity");
|
||||
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) {
|
||||
if (DynamicDumpSharedSpaces) {
|
||||
sym = DynamicArchive::original_to_target(sym);
|
||||
@ -290,19 +360,29 @@ public:
|
||||
c->_clsfile_size = info._clsfile_size;
|
||||
c->_clsfile_crc32 = info._clsfile_crc32;
|
||||
}
|
||||
_num_constraints = info.num_constraints();
|
||||
if (_num_constraints > 0) {
|
||||
RTConstraint* constraints = verifier_constraints();
|
||||
_num_verifier_constraints = info.num_verifier_constraints();
|
||||
_num_loader_constraints = info.num_loader_constraints();
|
||||
int i;
|
||||
if (_num_verifier_constraints > 0) {
|
||||
RTVerifierConstraint* vf_constraints = verifier_constraints();
|
||||
char* flags = verifier_constraint_flags();
|
||||
int i;
|
||||
for (i = 0; i < _num_constraints; i++) {
|
||||
constraints[i]._name = object_delta_u4(info._verifier_constraints->at(i)._name);
|
||||
constraints[i]._from_name = object_delta_u4(info._verifier_constraints->at(i)._from_name);
|
||||
for (i = 0; i < _num_verifier_constraints; i++) {
|
||||
vf_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);
|
||||
}
|
||||
for (i = 0; i < _num_constraints; i++) {
|
||||
for (i = 0; i < _num_verifier_constraints; 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) {
|
||||
_klass = DynamicArchive::original_to_target(info._klass);
|
||||
}
|
||||
@ -314,15 +394,8 @@ public:
|
||||
crc()->_clsfile_crc32 == clsfile_crc32;
|
||||
}
|
||||
|
||||
Symbol* get_constraint_name(int i) {
|
||||
return (Symbol*)(SharedBaseAddress + verifier_constraint_at(i)->_name);
|
||||
}
|
||||
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);
|
||||
char verifier_constraint_flag(int i) {
|
||||
check_verifier_constraint_offset(i);
|
||||
return verifier_constraint_flags()[i];
|
||||
}
|
||||
|
||||
@ -386,7 +459,6 @@ oop SystemDictionaryShared::shared_jar_manifest(int index) {
|
||||
return _shared_jar_manifests->obj_at(index);
|
||||
}
|
||||
|
||||
|
||||
Handle SystemDictionaryShared::get_shared_jar_manifest(int shared_path_index, TRAPS) {
|
||||
Handle manifest ;
|
||||
if (shared_jar_manifest(shared_path_index) == NULL) {
|
||||
@ -1034,7 +1106,7 @@ void SystemDictionaryShared::remove_dumptime_info(InstanceKlass* k) {
|
||||
}
|
||||
if (p->_verifier_constraints != NULL) {
|
||||
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 ) {
|
||||
constraint._name->decrement_refcount();
|
||||
}
|
||||
@ -1042,11 +1114,21 @@ void SystemDictionaryShared::remove_dumptime_info(InstanceKlass* k) {
|
||||
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;
|
||||
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);
|
||||
}
|
||||
|
||||
@ -1246,19 +1328,19 @@ bool SystemDictionaryShared::add_verification_constraint(InstanceKlass* k, Symbo
|
||||
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) {
|
||||
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) {
|
||||
_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++) {
|
||||
DTConstraint* p = vc_array->adr_at(i);
|
||||
DTVerifierConstraint* p = vc_array->adr_at(i);
|
||||
if (name == p->_name && from_name == p->_from_name) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
DTConstraint cons(name, from_name);
|
||||
DTVerifierConstraint cons(name, from_name);
|
||||
vc_array->append(cons);
|
||||
|
||||
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,
|
||||
TRAPS) {
|
||||
assert(!DumpSharedSpaces && UseSharedSpaces, "called at run time with CDS enabled only");
|
||||
RunTimeSharedClassInfo* record = RunTimeSharedClassInfo::get_for(klass);
|
||||
|
||||
int length = record->_num_constraints;
|
||||
int length = record->_num_verifier_constraints;
|
||||
if (length > 0) {
|
||||
for (int i = 0; i < length; i++) {
|
||||
Symbol* name = record->get_constraint_name(i);
|
||||
Symbol* from_name = record->get_constraint_from_name(i);
|
||||
char c = record->get_constraint_flag(i);
|
||||
RunTimeSharedClassInfo::RTVerifierConstraint* vc = record->verifier_constraint_at(i);
|
||||
Symbol* name = vc->name();
|
||||
Symbol* from_name = vc->from_name();
|
||||
char c = record->verifier_constraint_flag(i);
|
||||
|
||||
if (log_is_enabled(Trace, cds, verification)) {
|
||||
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 {
|
||||
size_t _shared_class_info_size;
|
||||
int _num_builtin_klasses;
|
||||
@ -1330,7 +1574,7 @@ public:
|
||||
|
||||
bool do_entry(InstanceKlass* k, DumpTimeSharedClassInfo& info) {
|
||||
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);
|
||||
}
|
||||
return true; // keep on iterating
|
||||
@ -1360,7 +1604,7 @@ public:
|
||||
|
||||
bool do_entry(InstanceKlass* k, DumpTimeSharedClassInfo& info) {
|
||||
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;
|
||||
record = (RunTimeSharedClassInfo*)MetaspaceShared::read_only_space_alloc(byte_size);
|
||||
record->init(info);
|
||||
|
@ -285,6 +285,9 @@ public:
|
||||
TRAPS) 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 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) {
|
||||
return (k->shared_classpath_index() != UNREGISTERED_INDEX);
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ bool ShenandoahConcurrentRoots::should_do_concurrent_roots() {
|
||||
}
|
||||
|
||||
bool ShenandoahConcurrentRoots::can_do_concurrent_class_unloading() {
|
||||
#if defined(X86) && !defined(SOLARIS)
|
||||
#if (defined(X86) || defined(AARCH64)) && !defined(SOLARIS)
|
||||
return ShenandoahCodeRootsStyle == 2 &&
|
||||
ClassUnloading;
|
||||
#else
|
||||
|
@ -148,9 +148,23 @@ void ShenandoahPhaseTimings::record_phase_time(Phase phase, double time) {
|
||||
void ShenandoahPhaseTimings::record_workers_start(Phase 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++) {
|
||||
worker_data(phase, ParPhase(i))->reset();
|
||||
// Special case: these phases can enter multiple times, need to 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) {
|
||||
@ -178,6 +192,9 @@ void ShenandoahPhaseTimings::flush_cycle_to_global() {
|
||||
for (uint i = 0; i < _num_phases; i++) {
|
||||
_global_data[i].add(_cycle_data[i]);
|
||||
_cycle_data[i] = 0;
|
||||
if (_worker_data[i] != NULL) {
|
||||
_worker_data[i]->reset();
|
||||
}
|
||||
}
|
||||
OrderAccess::fence();
|
||||
}
|
||||
|
@ -664,7 +664,9 @@ void LinkResolver::check_method_loader_constraints(const LinkInfo& link_info,
|
||||
|
||||
ResourceMark rm(THREAD);
|
||||
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);
|
||||
if (failed_type_symbol != NULL) {
|
||||
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
|
||||
Symbol* failed_type_symbol =
|
||||
SystemDictionary::check_signature_loaders(sig,
|
||||
/*klass_being_linked*/ NULL, // We are not linking class
|
||||
ref_loader, sel_loader,
|
||||
false,
|
||||
CHECK);
|
||||
|
@ -919,20 +919,22 @@ bool InstanceKlass::link_class_impl(TRAPS) {
|
||||
// fabricate new Method*s.
|
||||
// also does loader constraint checking
|
||||
//
|
||||
// initialize_vtable and initialize_itable need to be rerun for
|
||||
// a shared class if the class is not loaded by the NULL classloader.
|
||||
ClassLoaderData * loader_data = class_loader_data();
|
||||
if (!(is_shared() &&
|
||||
loader_data->is_the_null_class_loader_data())) {
|
||||
// initialize_vtable and initialize_itable need to be rerun
|
||||
// for a shared class if
|
||||
// 1) the class is loaded by custom class loader or
|
||||
// 2) the class is loaded by built-in class loader but failed to add archived loader constraints
|
||||
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);
|
||||
itable().initialize_itable(true, CHECK_false);
|
||||
}
|
||||
#ifdef ASSERT
|
||||
else {
|
||||
vtable().verify(tty, true);
|
||||
// In case itable verification is ever added.
|
||||
// itable().verify(tty, true);
|
||||
}
|
||||
vtable().verify(tty, true);
|
||||
// In case itable verification is ever added.
|
||||
// itable().verify(tty, true);
|
||||
#endif
|
||||
set_init_state(linked);
|
||||
if (JvmtiExport::should_post_class_prepare()) {
|
||||
|
@ -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.
|
||||
*
|
||||
* 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()) {
|
||||
ResourceMark rm(THREAD);
|
||||
Symbol* failed_type_symbol =
|
||||
SystemDictionary::check_signature_loaders(signature, target_loader,
|
||||
super_loader, true,
|
||||
CHECK_(false));
|
||||
SystemDictionary::check_signature_loaders(signature, _klass,
|
||||
target_loader, super_loader,
|
||||
true, CHECK_(false));
|
||||
if (failed_type_symbol != NULL) {
|
||||
stringStream ss;
|
||||
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);
|
||||
Symbol* failed_type_symbol =
|
||||
SystemDictionary::check_signature_loaders(m->signature(),
|
||||
_klass,
|
||||
method_holder_loader,
|
||||
interface_loader,
|
||||
true, CHECK);
|
||||
|
@ -525,6 +525,7 @@ static SpecialFlag const special_jvm_flags[] = {
|
||||
{ "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) },
|
||||
{ "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:
|
||||
{ "DefaultMaxRAMFraction", JDK_Version::jdk(8), JDK_Version::undefined(), JDK_Version::undefined() },
|
||||
|
@ -192,7 +192,7 @@ const size_t minimumSymbolTableSize = 1024;
|
||||
range(os::vm_allocation_granularity(), NOT_LP64(2*G) LP64_ONLY(8192*G)) \
|
||||
\
|
||||
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, \
|
||||
"Percentage (0-100) used to weight the current sample when " \
|
||||
|
@ -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.
|
||||
*
|
||||
* 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(); }
|
||||
|
||||
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(); }
|
||||
|
||||
// Null checks
|
||||
bool is_null() const { return _handle == NULL; }
|
||||
|
@ -339,7 +339,7 @@ void mutex_init() {
|
||||
#if INCLUDE_JVMTI
|
||||
def(CDSClassFileStream_lock , PaddedMutex , max_nonleaf, false, _safepoint_check_always);
|
||||
#endif
|
||||
def(DumpTimeTable_lock , PaddedMutex , leaf, true, _safepoint_check_never);
|
||||
def(DumpTimeTable_lock , PaddedMutex , leaf - 1, true, _safepoint_check_never);
|
||||
#endif // INCLUDE_CDS
|
||||
|
||||
#if INCLUDE_JVMCI
|
||||
|
@ -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.
|
||||
*
|
||||
* 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) {
|
||||
return Collections.emptySet();
|
||||
}
|
||||
Set<String> tagset = new HashSet<>();
|
||||
StringTokenizer tokens = new StringTokenizer(supportedLocaleString);
|
||||
Set<String> tagset = new HashSet<>(Math.max((int)(tokens.countTokens() / 0.75f) + 1, 16));
|
||||
while (tokens.hasMoreTokens()) {
|
||||
tagset.add(tokens.nextToken());
|
||||
}
|
||||
|
@ -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.
|
||||
*
|
||||
* 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) {
|
||||
return Collections.emptySet();
|
||||
}
|
||||
Set<String> tagset = new HashSet<>();
|
||||
StringTokenizer tokens = new StringTokenizer(supportedLocaleString);
|
||||
Set<String> tagset = new HashSet<>(Math.max((int)(tokens.countTokens() / 0.75f) + 1, 16));
|
||||
while (tokens.hasMoreTokens()) {
|
||||
tagset.add(tokens.nextToken());
|
||||
}
|
||||
|
@ -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
|
||||
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
|
||||
at https://mozilla.org/MPL/2.0/.
|
||||
|
||||
|
@ -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.
|
||||
*
|
||||
* 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.charset.Charset;
|
||||
@ -41,7 +41,7 @@ import static sun.nio.cs.CharsetMapping.*;
|
||||
public class IBM834 extends Charset
|
||||
{
|
||||
public IBM834() {
|
||||
super("x-IBM834", ExtendedCharsets.aliasesFor("x-IBM834"));
|
||||
super("x-IBM834", $ALIASES$);
|
||||
}
|
||||
|
||||
public boolean contains(Charset cs) {
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -23,7 +23,7 @@
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package sun.nio.cs.ext;
|
||||
package $PACKAGE$;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.CharsetDecoder;
|
||||
@ -36,7 +36,7 @@ public class IBM949C extends Charset implements HistoricallyNamedCharset
|
||||
{
|
||||
|
||||
public IBM949C() {
|
||||
super("x-IBM949C", ExtendedCharsets.aliasesFor("x-IBM949C"));
|
||||
super("x-IBM949C", $ALIASES$);
|
||||
}
|
||||
|
||||
public String historicalName() {
|
@ -33,7 +33,7 @@ import java.util.Map;
|
||||
*/
|
||||
public final class ApplicationLayout implements PathGroup.Facade<ApplicationLayout> {
|
||||
enum PathRole {
|
||||
RUNTIME, APP, LAUNCHERS, DESKTOP, APP_MODS, DLLS
|
||||
RUNTIME, APP, LAUNCHERS, DESKTOP, APP_MODS, DLLS, RELEASE
|
||||
}
|
||||
|
||||
ApplicationLayout(Map<Object, Path> paths) {
|
||||
@ -96,6 +96,13 @@ public final class ApplicationLayout implements PathGroup.Facade<ApplicationLayo
|
||||
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() {
|
||||
return new ApplicationLayout(Map.of(
|
||||
PathRole.LAUNCHERS, Path.of("bin"),
|
||||
@ -103,7 +110,8 @@ public final class ApplicationLayout implements PathGroup.Facade<ApplicationLayo
|
||||
PathRole.RUNTIME, Path.of("lib/runtime"),
|
||||
PathRole.DESKTOP, 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.DESKTOP, 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.DESKTOP, Path.of("Contents/Resources"),
|
||||
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")
|
||||
));
|
||||
}
|
||||
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -170,6 +170,11 @@ public class Arguments {
|
||||
setOptionValue("arguments", arguments);
|
||||
}),
|
||||
|
||||
JLINK_OPTIONS ("jlink-options", OptionCategories.PROPERTY, () -> {
|
||||
List<String> options = getArgumentList(popArg());
|
||||
setOptionValue("jlink-options", options);
|
||||
}),
|
||||
|
||||
ICON ("icon", OptionCategories.PROPERTY),
|
||||
|
||||
COPYRIGHT ("copyright", OptionCategories.PROPERTY),
|
||||
@ -264,6 +269,7 @@ public class Arguments {
|
||||
MODULE_PATH ("module-path", "p", OptionCategories.MODULAR),
|
||||
|
||||
BIND_SERVICES ("bind-services", OptionCategories.PROPERTY, () -> {
|
||||
showDeprecation("bind-services");
|
||||
setOptionValue("bind-services", true);
|
||||
}),
|
||||
|
||||
@ -579,7 +585,11 @@ public class Arguments {
|
||||
CLIOptions.PREDEFINED_RUNTIME_IMAGE.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) {
|
||||
throw new PackagerException("ERR_BothMainJarAndModule");
|
||||
@ -809,4 +819,8 @@ public class Arguments {
|
||||
return null;
|
||||
}
|
||||
|
||||
private static void showDeprecation(String option) {
|
||||
Log.error(MessageFormat.format(I18N.getString("warning.deprecation"),
|
||||
option));
|
||||
}
|
||||
}
|
||||
|
@ -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.
|
||||
*
|
||||
* 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.ADD_MODULES.getID(),
|
||||
StandardBundlerParam.LIMIT_MODULES.getID(),
|
||||
StandardBundlerParam.FILE_ASSOCIATIONS.getID()
|
||||
StandardBundlerParam.FILE_ASSOCIATIONS.getID(),
|
||||
StandardBundlerParam.JLINK_OPTIONS.getID()
|
||||
));
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
|
@ -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.
|
||||
*
|
||||
* 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);
|
||||
Set<String> limitModules =
|
||||
StandardBundlerParam.LIMIT_MODULES.fetchFrom(params);
|
||||
List<String> options =
|
||||
StandardBundlerParam.JLINK_OPTIONS.fetchFrom(params);
|
||||
Path outputDir = imageBuilder.getRuntimeRoot();
|
||||
File mainJar = getMainJar(params);
|
||||
ModFile.ModType mainJarType = ModFile.ModType.Unknown;
|
||||
@ -181,7 +183,7 @@ final class JLinkBundlerHelper {
|
||||
}
|
||||
|
||||
runJLink(outputDir, modulePath, modules, limitModules,
|
||||
new HashMap<String,String>(), bindServices);
|
||||
options, bindServices);
|
||||
|
||||
imageBuilder.prepareApplicationFiles(params);
|
||||
}
|
||||
@ -316,7 +318,7 @@ final class JLinkBundlerHelper {
|
||||
|
||||
private static void runJLink(Path output, List<Path> modulePath,
|
||||
Set<String> modules, Set<String> limitModules,
|
||||
HashMap<String, String> user, boolean bindServices)
|
||||
List<String> options, boolean bindServices)
|
||||
throws PackagerException {
|
||||
|
||||
// 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(getStringList(limitModules));
|
||||
}
|
||||
if (user != null && !user.isEmpty()) {
|
||||
for (Map.Entry<String, String> entry : user.entrySet()) {
|
||||
args.add(entry.getKey());
|
||||
args.add(entry.getValue());
|
||||
}
|
||||
} else {
|
||||
args.add("--strip-native-commands");
|
||||
args.add("--strip-debug");
|
||||
args.add("--no-man-pages");
|
||||
args.add("--no-header-files");
|
||||
if (bindServices) {
|
||||
args.add("--bind-services");
|
||||
if (options != null) {
|
||||
for (String option : options) {
|
||||
if (option.startsWith("--output") ||
|
||||
option.startsWith("--add-modules") ||
|
||||
option.startsWith("--module-path")) {
|
||||
throw new PackagerException("error.blocked.option", option);
|
||||
}
|
||||
args.add(option);
|
||||
}
|
||||
}
|
||||
if (bindServices) {
|
||||
args.add("--bind-services");
|
||||
}
|
||||
|
||||
StringWriter writer = new StringWriter();
|
||||
PrintWriter pw = new PrintWriter(writer);
|
||||
|
@ -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.
|
||||
*
|
||||
* 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 final static String DEFAULT_VERSION = "1.0";
|
||||
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,
|
||||
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(",")))
|
||||
);
|
||||
|
||||
@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")
|
||||
static final BundlerParamInfo<Set<String>> LIMIT_MODULES =
|
||||
new StandardBundlerParam<>(
|
||||
|
@ -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.
|
||||
*
|
||||
* 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.ADD_LAUNCHER.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.INSTALL_DIR.getId(), USE.INSTALL);
|
||||
|
@ -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.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -107,6 +107,12 @@ Generic Options:\n\
|
||||
\ --bind-services \n\
|
||||
\ Pass on --bind-services option to jlink (which will link in \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\
|
||||
\ Path of the predefined runtime image that will be copied into\n\
|
||||
\ the application image\n\
|
||||
|
@ -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.
|
||||
#
|
||||
# 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.advice=Please install {0} {1} or newer
|
||||
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.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_BundlerConfigException=Bundler {0} skipped because of a configuration problem: {1} \n\
|
||||
|
@ -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.
|
||||
#
|
||||
# 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.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.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.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_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}
|
||||
|
@ -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.
|
||||
#
|
||||
# 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.advice=\u8BF7\u5B89\u88C5 {0} {1}\u6216\u66F4\u65B0\u7248\u672C
|
||||
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.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_BundlerConfigException=\u7531\u4E8E\u914D\u7F6E\u95EE\u9898, \u8DF3\u8FC7\u4E86\u6253\u5305\u7A0B\u5E8F{0}: {1} \n\u4FEE\u590D\u5EFA\u8BAE: {2}
|
||||
|
@ -323,6 +323,7 @@ hotspot_appcds_dynamic = \
|
||||
-runtime/cds/appcds/cacheObject \
|
||||
-runtime/cds/appcds/customLoader \
|
||||
-runtime/cds/appcds/dynamicArchive \
|
||||
-runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java \
|
||||
-runtime/cds/appcds/javaldr/ArrayTest.java \
|
||||
-runtime/cds/appcds/javaldr/GCSharedStringsDuringDump.java \
|
||||
-runtime/cds/appcds/javaldr/HumongousDuringDump.java \
|
||||
|
@ -135,6 +135,131 @@ import java.io.IOException;
|
||||
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu
|
||||
* 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 static void main(String[] args) throws IOException {
|
||||
TestGCBasher.main(args);
|
||||
|
@ -77,8 +77,6 @@ public class invocationC1Tests {
|
||||
int major_version = klassbuf[6] << 8 | klassbuf[7];
|
||||
runTest("invokespecial.Generator", String.valueOf(major_version));
|
||||
runTest("invokeinterface.Generator", String.valueOf(major_version));
|
||||
|
||||
// Uncomment this test once JDK-8226588 is fixed
|
||||
// runTest("invokevirtual.Generator", String.valueOf(major_version));
|
||||
runTest("invokevirtual.Generator", String.valueOf(major_version));
|
||||
}
|
||||
}
|
||||
|
@ -73,8 +73,7 @@ public class invokevirtualTests {
|
||||
byte klassbuf[] = InMemoryJavaCompiler.compile("blah", "public class blah { }");
|
||||
int major_version = klassbuf[6] << 8 | klassbuf[7];
|
||||
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.
|
||||
runTest("51", "-Xint"); // JDK-7
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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) {}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ClassObjectReference/reflectedType/reflectype002.
|
||||
* VM Testbase keywords: [jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ClassUnloadEvent/className/classname001.
|
||||
* VM Testbase keywords: [jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ClassUnloadEvent/classSignature/signature001.
|
||||
* VM Testbase keywords: [jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ClassUnloadRequest/addClassExclusionFilter/exclfilter001.
|
||||
* VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ClassUnloadRequest/addClassFilter/filter001.
|
||||
* VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -23,6 +23,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ObjectReference/referringObjects/referringObjects002.
|
||||
* VM Testbase keywords: [quick, jpda, jdi, feature_jdk6_jpda, vm6]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ReferenceType/allFields/allfields003.
|
||||
* VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ReferenceType/allMethods/allmethods003.
|
||||
* VM Testbase keywords: [jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ReferenceType/classObject/classobj002.
|
||||
* VM Testbase keywords: [jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ReferenceType/equals/equals002.
|
||||
* VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ReferenceType/failedToInitialize/failedtoinit002.
|
||||
* VM Testbase keywords: [jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ReferenceType/fieldByName/fieldbyname003.
|
||||
* VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ReferenceType/fields/fields003.
|
||||
* VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ReferenceType/hashCode/hashcode002.
|
||||
* VM Testbase keywords: [jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ReferenceType/isAbstract/isabstract002.
|
||||
* VM Testbase keywords: [jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ReferenceType/isInitialized/isinit002.
|
||||
* VM Testbase keywords: [jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ReferenceType/isPrepared/isprepared002.
|
||||
* VM Testbase keywords: [jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ReferenceType/isVerified/isverified002.
|
||||
* VM Testbase keywords: [jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ReferenceType/methods/methods003.
|
||||
* VM Testbase keywords: [jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ReferenceType/methodsByName_s/methbyname_s003.
|
||||
* VM Testbase keywords: [jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ReferenceType/methodsByName_ss/methbyname_ss003.
|
||||
* VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ReferenceType/name/name002.
|
||||
* VM Testbase keywords: [jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ReferenceType/sourceName/sourcename002.
|
||||
* VM Testbase keywords: [jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ReferenceType/visibleFields/visibfield003.
|
||||
* VM Testbase keywords: [jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/ReferenceType/visibleMethods/visibmethod003.
|
||||
* VM Testbase keywords: [diehard, jpda, jdi, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -23,6 +23,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/VirtualMachine/instanceCounts/instancecounts003.
|
||||
* VM Testbase keywords: [quick, jpda, jdi, feature_jdk6_jpda, vm6]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,7 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key stress
|
||||
* @key stress randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/stress/serial/forceEarlyReturn002.
|
||||
* VM Testbase keywords: [stress, quick, jpda, jdi, feature_jdk6_jpda, vm6]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,7 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key stress
|
||||
* @key stress randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/stress/serial/heapwalking002.
|
||||
* VM Testbase keywords: [stress, jpda, jdi, feature_jdk6_jpda, vm6]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -25,7 +25,7 @@
|
||||
/*
|
||||
* @test
|
||||
* @modules jdk.jdi/com.sun.tools.jdi:+open
|
||||
* @key stress
|
||||
* @key stress randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/stress/serial/mixed002.
|
||||
* VM Testbase keywords: [stress, jpda, jdi, feature_jdk6_jpda, vm6]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -25,7 +25,7 @@
|
||||
/*
|
||||
* @test
|
||||
* @modules jdk.jdi/com.sun.tools.jdi:+open
|
||||
* @key stress
|
||||
* @key stress randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/stress/serial/monitorEvents002.
|
||||
* VM Testbase keywords: [stress, quick, jpda, jdi, feature_jdk6_jpda, vm6]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,7 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key stress
|
||||
* @key stress randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jdi/stress/serial/ownedMonitorsAndFrames002.
|
||||
* VM Testbase keywords: [stress, quick, jpda, jdi, feature_jdk6_jpda, vm6]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jvmti/AttachOnDemand/attach020.
|
||||
* VM Testbase keywords: [jpda, jvmti, noras, feature_282, vm6, jdk, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jvmti/AttachOnDemand/attach021.
|
||||
* VM Testbase keywords: [jpda, jvmti, noras, feature_282, vm6, jdk, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jvmti/AttachOnDemand/attach022.
|
||||
* VM Testbase keywords: [jpda, jvmti, noras, feature_282, vm6, jdk, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jvmti/CompiledMethodUnload/compmethunload001.
|
||||
* VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jvmti/GarbageCollectionFinish/gcfinish001.
|
||||
* VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jvmti/GarbageCollectionStart/gcstart001.
|
||||
* VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jvmti/GarbageCollectionStart/gcstart002.
|
||||
* VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -39,7 +39,6 @@
|
||||
|
||||
package nsk.jvmti.IterateThroughHeap.abort;
|
||||
|
||||
import java.util.Random;
|
||||
import java.io.PrintStream;
|
||||
|
||||
import nsk.share.*;
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -66,7 +66,6 @@
|
||||
|
||||
package nsk.jvmti.IterateThroughHeap.callbacks;
|
||||
|
||||
import java.util.Random;
|
||||
import java.io.PrintStream;
|
||||
|
||||
import nsk.share.*;
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -22,7 +22,6 @@
|
||||
*/
|
||||
package nsk.jvmti.IterateThroughHeap.concrete_klass_filter;
|
||||
|
||||
import java.util.Random;
|
||||
import java.io.PrintStream;
|
||||
|
||||
import nsk.share.*;
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -22,7 +22,6 @@
|
||||
*/
|
||||
package nsk.jvmti.IterateThroughHeap.filter_tagged;
|
||||
|
||||
import java.util.Random;
|
||||
import java.io.PrintStream;
|
||||
|
||||
import nsk.share.*;
|
||||
|
@ -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.
|
||||
*
|
||||
* 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;
|
||||
|
||||
import java.util.Random;
|
||||
import java.io.PrintStream;
|
||||
|
||||
import nsk.share.*;
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jvmti/ObjectFree/objfree001.
|
||||
* VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -25,6 +25,7 @@
|
||||
/*
|
||||
* @test
|
||||
*
|
||||
* @key randomness
|
||||
* @summary converted from VM Testbase nsk/jvmti/RedefineClasses/StressRedefine.
|
||||
* VM Testbase keywords: [quick, jpda, jvmti, noras, redefine, javac, jdk]
|
||||
*
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -25,6 +25,7 @@
|
||||
/*
|
||||
* @test
|
||||
*
|
||||
* @key randomness
|
||||
* @summary converted from VM Testbase nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption.
|
||||
* VM Testbase keywords: [quick, jpda, jvmti, noras, redefine, javac, jdk]
|
||||
*
|
||||
|
@ -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.
|
||||
*
|
||||
* 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.util.Random;
|
||||
import jdk.test.lib.Utils;
|
||||
|
||||
import nsk.share.Consts;
|
||||
|
||||
public class resexhausted004 {
|
||||
public static int run(String args[], PrintStream out) {
|
||||
|
||||
Random selector = new Random(System.currentTimeMillis());
|
||||
Random selector = Utils.getRandomInstance();
|
||||
int r;
|
||||
|
||||
for ( int i = 4 + selector.nextInt() & 3; i > 0; i-- ) {
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -25,6 +25,7 @@
|
||||
/*
|
||||
* @test
|
||||
*
|
||||
* @key randomness
|
||||
* @summary converted from VM Testbase nsk/jvmti/ResourceExhausted/resexhausted004.
|
||||
* VM Testbase keywords: [jpda, jvmti, noras, vm6, nonconcurrent, quarantine, exclude]
|
||||
* VM Testbase comments: 7013634 6606767
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jvmti/scenarios/allocation/AP12/ap12t001.
|
||||
* VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jvmti/scenarios/events/EM02/em02t002.
|
||||
* VM Testbase keywords: [jpda, jvmti, onload_only_logic, noras, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jvmti/scenarios/events/EM02/em02t003.
|
||||
* VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jvmti/scenarios/events/EM02/em02t005.
|
||||
* VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jvmti/scenarios/events/EM02/em02t006.
|
||||
* VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent]
|
||||
|
@ -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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key randomness
|
||||
*
|
||||
* @summary converted from VM Testbase nsk/jvmti/scenarios/events/EM07/em07t002.
|
||||
* VM Testbase keywords: [jpda, jvmti, noras, nonconcurrent]
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user