--- a/doc/building.html Sat Oct 12 08:49:59 2019 +0530
+++ b/doc/building.html Tue Oct 15 14:19:55 2019 +0530
@@ -281,7 +281,7 @@
<tbody>
<tr class="odd">
<td style="text-align: left;">Linux</td>
-<td style="text-align: left;">gcc 8.2.0</td>
+<td style="text-align: left;">gcc 8.3.0</td>
</tr>
<tr class="even">
<td style="text-align: left;">macOS</td>
@@ -293,14 +293,14 @@
</tr>
<tr class="even">
<td style="text-align: left;">Windows</td>
-<td style="text-align: left;">Microsoft Visual Studio 2017 update 15.9.6</td>
+<td style="text-align: left;">Microsoft Visual Studio 2017 update 15.9.16</td>
</tr>
</tbody>
</table>
<p>All compilers are expected to be able to compile to the C99 language standard, as some C99 features are used in the source code. Microsoft Visual Studio doesn't fully support C99 so in practice shared code is limited to using C99 features that it does support.</p>
<h3 id="gcc">gcc</h3>
<p>The minimum accepted version of gcc is 4.8. Older versions will generate a warning by <code>configure</code> and are unlikely to work.</p>
-<p>The JDK is currently known to be able to compile with at least version 7.4 of gcc.</p>
+<p>The JDK is currently known to be able to compile with at least version 8.3 of gcc.</p>
<p>In general, any version between these two should be usable.</p>
<h3 id="clang">clang</h3>
<p>The minimum accepted version of clang is 3.2. Older versions will not be accepted by <code>configure</code>.</p>
--- a/doc/building.md Sat Oct 12 08:49:59 2019 +0530
+++ b/doc/building.md Tue Oct 15 14:19:55 2019 +0530
@@ -323,10 +323,10 @@
Operating system Toolchain version
------------------ -------------------------------------------------------
- Linux gcc 8.2.0
+ Linux gcc 8.3.0
macOS Apple Xcode 10.1 (using clang 10.0.0)
Solaris Oracle Solaris Studio 12.6 (with compiler version 5.15)
- Windows Microsoft Visual Studio 2017 update 15.9.6
+ Windows Microsoft Visual Studio 2017 update 15.9.16
All compilers are expected to be able to compile to the C99 language standard,
as some C99 features are used in the source code. Microsoft Visual Studio
@@ -338,7 +338,7 @@
The minimum accepted version of gcc is 4.8. Older versions will generate a warning
by `configure` and are unlikely to work.
-The JDK is currently known to be able to compile with at least version 7.4 of
+The JDK is currently known to be able to compile with at least version 8.3 of
gcc.
In general, any version between these two should be usable.
--- a/make/RunTestsPrebuilt.gmk Sat Oct 12 08:49:59 2019 +0530
+++ b/make/RunTestsPrebuilt.gmk Tue Oct 15 14:19:55 2019 +0530
@@ -230,7 +230,7 @@
NUM_CORES := $(shell /usr/sbin/sysctl -n hw.ncpu)
MEMORY_SIZE := $(shell $(EXPR) `/usr/sbin/sysctl -n hw.memsize` / 1024 / 1024)
else ifeq ($(OPENJDK_TARGET_OS), solaris)
- NUM_CORES := $(shell LC_MESSAGES=C /usr/sbin/psrinfo -v | $(GREP) -c on-line)
+ NUM_CORES := $(shell /usr/sbin/psrinfo -v | $(GREP) -c on-line)
MEMORY_SIZE := $(shell \
/usr/sbin/prtconf 2> /dev/null | $(GREP) "^Memory [Ss]ize" | $(AWK) '{print $$3}' \
)
--- a/make/RunTestsPrebuiltSpec.gmk Sat Oct 12 08:49:59 2019 +0530
+++ b/make/RunTestsPrebuiltSpec.gmk Tue Oct 15 14:19:55 2019 +0530
@@ -27,6 +27,9 @@
# Fake minimalistic spec file for RunTestsPrebuilt.gmk.
################################################################################
+# Make sure all shell commands are executed with the C locale
+export LC_ALL := C
+
define VerifyVariable
ifeq ($$($1), )
$$(info Error: Variable $1 is missing, needed by RunTestPrebuiltSpec.gmk)
--- a/make/autoconf/basics.m4 Sat Oct 12 08:49:59 2019 +0530
+++ b/make/autoconf/basics.m4 Tue Oct 15 14:19:55 2019 +0530
@@ -427,7 +427,7 @@
# Save the path variable before it gets changed
ORIGINAL_PATH="$PATH"
AC_SUBST(ORIGINAL_PATH)
- DATE_WHEN_CONFIGURED=`LANG=C date`
+ DATE_WHEN_CONFIGURED=`date`
AC_SUBST(DATE_WHEN_CONFIGURED)
AC_MSG_NOTICE([Configuration created at $DATE_WHEN_CONFIGURED.])
])
--- a/make/autoconf/build-performance.m4 Sat Oct 12 08:49:59 2019 +0530
+++ b/make/autoconf/build-performance.m4 Tue Oct 15 14:19:55 2019 +0530
@@ -35,7 +35,7 @@
FOUND_CORES=yes
elif test -x /usr/sbin/psrinfo; then
# Looks like a Solaris system
- NUM_CORES=`LC_MESSAGES=C /usr/sbin/psrinfo -v | grep -c on-line`
+ NUM_CORES=`/usr/sbin/psrinfo -v | grep -c on-line`
FOUND_CORES=yes
elif test -x /usr/sbin/sysctl; then
# Looks like a MacOSX system
--- a/make/autoconf/configure Sat Oct 12 08:49:59 2019 +0530
+++ b/make/autoconf/configure Tue Oct 15 14:19:55 2019 +0530
@@ -43,6 +43,9 @@
export CONFIG_SHELL=$BASH
export _as_can_reexec=no
+# Make sure all shell commands are executed with the C locale
+export LC_ALL=C
+
if test "x$CUSTOM_CONFIG_DIR" != x; then
custom_hook=$CUSTOM_CONFIG_DIR/custom-hook.m4
if test ! -e $custom_hook; then
--- a/make/autoconf/spec.gmk.in Sat Oct 12 08:49:59 2019 +0530
+++ b/make/autoconf/spec.gmk.in Tue Oct 15 14:19:55 2019 +0530
@@ -51,6 +51,9 @@
# What make to use for main processing, after bootstrapping top-level Makefile.
MAKE := @MAKE@
+# Make sure all shell commands are executed with the C locale
+export LC_ALL := C
+
# The default make arguments
MAKE_ARGS = $(MAKE_LOG_FLAGS) -r -R -I $(TOPDIR)/make/common SPEC=$(SPEC) \
MAKE_LOG_FLAGS="$(MAKE_LOG_FLAGS)" $(MAKE_LOG_VARS)
--- a/make/autoconf/toolchain_windows.m4 Sat Oct 12 08:49:59 2019 +0530
+++ b/make/autoconf/toolchain_windows.m4 Tue Oct 15 14:19:55 2019 +0530
@@ -209,6 +209,8 @@
eval SDK_INSTALL_DIR="\${VS_SDK_INSTALLDIR_${VS_VERSION}}"
eval VS_ENV_ARGS="\${VS_ENV_ARGS_${VS_VERSION}}"
eval VS_TOOLSET_SUPPORTED="\${VS_TOOLSET_SUPPORTED_${VS_VERSION}}"
+
+ VS_ENV_CMD=""
# When using --with-tools-dir, assume it points to the correct and default
# version of Visual Studio or that --with-toolchain-version was also set.
@@ -227,8 +229,6 @@
fi
fi
- VS_ENV_CMD=""
-
if test "x$VS_COMNTOOLS" != x; then
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([${VS_VERSION}],
[$VS_COMNTOOLS/../..], [$VS_COMNTOOLS_VAR variable])
--- a/make/common/JavaCompilation.gmk Sat Oct 12 08:49:59 2019 +0530
+++ b/make/common/JavaCompilation.gmk Tue Oct 15 14:19:55 2019 +0530
@@ -122,7 +122,7 @@
$$($1_BIN)$$($1_MODULE_SUBDIR)$$($2_TARGET) : $2
$$(call LogInfo, Cleaning $$(patsubst $(OUTPUTDIR)/%,%, $$@))
$$(call MakeTargetDir)
- export LC_ALL=C ; ( $(CAT) $$< && $(ECHO) "" ) \
+ ( $(CAT) $$< && $(ECHO) "" ) \
| $(SED) -e 's/\([^\\]\):/\1\\:/g' -e 's/\([^\\]\)=/\1\\=/g' \
-e 's/\([^\\]\)!/\1\\!/g' -e 's/^[ ]*#.*/#/g' \
| $(SED) -f "$(TOPDIR)/make/common/support/unicode2x.sed" \
--- a/make/conf/jib-profiles.js Sat Oct 12 08:49:59 2019 +0530
+++ b/make/conf/jib-profiles.js Tue Oct 15 14:19:55 2019 +0530
@@ -944,11 +944,11 @@
var getJibProfilesDependencies = function (input, common) {
var devkit_platform_revisions = {
- linux_x64: "gcc8.2.0-OL6.4+1.0",
+ linux_x64: "gcc8.3.0-OL6.4+1.0",
macosx_x64: "Xcode10.1-MacOSX10.14+1.0",
solaris_x64: "SS12u4-Solaris11u1+1.0",
solaris_sparcv9: "SS12u6-Solaris11u3+1.0",
- windows_x64: "VS2017-15.9.6+1.0",
+ windows_x64: "VS2017-15.9.16+1.0",
linux_aarch64: "gcc8.2.0-Fedora27+1.0",
linux_arm: "gcc8.2.0-Fedora27+1.0",
linux_ppc64le: "gcc8.2.0-Fedora27+1.0",
--- a/make/data/charsetmapping/SingleByte-X.java.template Sat Oct 12 08:49:59 2019 +0530
+++ b/make/data/charsetmapping/SingleByte-X.java.template Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019, 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
@@ -48,7 +48,7 @@
}
public CharsetDecoder newDecoder() {
- return new SingleByte.Decoder(this, b2c, $ASCIICOMPATIBLE$);
+ return new SingleByte.Decoder(this, b2c, $ASCIICOMPATIBLE$, $LATIN1DECODABLE$);
}
public CharsetEncoder newEncoder() {
--- a/make/data/lsrdata/language-subtag-registry.txt Sat Oct 12 08:49:59 2019 +0530
+++ b/make/data/lsrdata/language-subtag-registry.txt Tue Oct 15 14:19:55 2019 +0530
@@ -1,4 +1,4 @@
-File-Date: 2019-04-03
+File-Date: 2019-09-16
%%
Type: language
Subtag: aa
@@ -2096,6 +2096,8 @@
Subtag: ais
Description: Nataoran Amis
Added: 2009-07-29
+Deprecated: 2019-04-16
+Comments: see ami, szy
%%
Type: language
Subtag: ait
@@ -2633,6 +2635,7 @@
Type: language
Subtag: ant
Description: Antakarinya
+Description: Antikarinya
Added: 2009-07-29
%%
Type: language
@@ -3094,6 +3097,8 @@
Subtag: asd
Description: Asas
Added: 2009-07-29
+Deprecated: 2019-04-16
+Preferred-Value: snz
%%
Type: language
Subtag: ase
@@ -4135,7 +4140,7 @@
%%
Type: language
Subtag: bck
-Description: Bunaba
+Description: Bunuba
Added: 2009-07-29
%%
Type: language
@@ -6930,7 +6935,7 @@
%%
Type: language
Subtag: bym
-Description: Bidyara
+Description: Bidjara
Added: 2009-07-29
%%
Type: language
@@ -7564,6 +7569,11 @@
Added: 2009-07-29
%%
Type: language
+Subtag: cey
+Description: Ekai Chin
+Added: 2019-04-16
+%%
+Type: language
Subtag: cfa
Description: Dijim-Bwilim
Added: 2009-07-29
@@ -9439,6 +9449,7 @@
Type: language
Subtag: dif
Description: Dieri
+Description: Diyari
Added: 2009-07-29
%%
Type: language
@@ -9515,6 +9526,8 @@
Subtag: dit
Description: Dirari
Added: 2009-07-29
+Deprecated: 2019-04-29
+Preferred-Value: dif
%%
Type: language
Subtag: diu
@@ -9560,6 +9573,7 @@
Type: language
Subtag: djd
Description: Djamindjung
+Description: Ngaliwurru
Added: 2009-07-29
%%
Type: language
@@ -9603,6 +9617,7 @@
%%
Type: language
Subtag: djn
+Description: Jawoyn
Description: Djauan
Added: 2009-07-29
%%
@@ -10191,6 +10206,8 @@
Subtag: dud
Description: Hun-Saare
Added: 2009-07-29
+Deprecated: 2019-04-16
+Comments: see uth, uss
%%
Type: language
Subtag: due
@@ -10382,6 +10399,7 @@
Type: language
Subtag: dyn
Description: Dyangadi
+Description: Dhanggatti
Added: 2009-07-29
%%
Type: language
@@ -10396,6 +10414,7 @@
%%
Type: language
Subtag: dyy
+Description: Djabugay
Description: Dyaabugay
Added: 2009-07-29
%%
@@ -11672,7 +11691,7 @@
%%
Type: language
Subtag: gbd
-Description: Karadjeri
+Description: Karajarri
Added: 2009-07-29
%%
Type: language
@@ -12056,7 +12075,7 @@
%%
Type: language
Subtag: gge
-Description: Guragone
+Description: Gurr-goni
Added: 2009-07-29
%%
Type: language
@@ -12169,7 +12188,7 @@
%%
Type: language
Subtag: gia
-Description: Kitja
+Description: Kija
Added: 2009-07-29
%%
Type: language
@@ -12955,7 +12974,7 @@
%%
Type: language
Subtag: gue
-Description: Gurinji
+Description: Gurindji
Added: 2009-07-29
%%
Type: language
@@ -15292,6 +15311,7 @@
Type: language
Subtag: jay
Description: Yan-nhangu
+Description: Nhangu
Added: 2009-07-29
%%
Type: language
@@ -15488,6 +15508,7 @@
%%
Type: language
Subtag: jig
+Description: Jingulu
Description: Djingili
Added: 2009-07-29
%%
@@ -17222,6 +17243,7 @@
Type: language
Subtag: kkp
Description: Gugubera
+Description: Koko-Bera
Added: 2009-07-29
%%
Type: language
@@ -17266,6 +17288,7 @@
%%
Type: language
Subtag: kky
+Description: Guugu Yimidhirr
Description: Guguyimidjir
Added: 2009-07-29
%%
@@ -18320,6 +18343,7 @@
Type: language
Subtag: ktd
Description: Kokata
+Description: Kukatha
Added: 2009-07-29
%%
Type: language
@@ -19341,6 +19365,7 @@
Subtag: lba
Description: Lui
Added: 2009-07-29
+Deprecated: 2019-04-16
%%
Type: language
Subtag: lbb
@@ -19396,7 +19421,7 @@
%%
Type: language
Subtag: lbn
-Description: Lamet
+Description: Rmeet
Added: 2009-07-29
%%
Type: language
@@ -19446,6 +19471,7 @@
%%
Type: language
Subtag: lby
+Description: Lamalama
Description: Lamu-Lamu
Added: 2009-07-29
%%
@@ -20162,6 +20188,8 @@
Subtag: llo
Description: Khlor
Added: 2009-07-29
+Deprecated: 2019-04-16
+Preferred-Value: ngt
%%
Type: language
Subtag: llp
@@ -20654,6 +20682,11 @@
Macrolanguage: luy
%%
Type: language
+Subtag: lsn
+Description: Tibetan Sign Language
+Added: 2019-04-16
+%%
+Type: language
Subtag: lso
Description: Laos Sign Language
Added: 2009-07-29
@@ -20680,6 +20713,11 @@
Added: 2009-07-29
%%
Type: language
+Subtag: lsv
+Description: Sivia Sign Language
+Added: 2019-04-16
+%%
+Type: language
Subtag: lsy
Description: Mauritian Sign Language
Added: 2010-03-11
@@ -20848,6 +20886,11 @@
Added: 2009-07-29
%%
Type: language
+Subtag: lvi
+Description: Lavi
+Added: 2019-04-16
+%%
+Type: language
Subtag: lvk
Description: Lavukaleve
Added: 2009-07-29
@@ -21454,7 +21497,7 @@
%%
Type: language
Subtag: mec
-Description: Mara
+Description: Marra
Added: 2009-07-29
%%
Type: language
@@ -21523,7 +21566,7 @@
%%
Type: language
Subtag: mep
-Description: Miriwung
+Description: Miriwoong
Added: 2009-07-29
%%
Type: language
@@ -21660,7 +21703,7 @@
%%
Type: language
Subtag: mfr
-Description: Marithiel
+Description: Marrithiyel
Added: 2009-07-29
%%
Type: language
@@ -22853,12 +22896,13 @@
%%
Type: language
Subtag: mpb
+Description: Malak Malak
Description: Mullukmulluk
Added: 2009-07-29
%%
Type: language
Subtag: mpc
-Description: Mangarayi
+Description: Mangarrayi
Added: 2009-07-29
%%
Type: language
@@ -22889,6 +22933,7 @@
Type: language
Subtag: mpj
Description: Martu Wangka
+Description: Wangkajunga
Added: 2009-07-29
%%
Type: language
@@ -24015,6 +24060,8 @@
Subtag: myd
Description: Maramba
Added: 2009-07-29
+Deprecated: 2019-04-16
+Preferred-Value: aog
%%
Type: language
Subtag: mye
@@ -24040,6 +24087,7 @@
Subtag: myi
Description: Mina (India)
Added: 2009-07-29
+Deprecated: 2019-04-16
%%
Type: language
Subtag: myj
@@ -24375,7 +24423,7 @@
%%
Type: language
Subtag: nay
-Description: Narrinyeri
+Description: Ngarrindjeri
Added: 2009-07-29
%%
Type: language
@@ -24432,7 +24480,7 @@
%%
Type: language
Subtag: nbj
-Description: Ngarinman
+Description: Ngarinyman
Added: 2009-07-29
%%
Type: language
@@ -24467,7 +24515,7 @@
%%
Type: language
Subtag: nbr
-Description: Numana-Nunku-Gbantu-Numbu
+Description: Numana
Added: 2009-07-29
%%
Type: language
@@ -24559,7 +24607,7 @@
%%
Type: language
Subtag: nck
-Description: Nakara
+Description: Na-kara
Added: 2009-07-29
%%
Type: language
@@ -24931,7 +24979,7 @@
%%
Type: language
Subtag: ngh
-Description: Nǀu
+Description: Nǁng
Added: 2009-07-29
%%
Type: language
@@ -25176,7 +25224,7 @@
%%
Type: language
Subtag: nig
-Description: Ngalakan
+Description: Ngalakgan
Added: 2009-07-29
%%
Type: language
@@ -25798,6 +25846,8 @@
Subtag: nns
Description: Ningye
Added: 2009-07-29
+Deprecated: 2019-04-16
+Preferred-Value: nbr
%%
Type: language
Subtag: nnt
@@ -26658,7 +26708,7 @@
%%
Type: language
Subtag: nyh
-Description: Nyigina
+Description: Nyikina
Added: 2009-07-29
%%
Type: language
@@ -26713,7 +26763,7 @@
%%
Type: language
Subtag: nys
-Description: Nyunga
+Description: Nyungar
Added: 2009-07-29
%%
Type: language
@@ -28707,6 +28757,11 @@
Added: 2009-07-29
%%
Type: language
+Subtag: pnd
+Description: Mpinda
+Added: 2019-04-16
+%%
+Type: language
Subtag: pne
Description: Western Penan
Added: 2009-07-29
@@ -28794,6 +28849,7 @@
%%
Type: language
Subtag: pnw
+Description: Banyjima
Description: Panytyima
Added: 2009-07-29
%%
@@ -29251,7 +29307,8 @@
%%
Type: language
Subtag: pti
-Description: Pintiini
+Description: Pindiini
+Description: Wangkatha
Added: 2009-07-29
%%
Type: language
@@ -30133,6 +30190,7 @@
%%
Type: language
Subtag: ril
+Description: Riang Lang
Description: Riang (Myanmar)
Added: 2009-07-29
%%
@@ -30153,7 +30211,7 @@
%%
Type: language
Subtag: rit
-Description: Ritarungo
+Description: Ritharrngu
Added: 2009-07-29
%%
Type: language
@@ -30219,7 +30277,7 @@
%%
Type: language
Subtag: rmb
-Description: Rembarunga
+Description: Rembarrnga
Added: 2009-07-29
%%
Type: language
@@ -30641,6 +30699,7 @@
Type: language
Subtag: rxw
Description: Karuwali
+Description: Garuwali
Added: 2013-09-10
%%
Type: language
@@ -32206,7 +32265,7 @@
%%
Type: language
Subtag: snz
-Description: Sinsauru
+Description: Kou
Added: 2009-07-29
%%
Type: language
@@ -32883,6 +32942,7 @@
Subtag: suj
Description: Shubi
Added: 2009-07-29
+Comments: see also xsj
%%
Type: language
Subtag: suk
@@ -33312,6 +33372,11 @@
Added: 2009-07-29
%%
Type: language
+Subtag: szy
+Description: Sakizaya
+Added: 2019-04-16
+%%
+Type: language
Subtag: taa
Description: Lower Tanana
Added: 2009-07-29
@@ -33465,6 +33530,7 @@
%%
Type: language
Subtag: tbh
+Description: Dharawal
Description: Thurawal
Added: 2009-07-29
%%
@@ -33644,6 +33710,7 @@
Type: language
Subtag: tcs
Description: Torres Strait Creole
+Description: Yumplatok
Added: 2009-07-29
%%
Type: language
@@ -34067,6 +34134,7 @@
%%
Type: language
Subtag: thd
+Description: Kuuk Thaayorre
Description: Thayore
Added: 2009-07-29
%%
@@ -34310,6 +34378,11 @@
Added: 2009-07-29
%%
Type: language
+Subtag: tjj
+Description: Tjungundji
+Added: 2019-04-16
+%%
+Type: language
Subtag: tjl
Description: Tai Laing
Added: 2012-08-12
@@ -34330,6 +34403,11 @@
Added: 2009-07-29
%%
Type: language
+Subtag: tjp
+Description: Tjupany
+Added: 2019-04-16
+%%
+Type: language
Subtag: tjs
Description: Southern Tujia
Added: 2009-07-29
@@ -35679,6 +35757,11 @@
Added: 2009-07-29
%%
Type: language
+Subtag: tvx
+Description: Taivoan
+Added: 2019-04-16
+%%
+Type: language
Subtag: tvy
Description: Timor Pidgin
Added: 2009-07-29
@@ -36230,7 +36313,7 @@
%%
Type: language
Subtag: ulk
-Description: Meriam
+Description: Meriam Mir
Added: 2009-07-29
%%
Type: language
@@ -36280,6 +36363,7 @@
%%
Type: language
Subtag: umg
+Description: Morrobalama
Description: Umbuygamu
Added: 2009-07-29
%%
@@ -36550,6 +36634,11 @@
Added: 2009-07-29
%%
Type: language
+Subtag: uss
+Description: us-Saare
+Added: 2019-04-16
+%%
+Type: language
Subtag: usu
Description: Uya
Added: 2009-07-29
@@ -36565,6 +36654,11 @@
Added: 2009-07-29
%%
Type: language
+Subtag: uth
+Description: ut-Hun
+Added: 2019-04-16
+%%
+Type: language
Subtag: utp
Description: Amba (Solomon Islands)
Added: 2009-07-29
@@ -37178,7 +37272,7 @@
%%
Type: language
Subtag: waq
-Description: Wageman
+Description: Wagiman
Added: 2009-07-29
%%
Type: language
@@ -37301,7 +37395,7 @@
%%
Type: language
Subtag: wbt
-Description: Wanman
+Description: Warnman
Added: 2009-07-29
%%
Type: language
@@ -37448,6 +37542,7 @@
%%
Type: language
Subtag: wgg
+Description: Wangkangurru
Description: Wangganguru
Added: 2009-07-29
%%
@@ -37521,7 +37616,7 @@
%%
Type: language
Subtag: wig
-Description: Wik-Ngathana
+Description: Wik Ngathan
Added: 2009-07-29
%%
Type: language
@@ -37625,6 +37720,11 @@
Added: 2009-07-29
%%
Type: language
+Subtag: wkr
+Description: Keerray-Woorroong
+Added: 2019-04-16
+%%
+Type: language
Subtag: wku
Description: Kunduvadi
Added: 2009-07-29
@@ -37857,10 +37957,12 @@
Type: language
Subtag: wny
Description: Wanyi
+Description: Waanyi
Added: 2012-08-12
%%
Type: language
Subtag: woa
+Description: Kuwema
Description: Tyaraity
Added: 2009-07-29
%%
@@ -37951,6 +38053,7 @@
%%
Type: language
Subtag: wrb
+Description: Waluwarra
Description: Warluwara
Added: 2009-07-29
%%
@@ -37962,11 +38065,12 @@
Type: language
Subtag: wrg
Description: Warungu
+Description: Gudjal
Added: 2009-07-29
%%
Type: language
Subtag: wrh
-Description: Wiradhuri
+Description: Wiradjuri
Added: 2009-07-29
%%
Type: language
@@ -38439,6 +38543,7 @@
%%
Type: language
Subtag: xby
+Description: Batjala
Description: Batyala
Added: 2013-09-10
%%
@@ -38998,7 +39103,7 @@
%%
Type: language
Subtag: xmh
-Description: Kuku-Muminh
+Description: Kugu-Muminh
Added: 2009-07-29
%%
Type: language
@@ -39423,8 +39528,7 @@
Subtag: xsj
Description: Subi
Added: 2009-07-29
-Deprecated: 2015-02-12
-Preferred-Value: suj
+Comments: see also suj
%%
Type: language
Subtag: xsl
@@ -40258,6 +40362,7 @@
%%
Type: language
Subtag: yin
+Description: Riang Lai
Description: Yinchia
Added: 2009-07-29
%%
@@ -41562,12 +41667,13 @@
%%
Type: language
Subtag: zml
-Description: Madngele
+Description: Matngala
Added: 2009-07-29
%%
Type: language
Subtag: zmm
Description: Marimanindji
+Description: Marramaninyshi
Added: 2009-07-29
%%
Type: language
@@ -43019,6 +43125,13 @@
Prefix: sgn
%%
Type: extlang
+Subtag: lsn
+Description: Tibetan Sign Language
+Added: 2019-04-16
+Preferred-Value: lsn
+Prefix: sgn
+%%
+Type: extlang
Subtag: lso
Description: Laos Sign Language
Added: 2009-07-29
@@ -43041,6 +43154,13 @@
Prefix: sgn
%%
Type: extlang
+Subtag: lsv
+Description: Sivia Sign Language
+Added: 2019-04-16
+Preferred-Value: lsv
+Prefix: sgn
+%%
+Type: extlang
Subtag: lsy
Description: Mauritian Sign Language
Added: 2010-03-11
@@ -43966,6 +44086,11 @@
Added: 2005-10-16
%%
Type: script
+Subtag: Chrs
+Description: Chorasmian
+Added: 2019-09-11
+%%
+Type: script
Subtag: Cirt
Description: Cirth
Added: 2005-10-16
@@ -44002,6 +44127,11 @@
Added: 2005-10-16
%%
Type: script
+Subtag: Diak
+Description: Dives Akuru
+Added: 2019-09-11
+%%
+Type: script
Subtag: Dogr
Description: Dogra
Added: 2017-01-13
@@ -44839,6 +44969,11 @@
Added: 2005-10-16
%%
Type: script
+Subtag: Yezi
+Description: Yezidi
+Added: 2019-09-11
+%%
+Type: script
Subtag: Yiii
Description: Yi
Added: 2005-10-16
@@ -45683,7 +45818,7 @@
%%
Type: region
Subtag: MK
-Description: The Former Yugoslav Republic of Macedonia
+Description: North Macedonia
Added: 2005-10-16
%%
Type: region
--- a/make/devkit/Tools.gmk Sat Oct 12 08:49:59 2019 +0530
+++ b/make/devkit/Tools.gmk Tue Oct 15 14:19:55 2019 +0530
@@ -79,20 +79,19 @@
# Define external dependencies
# Latest that could be made to work.
-GCC_VER := 8.2.0
-ifeq ($(GCC_VER), 8.2.0)
- gcc_ver := gcc-8.2.0
- binutils_ver := binutils-2.30
- ccache_ver := ccache-3.5.1a
- CCACHE_DIRNAME := ccache-3.5.1
+GCC_VER := 8.3.0
+ifeq ($(GCC_VER), 8.3.0)
+ gcc_ver := gcc-8.3.0
+ binutils_ver := binutils-2.32
+ ccache_ver := 3.7.3
mpfr_ver := mpfr-3.1.5
gmp_ver := gmp-6.1.2
mpc_ver := mpc-1.0.3
- gdb_ver := gdb-8.2.1
+ gdb_ver := gdb-8.3
else ifeq ($(GCC_VER), 7.3.0)
gcc_ver := gcc-7.3.0
binutils_ver := binutils-2.30
- ccache_ver := ccache-3.3.6
+ ccache_ver := 3.3.6
mpfr_ver := mpfr-3.1.5
gmp_ver := gmp-6.1.2
mpc_ver := mpc-1.0.3
@@ -100,7 +99,7 @@
else ifeq ($(GCC_VER), 4.9.2)
gcc_ver := gcc-4.9.2
binutils_ver := binutils-2.25
- ccache_ver := ccache-3.2.1
+ ccache_ver := 3.2.1
mpfr_ver := mpfr-3.0.1
gmp_ver := gmp-4.3.2
mpc_ver := mpc-1.0.1
@@ -111,7 +110,7 @@
GCC := http://ftp.gnu.org/pub/gnu/gcc/$(gcc_ver)/$(gcc_ver).tar.xz
BINUTILS := http://ftp.gnu.org/pub/gnu/binutils/$(binutils_ver).tar.xz
-CCACHE := https://samba.org/ftp/ccache/$(ccache_ver).tar.xz
+CCACHE := https://github.com/ccache/ccache/releases/download/v$(ccache_ver)/ccache-$(ccache_ver).tar.xz
MPFR := https://www.mpfr.org/${mpfr_ver}/${mpfr_ver}.tar.bz2
GMP := http://ftp.gnu.org/pub/gnu/gmp/${gmp_ver}.tar.bz2
MPC := http://ftp.gnu.org/pub/gnu/mpc/${mpc_ver}.tar.gz
--- a/make/devkit/createWindowsDevkit2017.sh Sat Oct 12 08:49:59 2019 +0530
+++ b/make/devkit/createWindowsDevkit2017.sh Tue Oct 15 14:19:55 2019 +0530
@@ -32,10 +32,7 @@
VS_VERSION_NUM_NODOT="150"
VS_DLL_VERSION="140"
SDK_VERSION="10"
-SDK_FULL_VERSION="10.0.16299.0"
MSVC_DIR="Microsoft.VC141.CRT"
-MSVC_FULL_VERSION="14.12.25827"
-REDIST_FULL_VERSION="14.12.25810"
SCRIPT_DIR="$(cd "$(dirname $0)" > /dev/null && pwd)"
BUILD_DIR="${SCRIPT_DIR}/../../build/devkit"
--- a/make/jdk/src/classes/build/tools/charsetmapping/SBCS.java Sat Oct 12 08:49:59 2019 +0530
+++ b/make/jdk/src/classes/build/tools/charsetmapping/SBCS.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019, 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
@@ -46,6 +46,7 @@
String hisName = cs.hisName;
String pkgName = cs.pkgName;
boolean isASCII = cs.isASCII;
+ boolean isLatin1Decodable = true;
StringBuilder b2cSB = new StringBuilder();
StringBuilder b2cNRSB = new StringBuilder();
@@ -69,6 +70,9 @@
c2bOff += 0x100;
c2bIndex[e.cp>>8] = 1;
}
+ if (e.cp > 0xFF) {
+ isLatin1Decodable = false;
+ }
}
Formatter fm = new Formatter(b2cSB);
@@ -178,6 +182,9 @@
if (line.indexOf("$ASCIICOMPATIBLE$") != -1) {
line = line.replace("$ASCIICOMPATIBLE$", isASCII ? "true" : "false");
}
+ if (line.indexOf("$LATIN1DECODABLE$") != -1) {
+ line = line.replace("$LATIN1DECODABLE$", isLatin1Decodable ? "true" : "false");
+ }
if (line.indexOf("$B2CTABLE$") != -1) {
line = line.replace("$B2CTABLE$", b2c);
}
--- a/make/scripts/compare.sh Sat Oct 12 08:49:59 2019 +0530
+++ b/make/scripts/compare.sh Tue Oct 15 14:19:55 2019 +0530
@@ -34,6 +34,9 @@
exit 1
fi
+# Make sure all shell commands are executed with the C locale
+export LC_ALL=C
+
if [ "$OPENJDK_TARGET_OS" = "macosx" ]; then
FULLDUMP_CMD="$OTOOL -v -V -h -X -d"
LDD_CMD="$OTOOL -L"
@@ -110,7 +113,7 @@
"
fi
elif [ "$OPENJDK_TARGET_OS" = "macosx" ]; then
- DIS_DIFF_FILTER="LANG=C $SED \
+ DIS_DIFF_FILTER="$SED \
-e 's/0x[0-9a-f]\{3,16\}/<HEXSTR>/g' -e 's/^[0-9a-f]\{12,20\}/<ADDR>/' \
-e 's/-20[0-9][0-9]-[0-1][0-9]-[0-3][0-9]-[0-2][0-9]\{5\}/<DATE>/g' \
-e 's/), built on .*/), <DATE>/' \
@@ -134,7 +137,7 @@
if [[ "$THIS_FILE" = *"META-INF/MANIFEST.MF" ]]; then
# Filter out date string, ant version and java version differences.
- TMP=$(LC_ALL=C $DIFF $OTHER_FILE $THIS_FILE | \
+ TMP=$($DIFF $OTHER_FILE $THIS_FILE | \
$GREP '^[<>]' | \
$SED -e '/[<>] Ant-Version: Apache Ant .*/d' \
-e '/[<>] Created-By: .* (Oracle [Corpatin)]*/d' \
@@ -142,7 +145,7 @@
-e '/[<>].*[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}.*/d')
fi
if test "x$SUFFIX" = "xjava"; then
- TMP=$(LC_ALL=C $DIFF $OTHER_FILE $THIS_FILE | \
+ TMP=$($DIFF $OTHER_FILE $THIS_FILE | \
$GREP '^[<>]' | \
$SED -e '/[<>] \* from.*\.idl/d' \
-e '/[<>] .*[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}.*/d' \
@@ -197,7 +200,7 @@
fi
if test "x$SUFFIX" = "xproperties"; then
# Filter out date string differences.
- TMP=$(LC_ALL=C $DIFF $OTHER_FILE $THIS_FILE | \
+ TMP=$($DIFF $OTHER_FILE $THIS_FILE | \
$GREP '^[<>]' | \
$SED -e '/[<>].*[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}-[0-9]\{6\}.*/d')
fi
@@ -207,7 +210,7 @@
-e 's/<font size=-1>/<font size=\"-1\">/g'"
$CAT $THIS_FILE | eval "$HTML_FILTER" > $THIS_FILE.filtered
$CAT $OTHER_FILE | eval "$HTML_FILTER" > $OTHER_FILE.filtered
- TMP=$(LC_ALL=C $DIFF $OTHER_FILE.filtered $THIS_FILE.filtered | \
+ TMP=$($DIFF $OTHER_FILE.filtered $THIS_FILE.filtered | \
$GREP '^[<>]' | \
$SED -e '/[<>] <!-- Generated by javadoc .* on .* -->/d' \
-e '/[<>] <meta name="date" content=".*">/d' )
@@ -554,11 +557,11 @@
CONTENTS_DIFF_FILE=$WORK_DIR/$ZIP_FILE.diff
# On solaris, there is no -q option.
if [ "$OPENJDK_TARGET_OS" = "solaris" ]; then
- LC_ALL=C $DIFF -r $OTHER_UNZIPDIR $THIS_UNZIPDIR \
+ $DIFF -r $OTHER_UNZIPDIR $THIS_UNZIPDIR \
| $GREP -v -e "^<" -e "^>" -e "^Common subdirectories:" \
> $CONTENTS_DIFF_FILE
else
- LC_ALL=C $DIFF -rq $OTHER_UNZIPDIR $THIS_UNZIPDIR > $CONTENTS_DIFF_FILE
+ $DIFF -rq $OTHER_UNZIPDIR $THIS_UNZIPDIR > $CONTENTS_DIFF_FILE
fi
ONLY_OTHER=$($GREP "^Only in $OTHER_UNZIPDIR" $CONTENTS_DIFF_FILE)
@@ -605,11 +608,11 @@
if [ -n "$SHOW_DIFFS" ]; then
for i in $(cat $WORK_DIR/$ZIP_FILE.difflist) ; do
if [ -f "${OTHER_UNZIPDIR}/$i.javap" ]; then
- LC_ALL=C $DIFF ${OTHER_UNZIPDIR}/$i.javap ${THIS_UNZIPDIR}/$i.javap
+ $DIFF ${OTHER_UNZIPDIR}/$i.javap ${THIS_UNZIPDIR}/$i.javap
elif [ -f "${OTHER_UNZIPDIR}/$i.cleaned" ]; then
- LC_ALL=C $DIFF ${OTHER_UNZIPDIR}/$i.cleaned ${THIS_UNZIPDIR}/$i
+ $DIFF ${OTHER_UNZIPDIR}/$i.cleaned ${THIS_UNZIPDIR}/$i
else
- LC_ALL=C $DIFF ${OTHER_UNZIPDIR}/$i ${THIS_UNZIPDIR}/$i
+ $DIFF ${OTHER_UNZIPDIR}/$i ${THIS_UNZIPDIR}/$i
fi
done
fi
@@ -642,7 +645,7 @@
$JMOD list $THIS_JMOD | sort > $THIS_JMOD_LIST
$JMOD list $OTHER_JMOD | sort > $OTHER_JMOD_LIST
JMOD_LIST_DIFF_FILE=$WORK_DIR/$JMOD_FILE.list.diff
- LC_ALL=C $DIFF $THIS_JMOD_LIST $OTHER_JMOD_LIST > $JMOD_LIST_DIFF_FILE
+ $DIFF $THIS_JMOD_LIST $OTHER_JMOD_LIST > $JMOD_LIST_DIFF_FILE
ONLY_THIS=$($GREP "^<" $JMOD_LIST_DIFF_FILE)
ONLY_OTHER=$($GREP "^>" $JMOD_LIST_DIFF_FILE)
@@ -924,7 +927,7 @@
> $WORK_FILE_BASE.symbols.this
fi
- LC_ALL=C $DIFF $WORK_FILE_BASE.symbols.other $WORK_FILE_BASE.symbols.this > $WORK_FILE_BASE.symbols.diff
+ $DIFF $WORK_FILE_BASE.symbols.other $WORK_FILE_BASE.symbols.this > $WORK_FILE_BASE.symbols.diff
if [ -s $WORK_FILE_BASE.symbols.diff ]; then
SYM_MSG=" diff "
if [[ "$ACCEPTED_SYM_DIFF" != *"$BIN_FILE"* ]]; then
@@ -964,9 +967,9 @@
| $UNIQ > $WORK_FILE_BASE.deps.this.uniq)
(cd $FILE_WORK_DIR && $RM -f $NAME)
- LC_ALL=C $DIFF $WORK_FILE_BASE.deps.other $WORK_FILE_BASE.deps.this \
+ $DIFF $WORK_FILE_BASE.deps.other $WORK_FILE_BASE.deps.this \
> $WORK_FILE_BASE.deps.diff
- LC_ALL=C $DIFF $WORK_FILE_BASE.deps.other.uniq $WORK_FILE_BASE.deps.this.uniq \
+ $DIFF $WORK_FILE_BASE.deps.other.uniq $WORK_FILE_BASE.deps.this.uniq \
> $WORK_FILE_BASE.deps.diff.uniq
if [ -s $WORK_FILE_BASE.deps.diff ]; then
@@ -1016,7 +1019,7 @@
> $WORK_FILE_BASE.fulldump.this 2>&1 &
wait
- LC_ALL=C $DIFF $WORK_FILE_BASE.fulldump.other $WORK_FILE_BASE.fulldump.this \
+ $DIFF $WORK_FILE_BASE.fulldump.other $WORK_FILE_BASE.fulldump.this \
> $WORK_FILE_BASE.fulldump.diff
if [ -s $WORK_FILE_BASE.fulldump.diff ]; then
@@ -1063,7 +1066,7 @@
| eval "$this_DIS_DIFF_FILTER" > $WORK_FILE_BASE.dis.this 2>&1 &
wait
- LC_ALL=C $DIFF $WORK_FILE_BASE.dis.other $WORK_FILE_BASE.dis.this > $WORK_FILE_BASE.dis.diff
+ $DIFF $WORK_FILE_BASE.dis.other $WORK_FILE_BASE.dis.this > $WORK_FILE_BASE.dis.diff
if [ -s $WORK_FILE_BASE.dis.diff ]; then
DIS_DIFF_SIZE=$(ls -n $WORK_FILE_BASE.dis.diff | awk '{print $5}')
--- a/src/hotspot/cpu/aarch64/compiledIC_aarch64.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/cpu/aarch64/compiledIC_aarch64.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -185,6 +185,10 @@
NativeMovConstReg* method_holder
= nativeMovConstReg_at(stub + NativeInstruction::instruction_size);
method_holder->set_data(0);
+ if (!static_stub->is_aot()) {
+ NativeJump* jump = nativeJump_at(method_holder->next_instruction_address());
+ jump->set_jump_destination((address)-1);
+ }
}
//-----------------------------------------------------------------------------
--- a/src/hotspot/cpu/aarch64/nativeInst_aarch64.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/cpu/aarch64/nativeInst_aarch64.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -332,9 +332,14 @@
// We use jump to self as the unresolved address which the inline
// cache code (and relocs) know about
+ // As a special case we also use sequence movptr(r,0); br(r);
+ // i.e. jump to 0 when we need leave space for a wide immediate
+ // load
- // return -1 if jump to self
- dest = (dest == (address) this) ? (address) -1 : dest;
+ // return -1 if jump to self or to 0
+ if ((dest == (address)this) || dest == 0) {
+ dest = (address) -1;
+ }
return dest;
}
@@ -356,9 +361,13 @@
// We use jump to self as the unresolved address which the inline
// cache code (and relocs) know about
+ // As a special case we also use jump to 0 when first generating
+ // a general jump
- // return -1 if jump to self
- dest = (dest == (address) this) ? (address) -1 : dest;
+ // return -1 if jump to self or to 0
+ if ((dest == (address)this) || dest == 0) {
+ dest = (address) -1;
+ }
return dest;
}
--- a/src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -34,6 +34,7 @@
#include "logging/log.hpp"
#include "memory/resourceArea.hpp"
#include "oops/compiledICHolder.hpp"
+#include "oops/klass.inline.hpp"
#include "runtime/safepointMechanism.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/vframeArray.hpp"
--- a/src/hotspot/cpu/arm/sharedRuntime_arm.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/cpu/arm/sharedRuntime_arm.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -32,6 +32,7 @@
#include "logging/log.hpp"
#include "memory/resourceArea.hpp"
#include "oops/compiledICHolder.hpp"
+#include "oops/klass.inline.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/vframeArray.hpp"
#include "utilities/align.hpp"
--- a/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -32,6 +32,7 @@
#include "interpreter/interpreter.hpp"
#include "memory/resourceArea.hpp"
#include "nativeInst_ppc.hpp"
+#include "oops/klass.inline.hpp"
#include "prims/methodHandles.hpp"
#include "runtime/biasedLocking.hpp"
#include "runtime/icache.hpp"
--- a/src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -34,6 +34,7 @@
#include "interpreter/interp_masm.hpp"
#include "memory/resourceArea.hpp"
#include "oops/compiledICHolder.hpp"
+#include "oops/klass.inline.hpp"
#include "runtime/safepointMechanism.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/vframeArray.hpp"
--- a/src/hotspot/cpu/ppc/templateTable_ppc_64.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/cpu/ppc/templateTable_ppc_64.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -32,6 +32,7 @@
#include "interpreter/templateInterpreter.hpp"
#include "interpreter/templateTable.hpp"
#include "memory/universe.hpp"
+#include "oops/klass.inline.hpp"
#include "oops/objArrayKlass.hpp"
#include "oops/oop.inline.hpp"
#include "prims/methodHandles.hpp"
--- a/src/hotspot/cpu/ppc/vtableStubs_ppc_64.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/cpu/ppc/vtableStubs_ppc_64.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -30,6 +30,7 @@
#include "memory/resourceArea.hpp"
#include "oops/compiledICHolder.hpp"
#include "oops/instanceKlass.hpp"
+#include "oops/klass.inline.hpp"
#include "oops/klassVtable.hpp"
#include "runtime/sharedRuntime.hpp"
#include "vmreg_ppc.inline.hpp"
--- a/src/hotspot/cpu/s390/sharedRuntime_s390.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/cpu/s390/sharedRuntime_s390.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -33,6 +33,7 @@
#include "interpreter/interp_masm.hpp"
#include "memory/resourceArea.hpp"
#include "oops/compiledICHolder.hpp"
+#include "oops/klass.inline.hpp"
#include "registerSaver_s390.hpp"
#include "runtime/safepointMechanism.hpp"
#include "runtime/sharedRuntime.hpp"
--- a/src/hotspot/cpu/s390/vtableStubs_s390.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/cpu/s390/vtableStubs_s390.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -30,6 +30,7 @@
#include "memory/resourceArea.hpp"
#include "oops/compiledICHolder.hpp"
#include "oops/instanceKlass.hpp"
+#include "oops/klass.inline.hpp"
#include "oops/klassVtable.hpp"
#include "runtime/sharedRuntime.hpp"
#include "vmreg_s390.inline.hpp"
--- a/src/hotspot/cpu/sparc/sharedRuntime_sparc.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/cpu/sparc/sharedRuntime_sparc.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -32,6 +32,7 @@
#include "logging/log.hpp"
#include "memory/resourceArea.hpp"
#include "oops/compiledICHolder.hpp"
+#include "oops/klass.inline.hpp"
#include "runtime/safepointMechanism.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/vframeArray.hpp"
--- a/src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -34,6 +34,7 @@
#include "logging/log.hpp"
#include "memory/resourceArea.hpp"
#include "oops/compiledICHolder.hpp"
+#include "oops/klass.inline.hpp"
#include "runtime/safepointMechanism.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/vframeArray.hpp"
--- a/src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -41,6 +41,7 @@
#include "memory/resourceArea.hpp"
#include "memory/universe.hpp"
#include "oops/compiledICHolder.hpp"
+#include "oops/klass.inline.hpp"
#include "runtime/safepointMechanism.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/vframeArray.hpp"
--- a/src/hotspot/os/aix/os_aix.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/os/aix/os_aix.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -2643,8 +2643,24 @@
60 // 11 CriticalPriority
};
+static int prio_init() {
+ if (ThreadPriorityPolicy == 1) {
+ if (geteuid() != 0) {
+ if (!FLAG_IS_DEFAULT(ThreadPriorityPolicy)) {
+ warning("-XX:ThreadPriorityPolicy=1 may require system level permission, " \
+ "e.g., being the root user. If the necessary permission is not " \
+ "possessed, changes to priority will be silently ignored.");
+ }
+ }
+ }
+ if (UseCriticalJavaThreadPriority) {
+ os::java_to_os_priority[MaxPriority] = os::java_to_os_priority[CriticalPriority];
+ }
+ return 0;
+}
+
OSReturn os::set_native_priority(Thread* thread, int newpri) {
- if (!UseThreadPriorities) return OS_OK;
+ if (!UseThreadPriorities || ThreadPriorityPolicy == 0) return OS_OK;
pthread_t thr = thread->osthread()->pthread_id();
int policy = SCHED_OTHER;
struct sched_param param;
@@ -2659,7 +2675,7 @@
}
OSReturn os::get_native_priority(const Thread* const thread, int *priority_ptr) {
- if (!UseThreadPriorities) {
+ if (!UseThreadPriorities || ThreadPriorityPolicy == 0) {
*priority_ptr = java_to_os_priority[NormPriority];
return OS_OK;
}
@@ -2756,7 +2772,7 @@
os::SuspendResume::State state = osthread->sr.suspended();
if (state == os::SuspendResume::SR_SUSPENDED) {
sigset_t suspend_set; // signals for sigsuspend()
-
+ sigemptyset(&suspend_set);
// get current set of blocked signals and unblock resume signal
pthread_sigmask(SIG_BLOCK, NULL, &suspend_set);
sigdelset(&suspend_set, SR_signum);
@@ -3042,6 +3058,7 @@
// try to honor the signal mask
sigset_t oset;
+ sigemptyset(&oset);
pthread_sigmask(SIG_SETMASK, &(actp->sa_mask), &oset);
// call into the chained handler
@@ -3052,7 +3069,7 @@
}
// restore the signal mask
- pthread_sigmask(SIG_SETMASK, &oset, 0);
+ pthread_sigmask(SIG_SETMASK, &oset, NULL);
}
// Tell jvm's signal handler the signal is taken care of.
return true;
@@ -3568,6 +3585,9 @@
}
}
+ // initialize thread priority policy
+ prio_init();
+
return JNI_OK;
}
@@ -4009,7 +4029,7 @@
void os::pause() {
char filename[MAX_PATH];
if (PauseAtStartupFile && PauseAtStartupFile[0]) {
- jio_snprintf(filename, MAX_PATH, PauseAtStartupFile);
+ jio_snprintf(filename, MAX_PATH, "%s", PauseAtStartupFile);
} else {
jio_snprintf(filename, MAX_PATH, "./vm.paused.%d", current_process_id());
}
--- a/src/hotspot/os/bsd/os_bsd.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/os/bsd/os_bsd.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -3671,7 +3671,7 @@
void os::pause() {
char filename[MAX_PATH];
if (PauseAtStartupFile && PauseAtStartupFile[0]) {
- jio_snprintf(filename, MAX_PATH, PauseAtStartupFile);
+ jio_snprintf(filename, MAX_PATH, "%s", PauseAtStartupFile);
} else {
jio_snprintf(filename, MAX_PATH, "./vm.paused.%d", current_process_id());
}
--- a/src/hotspot/os/solaris/os_solaris.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/os/solaris/os_solaris.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -4428,7 +4428,7 @@
void os::pause() {
char filename[MAX_PATH];
if (PauseAtStartupFile && PauseAtStartupFile[0]) {
- jio_snprintf(filename, MAX_PATH, PauseAtStartupFile);
+ jio_snprintf(filename, MAX_PATH, "%s", PauseAtStartupFile);
} else {
jio_snprintf(filename, MAX_PATH, "./vm.paused.%d", current_process_id());
}
--- a/src/hotspot/os/windows/os_windows.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/os/windows/os_windows.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -4975,7 +4975,7 @@
void os::pause() {
char filename[MAX_PATH];
if (PauseAtStartupFile && PauseAtStartupFile[0]) {
- jio_snprintf(filename, MAX_PATH, PauseAtStartupFile);
+ jio_snprintf(filename, MAX_PATH, "%s", PauseAtStartupFile);
} else {
jio_snprintf(filename, MAX_PATH, "./vm.paused.%d", current_process_id());
}
--- a/src/hotspot/share/c1/c1_ValueStack.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/c1/c1_ValueStack.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -42,31 +42,21 @@
verify();
}
-
ValueStack::ValueStack(ValueStack* copy_from, Kind kind, int bci)
: _scope(copy_from->scope())
, _caller_state(copy_from->caller_state())
, _bci(bci)
, _kind(kind)
- , _locals()
- , _stack()
+ , _locals(copy_from->locals_size_for_copy(kind))
+ , _stack(copy_from->stack_size_for_copy(kind))
, _locks(copy_from->locks_size() == 0 ? NULL : new Values(copy_from->locks_size()))
{
assert(kind != EmptyExceptionState || !Compilation::current()->env()->should_retain_local_variables(), "need locals");
if (kind != EmptyExceptionState) {
- // only allocate space if we need to copy the locals-array
- _locals = Values(copy_from->locals_size());
_locals.appendAll(©_from->_locals);
}
if (kind != ExceptionState && kind != EmptyExceptionState) {
- if (kind == Parsing) {
- // stack will be modified, so reserve enough space to avoid resizing
- _stack = Values(scope()->method()->max_stack());
- } else {
- // stack will not be modified, so do not waste space
- _stack = Values(copy_from->stack_size());
- }
_stack.appendAll(©_from->_stack);
}
@@ -77,6 +67,25 @@
verify();
}
+int ValueStack::locals_size_for_copy(Kind kind) const {
+ if (kind != EmptyExceptionState) {
+ return locals_size();
+ }
+ return 0;
+}
+
+int ValueStack::stack_size_for_copy(Kind kind) const {
+ if (kind != ExceptionState && kind != EmptyExceptionState) {
+ if (kind == Parsing) {
+ // stack will be modified, so reserve enough space to avoid resizing
+ return scope()->method()->max_stack();
+ } else {
+ // stack will not be modified, so do not waste space
+ return stack_size();
+ }
+ }
+ return 0;
+}
bool ValueStack::is_same(ValueStack* s) {
if (scope() != s->scope()) return false;
--- a/src/hotspot/share/c1/c1_ValueStack.hpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/c1/c1_ValueStack.hpp Tue Oct 15 14:19:55 2019 +0530
@@ -65,6 +65,8 @@
// for simplified copying
ValueStack(ValueStack* copy_from, Kind kind, int bci);
+ int locals_size_for_copy(Kind kind) const;
+ int stack_size_for_copy(Kind kind) const;
public:
// creation
ValueStack(IRScope* scope, ValueStack* caller_state);
--- a/src/hotspot/share/ci/ciMetadata.hpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/ci/ciMetadata.hpp Tue Oct 15 14:19:55 2019 +0530
@@ -51,7 +51,6 @@
virtual bool is_metadata() const { return true; }
virtual bool is_type() const { return false; }
- virtual bool is_cpcache() const { return false; }
virtual bool is_return_address() const { return false; }
virtual bool is_method() const { return false; }
virtual bool is_method_data() const { return false; }
--- a/src/hotspot/share/classfile/javaClasses.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/classfile/javaClasses.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -384,13 +384,17 @@
}
jstring js = NULL;
- { JavaThread* thread = (JavaThread*)THREAD;
- assert(thread->is_Java_thread(), "must be java thread");
+ {
+ assert(THREAD->is_Java_thread(), "must be java thread");
+ JavaThread* thread = (JavaThread*)THREAD;
HandleMark hm(thread);
ThreadToNativeFromVM ttn(thread);
js = (_to_java_string_fn)(thread->jni_environment(), str);
}
- return Handle(THREAD, JNIHandles::resolve(js));
+
+ Handle native_platform_string(THREAD, JNIHandles::resolve(js));
+ JNIHandles::destroy_local(js); // destroy local JNIHandle.
+ return native_platform_string;
}
// Converts a Java String to a native C string that can be used for
--- a/src/hotspot/share/gc/g1/heapRegionRemSet.hpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/gc/g1/heapRegionRemSet.hpp Tue Oct 15 14:19:55 2019 +0530
@@ -186,10 +186,6 @@
_collision_list_next(NULL)
{}
- inline void add_card_work(CardIdx_t from_card, bool par);
-
- inline void add_reference_work(OopOrNarrowOopStar from, bool par);
-
public:
// We need access in order to union things into the base table.
BitMap* bm() { return &_bm; }
@@ -206,12 +202,8 @@
inline void add_reference(OopOrNarrowOopStar from);
- inline void seq_add_reference(OopOrNarrowOopStar from);
-
inline void add_card(CardIdx_t from_card_index);
- void seq_add_card(CardIdx_t from_card_index);
-
// (Destructively) union the bitmap of the current table into the given
// bitmap (which is assumed to be of the same size.)
void union_bitmap_into(BitMap* bm) {
@@ -381,12 +373,6 @@
_state = Complete;
}
- // Used in the sequential case.
- void add_reference(OopOrNarrowOopStar from) {
- add_reference(from, 0);
- }
-
- // Used in the parallel case.
void add_reference(OopOrNarrowOopStar from, uint tid) {
RemSetState state = _state;
if (state == Untracked) {
--- a/src/hotspot/share/gc/g1/heapRegionRemSet.inline.hpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/gc/g1/heapRegionRemSet.inline.hpp Tue Oct 15 14:19:55 2019 +0530
@@ -35,20 +35,13 @@
_other_regions.iterate(cl);
}
-inline void PerRegionTable::add_card_work(CardIdx_t from_card, bool par) {
- if (!_bm.at(from_card)) {
- if (par) {
- if (_bm.par_set_bit(from_card)) {
- Atomic::inc(&_occupied);
- }
- } else {
- _bm.set_bit(from_card);
- _occupied++;
- }
+inline void PerRegionTable::add_card(CardIdx_t from_card_index) {
+ if (_bm.par_set_bit(from_card_index)) {
+ Atomic::inc(&_occupied);
}
}
-inline void PerRegionTable::add_reference_work(OopOrNarrowOopStar from, bool par) {
+inline void PerRegionTable::add_reference(OopOrNarrowOopStar from) {
// Must make this robust in case "from" is not in "_hr", because of
// concurrency.
@@ -58,26 +51,10 @@
// and adding a bit to the new table is never incorrect.
if (loc_hr->is_in_reserved(from)) {
CardIdx_t from_card = OtherRegionsTable::card_within_region(from, loc_hr);
- add_card_work(from_card, par);
+ add_card(from_card);
}
}
-inline void PerRegionTable::add_card(CardIdx_t from_card_index) {
- add_card_work(from_card_index, /*parallel*/ true);
-}
-
-inline void PerRegionTable::seq_add_card(CardIdx_t from_card_index) {
- add_card_work(from_card_index, /*parallel*/ false);
-}
-
-inline void PerRegionTable::add_reference(OopOrNarrowOopStar from) {
- add_reference_work(from, /*parallel*/ true);
-}
-
-inline void PerRegionTable::seq_add_reference(OopOrNarrowOopStar from) {
- add_reference_work(from, /*parallel*/ false);
-}
-
inline void PerRegionTable::init(HeapRegion* hr, bool clear_links_to_all_list) {
if (clear_links_to_all_list) {
set_next(NULL);
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -964,7 +964,6 @@
ShenandoahHeapRegion* r;
while ((r =_cs->claim_next()) != NULL) {
assert(r->has_live(), "Region " SIZE_FORMAT " should have been reclaimed early", r->region_number());
- assert(r->is_conc_move_allowed(), "Region " SIZE_FORMAT " should be movable", r->region_number());
_sh->marked_object_iterate(r, &cl);
if (ShenandoahPacing) {
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp Tue Oct 15 14:19:55 2019 +0530
@@ -198,8 +198,7 @@
// Macro-properties:
bool is_alloc_allowed() const { return is_empty() || is_regular() || _state == _pinned; }
- bool is_conc_move_allowed() const { return is_regular() || _state == _cset; }
- bool is_stw_move_allowed() const { return is_conc_move_allowed() || (ShenandoahHumongousMoves && _state == _humongous_start); }
+ bool is_stw_move_allowed() const { return is_regular() || _state == _cset || (ShenandoahHumongousMoves && _state == _humongous_start); }
RegionState state() const { return _state; }
int state_ordinal() const { return region_state_to_ordinal(_state); }
--- a/src/hotspot/share/gc/z/zLock.inline.hpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/gc/z/zLock.inline.hpp Tue Oct 15 14:19:55 2019 +0530
@@ -80,12 +80,16 @@
template <typename T>
inline ZLocker<T>::ZLocker(T* lock) :
_lock(lock) {
- _lock->lock();
+ if (_lock != NULL) {
+ _lock->lock();
+ }
}
template <typename T>
inline ZLocker<T>::~ZLocker() {
- _lock->unlock();
+ if (_lock != NULL) {
+ _lock->unlock();
+ }
}
#endif // SHARE_GC_Z_ZLOCK_INLINE_HPP
--- a/src/hotspot/share/gc/z/zNMethodTable.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/gc/z/zNMethodTable.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -51,7 +51,7 @@
size_t ZNMethodTable::_nregistered = 0;
size_t ZNMethodTable::_nunregistered = 0;
ZNMethodTableIteration ZNMethodTable::_iteration;
-ZSafeDelete<ZNMethodTableEntry[]> ZNMethodTable::_safe_delete;
+ZSafeDeleteNoLock<ZNMethodTableEntry[]> ZNMethodTable::_safe_delete;
size_t ZNMethodTable::first_index(const nmethod* nm, size_t size) {
assert(is_power_of_2(size), "Invalid size");
--- a/src/hotspot/share/gc/z/zNMethodTable.hpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/gc/z/zNMethodTable.hpp Tue Oct 15 14:19:55 2019 +0530
@@ -35,12 +35,12 @@
class ZNMethodTable : public AllStatic {
private:
- static ZNMethodTableEntry* _table;
- static size_t _size;
- static size_t _nregistered;
- static size_t _nunregistered;
- static ZNMethodTableIteration _iteration;
- static ZSafeDelete<ZNMethodTableEntry[]> _safe_delete;
+ static ZNMethodTableEntry* _table;
+ static size_t _size;
+ static size_t _nregistered;
+ static size_t _nunregistered;
+ static ZNMethodTableIteration _iteration;
+ static ZSafeDeleteNoLock<ZNMethodTableEntry[]> _safe_delete;
static ZNMethodTableEntry* create(size_t size);
static void destroy(ZNMethodTableEntry* table);
--- a/src/hotspot/share/gc/z/zSafeDelete.hpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/gc/z/zSafeDelete.hpp Tue Oct 15 14:19:55 2019 +0530
@@ -29,11 +29,11 @@
#include "metaprogramming/removeExtent.hpp"
template <typename T>
-class ZSafeDelete {
+class ZSafeDeleteImpl {
private:
typedef typename RemoveExtent<T>::type ItemT;
- ZLock _lock;
+ ZLock* _lock;
uint64_t _enabled;
ZArray<ItemT*> _deferred;
@@ -41,7 +41,7 @@
void immediate_delete(ItemT* item);
public:
- ZSafeDelete();
+ ZSafeDeleteImpl(ZLock* lock);
void enable_deferred_delete();
void disable_deferred_delete();
@@ -49,4 +49,19 @@
void operator()(ItemT* item);
};
+template <typename T>
+class ZSafeDelete : public ZSafeDeleteImpl<T> {
+private:
+ ZLock _lock;
+
+public:
+ ZSafeDelete();
+};
+
+template <typename T>
+class ZSafeDeleteNoLock : public ZSafeDeleteImpl<T> {
+public:
+ ZSafeDeleteNoLock();
+};
+
#endif // SHARE_GC_Z_ZSAFEDELETE_HPP
--- a/src/hotspot/share/gc/z/zSafeDelete.inline.hpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/gc/z/zSafeDelete.inline.hpp Tue Oct 15 14:19:55 2019 +0530
@@ -30,14 +30,14 @@
#include "utilities/debug.hpp"
template <typename T>
-ZSafeDelete<T>::ZSafeDelete() :
- _lock(),
+ZSafeDeleteImpl<T>::ZSafeDeleteImpl(ZLock* lock) :
+ _lock(lock),
_enabled(0),
_deferred() {}
template <typename T>
-bool ZSafeDelete<T>::deferred_delete(ItemT* item) {
- ZLocker<ZLock> locker(&_lock);
+bool ZSafeDeleteImpl<T>::deferred_delete(ItemT* item) {
+ ZLocker<ZLock> locker(_lock);
if (_enabled > 0) {
_deferred.add(item);
return true;
@@ -47,7 +47,7 @@
}
template <typename T>
-void ZSafeDelete<T>::immediate_delete(ItemT* item) {
+void ZSafeDeleteImpl<T>::immediate_delete(ItemT* item) {
if (IsArray<T>::value) {
delete [] item;
} else {
@@ -56,17 +56,17 @@
}
template <typename T>
-void ZSafeDelete<T>::enable_deferred_delete() {
- ZLocker<ZLock> locker(&_lock);
+void ZSafeDeleteImpl<T>::enable_deferred_delete() {
+ ZLocker<ZLock> locker(_lock);
_enabled++;
}
template <typename T>
-void ZSafeDelete<T>::disable_deferred_delete() {
+void ZSafeDeleteImpl<T>::disable_deferred_delete() {
ZArray<ItemT*> deferred;
{
- ZLocker<ZLock> locker(&_lock);
+ ZLocker<ZLock> locker(_lock);
assert(_enabled > 0, "Invalid state");
if (--_enabled == 0) {
deferred.transfer(&_deferred);
@@ -80,10 +80,19 @@
}
template <typename T>
-void ZSafeDelete<T>::operator()(ItemT* item) {
+void ZSafeDeleteImpl<T>::operator()(ItemT* item) {
if (!deferred_delete(item)) {
immediate_delete(item);
}
}
+template <typename T>
+ZSafeDelete<T>::ZSafeDelete() :
+ ZSafeDeleteImpl<T>(&_lock),
+ _lock() {}
+
+template <typename T>
+ZSafeDeleteNoLock<T>::ZSafeDeleteNoLock() :
+ ZSafeDeleteImpl<T>(NULL) {}
+
#endif // SHARE_GC_Z_ZSAFEDELETE_INLINE_HPP
--- a/src/hotspot/share/gc/z/z_globals.hpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/gc/z/z_globals.hpp Tue Oct 15 14:19:55 2019 +0530
@@ -86,9 +86,6 @@
"Verify marking stacks") \
\
diagnostic(bool, ZVerifyForwarding, false, \
- "Verify forwarding tables") \
- \
- develop(bool, ZVerifyLoadBarriers, false, \
- "Verify that reference loads are followed by barriers")
+ "Verify forwarding tables")
#endif // SHARE_GC_Z_Z_GLOBALS_HPP
--- a/src/hotspot/share/jvmci/jvmciCodeInstaller.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/jvmci/jvmciCodeInstaller.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -642,11 +642,9 @@
failed_speculations, speculations, speculations_len);
cb = nm->as_codeblob_or_null();
if (nm != NULL && compile_state == NULL) {
+ // This compile didn't come through the CompileBroker so perform the printing here
DirectiveSet* directive = DirectivesStack::getMatchingDirective(method, compiler);
- bool printnmethods = directive->PrintAssemblyOption || directive->PrintNMethodsOption;
- if (!printnmethods && (PrintDebugInfo || PrintRelocations || PrintDependencies || PrintExceptionHandlers)) {
- nm->print_nmethod(printnmethods);
- }
+ nm->maybe_print_nmethod(directive);
DirectivesStack::release(directive);
}
}
--- a/src/hotspot/share/oops/klassVtable.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/oops/klassVtable.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -1501,7 +1501,6 @@
#endif
void vtableEntry::verify(klassVtable* vt, outputStream* st) {
- NOT_PRODUCT(FlagSetting fs(IgnoreLockingAssertions, true));
Klass* vtklass = vt->klass();
if (vtklass->is_instance_klass() &&
(InstanceKlass::cast(vtklass)->major_version() >= klassVtable::VTABLE_TRANSITIVE_OVERRIDE_VERSION)) {
--- a/src/hotspot/share/opto/library_call.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/opto/library_call.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -32,6 +32,7 @@
#include "gc/shared/barrierSet.hpp"
#include "jfr/support/jfrIntrinsics.hpp"
#include "memory/resourceArea.hpp"
+#include "oops/klass.inline.hpp"
#include "oops/objArrayKlass.hpp"
#include "opto/addnode.hpp"
#include "opto/arraycopynode.hpp"
--- a/src/hotspot/share/opto/loopTransform.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/opto/loopTransform.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -3129,6 +3129,13 @@
// We also need to replace the original limit to collapse loop exit.
Node* cmp = cl->loopexit()->cmp_node();
assert(cl->limit() == cmp->in(2), "sanity");
+ // Duplicate cmp node if it has other users
+ if (cmp->outcnt() > 1) {
+ cmp = cmp->clone();
+ cmp = phase->_igvn.register_new_node_with_optimizer(cmp);
+ BoolNode *bol = cl->loopexit()->in(CountedLoopEndNode::TestValue)->as_Bool();
+ phase->_igvn.replace_input_of(bol, 1, cmp); // put bol on worklist
+ }
phase->_igvn._worklist.push(cmp->in(2)); // put limit on worklist
phase->_igvn.replace_input_of(cmp, 2, exact_limit); // put cmp on worklist
}
--- a/src/hotspot/share/prims/jniCheck.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/prims/jniCheck.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -534,10 +534,10 @@
if (obj != NULL) {
oop recv = jniCheck::validate_object(thr, obj);
assert(recv != NULL, "validate_object checks that");
- Klass* ik = recv->klass();
+ Klass* rk = recv->klass();
// Check that the object is a subtype of method holder too.
- if (!InstanceKlass::cast(ik)->is_subtype_of(holder)) {
+ if (!rk->is_subtype_of(holder)) {
ReportJNIFatalError(thr, fatal_wrong_class_or_method);
}
}
--- a/src/hotspot/share/runtime/globals.hpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/runtime/globals.hpp Tue Oct 15 14:19:55 2019 +0530
@@ -1197,9 +1197,6 @@
develop(bool, TraceCreateZombies, false, \
"trace creation of zombie nmethods") \
\
- notproduct(bool, IgnoreLockingAssertions, false, \
- "disable locking assertions (for speed)") \
- \
product(bool, RangeCheckElimination, true, \
"Eliminate range checks") \
\
--- a/src/hotspot/share/runtime/mutexLocker.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/runtime/mutexLocker.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -161,7 +161,6 @@
#ifdef ASSERT
void assert_locked_or_safepoint(const Mutex* lock) {
// check if this thread owns the lock (common case)
- if (IgnoreLockingAssertions) return;
assert(lock != NULL, "Need non-NULL lock");
if (lock->owned_by_self()) return;
if (SafepointSynchronize::is_at_safepoint()) return;
@@ -174,7 +173,6 @@
// a weaker assertion than the above
void assert_locked_or_safepoint_weak(const Mutex* lock) {
- if (IgnoreLockingAssertions) return;
assert(lock != NULL, "Need non-NULL lock");
if (lock->is_locked()) return;
if (SafepointSynchronize::is_at_safepoint()) return;
@@ -184,7 +182,6 @@
// a stronger assertion than the above
void assert_lock_strong(const Mutex* lock) {
- if (IgnoreLockingAssertions) return;
assert(lock != NULL, "Need non-NULL lock");
if (lock->owned_by_self()) return;
fatal("must own lock %s", lock->name());
--- a/src/hotspot/share/runtime/threadSMR.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/runtime/threadSMR.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -528,6 +528,22 @@
return;
}
+ if ( _thread == VM_Exit::shutdown_thread()) {
+ // The shutdown thread has removed itself from the Threads
+ // list and is safe to have a waiver from this check because
+ // VM_Exit::_shutdown_thread is not set until after the VMThread
+ // has started the final safepoint which holds the Threads_lock
+ // for the remainder of the VM's life.
+ return;
+ }
+
+ if (VMError::is_error_reported() &&
+ VMError::get_first_error_tid() == os::current_thread_id()) {
+ // If there is an error reported by this thread it may use ThreadsList even
+ // if it's unsafe.
+ return;
+ }
+
// The closure will attempt to verify that the calling thread can
// be found by threads_do() on the specified ThreadsList. If it
// is successful, then the specified ThreadsList was acquired as
@@ -540,12 +556,6 @@
// ThreadsList is not a stable hazard ptr and can be freed by
// another thread from the to-be-deleted list at any time.
//
- // Note: The shutdown thread has removed itself from the Threads
- // list and is safe to have a waiver from this check because
- // VM_Exit::_shutdown_thread is not set until after the VMThread
- // has started the final safepoint which holds the Threads_lock
- // for the remainder of the VM's life.
- //
VerifyHazardPtrThreadClosure cl(_thread);
ThreadsSMRSupport::threads_do(&cl, _list);
@@ -555,7 +565,7 @@
// In either case, we won't get past this point with a badly placed
// ThreadsListHandle.
- assert(cl.found() || _thread == VM_Exit::shutdown_thread(), "Acquired a ThreadsList snapshot from a thread not recognized by the Thread-SMR protocol.");
+ assert(cl.found(), "Acquired a ThreadsList snapshot from a thread not recognized by the Thread-SMR protocol.");
#endif
}
--- a/src/hotspot/share/utilities/decoder.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/utilities/decoder.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -84,7 +84,7 @@
}
bool Decoder::decode(address addr, char* buf, int buflen, int* offset, const char* modulepath, bool demangle) {
- bool error_handling_thread = os::current_thread_id() == VMError::first_error_tid;
+ bool error_handling_thread = os::current_thread_id() == VMError::get_first_error_tid();
if (error_handling_thread) {
return get_error_handler_instance()->decode(addr, buf, buflen, offset, modulepath, demangle);
} else {
@@ -95,7 +95,7 @@
}
bool Decoder::decode(address addr, char* buf, int buflen, int* offset, const void* base) {
- bool error_handling_thread = os::current_thread_id() == VMError::first_error_tid;
+ bool error_handling_thread = os::current_thread_id() == VMError::get_first_error_tid();
if (error_handling_thread) {
return get_error_handler_instance()->decode(addr, buf, buflen, offset, base);
} else {
@@ -106,7 +106,7 @@
bool Decoder::demangle(const char* symbol, char* buf, int buflen) {
- bool error_handling_thread = os::current_thread_id() == VMError::first_error_tid;
+ bool error_handling_thread = os::current_thread_id() == VMError::get_first_error_tid();
if (error_handling_thread) {
return get_error_handler_instance()->demangle(symbol, buf, buflen);
} else {
--- a/src/hotspot/share/utilities/vmError.cpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/utilities/vmError.cpp Tue Oct 15 14:19:55 2019 +0530
@@ -1205,7 +1205,7 @@
st->print_cr("END.");
}
-volatile intptr_t VMError::first_error_tid = -1;
+volatile intptr_t VMError::_first_error_tid = -1;
/** Expand a pattern into a buffer starting at pos and open a file using constructed path */
static int expand_and_open(const char* pattern, bool overwrite_existing, char* buf, size_t buflen, size_t pos) {
@@ -1355,8 +1355,8 @@
os::abort(CreateCoredumpOnCrash);
}
intptr_t mytid = os::current_thread_id();
- if (first_error_tid == -1 &&
- Atomic::cmpxchg(mytid, &first_error_tid, (intptr_t)-1) == -1) {
+ if (_first_error_tid == -1 &&
+ Atomic::cmpxchg(mytid, &_first_error_tid, (intptr_t)-1) == -1) {
// Initialize time stamps to use the same base.
out.time_stamp().update_to(1);
@@ -1416,7 +1416,7 @@
// This is not the first error, see if it happened in a different thread
// or in the same thread during error reporting.
- if (first_error_tid != mytid) {
+ if (_first_error_tid != mytid) {
char msgbuf[64];
jio_snprintf(msgbuf, sizeof(msgbuf),
"[thread " INTX_FORMAT " also had an error]",
--- a/src/hotspot/share/utilities/vmError.hpp Sat Oct 12 08:49:59 2019 +0530
+++ b/src/hotspot/share/utilities/vmError.hpp Tue Oct 15 14:19:55 2019 +0530
@@ -32,8 +32,6 @@
class VM_ReportJavaOutOfMemory;
class VMError : public AllStatic {
- friend class VM_ReportJavaOutOfMemory;
- friend class Decoder;
friend class VMStructs;
static int _id; // Solaris/Linux signals: 0 - SIGRTMAX
@@ -65,7 +63,7 @@
// Thread id of the first error. We must be able to handle native thread,
// so use thread id instead of Thread* to identify thread.
- static volatile intptr_t first_error_tid;
+ static volatile intptr_t _first_error_tid;
// Core dump status, false if we have been unable to write a core/minidump for some reason
static bool coredump_status;
@@ -177,9 +175,9 @@
static address get_resetted_sighandler(int sig);
// check to see if fatal error reporting is in progress
- static bool fatal_error_in_progress() { return first_error_tid != -1; }
+ static bool fatal_error_in_progress() { return _first_error_tid != -1; }
- static intptr_t get_first_error_tid() { return first_error_tid; }
+ static intptr_t get_first_error_tid() { return _first_error_tid; }
// Called by the WatcherThread to check if error reporting has timed-out.
// Returns true if error reporting has not completed within the ErrorLogTimeout limit.
--- a/src/java.base/share/classes/java/lang/ClassLoader.java Sat Oct 12 08:49:59 2019 +0530
+++ b/src/java.base/share/classes/java/lang/ClassLoader.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2019, Azul Systems, Inc. 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
@@ -2004,6 +2005,17 @@
return scl;
}
+ /*
+ * Initialize default paths for native libraries search.
+ * Must be done early as JDK may load libraries during bootstrap.
+ *
+ * @see java.lang.System#initPhase1
+ */
+ static void initLibraryPaths() {
+ usr_paths = initializePath("java.library.path");
+ sys_paths = initializePath("sun.boot.library.path");
+ }
+
// Returns true if the specified class loader can be found in this class
// loader's delegation chain.
boolean isAncestor(ClassLoader cl) {
@@ -2473,8 +2485,7 @@
*
* We use a static stack to hold the list of libraries we are
* loading because this can happen only when called by the
- * same thread because Runtime.load and Runtime.loadLibrary
- * are synchronous.
+ * same thread because this block is synchronous.
*
* If there is a pending load operation for the library, we
* immediately return success; otherwise, we raise
@@ -2619,10 +2630,9 @@
boolean isAbsolute) {
ClassLoader loader =
(fromClass == null) ? null : fromClass.getClassLoader();
- if (sys_paths == null) {
- usr_paths = initializePath("java.library.path");
- sys_paths = initializePath("sun.boot.library.path");
- }
+ assert sys_paths != null : "should be initialized at this point";
+ assert usr_paths != null : "should be initialized at this point";
+
if (isAbsolute) {
if (loadLibrary0(fromClass, new File(name))) {
return;
--- a/src/java.base/share/classes/java/lang/Runtime.java Sat Oct 12 08:49:59 2019 +0530
+++ b/src/java.base/share/classes/java/lang/Runtime.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,6 @@
/*
* Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2019, Azul Systems, Inc. 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
@@ -732,7 +733,7 @@
load0(Reflection.getCallerClass(), filename);
}
- synchronized void load0(Class<?> fromClass, String filename) {
+ void load0(Class<?> fromClass, String filename) {
SecurityManager security = System.getSecurityManager();
if (security != null) {
security.checkLink(filename);
@@ -794,14 +795,14 @@
loadLibrary0(Reflection.getCallerClass(), libname);
}
- synchronized void loadLibrary0(Class<?> fromClass, String libname) {
+ void loadLibrary0(Class<?> fromClass, String libname) {
SecurityManager security = System.getSecurityManager();
if (security != null) {
security.checkLink(libname);
}
if (libname.indexOf((int)File.separatorChar) != -1) {
throw new UnsatisfiedLinkError(
- "Directory separator should not appear in library name: " + libname);
+ "Directory separator should not appear in library name: " + libname);
}
ClassLoader.loadLibrary(fromClass, libname, false);
}
--- a/src/java.base/share/classes/java/lang/StringCoding.java Sat Oct 12 08:49:59 2019 +0530
+++ b/src/java.base/share/classes/java/lang/StringCoding.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, 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
@@ -191,6 +191,12 @@
return result.with(StringLatin1.inflate(ba, off, len), UTF16);
}
}
+ // fastpath for always Latin1 decodable single byte
+ if (COMPACT_STRINGS && cd instanceof ArrayDecoder && ((ArrayDecoder)cd).isLatin1Decodable()) {
+ byte[] dst = new byte[len];
+ ((ArrayDecoder)cd).decodeToLatin1(ba, off, len, dst);
+ return result.with(dst, LATIN1);
+ }
int en = scale(len, cd.maxCharsPerByte());
char[] ca = new char[en];
if (cd instanceof ArrayDecoder) {
@@ -278,6 +284,13 @@
((ArrayDecoder)cd).isASCIICompatible() && !hasNegatives(ba, off, len)) {
return decodeLatin1(ba, off, len);
}
+ // fastpath for always Latin1 decodable single byte
+ if (COMPACT_STRINGS && cd instanceof ArrayDecoder && ((ArrayDecoder)cd).isLatin1Decodable()) {
+ byte[] dst = new byte[len];
+ ((ArrayDecoder)cd).decodeToLatin1(ba, off, len, dst);
+ return new Result().with(dst, LATIN1);
+ }
+
int en = scale(len, cd.maxCharsPerByte());
if (len == 0) {
return new Result().with();
--- a/src/java.base/share/classes/java/lang/System.java Sat Oct 12 08:49:59 2019 +0530
+++ b/src/java.base/share/classes/java/lang/System.java Tue Oct 15 14:19:55 2019 +0530
@@ -2045,6 +2045,8 @@
// register shared secrets
setJavaLangAccess();
+ ClassLoader.initLibraryPaths();
+
// Subsystems that are invoked during initialization can invoke
// VM.isBooted() in order to avoid doing things that should
// wait until the VM is fully initialized. The initialization level
--- a/src/java.base/share/classes/sun/nio/cs/ArrayDecoder.java Sat Oct 12 08:49:59 2019 +0530
+++ b/src/java.base/share/classes/sun/nio/cs/ArrayDecoder.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2019, 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
@@ -28,6 +28,9 @@
/*
* FastPath byte[]->char[] decoder, REPLACE on malformed or
* unmappable input.
+ *
+ * FastPath encoded byte[]-> "String Latin1 coding" byte[] decoder for use when
+ * charset is always decodable to the internal String Latin1 coding byte[], ie. all mappings <=0xff
*/
public interface ArrayDecoder {
@@ -36,4 +39,14 @@
default boolean isASCIICompatible() {
return false;
}
+
+ // Is always decodable to internal String Latin1 coding, ie. all mappings <= 0xff
+ default boolean isLatin1Decodable() {
+ return false;
+ }
+
+ // Decode to internal String Latin1 coding byte[] fastpath for when isLatin1Decodable == true
+ default int decodeToLatin1(byte[] src, int sp, int len, byte[] dst) {
+ return 0;
+ }
}
--- a/src/java.base/share/classes/sun/nio/cs/SingleByte.java Sat Oct 12 08:49:59 2019 +0530
+++ b/src/java.base/share/classes/sun/nio/cs/SingleByte.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019, 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
@@ -50,17 +50,27 @@
implements ArrayDecoder {
private final char[] b2c;
private final boolean isASCIICompatible;
+ private final boolean isLatin1Decodable;
public Decoder(Charset cs, char[] b2c) {
super(cs, 1.0f, 1.0f);
this.b2c = b2c;
this.isASCIICompatible = false;
+ this.isLatin1Decodable = false;
}
public Decoder(Charset cs, char[] b2c, boolean isASCIICompatible) {
super(cs, 1.0f, 1.0f);
this.b2c = b2c;
this.isASCIICompatible = isASCIICompatible;
+ this.isLatin1Decodable = false;
+ }
+
+ public Decoder(Charset cs, char[] b2c, boolean isASCIICompatible, boolean isLatin1Decodable) {
+ super(cs, 1.0f, 1.0f);
+ this.b2c = b2c;
+ this.isASCIICompatible = isASCIICompatible;
+ this.isLatin1Decodable = isLatin1Decodable;
}
private CoderResult decodeArrayLoop(ByteBuffer src, CharBuffer dst) {
@@ -125,6 +135,18 @@
}
@Override
+ public int decodeToLatin1(byte[] src, int sp, int len, byte[] dst) {
+ if (len > dst.length)
+ len = dst.length;
+
+ int dp = 0;
+ while (dp < len) {
+ dst[dp++] = (byte)decode(src[sp++]);
+ }
+ return dp;
+ }
+
+ @Override
public int decode(byte[] src, int sp, int len, char[] dst) {
if (len > dst.length)
len = dst.length;
@@ -143,6 +165,11 @@
public boolean isASCIICompatible() {
return isASCIICompatible;
}
+
+ @Override
+ public boolean isLatin1Decodable() {
+ return isLatin1Decodable;
+ }
}
public static final class Encoder extends CharsetEncoder
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/code/NMethod.java Sat Oct 12 08:49:59 2019 +0530
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/code/NMethod.java Tue Oct 15 14:19:55 2019 +0530
@@ -306,12 +306,17 @@
/** This is only for use by the debugging system, and is only
intended for use in the topmost frame, where we are not
guaranteed to be at a PC for which we have a PCDesc. It finds
- the PCDesc with realPC closest to the current PC. */
+ the PCDesc with realPC closest to the current PC that has
+ a valid scope decode offset. */
public PCDesc getPCDescNearDbg(Address pc) {
PCDesc bestGuessPCDesc = null;
long bestDistance = 0;
for (Address p = scopesPCsBegin(); p.lessThan(scopesPCsEnd()); p = p.addOffsetTo(pcDescSize)) {
PCDesc pcDesc = new PCDesc(p);
+ if (pcDesc.getScopeDecodeOffset() == DebugInformationRecorder.SERIALIZED_NULL) {
+ // We've observed a serialized null decode offset. Ignore this PcDesc.
+ continue;
+ }
// In case pc is null
long distance = -pcDesc.getRealPC(this).minus(pc);
if ((bestGuessPCDesc == null) ||
--- a/src/jdk.jdwp.agent/share/native/libjdwp/debugInit.c Sat Oct 12 08:49:59 2019 +0530
+++ b/src/jdk.jdwp.agent/share/native/libjdwp/debugInit.c Tue Oct 15 14:19:55 2019 +0530
@@ -40,7 +40,6 @@
#include "sys.h"
/* How the options get to OnLoad: */
-#define XDEBUG "-Xdebug"
#define XRUN "-Xrunjdwp"
#define AGENTLIB "-agentlib:jdwp"
@@ -898,7 +897,7 @@
"--------\n"
" - The older " XRUN " interface can still be used, but will be removed in\n"
" a future release, for example:\n"
- " java " XDEBUG " " XRUN ":[help]|[<option>=<value>, ...]\n"
+ " java " XRUN ":[help]|[<option>=<value>, ...]\n"
));
#ifdef DEBUG
--- a/test/hotspot/jtreg/TEST.groups Sat Oct 12 08:49:59 2019 +0530
+++ b/test/hotspot/jtreg/TEST.groups Tue Oct 15 14:19:55 2019 +0530
@@ -384,26 +384,26 @@
hotspot_tier2_runtime = \
runtime/ \
- serviceability/ \
-runtime/CommandLine/OptionsValidation/TestOptionsWithRanges.java \
-runtime/CompressedOops/UseCompressedOops.java \
-runtime/InvocationTests \
-runtime/Thread/TestThreadDumpMonitorContention.java \
-:tier1_runtime \
- -:tier1_serviceability \
-:hotspot_tier2_runtime_platform_agnostic \
-runtime/signal \
-runtime/NMT/MallocStressTest.java
+hotspot_tier2_serviceability = \
+ serviceability/ \
+ -:tier1_serviceability
+
hotspot_tier2_runtime_platform_agnostic = \
runtime/SelectionResolution \
-:tier1_runtime
hotspot_tier3_runtime = \
runtime/ \
- serviceability/ \
-:tier1_runtime \
- -:tier1_serviceability \
-:hotspot_tier2_runtime_platform_agnostic \
-:hotspot_tier2_runtime
--- a/test/hotspot/jtreg/TEST.quick-groups Sat Oct 12 08:49:59 2019 +0530
+++ b/test/hotspot/jtreg/TEST.quick-groups Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2018, 2019, 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
@@ -1652,18 +1652,18 @@
vmTestbase/jit/escape/LockElision/MatMul/MatMul.java \
vmTestbase/jit/escape/LockCoarsening/LockCoarsening002/TestDescription.java \
vmTestbase/jit/exception/exception.java \
- vmTestbase/jit/graph/cgt0/cgt0.java \
- vmTestbase/jit/graph/cgt1/cgt1.java \
- vmTestbase/jit/graph/cgt2/cgt2.java \
- vmTestbase/jit/graph/cgt3/cgt3.java \
- vmTestbase/jit/graph/cgt4/cgt4.java \
- vmTestbase/jit/graph/cgt5/cgt5.java \
- vmTestbase/jit/graph/cgt6/cgt6.java \
- vmTestbase/jit/graph/cgt7/cgt7.java \
- vmTestbase/jit/graph/cgt8/cgt8.java \
- vmTestbase/jit/graph/cgt9/cgt9.java \
- vmTestbase/jit/graph/cgt10/cgt10.java \
- vmTestbase/jit/graph/cgt11/cgt11.java \
+ vmTestbase/jit/graph/cgt0.java \
+ vmTestbase/jit/graph/cgt1.java \
+ vmTestbase/jit/graph/cgt2.java \
+ vmTestbase/jit/graph/cgt3.java \
+ vmTestbase/jit/graph/cgt4.java \
+ vmTestbase/jit/graph/cgt5.java \
+ vmTestbase/jit/graph/cgt6.java \
+ vmTestbase/jit/graph/cgt7.java \
+ vmTestbase/jit/graph/cgt8.java \
+ vmTestbase/jit/graph/cgt9.java \
+ vmTestbase/jit/graph/cgt10.java \
+ vmTestbase/jit/graph/cgt11.java \
vmTestbase/jit/init/init01/init01.java \
vmTestbase/jit/init/init02/init02.java \
vmTestbase/jit/inline/inline003/inline003.java \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/compiler/loopopts/TestRemoveEmptyLoop.java Tue Oct 15 14:19:55 2019 +0530
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2019, Huawei Technologies Co. Ltd. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8231988
+ * @summary Unexpected test result caused by C2 IdealLoopTree::do_remove_empty_loop
+ *
+ * @run main/othervm -XX:-TieredCompilation -XX:-BackgroundCompilation
+ * compiler.loopopts.TestRemoveEmptyLoop
+ */
+
+package compiler.loopopts;
+
+public class TestRemoveEmptyLoop {
+
+ public void test() {
+ int i = 34;
+ for (; i > 0; i -= 11);
+ if (i < 0) {
+ // do nothing
+ } else {
+ throw new RuntimeException("Test failed.");
+ }
+ }
+
+ public static void main(String[] args) {
+ TestRemoveEmptyLoop _instance = new TestRemoveEmptyLoop();
+ for (int i = 0; i < 50000; i++) {
+ _instance.test();
+ }
+ System.out.println("Test passed.");
+ }
+
+}
--- a/test/hotspot/jtreg/containers/docker/EventGeneratorLoop.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/hotspot/jtreg/containers/docker/EventGeneratorLoop.java Tue Oct 15 14:19:55 2019 +0530
@@ -45,7 +45,7 @@
}
int howLong = Integer.parseInt(args[0]);
- System.out.println(MAIN_METHOD_STARTED);
+ System.out.println(MAIN_METHOD_STARTED + ", argument is " + howLong);
for (int i=0; i < howLong; i++) {
SimpleEvent ev = new SimpleEvent();
@@ -56,6 +56,8 @@
try { Thread.sleep(1000); } catch (InterruptedException e) {}
System.out.print(".");
}
+
+ System.out.println("EventGeneratorLoop is coming to an end");
}
}
--- a/test/hotspot/jtreg/containers/docker/TestJcmdWithSideCar.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/hotspot/jtreg/containers/docker/TestJcmdWithSideCar.java Tue Oct 15 14:19:55 2019 +0530
@@ -56,7 +56,7 @@
public class TestJcmdWithSideCar {
private static final String IMAGE_NAME = Common.imageName("jfr-jcmd");
private static final int TIME_TO_RUN_MAIN_PROCESS = (int) (30 * Utils.TIMEOUT_FACTOR); // seconds
- private static final long TIME_TO_WAIT_FOR_MAIN_METHOD_START = 5 * 1000; // milliseconds
+ private static final long TIME_TO_WAIT_FOR_MAIN_METHOD_START = 50 * 1000; // milliseconds
private static final String MAIN_CONTAINER_NAME = "test-container-main";
public static void main(String[] args) throws Exception {
@@ -198,6 +198,8 @@
.addDockerOpts("--volume", Paths.get(".").toAbsolutePath() + ":/workdir/")
.addJavaOpts("-XX:+UsePerfData")
.addClassOptions("" + TIME_TO_RUN_MAIN_PROCESS);
+ // avoid large Xmx
+ opts.appendTestJavaOptions = false;
List<String> cmd = DockerTestUtils.buildJavaCommand(opts);
ProcessBuilder pb = new ProcessBuilder(cmd);
@@ -232,9 +234,21 @@
}
public void waitForAndCheck(long timeout) throws Exception {
- waitFor(timeout);
- if (p.exitValue() != 0) {
- throw new RuntimeException("DockerThread stopped unexpectedly");
+ int exitValue = -1;
+ int retryCount = 3;
+
+ do {
+ waitFor(timeout);
+ try {
+ exitValue = p.exitValue();
+ } catch(IllegalThreadStateException ex) {
+ System.out.println("IllegalThreadStateException occured when calling exitValue()");
+ retryCount--;
+ }
+ } while (exitValue == -1 && retryCount > 0);
+
+ if (exitValue != 0) {
+ throw new RuntimeException("DockerThread stopped unexpectedly, non-zero exit value is " + exitValue);
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/serviceability/sa/ClhsdbJstackXcompStress.java Tue Oct 15 14:19:55 2019 +0530
@@ -0,0 +1,108 @@
+/*
+ * Copyright (c) 2019, Red Hat Inc. 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.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+import jdk.test.lib.JDKToolLauncher;
+import jdk.test.lib.Utils;
+import jdk.test.lib.apps.LingeredApp;
+import jdk.test.lib.process.OutputAnalyzer;
+
+/**
+ * @test
+ * @bug 8196969
+ * @requires vm.hasSAandCanAttach
+ * @library /test/lib
+ * @run main/othervm ClhsdbJstackXcompStress
+ */
+public class ClhsdbJstackXcompStress {
+
+ private static final int MAX_ITERATIONS = 20;
+ private static final boolean DEBUG = false;
+
+ private static boolean isMatchCompiledFrame(List<String> output) {
+ List<String> filtered = output.stream().filter( s -> s.contains("Compiled frame"))
+ .collect(Collectors.toList());
+ System.out.println("DEBUG: " + filtered);
+ return !filtered.isEmpty() &&
+ filtered.stream().anyMatch( s -> s.contains("LingeredAppWithRecComputation") );
+ }
+
+ private static void runJstackInLoop(LingeredApp app) throws Exception {
+ boolean anyMatchedCompiledFrame = false;
+ for (int i = 0; i < MAX_ITERATIONS; i++) {
+ JDKToolLauncher launcher = JDKToolLauncher
+ .createUsingTestJDK("jhsdb");
+ launcher.addToolArg("jstack");
+ launcher.addToolArg("--pid");
+ launcher.addToolArg(Long.toString(app.getPid()));
+
+ ProcessBuilder pb = new ProcessBuilder();
+ pb.command(launcher.getCommand());
+ Process jhsdb = pb.start();
+ OutputAnalyzer out = new OutputAnalyzer(jhsdb);
+
+ jhsdb.waitFor();
+
+ if (DEBUG) {
+ System.out.println(out.getStdout());
+ System.err.println(out.getStderr());
+ }
+
+ out.stderrShouldBeEmpty(); // NPE's are reported on the err stream
+ out.stdoutShouldNotContain("Error occurred during stack walking:");
+ out.stdoutShouldContain(LingeredAppWithRecComputation.THREAD_NAME);
+ List<String> stdoutList = Arrays.asList(out.getStdout().split("\\R"));
+ anyMatchedCompiledFrame = anyMatchedCompiledFrame || isMatchCompiledFrame(stdoutList);
+ }
+ if (!anyMatchedCompiledFrame) {
+ throw new RuntimeException("Expected jstack output to contain 'Compiled frame'");
+ }
+ System.out.println("DEBUG: jhsdb jstack did not throw NPE, as expected.");
+ }
+
+ public static void main(String... args) throws Exception {
+ LingeredApp app = null;
+ try {
+ List<String> vmArgs = List.of("-Xcomp",
+ "-XX:CompileCommand=dontinline,LingeredAppWithRecComputation.factorial",
+ "-XX:CompileCommand=compileonly,LingeredAppWithRecComputation.testLoop",
+ "-XX:CompileCommand=compileonly,LingeredAppWithRecComputation.factorial");
+ app = new LingeredAppWithRecComputation();
+ LingeredApp.startApp(vmArgs, app);
+ System.out.println("Started LingeredAppWithRecComputation with pid " + app.getPid());
+ runJstackInLoop(app);
+ System.out.println("Test Completed");
+ } catch (Throwable e) {
+ e.printStackTrace();
+ throw e;
+ } finally {
+ LingeredApp.stopApp(app);
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/serviceability/sa/LingeredAppWithRecComputation.java Tue Oct 15 14:19:55 2019 +0530
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2019, Red Hat Inc. 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 jdk.test.lib.apps.LingeredApp;
+
+public class LingeredAppWithRecComputation extends LingeredApp {
+
+ public static final String THREAD_NAME = "LingeredAppWithRecComputation.factorial()";
+
+ private long factorial(int n) {
+ if (n <= 1) {
+ return 1;
+ }
+ if (n == 2) {
+ return 2;
+ }
+ return n * factorial(n - 1);
+ }
+
+ public void testLoop() {
+ long result = 0;
+ long[] lastNResults = new long[20];
+ int i = 0;
+ int j = 0;
+ while (true) {
+ result = factorial(i);
+ lastNResults[j] = result;
+ if (i % 12 == 0) {
+ i = -1; // reset i
+ }
+ if (j % 19 == 0) {
+ j = -1; // reset j
+ }
+ i++; j++;
+ }
+ }
+
+ public static void main(String args[]) {
+ LingeredAppWithRecComputation app = new LingeredAppWithRecComputation();
+ Thread factorial = new Thread(() -> {
+ app.testLoop();
+ });
+ factorial.setName(THREAD_NAME);
+ factorial.start();
+ LingeredApp.main(args);
+ }
+ }
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/CGT.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/CGT.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, 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,245 +22,219 @@
*/
package jit.graph;
-import java.util.*;
+
+import jdk.test.lib.Utils;
+import jtreg.SkippedException;
import nsk.share.TestFailure;
import nsk.share.test.StressOptions;
-class CGT extends Thread
-{
- private static StressOptions stressOptions = new StressOptions();
- private final static String version = "1.0";
- private static String ClistPath = "";
+import java.lang.reflect.InvocationTargetException;
+import java.util.Vector;
- private static long finishTime;
+public class CGT {
+ private static StressOptions stressOptions = new StressOptions();
+ private static String ClistPath = "";
+ private static long finishTime;
+
+ private final Vector summation = new Vector(100000);
+ private final Vector idList = new Vector(100000);
- public CGT( String[] args )
- {
- parse (args);
- Globals.initialize(ClistPath);
- outputStats (args);
- }
+ public CGT(String[] args) {
+ parse(args);
+ Globals.initialize(ClistPath);
+ outputStats(args);
+ }
-
- public static void main( String[] args )
- {
- stressOptions.parseCommandLine(args);
- CGT jnimt = new CGT(args);
- jnimt.start();
- }
+ public static void main(String[] args) {
+ stressOptions.parseCommandLine(args);
+ new CGT(args).run();
+ }
- public void outputStats( String[] args )
- {
- System.out.println("CGT command line options:");
- for (int i=0; i < args.length; ++i )
- System.out.println("# " + args[i] );
-
- System.out.println();
+ public void outputStats(String[] args) {
+ System.out.println("CGT command line options:");
+ for (String arg : args) {
+ System.out.println("# " + arg);
+ }
- System.out.println("CGT parameters");
- System.out.println("Seed: " +Globals.RANDOM_SEED);
- System.out.println("Number of Threads: " +Globals.NUM_THREADS);
- System.out.println("Number of Random Loop iterations: " + Globals.RANDOM_LOOP);
- System.out.println("Number of Static Loop iterations: " + Globals.STATIC_LOOP);
- System.out.println("Max number of Methods in the Graph: " + Globals.NUM_TEST_CLASSES);
- System.out.println("Verbose function calls: " + Globals.VERBOSE);
+ System.out.println();
- System.out.println();
- }
-
- public void run()
- {
- finishTime = System.currentTimeMillis() + stressOptions.getTime() * 1000;
+ System.out.println("CGT parameters");
+ System.out.println("Seed: " + Utils.SEED);
+ System.out.println("Number of Random Loop iterations: " + Globals.RANDOM_LOOP);
+ System.out.println("Number of Static Loop iterations: " + Globals.STATIC_LOOP);
+ System.out.println("Max number of Methods in the Graph: " + Globals.NUM_TEST_CLASSES);
+ System.out.println("Verbose function calls: " + Globals.VERBOSE);
- for (int i = 0; i< Globals.NUM_THREADS; i++)
- new CGTThread("CGT Thread " + i).start();
- }
+ System.out.println();
+ }
- public static boolean shouldFinish()
- {
- return System.currentTimeMillis() >= finishTime;
- }
+ public void run() {
+ finishTime = System.currentTimeMillis() + stressOptions.getTime() * 1000;
+ Long numFcalls = Globals.RANDOM_LOOP - 1;
+ Integer staticFcalls = Globals.STATIC_LOOP;
+ MethodData methodCallStr = Globals.nextRandomMethod();
+ Globals.addFunctionIDToVector(methodCallStr.id, idList);
+ Throwable invocationExcept;
- public void parse (String args[])
- {
- for (int i = 0; i<args.length; i++)
- {
- if ((args[i].equalsIgnoreCase("-help")) || (args[i].equalsIgnoreCase("-h")) || (args[i].equalsIgnoreCase("-?")))
- {
- usage ();
- }
- else if (args[i].equalsIgnoreCase("-version"))
- {
- version();
- }
- else if (args[i].equalsIgnoreCase("-seed"))
- {
- int argIndex = i+1;
- if (argIndex < args.length)
- {
- try
- {
- Globals.RANDOM_SEED = Math.abs(Long.parseLong(args[argIndex]));
- }
- catch (NumberFormatException e)
- {
- System.out.println("Improper Argument: " + args[i] + " " + args[argIndex]);
- usage ();
- }
- i++;
- }
- else
- {
- System.out.println("Improper Argument: " + args[i]);
- usage ();
- }
+ try {
+ methodCallStr.nextMethod.invoke(methodCallStr.instance, summation, idList, numFcalls, staticFcalls);
+ } catch (IllegalAccessException e) {
+ throw new TestFailure("Illegal Access Exception", e);
+ } catch (InvocationTargetException e) {
+ System.out.println("Invocation Target Exception");
+ invocationExcept = e.getTargetException();
+ System.out.println(invocationExcept);
+ if (invocationExcept.getClass() == e.getClass()) {
+ System.out.println("Processing Exception Invocation Target Exception");
+ while (invocationExcept.getClass() == e.getClass()) {
+ invocationExcept = ((InvocationTargetException) invocationExcept).getTargetException();
+ }
+ System.out.println(invocationExcept);
+ }
+ if (invocationExcept instanceof StackOverflowError) {
+ throw new SkippedException("stack overflow: skipping verification.", invocationExcept);
+ } else if (invocationExcept instanceof OutOfMemoryError) {
+ throw new SkippedException("test devoured heap ;), skipping verification.", invocationExcept);
+ } else {
+ throw new TestFailure(invocationExcept);
+ }
+ }
+
+ verify();
+ }
- }
- else if ((args[i].equalsIgnoreCase("-thread")) || (args[i].equalsIgnoreCase("-threads")))
- {
- int argIndex = i+1;
- if (argIndex < args.length)
- {
- try
- {
- Globals.NUM_THREADS = Math.abs(Integer.parseInt(args[argIndex])) * stressOptions.getThreadsFactor();
- }
- catch (NumberFormatException e)
- {
- System.out.println("Improper Argument: " + args[i] + " " + args[argIndex]);
- usage ();
- }
- if(Globals.NUM_THREADS == 0)
- Globals.NUM_THREADS = 1;
- i++;
- }
- else
- {
- System.out.println("Improper Argument: " + args[i]);
- usage ();
- }
+ private void verify() {
+ long oldsum = 0;
+ long newsum;
+ System.out.println("begin call stack validation");
+ if (summation.size() != idList.size()) {
+ throw new TestFailure("Vector Length's Do Not Match, VERIFY ERROR : Summation Element Count = " + summation.size() + " ID Element Count = " + idList.size());
+ }
+ long vectorSize = summation.size();
+
+ while (!summation.isEmpty()) {
+ if (CGT.shouldFinish()) {
+ throw new SkippedException("skipping verification due to timeout");
+ }
+
+ newsum = (Long) summation.firstElement();
+ summation.removeElementAt(0);
+
+ int functionID = (Integer) idList.firstElement();
+ idList.removeElementAt(0);
+
+ if ((newsum - oldsum) != (functionID)) {
+ throw new TestFailure("Function Call structure invalid, VERIFY ERROR. Expected = " + (newsum - oldsum) + " Actual = " + functionID);
+ }
+ oldsum = newsum;
+ }
+
+ System.out.println("function call structure validated successfully (" + vectorSize + " calls validated)");
+ }
- }
- else if (args[i].equalsIgnoreCase("-staticLoop"))
- {
- int argIndex = i+1;
- if (argIndex < args.length)
- {
- try
- {
- Globals.STATIC_LOOP = Math.abs(Integer.parseInt(args[argIndex])) * stressOptions.getIterationsFactor();
- }
- catch (NumberFormatException e)
- {
- System.out.println("Improper Argument: " + args[i] + " " + args[argIndex]);
- usage ();
- }
- i++;
- }
- else
- {
- System.out.println("Improper Argument: " + args[i]);
- usage ();
- }
+ public static boolean shouldFinish() {
+ return System.currentTimeMillis() >= finishTime;
+ }
- }
- else if (args[i].equalsIgnoreCase("-randomLoop"))
- {
- int argIndex = i+1;
- if (argIndex < args.length)
- {
- try
- {
- Globals.RANDOM_LOOP = Math.abs(Long.parseLong(args[argIndex])) * stressOptions.getIterationsFactor();
- }
- catch (NumberFormatException e)
- {
- System.out.println("Improper Argument: " + args[i] + " " + args[argIndex]);
- usage ();
- }
- i++;
- }
- else
- {
- System.out.println("Improper Argument: " + args[i]);
- usage ();
- }
+ public void parse(String args[]) {
+ for (int i = 0; i < args.length; i++) {
+ String arg = args[i].toLowerCase();
+ switch (arg) {
+ case "-help":
+ case "-h":
+ case "-?": {
+ usage();
+ System.exit(1);
+ break;
+ }
+ case "-staticloop": {
+ int argIndex = i + 1;
+ if (argIndex < args.length) {
+ try {
+ Globals.STATIC_LOOP = Math.abs(Integer.parseInt(args[argIndex])) * stressOptions.getIterationsFactor();
+ } catch (NumberFormatException e) {
+ usage();
+ throw new Error("TESTBUG: Improper Argument: " + args[i] + " " + args[argIndex], e);
+ }
+ i++;
+ } else {
+ usage();
+ throw new Error("TESTBUG: Improper Argument: " + args[i]);
+ }
+ break;
+ }
+ case "-randomloop": {
+ int argIndex = i + 1;
+ if (argIndex < args.length) {
+ try {
+ Globals.RANDOM_LOOP = Math.abs(Long.parseLong(args[argIndex])) * stressOptions.getIterationsFactor();
+ } catch (NumberFormatException e) {
+ usage();
+ throw new Error("TESTBUG: Improper Argument: " + args[i] + " " + args[argIndex], e);
+ }
+ i++;
+ } else {
+ usage();
+ throw new Error("TESTBUG: Improper Argument: " + args[i]);
- }
- else if (args[i].equalsIgnoreCase("-numTestClass"))
- {
- int argIndex = i+1;
- if (argIndex < args.length)
- {
- try
- {
- Globals.NUM_TEST_CLASSES = Math.abs(Integer.parseInt(args[argIndex]));
- }
- catch (NumberFormatException e)
- {
- System.out.println("Improper Argument: " + args[i] + " " + args[argIndex]);
- usage ();
- }
- i++;
- }
- else
- {
- System.out.println("Improper Argument: " + args[i]);
- usage ();
- }
+ }
+ break;
+ }
+ case "-numtestclass": {
+ int argIndex = i + 1;
+ if (argIndex < args.length) {
+ try {
+ Globals.NUM_TEST_CLASSES = Math.abs(Integer.parseInt(args[argIndex]));
+ } catch (NumberFormatException e) {
+ usage();
+ throw new Error("TESTBUG: Improper Argument: " + args[i] + " " + args[argIndex], e);
+ }
+ i++;
+ } else {
+ usage();
+ throw new Error("TESTBUG: Improper Argument: " + args[i]);
+ }
+ break;
+ }
+ case "-verbose":
+ case "-v": {
+ Globals.VERBOSE = true;
+ break;
+ }
+ case "-path": {
+ int argIndex = i + 1;
+ if (argIndex < args.length) {
+ ClistPath = args[argIndex];
+ i++;
+ } else {
+ usage();
+ throw new Error("TESTBUG: Improper Argument: " + args[i]);
+ }
+ break;
+ }
+ default: {
+ if (!arg.startsWith("-stress")) {
+ usage();
+ throw new Error("TESTBUG: Invalid Argument: " + args[i]);
+ }
+ }
+ }
+ }
- }
- else if (args[i].equalsIgnoreCase("-v") || args[i].equalsIgnoreCase("-verbose"))
- {
- Globals.VERBOSE = true;
- }
- else if (args[i].equalsIgnoreCase("-path"))
- {
- int argIndex = i+1;
- if (argIndex < args.length)
- {
- ClistPath = args[argIndex];
- i++;
- }
- else
- {
- System.out.println("Improper Argument: " + args[i]);
- usage ();
- }
- }
- else if (args[i].startsWith("-stress"))
- {
- break;
- }
- else
- {
- System.out.println("Invalid Argument: " + args[i]);
- usage ();
- }
+ if ("".equals(ClistPath)) {
+ usage();
+ throw new Error("TESTBUG: class list path not defined");
}
- if (ClistPath.equals(""))
- {
- System.out.println("class list path not defined");
- usage();
- }
- }
+ }
- public void usage ()
- {
- System.out.println("usage: java CGT [options]");
- System.out.println(" -help prints out this message");
- System.out.println(" -numTestClass # limits the number of \"Test Methods\" to #");
- System.out.println(" -randomcLoop # # of random function calls");
- System.out.println(" -seed # uses the specified seed rather than the System Time");
- System.out.println(" -staticLoop # # of non-random static function calls");
- System.out.println(" -threads # # number of test threads, NOTE: no maximum value");
- System.out.println(" -version print out the tool version");
- System.out.println(" -v -verbose turn on verbose mode");
- throw new TestFailure(" -path <path to classlist> required, argument so program can find classes");
- }
-
- public void version ()
- {
- throw new TestFailure("CGT version = " + version);
- }
+ public void usage() {
+ System.out.println("usage: java CGT [options]");
+ System.out.println(" -help prints out this message");
+ System.out.println(" -numTestClass # limits the number of \"Test Methods\" to #");
+ System.out.println(" -randomcLoop # # of random function calls");
+ System.out.println(" -seed # uses the specified seed rather than the System Time");
+ System.out.println(" -staticLoop # # of non-random static function calls");
+ System.out.println(" -v -verbose turn on verbose mode");
+ System.out.println(" -path <path to classlist> required, argument so program can find classes");
+ }
}
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/CGTThread.java Sat Oct 12 08:49:59 2019 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-/*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package jit.graph;
-import java.util.*;
-import java.lang.*;
-import java.lang.reflect.*;
-import nsk.share.TestFailure;
-
-class CGTThread extends Thread
-{
- private String ThreadName = null;
- private Vector Sumation = new Vector(100000);
- private Vector IDlist = new Vector(100000);
-
-
- CGTThread( String name )
- {
- ThreadName = name;
- setName(name);
- }
-
-
- public void run()
- {
- if (Globals.VERBOSE)
- System.out.println("\t\t" + Thread.currentThread().getName() + " started");
- Long numFcalls = new Long(Globals.RANDOM_LOOP - 1);
- Integer staticFcalls = new Integer(Globals.STATIC_LOOP);
- MethodData methodCallStr = Globals.nextRandomMethod();
- Globals.addFunctionIDToVector(methodCallStr.id, IDlist);
- Throwable invocationExcept = null;
-
- boolean skipVerify = false;
-
- try
- {
- methodCallStr.nextMethod.invoke(methodCallStr.instance, new Object []{Sumation, IDlist, numFcalls, staticFcalls});
- }
- catch (IllegalAccessException iax)
- {
- throw new TestFailure("Illegal Access Exception");
- }
- catch (InvocationTargetException itx)
- {
- System.out.println("Invocation Target Exception");
- invocationExcept = itx.getTargetException();
- System.out.println(invocationExcept);
- if (invocationExcept.getClass() == itx.getClass())
- {
- System.out.println("Processing Exception Invocation Target Exception");
- while (invocationExcept.getClass() == itx.getClass())
- invocationExcept = ((InvocationTargetException)invocationExcept).getTargetException();
- System.out.println(invocationExcept);
- }
- if (invocationExcept instanceof StackOverflowError)
- //StackOverFlow is not a failure
- {
- System.out.println("Warning: stack overflow: skipping verification...");
- skipVerify = true;
- }
- else if (invocationExcept instanceof OutOfMemoryError)
- //OutOfMemoryError is not a failure
- {
- System.out.println("Warning: test devoured heap ;), skipping verification...");
- skipVerify = true;
- }
- else
- {
- invocationExcept.printStackTrace();
- System.exit(1);
- }
- }
-
- if( !skipVerify )
- verify(Sumation, IDlist);
- }
-
- void verify(Vector Sum, Vector ID)
- {
- long oldsum = 0;
- long newsum;
- System.out.println(ThreadName + " has begun call stack validation");
- if (Sum.size() != ID.size())
- {
- System.out.println("Vector Length's Do Not Match, VERIFY ERROR");
- System.out.println("Thread Name: " + ThreadName);
- throw new TestFailure("Sumation Element Count = " + Sum.size() + " ID Element Count = " +ID.size());
- }
- long vectorSize = Sum.size();
- while (!Sum.isEmpty())
- {
- if (CGT.shouldFinish())
- {
- System.out.println(Thread.currentThread().getName() + ": skipping verification due to timeout");
- return;
- }
-
- newsum = ((Long)Sum.firstElement()).longValue();
- Sum.removeElementAt(0);
-
- int functionID = ((Integer)ID.firstElement()).intValue();
- ID.removeElementAt(0);
-
- if ((newsum - oldsum) != (functionID))
- {
- System.out.println("Function Call structure invalid, VERIFY ERROR");
- System.out.println("Thread Name: " + ThreadName);
- System.out.println("Expected = " +(newsum - oldsum) + " Actual = " +functionID);
- throw new TestFailure("Test failed.");
-// System.exit(1);
- }
- oldsum = newsum;
- }
- Globals.decNumThreads();
- System.out.println(ThreadName + "'s function call structure validated succesfully ("+vectorSize+" calls validated)");
- }
-
-}
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/Globals.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/Globals.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, 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,263 +22,200 @@
*/
package jit.graph;
-import java.io.*;
-import java.util.*;
-import java.lang.*;
-import java.lang.reflect.*;
+
+import jdk.test.lib.Utils;
import nsk.share.TestFailure;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Random;
+import java.util.StringTokenizer;
+import java.util.Vector;
+
+public final class Globals {
+
-public final class Globals
-{
- // Minimum and Maximum number of threads
- public static int NUM_THREADS = 1;
- public static long RANDOM_SEED = System.currentTimeMillis();
- public static int STATIC_LOOP = 0;
- public static int NUM_TEST_CLASSES = 7;
- public static long RANDOM_LOOP = 100;
- public static boolean VERBOSE = false;
- private static Random indexGenerator = null;
+ public static int STATIC_LOOP = 0;
+ public static int NUM_TEST_CLASSES = 7;
+ public static long RANDOM_LOOP = 100;
+ public static boolean VERBOSE = false;
- //private static TestLoader CGTTestLoader = null;
- private static String [] ClassArray = null;
- private static Class [] ClassInstanceArray = null;
- private static int maxClassIndex = 0;
+ private static final Random indexGenerator = Utils.getRandomInstance();
+ private static String[] ClassArray = null;
+ private static Class[] ClassInstanceArray = null;
+ private static int maxClassIndex = 0;
- private static String [] MethodName_Array = null;
- private static Method [] MethodInstance_Array = null;
+ private static String[] MethodName_Array = null;
+ private static Method[] MethodInstance_Array = null;
- //Should be prime, so that odds of an incorrect verification reduced
- public static int [] MethodID_Array = null;
-
-
- //Number of threads will be reduced as threads finish
- public static synchronized void decNumThreads(){NUM_THREADS--;};
-
- public static synchronized void initialize(String testListPath)
- {
+ // Should be prime, so that odds of an incorrect verification reduced
+ public static int[] MethodID_Array = null;
- File td = new File (testListPath);
- if (!td.exists())
- {
- System.err.println("File " + testListPath + " Not found");
- System.exit(1);
- }
- if (!td.isFile())
- {
- System.err.println(testListPath + " Must be a File");
- System.exit(1);
- }
+ public static synchronized void initialize(String testListPath) {
+ File td = new File(testListPath);
+ if (!td.exists()) {
+ throw new Error("TESTBUG: File " + testListPath + " Not found");
+ }
+
+ if (!td.isFile()) {
+ throw new Error("TESTBUG: " + testListPath + " Must be a File");
+ }
BufferedReader classList = null;
-
- try
- {
- classList = new BufferedReader(new FileReader(td));
- }
- catch (FileNotFoundException fnfx)
- {
- System.err.println("Error finding Classlist");
- System.exit(1);
- }
-
- String line = null;
- try
- {
- line = classList.readLine();
- }
- catch (IOException iox)
- {
- System.err.println("Error reading Classlist");
- System.exit(1);
+ try {
+ try {
+ classList = new BufferedReader(new FileReader(td));
+ } catch (FileNotFoundException e) {
+ throw new Error("TESTBUG: Error finding Classlist", e);
}
- try
- {
- maxClassIndex = Math.abs(Integer.parseInt(line));//ClassArray.length;
+ String line = null;
+ try {
+ line = classList.readLine();
+ } catch (IOException e) {
+ throw new Error("TESTBUG: Error reading Classlist", e);
}
- catch (NumberFormatException nfx)
- {
- System.err.println("Error reading Classlist - first number must be number of methods defined");
- System.exit(1);
+
+ try {
+ // ClassArray.length;
+ maxClassIndex = Math.abs(Integer.parseInt(line));
+ } catch (NumberFormatException e) {
+ throw new Error("TESTBUG: Error reading Classlist - first number must be number of methods defined", e);
}
- ClassArray = new String [maxClassIndex];
-ClassInstanceArray = new Class [maxClassIndex];
- MethodName_Array = new String [maxClassIndex];
- MethodInstance_Array = new Method [maxClassIndex];
- MethodID_Array = new int [maxClassIndex];
+ ClassArray = new String[maxClassIndex];
+ ClassInstanceArray = new Class[maxClassIndex];
+ MethodName_Array = new String[maxClassIndex];
+ MethodInstance_Array = new Method[maxClassIndex];
+ MethodID_Array = new int[maxClassIndex];
- int i;
- for (i = 0; (i<maxClassIndex) && (line != null); i++)
- {
- try
- {
- line = classList.readLine();
- }
- catch (IOException iox)
- {
- System.err.println("Error reading ClasslistFile: testListPath");
- System.exit(1);
- }
+ int i;
+ for (i = 0; i < maxClassIndex; i++) {
+ try {
+ line = classList.readLine();
+ } catch (IOException e) {
+ throw new Error("TESTBUG: Error reading ClasslistFile: testListPath", e);
+ }
StringTokenizer lineTokens = new StringTokenizer(line, "\t ");
- if (lineTokens.countTokens() <3)
- {
- System.out.println("Error reading ClasslistFile: Errored line");
- i--;
- }
- else
- {
+ if (lineTokens.countTokens() < 3) {
+ throw new Error("TESTBUG: ClasslistFile: unexpected line:" + line);
+ } else {
ClassArray[i] = lineTokens.nextToken();
- MethodName_Array[i] =lineTokens.nextToken();
+ MethodName_Array[i] = lineTokens.nextToken();
MethodID_Array[i] = Integer.parseInt(lineTokens.nextToken());
- }
+ }
}
- maxClassIndex = i;
+ maxClassIndex = i;
+ } finally {
+ if (classList != null) {
+ try {
+ classList.close();
+ } catch (IOException e) {
+ throw new Error("can't close file", e);
+ }
+ }
+ }
- indexGenerator = new Random(RANDOM_SEED);
- if ((NUM_TEST_CLASSES < ClassArray.length) && (NUM_TEST_CLASSES > 0))
- maxClassIndex = NUM_TEST_CLASSES;
- else
- NUM_TEST_CLASSES = maxClassIndex;
+ if ((NUM_TEST_CLASSES < ClassArray.length) && (NUM_TEST_CLASSES > 0)) {
+ maxClassIndex = NUM_TEST_CLASSES;
+ } else {
+ NUM_TEST_CLASSES = maxClassIndex;
+ }
}
- //does a binary serach to find the index for the ID of a method
- private static int ID_BinSearch(int begin, int end, int ID)
- {
- if (end < begin)
- return(-1);
+ // does a binary search to find the index for the ID of a method
+ private static int ID_BinSearch(int begin, int end, int ID) {
+ if (end < begin) {
+ return (-1);
+ }
- int mid = (begin + end)/2;
+ int mid = (begin + end) / 2;
int midvalue = MethodID_Array[mid];
- if (ID == midvalue)
+ if (ID == midvalue) {
return (mid);
- else if (ID < midvalue)
- return(ID_BinSearch(begin, mid-1, ID));
- else
- return(ID_BinSearch(mid+1, end, ID));
+ } else if (ID < midvalue) {
+ return (ID_BinSearch(begin, mid - 1, ID));
+ } else {
+ return (ID_BinSearch(mid + 1, end, ID));
+ }
}
- //based off a static index, this function selects the method to be called
- public static MethodData returnNextStaticMethod(int Method_ID)
- {
- //int i = ID_BinSearch(0, MethodID_Array.length - 1, Method_ID);
- int i = ID_BinSearch(0, maxClassIndex - 1, Method_ID);
+ // based off a static index, this function selects the method to be called
+ public static MethodData returnNextStaticMethod(int Method_ID) {
+ //int i = ID_BinSearch(0, MethodID_Array.length - 1, Method_ID);
+ int i = ID_BinSearch(0, maxClassIndex - 1, Method_ID);
- return(nextStaticMethod((i==-1)?0:i));
+ return (nextStaticMethod((i == -1) ? 0 : i));
}
- //this function randomly selects the next method to be called by the test class
- public static MethodData nextRandomMethod()
- {
-
+ // this function randomly selects the next method to be called by the test class
+ public static MethodData nextRandomMethod() {
int i = indexGenerator.nextInt(maxClassIndex);
- return(nextStaticMethod(i));
+ return (nextStaticMethod(i));
}
- private static MethodData nextStaticMethod(int i)
- {
+ private static MethodData nextStaticMethod(int i) {
Class methodsClass = null;
Method nextMethod = null;
- try
- {
- //methodsClass = CGTTestLoader.findClass(ClassArray[i]);
- methodsClass = ClassInstanceArray[i];
- if (methodsClass == null)
- {
- methodsClass = Class.forName(ClassArray[i]);
- ClassInstanceArray[i] = methodsClass;
- }
- nextMethod = MethodInstance_Array[i];
- if (nextMethod == null )
- {
- nextMethod =
- methodsClass.getMethod(MethodName_Array[i],
- new Class[]{java.util.Vector.class, java.util.Vector.class,
- java.lang.Long.class, java.lang.Integer.class});
- //sum vector, ID vector, function depth, static function call depth
- MethodInstance_Array[i] = nextMethod;
- }
+ try {
+ methodsClass = ClassInstanceArray[i];
+ if (methodsClass == null) {
+ methodsClass = Class.forName(ClassArray[i]);
+ ClassInstanceArray[i] = methodsClass;
}
- catch (ClassNotFoundException cnfx)
- {
- System.out.println("Class: " +ClassArray[i]+ " Not Found");
- System.exit(-1);
+ nextMethod = MethodInstance_Array[i];
+ if (nextMethod == null) {
+ nextMethod = methodsClass.getMethod(MethodName_Array[i],
+ Vector.class, Vector.class, Long.class, Integer.class);
+ // sum vector, ID vector, function depth, static function call depth
+ MethodInstance_Array[i] = nextMethod;
}
- catch (NoSuchMethodException nsmx)
- {
- System.out.println("Class: " +ClassArray[i]);
- System.out.println("Method: " +MethodName_Array[i]+" Not Found");
- System.exit(-1);
- }
- catch (SecurityException sx)
- {
- System.out.println("Class: " +ClassArray[i]);
- System.out.println("Method: " +MethodName_Array[i]);
- System.out.println("Security Exception Generated, by above method call");
- System.exit(-1);
- }
- return(new MethodData(ClassArray[i], MethodName_Array[i], methodsClass, nextMethod, MethodID_Array[i]));
+ } catch (ClassNotFoundException e) {
+ throw new Error("TESTBUG Class: " + ClassArray[i] + " Not Found", e);
+ } catch (NoSuchMethodException e) {
+ throw new Error("TESTBUG Method: " + ClassArray[i] + "::" + MethodName_Array[i] + " Not Found", e);
+ } catch (SecurityException e) {
+ throw new Error("TESTBUG Security Exception Generated by " + ClassArray[i] + "::" + MethodName_Array[i], e);
+ }
+ return new MethodData(ClassArray[i], MethodName_Array[i], methodsClass, nextMethod, MethodID_Array[i]);
}
- /*These two functions are used to verify that all function were called in the proper order*/
+ /* These two functions are used to verify that all function were called in the proper order */
- //called by "parent" function to add childs ID to vector
- public static void addFunctionIDToVector(int FunctionIndex, Vector IDVector)
- {
- IDVector.addElement(new Integer(FunctionIndex));
+ // called by "parent" function to add childs ID to vector
+ public static void addFunctionIDToVector(int FunctionIndex, Vector IDVector) {
+ IDVector.addElement(FunctionIndex);
}
- //called by "child" to add Function Index to Vector
- public static void appendSumToSumationVector(int FunctionIndex, Vector SummationVector)
- {
- if (SummationVector.isEmpty())
- SummationVector.addElement(new Long(FunctionIndex));
- else
- SummationVector.addElement(new Long(((Long)SummationVector.lastElement()).longValue() + FunctionIndex));
+ // called by "child" to add Function Index to Vector
+ public static void appendSumToSummationVector(int FunctionIndex, Vector SummationVector) {
+ if (SummationVector.isEmpty()) {
+ SummationVector.addElement((long) FunctionIndex);
+ } else {
+ SummationVector.addElement((Long) SummationVector.lastElement() + FunctionIndex);
+ }
}
- //This function calls a method based off of MethodData
+ // This function calls a method based off of MethodData
public static void callMethod(MethodData methodCallStr,
Vector summation, Vector ID,
Long numFcalls, Integer staticFcalls)
- throws InvocationTargetException
-
- {
- if(NUM_THREADS >1)
- {
- if ((staticFcalls.intValue() + numFcalls.longValue()) %23 == 0)
- {
- try
- {
- Thread.sleep(225);
- }
- catch (InterruptedException ie)
- {}
- if (VERBOSE)
- System.out.println("\t\tCurrentThread:" + Thread.currentThread().getName());
- }
- }
-
- try
- {
- methodCallStr.nextMethod.invoke(methodCallStr.instance,
- new Object []{summation, ID, numFcalls, staticFcalls});
- }
- catch (IllegalAccessException iax) //should never happen with a valid testfile
- {
- throw new TestFailure("Illegal Access Exception");
- }
- /*
- catch (InvocationTargetException itx)
- {
- itx.printStackTrace();
- System.out.println("Invocation Target Exception");
- System.exit(1);
- }*/
+ throws InvocationTargetException {
+ try {
+ methodCallStr.nextMethod.invoke(methodCallStr.instance,
+ summation, ID, numFcalls, staticFcalls);
+ } catch (IllegalAccessException e) {
+ // should never happen with a valid testfile
+ throw new TestFailure("Illegal Access Exception", e);
+ }
}
}
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/MethodData.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/MethodData.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019, 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
@@ -20,37 +20,33 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
+
package jit.graph;
-import java.lang.reflect.*;
+
+import java.lang.reflect.Method;
+
import nsk.share.TestFailure;
-public final class MethodData
-{
- public String ClassName;
- public String MethodName;
- public Class ClassObject;
- public Method nextMethod;
- public int id;
- public Object instance = null;
+public final class MethodData {
+ public String ClassName;
+ public String MethodName;
+ public Class ClassObject;
+ public Method nextMethod;
+ public int id;
+ public Object instance;
- MethodData(String ClassName, String MethodName, Class ClassObject,Method nextMethod, int id)
- {
- this.ClassName = ClassName;
- this.MethodName = MethodName;
- this.nextMethod = nextMethod;
- this.id = id;
- this.ClassObject = ClassObject;
- try
- {
- this.instance = ClassObject.newInstance();
- }
- catch (InstantiationException ix)
- {
- throw new TestFailure("Class: " +ClassName+ " Instantiation Exception");
- }
- catch (IllegalAccessException iax)
- {
- throw new TestFailure("Class: " +ClassName+ " Illegal Access Exception");
- }
- }
+ MethodData(String ClassName, String MethodName, Class ClassObject, Method nextMethod, int id) {
+ this.ClassName = ClassName;
+ this.MethodName = MethodName;
+ this.nextMethod = nextMethod;
+ this.id = id;
+ this.ClassObject = ClassObject;
+ try {
+ this.instance = ClassObject.newInstance();
+ } catch (InstantiationException e) {
+ throw new TestFailure("Class: " + ClassName + " Instantiation Exception", e);
+ } catch (IllegalAccessException e) {
+ throw new TestFailure("Class: " + ClassName + " Illegal Access Exception", e);
+ }
+ }
}
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/Node.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/Node.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019, 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
@@ -20,114 +20,102 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
+
package jit.graph;
-import nsk.share.TestFailure;
// This class define the tree node.
-public class Node
-{
- public final static int Black = 0; // constants used to define the
- public final static int Red = 1; // node color
- public final static int Left_son = 2; // constants used to identify
- public final static int Right_son = 3;// the node parent and sons.
- public final static int Parent = 4;
+public class Node {
+ public final static int Black = 0; // constants used to define the
+ public final static int Red = 1; // node color
+ public final static int Left_son = 2; // constants used to identify
+ public final static int Right_son = 3;// the node parent and sons.
+ public final static int Parent = 4;
-
- private int color;
- private int key;
- private Node L,R,P; // L-left son,R-right son,P-parent
+ private int color;
+ private int key;
+ private Node L, R, P; // L-left son,R-right son,P-parent
- // constructor create a new node the default color is red
- // the default appearance (bold) is regular.
- // initialize the key field.
+ // constructor create a new node the default color is red
+ // the default appearance (bold) is regular.
+ // initialize the key field.
- public Node(int k)
- {
- color = Red;
- key = k;
- L = null;
- R = null;
- P = null;
- }
+ public Node(int k) {
+ color = Red;
+ key = k;
+ L = null;
+ R = null;
+ P = null;
+ }
- // constructor for constructing a tree null object, is color
- // is black.
+ // constructor for constructing a tree null object, is color
+ // is black.
- public Node()
- {
- color = Black;
- key = -1;
- L = null;
- R = null;
- P = null;
- }
+ public Node() {
+ color = Black;
+ key = -1;
+ L = null;
+ R = null;
+ P = null;
+ }
- // This method set the node key.
+ // This method set the node key.
- public void setKey(int k)
- {
- key = k;
- }
+ public void setKey(int k) {
+ key = k;
+ }
- // This method return the node key.
+ // This method return the node key.
- public int getKey()
- {
- return (key);
- }
+ public int getKey() {
+ return (key);
+ }
- // This method set the node color.
+ // This method set the node color.
- public void setColor(int c)
- {
- if (c == Black)
- color = Black;
- else
- if (c == Red)
+ public void setColor(int c) {
+ if (c == Black) {
+ color = Black;
+ } else if (c == Red) {
color = Red;
- }
+ }
+ }
- // This method return the node color.
+ // This method return the node color.
- public int getColor()
- {
- return (color);
- }
+ public int getColor() {
+ return (color);
+ }
- // This method set the node parent or childs acording to the who
- // parameter.
+ // This method set the node parent or childs acording to the who
+ // parameter.
- public void setNode(int who,Node n)
- {
- switch (who)
- {
- case Left_son:
- L = n;
- break;
- case Right_son:
- R = n;
- break;
- case Parent:
- P = n;
- break;
- }
- }
+ public void setNode(int who, Node n) {
+ switch (who) {
+ case Left_son:
+ L = n;
+ break;
+ case Right_son:
+ R = n;
+ break;
+ case Parent:
+ P = n;
+ break;
+ }
+ }
- // This method return the node parent or childs acording to the who
- // parameter.
+ // This method return the node parent or childs acording to the who
+ // parameter.
- public Node getNode(int who)
- {
- switch (who)
- {
- case Left_son:
- return (L);
- case Right_son:
- return (R);
- case Parent:
- return (P);
- }
- return (null);
- }
+ public Node getNode(int who) {
+ switch (who) {
+ case Left_son:
+ return L;
+ case Right_son:
+ return R;
+ case Parent:
+ return P;
+ }
+ return null;
+ }
}
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/RBTree.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/RBTree.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019, 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
@@ -20,708 +20,626 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
+
package jit.graph;
-import nsk.share.TestFailure;
-
-//import Node;
-
// This class defines the tree object.
-
-public class RBTree
-{
- public final static int maxNodes = 70; // maximum nodes allowed.
- public final static int INSERT = 0; // constants indicating
- public final static int DELETE = 1; // the current operation
- public final static int NOP = 2;
- public final static Node treeNull = new Node(); // the tree NULL node.
+public class RBTree {
+ public final static int maxNodes = 70; // maximum nodes allowed.
+ public final static int INSERT = 0; // constants indicating
+ public final static int DELETE = 1; // the current operation
+ public final static int NOP = 2;
+ public final static Node treeNull = new Node(); // the tree NULL node.
- private Node root;
- private int num_of_nodes;
- private int height; // The tree heigth ,it is updated
- // in each operation.
+ private Node root;
+ private int num_of_nodes;
+ private int height; // The tree height, it is updated
+ // in each operation.
- // since the algorithem is executed in stages I have to remember data
- // on the state.
- private Node node; // The current operation is being done on it.
- private int action;// The operation being performed (insert / delete)
- private int stage; // The current stage of execution
-
- // the constructor initialize the object fields.
+ // since the algorithm is executed in stages I have to remember data
+ // on the state.
+ private Node node; // The current operation is being done on it.
+ private int action; // The operation being performed (insert / delete)
+ private int stage; // The current stage of execution
- public RBTree()
- {
- root = treeNull;
- node = treeNull;
- num_of_nodes = 0;
- height = 0;
- action = NOP;
- stage = 0;
- }
-
- // This method return the root of the tree.
+ // the constructor initializes the object fields.
+ public RBTree() {
+ root = treeNull;
+ node = treeNull;
+ num_of_nodes = 0;
+ height = 0;
+ action = NOP;
+ stage = 0;
+ }
- public Node getRoot()
- {
- return root;
- }
-
- // This method return the number of nodes in the tree.
+ // This method returns the root of the tree.
+ public Node getRoot() {
+ return root;
+ }
- public int getNodes()
- {
- return num_of_nodes;
- }
+ // This method returns the number of nodes in the tree.
+ public int getNodes() {
+ return num_of_nodes;
+ }
- // This method return the heigth of the tree.
-
- public int getHeight()
- {
- return height;
- }
+ // This method returns the height of the tree.
+ public int getHeight() {
+ return height;
+ }
-
- // This method inserts k into the Red Black Tree
+ // This method inserts k into the Red Black Tree
+ public boolean RBInsert(int k) {
+ // checking similar to the RB_Insert method
+ if (action != NOP) {
+ System.out.println("Only one operation can be done at a time.");
+ return false;
+ }
- public boolean RBInsert(int k)
- {
+ if (num_of_nodes == maxNodes) {
+ System.out.println("The maximum nodes allowed is already reached.");
+ return false;
+ }
- Thread Pause = new Thread(); // this thread is used for delay
- // between the stages.
- if (action != NOP) // checking similar to the RB_Insert method
- {
- System.out.println
- ("Only one operation can be done at a time.");
- return false;
- }
- if (num_of_nodes == maxNodes)
- {
- System.out.println
- ("The maximum nodes allowed is already reached.");
- return false;
- }
- if (Search(k) == treeNull) // Check if there is already node with key k.
- {
- action = INSERT;
- node = new Node(k);
- node.setNode(Node.Left_son,treeNull);
- node.setNode(Node.Right_son,treeNull);
- node.setNode(Node.Parent,treeNull);
- stage = 1;
- while (stage != 0) // This is the loop that perform all the
- { // operation steps.
- InsertStep(); // perform one step
- updateHeight(); // update the tree height
- }
- action = NOP; // set the action to NoOPretion.
- return true;
- }
- else
- System.out.println
- ("Insertion failed. This key already exist.");
- return false;
- }
+ // Check if there is already node with key k.
+ if (Search(k) == treeNull) {
+ action = INSERT;
+ node = new Node(k);
+ node.setNode(Node.Left_son, treeNull);
+ node.setNode(Node.Right_son, treeNull);
+ node.setNode(Node.Parent, treeNull);
+ stage = 1;
+ // This is the loop that perform all the operation steps.
+ while (stage != 0) {
+ // perform one step
+ InsertStep();
+ // update the tree height
+ updateHeight();
+ }
+ // set the action to NoOPretion.
+ action = NOP;
+ return true;
+ } else
+ System.out.println("Insertion failed. This key already exist.");
+ return false;
+ }
- // This method deletes the element k from the Red Black tree
-
- public boolean RBDelete(int k)
- {
- Thread Pause = new Thread(); // this thread is used for delay
- // between the stages.
- if (action != NOP)
- { // checking like in RB_Delete method
- System.out.println
- ("Only one operation can be done at a time.");
- return false;
- }
- node = Search(k);
- if (node != treeNull) // Check if there is a node with key k.
- {
- action = DELETE;
- stage = 1;
- while (stage != 0) // this loop perform all the operation
- { // steps.
- DeleteStep(); // perform one step
- updateHeight(); // update the tree height
-
- }
- action = NOP;
- return true;
- }
- else
- System.out.println
- ("Deletion failed. This key doesn't exist.");
- return false;
- }
+ // This method deletes the element k from the Red Black tree
+ public boolean RBDelete(int k) {
+ // checking like in RB_Delete method
+ if (action != NOP) {
+ System.out.println("Only one operation can be done at a time.");
+ return false;
+ }
+ node = Search(k);
+ // Check if there is a node with key k.
+ if (node != treeNull) {
+ action = DELETE;
+ stage = 1;
+ // this loop perform all the operation steps.
+ while (stage != 0) {
+ // perform one step
+ DeleteStep();
+ // update the tree height
+ updateHeight();
+ }
+ action = NOP;
+ return true;
+ } else
+ System.out.println("Deletion failed. This key doesn't exist.");
+ return false;
+ }
- // This method perform one step in the insertion operation.
- // If perform a step acording to the stage variable.
- // I will not explain exactly what each stage do, just that they
- // divided to 4 categories:
- // 1. inserting a node to the tree.
- // 2. marking nodes that will be recolored.
- // 3. recoloring nodes.
- // 4. rotating right or left.
-
- private void InsertStep()
- {
- Node Pr,GrPr,Un; // Pr is parent, GrPr is grandparent
- // and Un is uncle.
- switch (stage)
- {
- case 1: // Inserting a node to the tree
- /*
- System.out.println // send a message to the screen
- (new String("Inserting ")
- .concat(Integer.toString(node.getKey())));
- */
- Tree_Insert(); // inserting an element to the tree
- break;
- case 2: // mid stage that move to algorithem to the
- // proper next stage, and send proper message
- // to the screen
- Pr = node.getNode(Node.Parent);
- GrPr = Pr.getNode(Node.Parent);
- if (Pr == GrPr.getNode(Node.Left_son))
- {
- Un = GrPr.getNode(Node.Right_son);
- if (Un.getColor() == Node.Red)
- {
+ // This method performs one step in the insertion operation.
+ // It performs a step according to the stage variable.
+ // I will not explain exactly what each stage do, just that they
+ // divided to 4 categories:
+ // 1. inserting a node to the tree.
+ // 2. marking nodes that will be recolored.
+ // 3. recoloring nodes.
+ // 4. rotating right or left.
+ private void InsertStep() {
+ // Pr is parent, GrPr is grandparent and Un is uncle.
+ Node Pr, GrPr, Un;
+ switch (stage) {
+ // Inserting a node to the tree
+ case 1:
+ Tree_Insert();
+ break;
+ // mid stage that moves the algorithm to the proper next stage
+ case 2:
+ Pr = node.getNode(Node.Parent);
+ GrPr = Pr.getNode(Node.Parent);
+ if (Pr == GrPr.getNode(Node.Left_son)) {
+ Un = GrPr.getNode(Node.Right_son);
+ if (Un.getColor() == Node.Red) {
+ stage = 3;
+ } else if (node == Pr.getNode(Node.Right_son)) {
+ node = Pr;
+ stage = 5;
+ } else {
+ stage = 6;
+ }
+ } else {
+ Un = GrPr.getNode(Node.Left_son);
+ if (Un.getColor() == Node.Red) {
stage = 3;
- }
- else
- if (node == Pr.getNode(Node.Right_son))
- {
- node = Pr;
- stage = 5;
- }
- else
- {
- stage = 6;
- }
- }
- else
- {
- Un = GrPr.getNode(Node.Left_son);
- if (Un.getColor() == Node.Red)
- {
- stage = 3;
- }
- else
- if (node == Pr.getNode(Node.Left_son))
- {
- node = Pr;
- stage = 5;
- }
- else
- {
- stage = 6;
- }
- }
- break;
- case 3: // This stage marks node that will be recolored
- Pr = node.getNode(Node.Parent);
- GrPr = Pr.getNode(Node.Parent);
- if (Pr == GrPr.getNode(Node.Left_son))
- Un = GrPr.getNode(Node.Right_son);
- else
- Un = GrPr.getNode(Node.Left_son);
+ } else if (node == Pr.getNode(Node.Left_son)) {
+ node = Pr;
+ stage = 5;
+ } else {
+ stage = 6;
+ }
+ }
+ break;
+ // This stage marks node that will be recolored
+ case 3:
+ Pr = node.getNode(Node.Parent);
+ GrPr = Pr.getNode(Node.Parent);
+ if (Pr == GrPr.getNode(Node.Left_son)) {
+ Un = GrPr.getNode(Node.Right_son);
+ } else {
+ Un = GrPr.getNode(Node.Left_son);
+ }
+ node = GrPr;
+ stage = 4;
+ break;
+ // This stage recolors marked nodes.
+ case 4:
+ node.setColor(Node.Red);
+ node.getNode(Node.Left_son).setColor(Node.Black);
+ node.getNode(Node.Right_son).setColor(Node.Black);
- node = GrPr;
- stage = 4;
- break;
- case 4: // this stage recolor marked nodes.
- node.setColor(Node.Red);
- (node.getNode(Node.Left_son)).setColor(Node.Black);
- (node.getNode(Node.Right_son)).setColor(Node.Black);
-
- if ((node == root) ||
- ((node.getNode(Node.Parent)).getColor() == Node.Black))
- if (root.getColor() == Node.Red)
- {
+ if ((node == root) ||
+ (node.getNode(Node.Parent).getColor() == Node.Black)) {
+ if (root.getColor() == Node.Red) {
stage = 9;
- }
- else
+ } else
stage = 0;
- else
- {
- stage = 2;
- InsertStep();
- }
- break;
- case 5: // This stage perform rotation operation
- Pr = node.getNode(Node.Parent);
- if (node == Pr.getNode(Node.Left_son))
- Left_Rotate(node);
- else
- Right_Rotate(node);
+ } else {
+ stage = 2;
+ InsertStep();
+ }
+ break;
+ // This stage performs rotation operation
+ case 5:
+ Pr = node.getNode(Node.Parent);
+ if (node == Pr.getNode(Node.Left_son)) {
+ Left_Rotate(node);
+ } else {
+ Right_Rotate(node);
+ }
+ stage = 6;
+ break;
+ // This stage marks nodes that will be recolor.
+ case 6:
+ Pr = node.getNode(Node.Parent);
+ GrPr = Pr.getNode(Node.Parent);
- stage = 6;
- break;
- case 6: // This stage marks nodes that will be recolor.
- Pr = node.getNode(Node.Parent);
- GrPr = Pr.getNode(Node.Parent);
-
- stage = 7;
- break;
- case 7: // This stage recolor marked nodes.
- Pr = node.getNode(Node.Parent);
- Pr.setColor(Node.Black);
- GrPr = Pr.getNode(Node.Parent);
- GrPr.setColor(Node.Red);
+ stage = 7;
+ break;
+ // This stage recolors marked nodes.
+ case 7:
+ Pr = node.getNode(Node.Parent);
+ Pr.setColor(Node.Black);
+ GrPr = Pr.getNode(Node.Parent);
+ GrPr.setColor(Node.Red);
- stage = 8;
- break;
- case 8: // This stage perform rotation operation
- Pr = node.getNode(Node.Parent);
- GrPr = Pr.getNode(Node.Parent);
- if (Pr == GrPr.getNode(Node.Left_son))
- Right_Rotate(GrPr);
- else
- Left_Rotate(GrPr);
- if (root.getColor() == Node.Red)
- {
- stage = 9;
- }
- else
- stage = 0;
- break;
- case 9: // this stage mark the root.
- stage = 10;
- break;
- case 10: // This stage recolor the root.
- root.setColor(Node.Black);
- stage = 0;
- break;
- }
- }
+ stage = 8;
+ break;
+ // This stage performs rotation operation
+ case 8:
+ Pr = node.getNode(Node.Parent);
+ GrPr = Pr.getNode(Node.Parent);
+ if (Pr == GrPr.getNode(Node.Left_son)) {
+ Right_Rotate(GrPr);
+ } else {
+ Left_Rotate(GrPr);
+ }
+ if (root.getColor() == Node.Red) {
+ stage = 9;
+ } else
+ stage = 0;
+ break;
+ // this stage marks the root.
+ case 9:
+ stage = 10;
+ break;
+ // This stage recolors the root.
+ case 10:
+ root.setColor(Node.Black);
+ stage = 0;
+ break;
+ }
+ }
- // This method perform one step in the deletion operation.
- // If perform a step acording to the stage variable.
- // I will explain exactly what each stage do, just that they
- // divided to 4 categories:
- // 1. deleting a node from the tree.
- // 2. marking nodes that will be recolored.
- // 3. recoloring nodes.
- // 4. rotating right or left.
+ // This method performs one step in the deletion operation.
+ // It perform sa step according to the stage variable.
+ // I will explain exactly what each stage do, just that they
+ // divided to 4 categories:
+ // 1. deleting a node from the tree.
+ // 2. marking nodes that will be recolored.
+ // 3. recoloring nodes.
+ // 4. rotating right or left.
+ public void DeleteStep() {
+ // Pr is Parent, Br is Brother
+ Node Pr, Br;
+ switch (stage) {
+ // This stage delete a node from the tree.
+ case 1:
+ Tree_Delete();
+ break;
+ // This stage marks a nodes that will be recolored or perform other stage.
+ case 2:
+ Pr = node.getNode(Node.Parent);
+ if (node == Pr.getNode(Node.Left_son)) {
+ Br = Pr.getNode(Node.Right_son);
+ } else {
+ Br = Pr.getNode(Node.Left_son);
+ }
+ if (Br.getColor() == Node.Red) {
+ stage = 3;
+ } else if ((Br.getNode(Node.Right_son).getColor() == Node.Black)
+ && (Br.getNode(Node.Left_son).getColor() == Node.Black)) {
+ stage = 5;
+ DeleteStep();
+ } else {
+ stage = 7;
+ DeleteStep();
+ }
+ break;
+ // This stage recolors marked nodes.
+ case 3:
+ Pr = node.getNode(Node.Parent);
+ if (node == Pr.getNode(Node.Left_son)) {
+ Br = Pr.getNode(Node.Right_son);
+ } else {
+ Br = Pr.getNode(Node.Left_son);
+ }
+ Br.setColor(Node.Black);
+ Pr.setColor(Node.Red);
- public void DeleteStep()
- {
- Node Pr,Br; // Pr is Parent ,Br is Brother
- switch (stage)
- {
- case 1: // This stage delete a node from the tree.
- /*
- System.out.println
- (new String("Deleting ")
- .concat(Integer.toString(node.getKey())));
- */
- Tree_Delete();
- break;
- case 2: // This stage marks a nodes that will be recolored
- // or perform other stage.
- Pr = node.getNode(Node.Parent);
- if (node == Pr.getNode(Node.Left_son))
- Br = Pr.getNode(Node.Right_son);
- else
- Br = Pr.getNode(Node.Left_son);
- if (Br.getColor() == Node.Red)
- {
- stage = 3;
+ stage = 4;
+ break;
+ // This stage performs rotation operation
+ case 4:
+ Pr = node.getNode(Node.Parent);
+ if (node == Pr.getNode(Node.Left_son)) {
+ Left_Rotate(Pr);
+ Br = Pr.getNode(Node.Right_son);
+ } else {
+ Right_Rotate(Pr);
+ Br = Pr.getNode(Node.Left_son);
+ }
+ if ((Br.getNode(Node.Right_son).getColor() == Node.Black)
+ && (Br.getNode(Node.Left_son).getColor() == Node.Black)) {
+ stage = 5;
+ } else {
+ stage = 7;
+ }
+
+ break;
+ // This stage marks nodes that will be recolor.
+ case 5:
+ Pr = node.getNode(Node.Parent);
+ if (node == Pr.getNode(Node.Left_son)) {
+ Br = Pr.getNode(Node.Right_son);
+ } else {
+ Br = Pr.getNode(Node.Left_son);
+ }
+ stage = 6;
+ break;
+ // This stage recolors marked nodes.
+ case 6:
+ Pr = node.getNode(Node.Parent);
+ if (node == Pr.getNode(Node.Left_son)) {
+ Br = Pr.getNode(Node.Right_son);
+ } else {
+ Br = Pr.getNode(Node.Left_son);
+ }
+ Br.setColor(Node.Red);
+ node = Pr;
+
+ if ((node != root) && (node.getColor() == Node.Black)) {
+ stage = 2;
+ } else if (node.getColor() == Node.Red) {
+ stage = 13;
+ } else
+ stage = 0;
+ break;
+ // This stage marks nodes that will be recolor or perform other stage.
+ case 7:
+ Pr = node.getNode(Node.Parent);
+ if (node == Pr.getNode(Node.Left_son)) {
+ Br = Pr.getNode(Node.Right_son);
+ if ((Br.getNode(Node.Right_son)).getColor() == Node.Black) {
+ stage = 8;
+ } else {
+ stage = 10;
+ DeleteStep();
}
- else
- if (((Br.getNode(Node.Right_son)).getColor() == Node.Black)
- && ((Br.getNode(Node.Left_son)).getColor() == Node.Black))
- {
- stage = 5;
- DeleteStep();
- }
- else
- {
- stage = 7;
- DeleteStep();
- }
- break;
- case 3: // this stage recolor marked nodes.
- Pr = node.getNode(Node.Parent);
- if (node == Pr.getNode(Node.Left_son))
- {
- Br = Pr.getNode(Node.Right_son);
-
- }
- else
- {
- Br = Pr.getNode(Node.Left_son);
- }
- Br.setColor(Node.Black);
- Pr.setColor(Node.Red);
-
- stage = 4;
- break;
- case 4: // this stage perform rotation operation
- Pr = node.getNode(Node.Parent);
- if (node == Pr.getNode(Node.Left_son))
- {
- Left_Rotate(Pr);
- Br = Pr.getNode(Node.Right_son);
- }
- else
- {
- Right_Rotate(Pr);
- Br = Pr.getNode(Node.Left_son);
- }
- if (((Br.getNode(Node.Right_son)).getColor() == Node.Black)
- && ((Br.getNode(Node.Left_son)).getColor() == Node.Black))
- stage = 5;
- else
- stage = 7;
-
- break;
- case 5: // this stage marks nodes that will be recolor.
- Pr = node.getNode(Node.Parent);
- if (node == Pr.getNode(Node.Left_son))
- Br = Pr.getNode(Node.Right_son);
- else
- Br = Pr.getNode(Node.Left_son);
-
- stage = 6;
- break;
- case 6: // This stage recolor marked nodes.
- Pr = node.getNode(Node.Parent);
- if (node == Pr.getNode(Node.Left_son))
- Br = Pr.getNode(Node.Right_son);
- else
- Br = Pr.getNode(Node.Left_son);
- Br.setColor(Node.Red);
- node = Pr;
-
- if ((node != root) && (node.getColor() == Node.Black))
- stage = 2;
- else
- if (node.getColor() == Node.Red)
- {
- stage = 13;
- }
- else
- stage = 0;
- break;
- case 7: // this stage marks nodes that will be recolor
- // or perform other stage.
- Pr = node.getNode(Node.Parent);
- if (node == Pr.getNode(Node.Left_son))
- {
- Br = Pr.getNode(Node.Right_son);
- if ((Br.getNode(Node.Right_son)).getColor() == Node.Black)
- {
- stage = 8;
- }
- else
- {
- stage = 10;
- DeleteStep();
- }
+ } else {
+ Br = Pr.getNode(Node.Left_son);
+ if ((Br.getNode(Node.Left_son)).getColor() == Node.Black) {
+ stage = 8;
+ } else {
+ stage = 10;
+ DeleteStep();
}
- else
- {
- Br = Pr.getNode(Node.Left_son);
- if ((Br.getNode(Node.Left_son)).getColor() == Node.Black)
- {
- stage = 8;
- }
- else
- {
- stage = 10;
- DeleteStep();
- }
- }
- break;
- case 8: // this stage recolor marked nodes.
- Pr = node.getNode(Node.Parent);
- if (node == Pr.getNode(Node.Left_son))
- {
- Br = Pr.getNode(Node.Right_son);
- (Br.getNode(Node.Left_son)).setColor(Node.Black);
-
- }
- else
- {
- Br = Pr.getNode(Node.Left_son);
- (Br.getNode(Node.Right_son)).setColor(Node.Black);
+ }
+ break;
+ // This stage recolors marked nodes.
+ case 8:
+ Pr = node.getNode(Node.Parent);
+ if (node == Pr.getNode(Node.Left_son)) {
+ Br = Pr.getNode(Node.Right_son);
+ Br.getNode(Node.Left_son).setColor(Node.Black);
+ } else {
+ Br = Pr.getNode(Node.Left_son);
+ Br.getNode(Node.Right_son).setColor(Node.Black);
+ }
+ Br.setColor(Node.Red);
+ stage = 9;
+ break;
+ // This stage performs rotation operation
+ case 9:
+ Pr = node.getNode(Node.Parent);
+ if (node == Pr.getNode(Node.Left_son)) {
+ Br = Pr.getNode(Node.Right_son);
+ Right_Rotate(Br);
+ } else {
+ Br = Pr.getNode(Node.Left_son);
+ Left_Rotate(Br);
+ }
- }
- Br.setColor(Node.Red);
- stage = 9;
- break;
- case 9: // this stage perform rotation operation
- Pr = node.getNode(Node.Parent);
- if (node == Pr.getNode(Node.Left_son))
- {
- Br = Pr.getNode(Node.Right_son);
- Right_Rotate(Br);
- }
- else
- {
- Br = Pr.getNode(Node.Left_son);
- Left_Rotate(Br);
- }
-
- stage = 10;
- break;
- case 10: // This stage marks node that will be recolor.
+ stage = 10;
+ break;
+ // This stage marks node that will be recolor.
+ case 10:
+ Pr = node.getNode(Node.Parent);
+ if (node == Pr.getNode(Node.Left_son)) {
+ Br = Pr.getNode(Node.Right_son);
+ } else {
+ Br = Pr.getNode(Node.Left_son);
+ }
- Pr = node.getNode(Node.Parent);
- if (node == Pr.getNode(Node.Left_son))
- {
- Br = Pr.getNode(Node.Right_son);
- }
- else
- {
- Br = Pr.getNode(Node.Left_son);
- }
+ stage = 11;
+ break;
+ // This stage recolors marked nodes.
+ case 11:
+ Pr = node.getNode(Node.Parent);
+ if (node == Pr.getNode(Node.Left_son)) {
+ Br = Pr.getNode(Node.Right_son);
+ Br.getNode(Node.Right_son).setColor(Node.Black);
+ } else {
+ Br = Pr.getNode(Node.Left_son);
+ Br.getNode(Node.Left_son).setColor(Node.Black);
- stage = 11;
- break;
- case 11: // this stage recolor marked nodes.
- Pr = node.getNode(Node.Parent);
- if (node == Pr.getNode(Node.Left_son))
- {
- Br = Pr.getNode(Node.Right_son);
- (Br.getNode(Node.Right_son)).setColor(Node.Black);
- }
- else
- {
- Br = Pr.getNode(Node.Left_son);
- (Br.getNode(Node.Left_son)).setColor(Node.Black);
+ }
+ if (Br.getColor() != Pr.getColor()) {
+ Br.setColor(Pr.getColor());
+ }
+ if (Pr.getColor() != Node.Black) {
+ Pr.setColor(Node.Black);
+ }
- }
- if (Br.getColor() != Pr.getColor())
- Br.setColor(Pr.getColor());
- if (Pr.getColor() != Node.Black)
- Pr.setColor(Node.Black);
-
- stage = 12;
- break;
- case 12: // this stage perform rotation operation.
- Pr = node.getNode(Node.Parent);
- if (node == Pr.getNode(Node.Left_son))
- Left_Rotate(Pr);
- else
- Right_Rotate(Pr);
- node = root;
- if (node.getColor() == Node.Red)
- {
- stage = 13;
- }
- else
- stage = 0;
- break;
- case 13: // this stage marks a node that will be recolor
- stage = 14;
- break;
- case 14: // this stage recolor marked node.
- node.setColor(Node.Black);
+ stage = 12;
+ break;
+ // This stage performs rotation operation.
+ case 12:
+ Pr = node.getNode(Node.Parent);
+ if (node == Pr.getNode(Node.Left_son)) {
+ Left_Rotate(Pr);
+ } else {
+ Right_Rotate(Pr);
+ }
+ node = root;
+ if (node.getColor() == Node.Red) {
+ stage = 13;
+ } else {
stage = 0;
- break;
- }
- }
-
- // This method insert the node 'node' to the tree.
- // it called from the first stage in the InsertStep method.
- // we 'dive' from the root to a leaf acording to the node key
- // and insert the node in the proper place.
+ }
+ break;
+ // This stage marks a node that will be recolored
+ case 13:
+ stage = 14;
+ break;
+ // This stage recolors marked node.
+ case 14:
+ node.setColor(Node.Black);
+ stage = 0;
+ break;
+ }
+ }
- private void Tree_Insert()
- {
- Node n1,n2;
- n1 = root;
- n2 = treeNull;
- while (n1 != treeNull)
- {
- n2 = n1;
- if (node.getKey() < n1.getKey())
- n1 = n1.getNode(Node.Left_son);
- else
- n1 = n1.getNode(Node.Right_son);
- }
- node.setNode(Node.Parent,n2);
- if (n2 == treeNull)
- root = node;
- else
- {
- if (node.getKey() < n2.getKey())
- n2.setNode(Node.Left_son,node);
- else
- n2.setNode(Node.Right_son,node);
- }
- //Parent.display.drawTree();
- // updating the insertion stage.
- if ((node == root) ||
- ((node.getNode(Node.Parent)).getColor() == Node.Black))
- if (root.getColor() == Node.Red)
- {
- stage = 9;
- }
- else
- stage = 0;
- else
- {
- stage = 2;
- InsertStep();
- }
- num_of_nodes++; // increasing the number of nodes
- }
+ // This method inserts the node 'node' to the tree.
+ // it called from the first stage in the InsertStep method.
+ // we 'dive' from the root to a leaf according to the node key
+ // and insert the node in the proper place.
+ private void Tree_Insert() {
+ Node n1, n2;
+ n1 = root;
+ n2 = treeNull;
+ while (n1 != treeNull) {
+ n2 = n1;
+ if (node.getKey() < n1.getKey()) {
+ n1 = n1.getNode(Node.Left_son);
+ } else {
+ n1 = n1.getNode(Node.Right_son);
+ }
+ }
+ node.setNode(Node.Parent, n2);
+ if (n2 == treeNull) {
+ root = node;
+ }
+ else {
+ if (node.getKey() < n2.getKey()) {
+ n2.setNode(Node.Left_son, node);
+ } else {
+ n2.setNode(Node.Right_son, node);
+ }
+ }
+ // updating the insertion stage.
+ if ((node == root) ||
+ (node.getNode(Node.Parent).getColor() == Node.Black)) {
+ if (root.getColor() == Node.Red) {
+ stage = 9;
+ } else {
+ stage = 0;
+ }
+ } else {
+ stage = 2;
+ InsertStep();
+ }
+ num_of_nodes++; // increasing the number of nodes
+ }
- // This method delete the node 'node' from the tree.
- // it called from the first stage in the DeleteStep method.
- // if node has at most one son we just remove it and connect
- // his son and parent. If it has 2 sons we delete his successor
- // that has at most one son and replace him with the successor.
+ // This method deletes the node 'node' from the tree.
+ // it called from the first stage in the DeleteStep method.
+ // if node has at most one son we just remove it and connect
+ // his son and parent. If it has 2 sons we delete his successor
+ // that has at most one son and replace him with the successor.
+ private void Tree_Delete() {
+ Node n1, n2, n3;
+ if ((node.getNode(Node.Left_son) == treeNull) ||
+ (node.getNode(Node.Right_son) == treeNull)) {
+ n1 = node;
+ } else {
+ n1 = Tree_Successor(node);
+ }
- private void Tree_Delete()
- {
- Node n1,n2,n3;
- if ((node.getNode(Node.Left_son) == treeNull) ||
- (node.getNode(Node.Right_son) == treeNull))
- n1 = node;
- else
- n1 = Tree_Successor(node);
- if (n1.getNode(node.Left_son) != treeNull)
- n2 = n1.getNode(Node.Left_son);
- else
- n2 = n1.getNode(Node.Right_son);
+ if (n1.getNode(Node.Left_son) != treeNull) {
+ n2 = n1.getNode(Node.Left_son);
+ } else {
+ n2 = n1.getNode(Node.Right_son);
+ }
- n3 = n1.getNode(Node.Parent);
- n2.setNode(Node.Parent,n3);
- if (n3 == treeNull)
- root = n2;
- else
- if (n1 == n3.getNode(Node.Left_son))
- n3.setNode(Node.Left_son,n2);
- else
- n3.setNode(Node.Right_son,n2);
+ n3 = n1.getNode(Node.Parent);
+ n2.setNode(Node.Parent, n3);
+ if (n3 == treeNull) {
+ root = n2;
+ } else if (n1 == n3.getNode(Node.Left_son)) {
+ n3.setNode(Node.Left_son, n2);
+ } else {
+ n3.setNode(Node.Right_son, n2);
+ }
- if (n1 != node)
- {
- node.setKey(n1.getKey());
- }
-
+ if (n1 != node) {
+ node.setKey(n1.getKey());
+ }
- node = n2;
- if (n1.getColor() == Node.Black)
- if ((node != root) && (node.getColor() == Node.Black))
- stage = 2;
- else
- if (node.getColor() == Node.Red)
- stage = 13;
- else
- stage = 0;
- else
- stage = 0;
- num_of_nodes--; // decrease the number of nodes.
- }
-
- // This method return the successor of the node n in the tree.
+ node = n2;
+ if (n1.getColor() == Node.Black) {
+ if ((node != root) && (node.getColor() == Node.Black)) {
+ stage = 2;
+ } else if (node.getColor() == Node.Red) {
+ stage = 13;
+ } else {
+ stage = 0;
+ }
+ } else {
+ stage = 0;
+ }
+ // decrease the number of nodes.
+ num_of_nodes--;
+ }
- private Node Tree_Successor(Node n)
- {
- Node n1;
- if (n.getNode(Node.Right_son) != treeNull)
- {
- n = n.getNode(Node.Right_son);
- while (n.getNode(Node.Left_son) != treeNull)
- n = n.getNode(Node.Left_son);
- return n;
- }
- n1 = n.getNode(Node.Parent);
- while ((n1 != treeNull) && (n == n1.getNode(Node.Right_son)))
- {
- n = n1;
- n1 = n1.getNode(Node.Parent);
- }
- return n1;
- }
+ // This method returns the successor of the node n in the tree.
+ private Node Tree_Successor(Node n) {
+ Node n1;
+ if (n.getNode(Node.Right_son) != treeNull) {
+ n = n.getNode(Node.Right_son);
+ while (n.getNode(Node.Left_son) != treeNull) {
+ n = n.getNode(Node.Left_son);
+ }
+ return n;
+ }
+ n1 = n.getNode(Node.Parent);
+ while ((n1 != treeNull) && (n == n1.getNode(Node.Right_son))) {
+ n = n1;
+ n1 = n1.getNode(Node.Parent);
+ }
+ return n1;
+ }
- // This method perform Left Rotation with n1.
+ // This method performs Left Rotation with n1.
+ private void Left_Rotate(Node n1) {
+ Node n2;
- private void Left_Rotate(Node n1)
- {
- Node n2;
+ n2 = n1.getNode(Node.Right_son);
+ n1.setNode(Node.Right_son, n2.getNode(Node.Left_son));
+ if (n2.getNode(Node.Left_son) != treeNull) {
+ n2.getNode(Node.Left_son).setNode(Node.Parent, n1);
+ }
+ n2.setNode(Node.Parent, n1.getNode(Node.Parent));
+ if (n1.getNode(Node.Parent) == treeNull) {
+ root = n2;
+ } else if (n1 == n1.getNode(Node.Parent).getNode(Node.Left_son)) {
+ n1.getNode(Node.Parent).setNode(Node.Left_son, n2);
+ } else {
+ n1.getNode(Node.Parent).setNode(Node.Right_son, n2);
+ }
+ n2.setNode(Node.Left_son, n1);
+ n1.setNode(Node.Parent, n2);
+ }
- n2 = n1.getNode(Node.Right_son);
- n1.setNode(Node.Right_son,n2.getNode(Node.Left_son));
- if (n2.getNode(Node.Left_son) != treeNull)
- (n2.getNode(Node.Left_son)).setNode(Node.Parent,n1);
- n2.setNode(Node.Parent,n1.getNode(Node.Parent));
- if (n1.getNode(Node.Parent) == treeNull)
- root = n2;
- else
- if (n1 == (n1.getNode(Node.Parent)).getNode(Node.Left_son))
- (n1.getNode(Node.Parent)).setNode(Node.Left_son,n2);
- else
- (n1.getNode(Node.Parent)).setNode(Node.Right_son,n2);
- n2.setNode(Node.Left_son,n1);
- n1.setNode(Node.Parent,n2);
- }
-
- // This method perform Right Rotation with n1.
-
- private void Right_Rotate(Node n1)
- {
- Node n2;
+ // This method performs Right Rotation with n1.
+ private void Right_Rotate(Node n1) {
+ Node n2;
- n2 = n1.getNode(Node.Left_son);
- n1.setNode(Node.Left_son,n2.getNode(Node.Right_son));
- if (n2.getNode(Node.Right_son) != treeNull)
- (n2.getNode(Node.Right_son)).setNode(Node.Parent,n1);
- n2.setNode(Node.Parent,n1.getNode(Node.Parent));
- if (n1.getNode(Node.Parent) == treeNull)
- root = n2;
- else
- if (n1 == (n1.getNode(Node.Parent)).getNode(Node.Left_son))
- (n1.getNode(Node.Parent)).setNode(Node.Left_son,n2);
- else
- (n1.getNode(Node.Parent)).setNode(Node.Right_son,n2);
- n2.setNode(Node.Right_son,n1);
- n1.setNode(Node.Parent,n2);
- }
-
- // This method search the tree for a node with key 'key', and
- // return the node on success otherwise treeNull.
+ n2 = n1.getNode(Node.Left_son);
+ n1.setNode(Node.Left_son, n2.getNode(Node.Right_son));
+ if (n2.getNode(Node.Right_son) != treeNull) {
+ n2.getNode(Node.Right_son).setNode(Node.Parent, n1);
+ }
+ n2.setNode(Node.Parent, n1.getNode(Node.Parent));
+ if (n1.getNode(Node.Parent) == treeNull) {
+ root = n2;
+ } else if (n1 == (n1.getNode(Node.Parent)).getNode(Node.Left_son)) {
+ n1.getNode(Node.Parent).setNode(Node.Left_son, n2);
+ } else {
+ n1.getNode(Node.Parent).setNode(Node.Right_son, n2);
+ }
+ n2.setNode(Node.Right_son, n1);
+ n1.setNode(Node.Parent, n2);
+ }
- public Node Search(int key)
- {
- Node node;
- node = root;
- while ((node != treeNull) && (key != node.getKey()))
- if (key < node.getKey())
- node = node.getNode(Node.Left_son);
- else
- node = node.getNode(Node.Right_son);
- return node;
- }
-
- // This method update the tree height it uses a recursive method
- // findheight.
+ // This method searches the tree for a node with key 'key', and
+ // returns the node on success otherwise treeNull.
+ public Node Search(int key) {
+ Node node;
+ node = root;
+ while ((node != treeNull) && (key != node.getKey())) {
+ if (key < node.getKey()) {
+ node = node.getNode(Node.Left_son);
+ } else {
+ node = node.getNode(Node.Right_son);
+ }
+ }
+ return node;
+ }
- private void updateHeight()
- {
- height = 0;
- if (root != treeNull)
- findHeight(root,1);
- }
-
- // This is a recursive method that find a node height.
+ // This method updates the tree height. it uses a recursive method
+ // findHeight.
+ private void updateHeight() {
+ height = 0;
+ if (root != treeNull) {
+ findHeight(root, 1);
+ }
+ }
- private void findHeight(Node n,int curr)
- {
- if (height < curr)
- height = curr;
- if (n.getNode(Node.Left_son) != treeNull)
- findHeight(n.getNode(Node.Left_son),curr+1);
- if (n.getNode(Node.Right_son) != treeNull)
- findHeight(n.getNode(Node.Right_son),curr+1);
- }
+ // This is a recursive method that find a node height.
+ private void findHeight(Node n, int curr) {
+ if (height < curr) {
+ height = curr;
+ }
+ if (n.getNode(Node.Left_son) != treeNull) {
+ findHeight(n.getNode(Node.Left_son), curr + 1);
+ }
+ if (n.getNode(Node.Right_son) != treeNull) {
+ findHeight(n.getNode(Node.Right_son), curr + 1);
+ }
+ }
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/cgt0.java Tue Oct 15 14:19:55 2019 +0530
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2017, 2019, 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
+ *
+ * @summary converted from VM Testbase jit/graph/cgt0.
+ * VM Testbase keywords: [jit, quick]
+ *
+ * @library /vmTestbase
+ * /test/lib
+ * @run driver jdk.test.lib.FileInstaller data/main.data main.data
+ * @build jit.graph.*
+ * @run main
+ * jit.graph.CGT
+ * -path main.data
+ * -numTestClass 1
+ * -randomLoop 40
+ * -staticLoop 40
+ */
+
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/cgt0/cgt0.java Sat Oct 12 08:49:59 2019 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- *
- * @summary converted from VM Testbase jit/graph/cgt0.
- * VM Testbase keywords: [jit, quick]
- *
- * @library /vmTestbase
- * /test/lib
- * @run driver jdk.test.lib.FileInstaller . .
- * @run driver jdk.test.lib.FileInstaller ../data/main.data main.data
- * @build jit.graph.*
- * @run driver ExecDriver --java
- * jit.graph.CGT
- * -path main.data
- * -numTestClass 1
- * -thread 1
- * -randomLoop 40
- * -staticLoop 40
- */
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/cgt1.java Tue Oct 15 14:19:55 2019 +0530
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2017, 2019, 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
+ *
+ * @summary converted from VM Testbase jit/graph/cgt1.
+ * VM Testbase keywords: [jit, quick]
+ *
+ * @library /vmTestbase
+ * /test/lib
+ * @run driver jdk.test.lib.FileInstaller data/main.data main.data
+ * @build jit.graph.*
+ * @run main
+ * jit.graph.CGT
+ * -path main.data
+ * -numTestClass 2
+ * -randomLoop 40
+ * -staticLoop 40
+ */
+
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/cgt1/cgt1.java Sat Oct 12 08:49:59 2019 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- *
- * @summary converted from VM Testbase jit/graph/cgt1.
- * VM Testbase keywords: [jit, quick]
- *
- * @library /vmTestbase
- * /test/lib
- * @run driver jdk.test.lib.FileInstaller . .
- * @run driver jdk.test.lib.FileInstaller ../data/main.data main.data
- * @build jit.graph.*
- * @run driver ExecDriver --java
- * jit.graph.CGT
- * -path main.data
- * -numTestClass 2
- * -thread 1
- * -randomLoop 40
- * -staticLoop 40
- */
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/cgt10.java Tue Oct 15 14:19:55 2019 +0530
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2017, 2019, 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
+ *
+ * @summary converted from VM Testbase jit/graph/cgt10.
+ * VM Testbase keywords: [jit, quick]
+ *
+ * @library /vmTestbase
+ * /test/lib
+ * @run driver jdk.test.lib.FileInstaller data/main.data main.data
+ * @build jit.graph.*
+ * @run main
+ * jit.graph.CGT
+ * -path main.data
+ * -numTestClass 11
+ * -randomLoop 40
+ * -staticLoop 40
+ */
+
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/cgt10/cgt10.java Sat Oct 12 08:49:59 2019 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- *
- * @summary converted from VM Testbase jit/graph/cgt10.
- * VM Testbase keywords: [jit, quick]
- *
- * @library /vmTestbase
- * /test/lib
- * @run driver jdk.test.lib.FileInstaller . .
- * @run driver jdk.test.lib.FileInstaller ../data/main.data main.data
- * @build jit.graph.*
- * @run driver ExecDriver --java
- * jit.graph.CGT
- * -path main.data
- * -numTestClass 11
- * -thread 1
- * -randomLoop 40
- * -staticLoop 40
- */
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/cgt11.java Tue Oct 15 14:19:55 2019 +0530
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2017, 2019, 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
+ *
+ * @summary converted from VM Testbase jit/graph/cgt11.
+ * VM Testbase keywords: [jit, quick]
+ *
+ * @library /vmTestbase
+ * /test/lib
+ * @run driver jdk.test.lib.FileInstaller data/main.data main.data
+ * @build jit.graph.*
+ * @run main
+ * jit.graph.CGT
+ * -path main.data
+ * -numTestClass 12
+ * -randomLoop 40
+ * -staticLoop 40
+ */
+
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/cgt11/cgt11.java Sat Oct 12 08:49:59 2019 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- *
- * @summary converted from VM Testbase jit/graph/cgt11.
- * VM Testbase keywords: [jit, quick]
- *
- * @library /vmTestbase
- * /test/lib
- * @run driver jdk.test.lib.FileInstaller . .
- * @run driver jdk.test.lib.FileInstaller ../data/main.data main.data
- * @build jit.graph.*
- * @run driver ExecDriver --java
- * jit.graph.CGT
- * -path main.data
- * -numTestClass 12
- * -thread 1
- * -randomLoop 40
- * -staticLoop 40
- */
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/cgt2.java Tue Oct 15 14:19:55 2019 +0530
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2017, 2019, 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
+ *
+ * @summary converted from VM Testbase jit/graph/cgt2.
+ * VM Testbase keywords: [jit, quick]
+ *
+ * @library /vmTestbase
+ * /test/lib
+ * @run driver jdk.test.lib.FileInstaller data/main.data main.data
+ * @build jit.graph.*
+ * @run main
+ * jit.graph.CGT
+ * -path main.data
+ * -numTestClass 3
+ * -randomLoop 40
+ * -staticLoop 40
+ */
+
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/cgt2/cgt2.java Sat Oct 12 08:49:59 2019 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- *
- * @summary converted from VM Testbase jit/graph/cgt2.
- * VM Testbase keywords: [jit, quick]
- *
- * @library /vmTestbase
- * /test/lib
- * @run driver jdk.test.lib.FileInstaller . .
- * @run driver jdk.test.lib.FileInstaller ../data/main.data main.data
- * @build jit.graph.*
- * @run driver ExecDriver --java
- * jit.graph.CGT
- * -path main.data
- * -numTestClass 3
- * -thread 1
- * -randomLoop 40
- * -staticLoop 40
- */
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/cgt3.java Tue Oct 15 14:19:55 2019 +0530
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2017, 2019, 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
+ *
+ * @summary converted from VM Testbase jit/graph/cgt3.
+ * VM Testbase keywords: [jit, quick]
+ *
+ * @library /vmTestbase
+ * /test/lib
+ * @run driver jdk.test.lib.FileInstaller data/main.data main.data
+ * @build jit.graph.*
+ * @run main
+ * jit.graph.CGT
+ * -path main.data
+ * -numTestClass 4
+ * -randomLoop 40
+ * -staticLoop 40
+ */
+
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/cgt3/cgt3.java Sat Oct 12 08:49:59 2019 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- *
- * @summary converted from VM Testbase jit/graph/cgt3.
- * VM Testbase keywords: [jit, quick]
- *
- * @library /vmTestbase
- * /test/lib
- * @run driver jdk.test.lib.FileInstaller . .
- * @run driver jdk.test.lib.FileInstaller ../data/main.data main.data
- * @build jit.graph.*
- * @run driver ExecDriver --java
- * jit.graph.CGT
- * -path main.data
- * -numTestClass 4
- * -thread 1
- * -randomLoop 40
- * -staticLoop 40
- */
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/cgt4.java Tue Oct 15 14:19:55 2019 +0530
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2017, 2019, 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
+ *
+ * @summary converted from VM Testbase jit/graph/cgt4.
+ * VM Testbase keywords: [jit, quick]
+ *
+ * @library /vmTestbase
+ * /test/lib
+ * @run driver jdk.test.lib.FileInstaller data/main.data main.data
+ * @build jit.graph.*
+ * @run main
+ * jit.graph.CGT
+ * -path main.data
+ * -numTestClass 5
+ * -randomLoop 40
+ * -staticLoop 40
+ */
+
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/cgt4/cgt4.java Sat Oct 12 08:49:59 2019 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- *
- * @summary converted from VM Testbase jit/graph/cgt4.
- * VM Testbase keywords: [jit, quick]
- *
- * @library /vmTestbase
- * /test/lib
- * @run driver jdk.test.lib.FileInstaller . .
- * @run driver jdk.test.lib.FileInstaller ../data/main.data main.data
- * @build jit.graph.*
- * @run driver ExecDriver --java
- * jit.graph.CGT
- * -path main.data
- * -numTestClass 5
- * -thread 1
- * -randomLoop 40
- * -staticLoop 40
- */
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/cgt5.java Tue Oct 15 14:19:55 2019 +0530
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2017, 2019, 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
+ *
+ * @summary converted from VM Testbase jit/graph/cgt5.
+ * VM Testbase keywords: [jit, quick]
+ *
+ * @library /vmTestbase
+ * /test/lib
+ * @run driver jdk.test.lib.FileInstaller data/main.data main.data
+ * @build jit.graph.*
+ * @run main
+ * jit.graph.CGT
+ * -path main.data
+ * -numTestClass 6
+ * -randomLoop 40
+ * -staticLoop 40
+ */
+
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/cgt5/cgt5.java Sat Oct 12 08:49:59 2019 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- *
- * @summary converted from VM Testbase jit/graph/cgt5.
- * VM Testbase keywords: [jit, quick]
- *
- * @library /vmTestbase
- * /test/lib
- * @run driver jdk.test.lib.FileInstaller . .
- * @run driver jdk.test.lib.FileInstaller ../data/main.data main.data
- * @build jit.graph.*
- * @run driver ExecDriver --java
- * jit.graph.CGT
- * -path main.data
- * -numTestClass 6
- * -thread 1
- * -randomLoop 40
- * -staticLoop 40
- */
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/cgt6.java Tue Oct 15 14:19:55 2019 +0530
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2017, 2019, 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
+ *
+ * @summary converted from VM Testbase jit/graph/cgt6.
+ * VM Testbase keywords: [jit, quick]
+ *
+ * @library /vmTestbase
+ * /test/lib
+ * @run driver jdk.test.lib.FileInstaller data/main.data main.data
+ * @build jit.graph.*
+ * @run main
+ * jit.graph.CGT
+ * -path main.data
+ * -numTestClass 7
+ * -randomLoop 40
+ * -staticLoop 40
+ */
+
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/cgt6/cgt6.java Sat Oct 12 08:49:59 2019 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- *
- * @summary converted from VM Testbase jit/graph/cgt6.
- * VM Testbase keywords: [jit, quick]
- *
- * @library /vmTestbase
- * /test/lib
- * @run driver jdk.test.lib.FileInstaller . .
- * @run driver jdk.test.lib.FileInstaller ../data/main.data main.data
- * @build jit.graph.*
- * @run driver ExecDriver --java
- * jit.graph.CGT
- * -path main.data
- * -numTestClass 7
- * -thread 1
- * -randomLoop 40
- * -staticLoop 40
- */
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/cgt7.java Tue Oct 15 14:19:55 2019 +0530
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2017, 2019, 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
+ *
+ * @summary converted from VM Testbase jit/graph/cgt7.
+ * VM Testbase keywords: [jit, quick]
+ *
+ * @library /vmTestbase
+ * /test/lib
+ * @run driver jdk.test.lib.FileInstaller data/main.data main.data
+ * @build jit.graph.*
+ * @run main
+ * jit.graph.CGT
+ * -path main.data
+ * -numTestClass 8
+ * -randomLoop 40
+ * -staticLoop 40
+ */
+
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/cgt7/cgt7.java Sat Oct 12 08:49:59 2019 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- *
- * @summary converted from VM Testbase jit/graph/cgt7.
- * VM Testbase keywords: [jit, quick]
- *
- * @library /vmTestbase
- * /test/lib
- * @run driver jdk.test.lib.FileInstaller . .
- * @run driver jdk.test.lib.FileInstaller ../data/main.data main.data
- * @build jit.graph.*
- * @run driver ExecDriver --java
- * jit.graph.CGT
- * -path main.data
- * -numTestClass 8
- * -thread 1
- * -randomLoop 40
- * -staticLoop 40
- */
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/cgt8.java Tue Oct 15 14:19:55 2019 +0530
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2017, 2019, 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
+ *
+ * @summary converted from VM Testbase jit/graph/cgt8.
+ * VM Testbase keywords: [jit, quick]
+ *
+ * @library /vmTestbase
+ * /test/lib
+ * @run driver jdk.test.lib.FileInstaller data/main.data main.data
+ * @build jit.graph.*
+ * @run main
+ * jit.graph.CGT
+ * -path main.data
+ * -numTestClass 9
+ * -randomLoop 40
+ * -staticLoop 40
+ */
+
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/cgt8/cgt8.java Sat Oct 12 08:49:59 2019 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- *
- * @summary converted from VM Testbase jit/graph/cgt8.
- * VM Testbase keywords: [jit, quick]
- *
- * @library /vmTestbase
- * /test/lib
- * @run driver jdk.test.lib.FileInstaller . .
- * @run driver jdk.test.lib.FileInstaller ../data/main.data main.data
- * @build jit.graph.*
- * @run driver ExecDriver --java
- * jit.graph.CGT
- * -path main.data
- * -numTestClass 9
- * -thread 1
- * -randomLoop 40
- * -staticLoop 40
- */
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/cgt9.java Tue Oct 15 14:19:55 2019 +0530
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2017, 2019, 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
+ *
+ * @summary converted from VM Testbase jit/graph/cgt9.
+ * VM Testbase keywords: [jit, quick]
+ *
+ * @library /vmTestbase
+ * /test/lib
+ * @run driver jdk.test.lib.FileInstaller data/main.data main.data
+ * @build jit.graph.*
+ * @run main
+ * jit.graph.CGT
+ * -path main.data
+ * -numTestClass 10
+ * -randomLoop 40
+ * -staticLoop 40
+ */
+
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/cgt9/cgt9.java Sat Oct 12 08:49:59 2019 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- *
- * @summary converted from VM Testbase jit/graph/cgt9.
- * VM Testbase keywords: [jit, quick]
- *
- * @library /vmTestbase
- * /test/lib
- * @run driver jdk.test.lib.FileInstaller . .
- * @run driver jdk.test.lib.FileInstaller ../data/main.data main.data
- * @build jit.graph.*
- * @run driver ExecDriver --java
- * jit.graph.CGT
- * -path main.data
- * -numTestClass 10
- * -thread 1
- * -randomLoop 40
- * -staticLoop 40
- */
-
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/test1.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/test1.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019, 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
@@ -20,31 +20,30 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
+
package jit.graph;
-
-
-import java.util.*;
-import java.lang.reflect.*;
import nsk.share.TestFailure;
-class test1
-{
+import java.lang.reflect.InvocationTargetException;
+import java.util.Vector;
+
+class test1 {
private final int classID = Globals.MethodID_Array[0];
public void callMe(Vector summation, Vector ID, Long functionDepth, Integer staticFunctionDepth)
- throws InvocationTargetException
- {
- Globals.appendSumToSumationVector(classID, summation);
+ throws InvocationTargetException {
+ Globals.appendSumToSummationVector(classID, summation);
- if (CGT.shouldFinish())
+ if (CGT.shouldFinish()) {
return;
+ }
- if (Globals.VERBOSE)
+ if (Globals.VERBOSE) {
System.out.println("test1.callMe");
+ }
- if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0))
- {
+ if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0)) {
return;
}
@@ -52,16 +51,12 @@
Long numFcalls;
Integer staticFcalls;
- if (staticFunctionDepth.intValue() > 0)
- {
+ if (staticFunctionDepth.intValue() > 0) {
numFcalls = functionDepth;
- staticFcalls = new Integer(staticFunctionDepth.intValue()-1);
- //methodCallStr = Globals.nextStaticMethod(Globals.getIndexFromID(classID));
+ staticFcalls = new Integer(staticFunctionDepth.intValue() - 1);
methodCallStr = Globals.returnNextStaticMethod(classID);
- }
- else
- {
- numFcalls = new Long(functionDepth.longValue() -1);
+ } else {
+ numFcalls = new Long(functionDepth.longValue() - 1);
staticFcalls = staticFunctionDepth;
methodCallStr = Globals.nextRandomMethod();
}
@@ -69,10 +64,10 @@
Globals.addFunctionIDToVector(methodCallStr.id, ID);
try {
- methodCallStr.nextMethod.invoke(methodCallStr.instance,
- new Object []{summation, ID, numFcalls, staticFcalls});
+ methodCallStr.nextMethod.invoke(methodCallStr.instance,
+ new Object[]{summation, ID, numFcalls, staticFcalls});
} catch (IllegalAccessException iax) {
- throw new TestFailure("Illegal Access Exception");
+ throw new TestFailure("Illegal Access Exception");
}
}
}
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/test2.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/test2.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019, 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
@@ -20,126 +20,98 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
+
package jit.graph;
-import java.util.*;
-import java.lang.reflect.*;
import nsk.share.TestFailure;
-class test2
-{
- private final int[] MethodID = {Globals.MethodID_Array[1],Globals.MethodID_Array[2]};
+import java.lang.reflect.InvocationTargetException;
+import java.util.Vector;
+
+class test2 {
+ private final int[] MethodID = {Globals.MethodID_Array[1], Globals.MethodID_Array[2]};
public void CallCallMe(Vector summation, Vector ID, Long functionDepth, Integer staticFunctionDepth)
- throws InvocationTargetException
+ throws InvocationTargetException {
+ Globals.appendSumToSummationVector(MethodID[1], summation);
- {
- Globals.appendSumToSumationVector(MethodID[1], summation);
-
- if (CGT.shouldFinish())
+ if (CGT.shouldFinish()) {
return;
+ }
- if (Globals.VERBOSE)
+ if (Globals.VERBOSE) {
System.out.println("test2.CallCallMe");
+ }
- if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0))
- {
- return;
- }
+ if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0)) {
+ return;
+ }
- MethodData methodCallStr;
- Long numFcalls;
- Integer staticFcalls;
- if (staticFunctionDepth.intValue() > 0)
- {
- numFcalls = functionDepth;
- staticFcalls = new Integer(staticFunctionDepth.intValue()-1);
- //methodCallStr = Globals.nextStaticMethod(Globals.getIndexFromID(MethodID[1]));
- methodCallStr = Globals.returnNextStaticMethod(MethodID[1]);
+ MethodData methodCallStr;
+ Long numFcalls;
+ Integer staticFcalls;
+ if (staticFunctionDepth.intValue() > 0) {
+ numFcalls = functionDepth;
+ staticFcalls = new Integer(staticFunctionDepth.intValue() - 1);
+ methodCallStr = Globals.returnNextStaticMethod(MethodID[1]);
- Globals.addFunctionIDToVector(methodCallStr.id, ID);
- }
- else
- {
- numFcalls = new Long(functionDepth.longValue()-1);
- staticFcalls = staticFunctionDepth;
- Globals.addFunctionIDToVector(MethodID[0], ID);
- callMe(summation, ID, numFcalls, staticFcalls);
- return;
- }
+ Globals.addFunctionIDToVector(methodCallStr.id, ID);
+ } else {
+ numFcalls = new Long(functionDepth.longValue() - 1);
+ staticFcalls = staticFunctionDepth;
+ Globals.addFunctionIDToVector(MethodID[0], ID);
+ callMe(summation, ID, numFcalls, staticFcalls);
+ return;
+ }
- try
- {
- methodCallStr.nextMethod.invoke(methodCallStr.instance,
- new Object []{summation, ID, numFcalls, staticFcalls});
- }
- catch (IllegalAccessException iax)
- {
- throw new TestFailure("Illegal Access Exception");
- }
- /*
- catch (InvocationTargetException itx)
- {
- throw itx;
- }
- */
+ try {
+ methodCallStr.nextMethod.invoke(methodCallStr.instance,
+ new Object[]{summation, ID, numFcalls, staticFcalls});
+ } catch (IllegalAccessException iax) {
+ throw new TestFailure("Illegal Access Exception");
+ }
}
public void callMe(Vector summation, Vector ID, Long functionDepth, Integer staticFunctionDepth)
- throws InvocationTargetException
- {
- Globals.appendSumToSumationVector(MethodID[0], summation);
+ throws InvocationTargetException {
+ Globals.appendSumToSummationVector(MethodID[0], summation);
- if (CGT.shouldFinish())
+ if (CGT.shouldFinish()) {
return;
+ }
- if (Globals.VERBOSE)
+ if (Globals.VERBOSE) {
System.out.println("test2.callMe");
+ }
- if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0))
- {
- return;
- }
+ if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0)) {
+ return;
+ }
- MethodData methodCallStr;
- Long numFcalls;
- Integer staticFcalls;
- if (staticFunctionDepth.intValue() > 0)
- {
- numFcalls = functionDepth;
- staticFcalls = new Integer(staticFunctionDepth.intValue()-1);
- //methodCallStr = Globals.nextStaticMethod(Globals.getIndexFromID(MethodID[0]));
- methodCallStr = Globals.returnNextStaticMethod(MethodID[0]);
+ MethodData methodCallStr;
+ Long numFcalls;
+ Integer staticFcalls;
+ if (staticFunctionDepth.intValue() > 0) {
+ numFcalls = functionDepth;
+ staticFcalls = new Integer(staticFunctionDepth.intValue() - 1);
+ methodCallStr = Globals.returnNextStaticMethod(MethodID[0]);
- }
- else
- {
- numFcalls = new Long(functionDepth.longValue() -1);
- staticFcalls = staticFunctionDepth;
- methodCallStr = Globals.nextRandomMethod();
- }
+ } else {
+ numFcalls = new Long(functionDepth.longValue() - 1);
+ staticFcalls = staticFunctionDepth;
+ methodCallStr = Globals.nextRandomMethod();
+ }
- Globals.addFunctionIDToVector(methodCallStr.id, ID);
+ Globals.addFunctionIDToVector(methodCallStr.id, ID);
- try
- {
- methodCallStr.nextMethod.invoke(methodCallStr.instance,
- new Object []{summation, ID, numFcalls, staticFcalls});
- }
- catch (IllegalAccessException iax)
- {
- throw new TestFailure("Illegal Access Exception");
- }
-/*
- catch (InvocationTargetException itx)
- {
- System.out.println("itx test 2");
-
- throw itx;
- }
- */
+ try {
+ methodCallStr.nextMethod.invoke(methodCallStr.instance,
+ new Object[]{summation, ID, numFcalls, staticFcalls});
+ } catch (IllegalAccessException iax) {
+ throw new TestFailure("Illegal Access Exception");
+ }
}
}
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/test3.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/test3.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019, 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
@@ -20,102 +20,95 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
+
package jit.graph;
-import java.util.*;
-import java.lang.reflect.*;
-import nsk.share.TestFailure;
-
+import jdk.test.lib.Utils;
-class test3 extends test1
-{
+import java.lang.reflect.InvocationTargetException;
+import java.util.Random;
+import java.util.Vector;
- private final int[] MethodID = {Globals.MethodID_Array[3],Globals.MethodID_Array[4]};
- private static Random loopNumGen = new Random(Globals.RANDOM_SEED);
+class test3 extends test1 {
+
+ private final int[] MethodID = {Globals.MethodID_Array[3], Globals.MethodID_Array[4]};
+ private static Random loopNumGen = new Random(Utils.SEED);
private final int maxLoops = 10;
private int localNumLoops = loopNumGen.nextInt(maxLoops);
public void selfRecursion(Vector summation, Vector ID, Long functionDepth, Integer staticFunctionDepth)
- throws InvocationTargetException
- {
- Globals.appendSumToSumationVector(MethodID[1], summation);
+ throws InvocationTargetException {
+ Globals.appendSumToSummationVector(MethodID[1], summation);
- if (CGT.shouldFinish())
+ if (CGT.shouldFinish()) {
return;
+ }
- if (Globals.VERBOSE)
+ if (Globals.VERBOSE) {
System.out.println("test3.selfRecursion");
- if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0))
- {
- return;
- }
+ }
+
+ if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0)) {
+ return;
+ }
MethodData methodCallStr;
Long numFcalls;
Integer staticFcalls;
- if (staticFunctionDepth.intValue() > 0) //make a static call
- {
- numFcalls = functionDepth;
- staticFcalls = new Integer(staticFunctionDepth.intValue()-1);
- //methodCallStr = Globals.nextStaticMethod(Globals.getIndexFromID(MethodID[1]));
- methodCallStr = Globals.returnNextStaticMethod(MethodID[1]);
- }
- else if (localNumLoops > 0) //make a recursive call
- {
- numFcalls = new Long(functionDepth.longValue()-1);
- staticFcalls = staticFunctionDepth;
- Globals.addFunctionIDToVector(MethodID[1], ID);
- localNumLoops--;
- selfRecursion(summation, ID, numFcalls, staticFcalls);
- return;
- }
- else //make a random call
- {
- numFcalls = new Long(functionDepth.longValue() -1);
- staticFcalls = staticFunctionDepth;
- methodCallStr = Globals.nextRandomMethod();
+ // make a static call
+ if (staticFunctionDepth.intValue() > 0) {
+ numFcalls = functionDepth;
+ staticFcalls = new Integer(staticFunctionDepth.intValue() - 1);
+ methodCallStr = Globals.returnNextStaticMethod(MethodID[1]);
+ } else if (localNumLoops > 0) { // make a recursive call
+ numFcalls = new Long(functionDepth.longValue() - 1);
+ staticFcalls = staticFunctionDepth;
+ Globals.addFunctionIDToVector(MethodID[1], ID);
+ localNumLoops--;
+ selfRecursion(summation, ID, numFcalls, staticFcalls);
+ return;
+ } else { // make a random call
+ numFcalls = new Long(functionDepth.longValue() - 1);
+ staticFcalls = staticFunctionDepth;
+ methodCallStr = Globals.nextRandomMethod();
- localNumLoops = loopNumGen.nextInt(maxLoops); //get ready for the next call to this method
- }
+ // get ready for the next call to this method
+ localNumLoops = loopNumGen.nextInt(maxLoops);
+ }
Globals.addFunctionIDToVector(methodCallStr.id, ID);
Globals.callMethod(methodCallStr, summation, ID, numFcalls, staticFcalls);
}
public void callMe(Vector summation, Vector ID, Long functionDepth, Integer staticFunctionDepth)
- throws InvocationTargetException
- {
- Globals.appendSumToSumationVector(MethodID[0], summation);
+ throws InvocationTargetException {
+ Globals.appendSumToSummationVector(MethodID[0], summation);
- if (CGT.shouldFinish())
+ if (CGT.shouldFinish()) {
return;
+ }
- if (Globals.VERBOSE)
+ if (Globals.VERBOSE) {
System.out.println("test3.callMe");
+ }
- if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0))
- {
- return;
- }
+ if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0)) {
+ return;
+ }
MethodData methodCallStr;
Long numFcalls;
Integer staticFcalls;
- if (staticFunctionDepth.intValue() > 0)
- {
- numFcalls = functionDepth;
- staticFcalls = new Integer(staticFunctionDepth.intValue()-1);
- //methodCallStr = Globals.nextStaticMethod(Globals.getIndexFromID(MethodID[0]));
- methodCallStr = Globals.returnNextStaticMethod(MethodID[0]);
- }
- else
- {
- numFcalls = new Long(functionDepth.longValue() -1);
- staticFcalls = staticFunctionDepth;
- methodCallStr = Globals.nextRandomMethod();
- }
+ if (staticFunctionDepth.intValue() > 0) {
+ numFcalls = functionDepth;
+ staticFcalls = new Integer(staticFunctionDepth.intValue() - 1);
+ methodCallStr = Globals.returnNextStaticMethod(MethodID[0]);
+ } else {
+ numFcalls = new Long(functionDepth.longValue() - 1);
+ staticFcalls = staticFunctionDepth;
+ methodCallStr = Globals.nextRandomMethod();
+ }
Globals.addFunctionIDToVector(methodCallStr.id, ID);
Globals.callMethod(methodCallStr, summation, ID, numFcalls, staticFcalls);
-
}
}
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/test4.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/test4.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019, 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
@@ -20,114 +20,106 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
+
package jit.graph;
-import java.util.*;
-import java.lang.reflect.*;
-import nsk.share.TestFailure;
-
+import java.lang.reflect.InvocationTargetException;
+import java.util.Vector;
-class test4 extends test2
-{
- private final int[] MethodID = {Globals.MethodID_Array[1],Globals.MethodID_Array[5], Globals.MethodID_Array[6]};
+class test4 extends test2 {
+ private final int[] MethodID = {Globals.MethodID_Array[1], Globals.MethodID_Array[5], Globals.MethodID_Array[6]};
- //this method verifies that a child can make a call to its parent
+ // this method verifies that a child can make a call to its parent
public void CallCallMe(Vector summation, Vector ID, Long functionDepth, Integer staticFunctionDepth)
- throws InvocationTargetException
- {
- Globals.appendSumToSumationVector(MethodID[1], summation);
+ throws InvocationTargetException {
+ Globals.appendSumToSummationVector(MethodID[1], summation);
- if (CGT.shouldFinish())
+ if (CGT.shouldFinish()) {
return;
+ }
- if (Globals.VERBOSE)
+ if (Globals.VERBOSE) {
System.out.println("test4.CallCallMe");
+ }
- if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0))
- {
- return;
- }
+ if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0)) {
+ return;
+ }
MethodData methodCallStr;
Long numFcalls;
Integer staticFcalls;
- if (staticFunctionDepth.intValue() > 0)
- {
- numFcalls = functionDepth;
- staticFcalls = new Integer(staticFunctionDepth.intValue()-1);
- //methodCallStr = Globals.nextStaticMethod(Globals.getIndexFromID(MethodID[1]));
- methodCallStr = Globals.returnNextStaticMethod(MethodID[1]);
+ if (staticFunctionDepth.intValue() > 0) {
+ numFcalls = functionDepth;
+ staticFcalls = new Integer(staticFunctionDepth.intValue() - 1);
+ methodCallStr = Globals.returnNextStaticMethod(MethodID[1]);
- Globals.addFunctionIDToVector(methodCallStr.id, ID);
- }
- else
- {
- numFcalls = new Long(functionDepth.longValue()-1);
- staticFcalls = staticFunctionDepth;
- Globals.addFunctionIDToVector(MethodID[0], ID);
- super.callMe(summation, ID, numFcalls, staticFcalls);
- return;
- }
+ Globals.addFunctionIDToVector(methodCallStr.id, ID);
+ } else {
+ numFcalls = new Long(functionDepth.longValue() - 1);
+ staticFcalls = staticFunctionDepth;
+ Globals.addFunctionIDToVector(MethodID[0], ID);
+ super.callMe(summation, ID, numFcalls, staticFcalls);
+ return;
+ }
Globals.callMethod(methodCallStr, summation, ID, numFcalls, staticFcalls);
}
- //this method makes a Y fork in the method call structure
+ // this method makes a Y fork in the method call structure
public void callMe(Vector summation, Vector ID, Long functionDepth, Integer staticFunctionDepth)
- throws InvocationTargetException
- {
- Globals.appendSumToSumationVector(MethodID[2], summation);
+ throws InvocationTargetException {
+ Globals.appendSumToSummationVector(MethodID[2], summation);
- if (CGT.shouldFinish())
+ if (CGT.shouldFinish()) {
return;
-
- if (Globals.VERBOSE)
- System.out.println("test4.callMe");
+ }
- if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0))
- {
- return;
- }
+ if (Globals.VERBOSE) {
+ System.out.println("test4.callMe");
+ }
+
+ if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0)) {
+ return;
+ }
MethodData methodCallStr;
Long numFcalls;
Integer staticFcalls;
- if (staticFunctionDepth.intValue() > 0)
- {
- numFcalls = functionDepth;
- staticFcalls = new Integer(staticFunctionDepth.intValue()-1);
- //methodCallStr = Globals.nextStaticMethod(Globals.getIndexFromID(MethodID[2]));
- methodCallStr = Globals.returnNextStaticMethod(MethodID[2]);
+ if (staticFunctionDepth.intValue() > 0) {
+ numFcalls = functionDepth;
+ staticFcalls = new Integer(staticFunctionDepth.intValue() - 1);
+ methodCallStr = Globals.returnNextStaticMethod(MethodID[2]);
+ } else {
+ long temp = functionDepth.longValue() - 2;
+ numFcalls = new Long(temp / 2);
+ staticFcalls = staticFunctionDepth;
+ if (Globals.VERBOSE) {
+ System.out.println(" test4.callMe - Starting Branch 1");
}
- else
- {
- long temp = functionDepth.longValue()-2;
- numFcalls = new Long(temp/2);
- staticFcalls = staticFunctionDepth;
+ methodCallStr = Globals.nextRandomMethod();
+ Globals.addFunctionIDToVector(methodCallStr.id, ID);
+ Globals.callMethod(methodCallStr, summation, ID, numFcalls, staticFcalls);
- if (Globals.VERBOSE)
- System.out.println(" test4.callMe - Starting Branch 1");
- methodCallStr = Globals.nextRandomMethod();
- Globals.addFunctionIDToVector(methodCallStr.id, ID);
- Globals.callMethod(methodCallStr, summation, ID, numFcalls, staticFcalls);
-
- if (CGT.shouldFinish())
- return;
+ if (CGT.shouldFinish()) {
+ return;
+ }
- temp -= temp/2;
- if (temp <0)
- {
- if (Globals.VERBOSE)
- System.out.println(" test4.callMe - Skipping Branch 2");
- return;
- }
- if (Globals.VERBOSE)
- System.out.println(" test4.callMe - Starting Branch 2");
- numFcalls = new Long(temp);
- methodCallStr = Globals.nextRandomMethod();
+ temp -= temp / 2;
+ if (temp < 0) {
+ if (Globals.VERBOSE) {
+ System.out.println(" test4.callMe - Skipping Branch 2");
+ }
+ return;
}
+ if (Globals.VERBOSE) {
+ System.out.println(" test4.callMe - Starting Branch 2");
+ }
+ numFcalls = new Long(temp);
+ methodCallStr = Globals.nextRandomMethod();
+ }
Globals.addFunctionIDToVector(methodCallStr.id, ID);
Globals.callMethod(methodCallStr, summation, ID, numFcalls, staticFcalls);
}
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/test5.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/test5.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019, 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
@@ -20,320 +20,305 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
+
package jit.graph;
-import java.util.*;
-import java.lang.reflect.*;
+import jdk.test.lib.Utils;
import nsk.share.TestFailure;
-class test5
-{
- private final int[] MethodID = {Globals.MethodID_Array[7],
- Globals.MethodID_Array[8],
- Globals.MethodID_Array[9],
- Globals.MethodID_Array[10]};
- private static Random loopNumGen = new Random(Globals.RANDOM_SEED);
+import java.lang.reflect.InvocationTargetException;
+import java.util.Random;
+import java.util.Vector;
- private final int maxLoops = 12;
+class test5 {
+ private final int[] MethodID = {Globals.MethodID_Array[7],
+ Globals.MethodID_Array[8],
+ Globals.MethodID_Array[9],
+ Globals.MethodID_Array[10]};
+ private static Random loopNumGen = new Random(Utils.SEED);
- private long factorial(int n)
- {
- if(n>1)
- return(n*factorial(n-1));
- else
- return (1);
- }
+ private final int maxLoops = 12;
+
+ private long factorial(int n) {
+ if (n > 1) {
+ return (n * factorial(n - 1));
+ } else {
+ return (1);
+ }
+ }
- private long fibonacci(long num1, long num2, int n)
- {
- if (n <= 0)
- return(num2);
- else
- return (fibonacci(num2, num1+num2, n-1));
- }
+ private long fibonacci(long num1, long num2, int n) {
+ if (n <= 0) {
+ return (num2);
+ } else {
+ return (fibonacci(num2, num1 + num2, n - 1));
+ }
+ }
- private long combination(int n, int r)
- {
- if ((r==0) || (n==r))
- return 1;
- else
- return(combination(n-1, r) +combination(n - 1, r - 1));
- }
+ private long combination(int n, int r) {
+ if ((r == 0) || (n == r)) {
+ return 1;
+ } else {
+ return (combination(n - 1, r) + combination(n - 1, r - 1));
+ }
+ }
- private int[] pascalsTriangle(int[] source, int n)
- {
- if (n>0)
- {
- int sourceLength = source.length;
- int [] temp = new int[sourceLength +1];
- temp[0] = 1;
- temp[sourceLength] = 1;
-
- int j=1;
- for(int i = 0; i<(sourceLength - 1); i++)
- temp[j++] = source[i] + source[i+1];
+ private int[] pascalsTriangle(int[] source, int n) {
+ if (n > 0) {
+ int sourceLength = source.length;
+ int[] temp = new int[sourceLength + 1];
+ temp[0] = 1;
+ temp[sourceLength] = 1;
- return(pascalsTriangle(temp, n-1));
- }
- else
- return source;
- }
+ int j = 1;
+ for (int i = 0; i < (sourceLength - 1); i++) {
+ temp[j++] = source[i] + source[i + 1];
+ }
- private boolean verifyArray(int[] ArrayToBeVerified, int[] MasterArray)
- {
- if (ArrayToBeVerified.length != MasterArray.length)
- return false;
+ return pascalsTriangle(temp, n - 1);
+ } else {
+ return source;
+ }
+ }
- for (int i =0; i<MasterArray.length; i++)
- if (MasterArray[i] != ArrayToBeVerified[i])
- return false;
- return true;
- }
+ private boolean verifyArray(int[] ArrayToBeVerified, int[] MasterArray) {
+ if (ArrayToBeVerified.length != MasterArray.length) {
+ return false;
+ }
- private int[] verifyPascal(int n)
- {
- int [] pascalOut = new int[n+1];
- int [][] dataArray = new int[n+1][n+1];
+ for (int i = 0; i < MasterArray.length; i++) {
+ if (MasterArray[i] != ArrayToBeVerified[i]) {
+ return false;
+ }
+ }
+ return true;
+ }
- for (int i = 0; i<=n; i++)
- {
- for (int j = 0; j<=n; j++)
- {
- if (j==0)
- dataArray[i][0] = 1;
- else if (j==i)
- dataArray[i][i] = 1;
- else if (j<i)
- dataArray[i][j] = dataArray[i-1][j-1] + dataArray[i-1][j];
- }
- }
+ private int[] verifyPascal(int n) {
+ int[] pascalOut = new int[n + 1];
+ int[][] dataArray = new int[n + 1][n + 1];
- int j = n; //could be a little more efficient
- for (int i = 0; i<=n; i++) //but not that important
- pascalOut[i] = dataArray[j][i];
- return pascalOut;
- }
+ for (int i = 0; i <= n; i++) {
+ for (int j = 0; j <= n; j++) {
+ if (j == 0) {
+ dataArray[i][0] = 1;
+ } else if (j == i) {
+ dataArray[i][i] = 1;
+ } else if (j < i) {
+ dataArray[i][j] = dataArray[i - 1][j - 1] + dataArray[i - 1][j];
+ }
+ }
+ }
- private long verifyFact(int n)
- {
- long answer = 1;
- for (int i=2; i<=n; i++)
- answer*=i;
- return answer;
- }
-
- private long verifyFibo(int n)
- {
- long num1=1;
- long num2=1;
+ // could be a little more efficient, but not that important
+ int j = n;
+ for (int i = 0; i <= n; i++) {
+ pascalOut[i] = dataArray[j][i];
+ }
+ return pascalOut;
+ }
- for (int i = 0; i< n; i++)
- {
- long temp = num1+num2;
- num1 = num2;
- num2 = temp;
- }
-
- return num2;
- }
+ private long verifyFact(int n) {
+ long answer = 1;
+ for (int i = 2; i <= n; i++) {
+ answer *= i;
+ }
+ return answer;
+ }
- private long verifyComb(int n, int r)
- {
- return(verifyFact(n)/(verifyFact(n-r)*verifyFact(r)));
- }
+ private long verifyFibo(int n) {
+ long num1 = 1;
+ long num2 = 1;
- public void factTest(Vector summation, Vector ID, Long functionDepth, Integer staticFunctionDepth)
- throws InvocationTargetException
- {
- Globals.appendSumToSumationVector(MethodID[0], summation);
+ for (int i = 0; i < n; i++) {
+ long temp = num1 + num2;
+ num1 = num2;
+ num2 = temp;
+ }
- if (CGT.shouldFinish())
- return;
+ return num2;
+ }
- if (Globals.VERBOSE)
- System.out.println("test5.factTest");
+ private long verifyComb(int n, int r) {
+ return (verifyFact(n) / (verifyFact(n - r) * verifyFact(r)));
+ }
- if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0))
- {
- return;
- }
- MethodData methodCallStr;
- Long numFcalls;
- Integer staticFcalls;
+ public void factTest(Vector summation, Vector ID, Long functionDepth, Integer staticFunctionDepth)
+ throws InvocationTargetException {
+ Globals.appendSumToSummationVector(MethodID[0], summation);
- if (staticFunctionDepth.intValue() > 0)
- {
- numFcalls = functionDepth;
- staticFcalls = new Integer(staticFunctionDepth.intValue()-1);
- methodCallStr = Globals.returnNextStaticMethod(MethodID[0]);
- //methodCallStr = Globals.nextStaticMethod(Globals.getIndexFromID(MethodID[0]));
- }
- else
- {
- numFcalls = new Long(functionDepth.longValue() -1);
- staticFcalls = staticFunctionDepth;
- methodCallStr = Globals.nextRandomMethod();
- }
+ if (CGT.shouldFinish()) {
+ return;
+ }
+
+ if (Globals.VERBOSE) {
+ System.out.println("test5.factTest");
+ }
+
+ if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0)) {
+ return;
+ }
+ MethodData methodCallStr;
+ Long numFcalls;
+ Integer staticFcalls;
- int localNumLoops = loopNumGen.nextInt(maxLoops);
- long facFunctionValue = factorial(localNumLoops);
- long facVerValue = verifyFact(localNumLoops);
- if (facFunctionValue != facVerValue)
- {
- System.out.println("Factorial Computed Incorrectly");
- System.out.println("Specific Factorial Requested "+localNumLoops +"!");
- throw new TestFailure("Expected: " + facVerValue + " Actual "+ facFunctionValue);
- }
+ if (staticFunctionDepth.intValue() > 0) {
+ numFcalls = functionDepth;
+ staticFcalls = new Integer(staticFunctionDepth.intValue() - 1);
+ methodCallStr = Globals.returnNextStaticMethod(MethodID[0]);
+ } else {
+ numFcalls = new Long(functionDepth.longValue() - 1);
+ staticFcalls = staticFunctionDepth;
+ methodCallStr = Globals.nextRandomMethod();
+ }
- Globals.addFunctionIDToVector(methodCallStr.id, ID);
- Globals.callMethod(methodCallStr,summation, ID, numFcalls, staticFcalls);
- }
+ int localNumLoops = loopNumGen.nextInt(maxLoops);
+ long facFunctionValue = factorial(localNumLoops);
+ long facVerValue = verifyFact(localNumLoops);
+ if (facFunctionValue != facVerValue) {
+ System.out.println("Factorial Computed Incorrectly");
+ System.out.println("Specific Factorial Requested " + localNumLoops + "!");
+ throw new TestFailure("Expected: " + facVerValue + " Actual " + facFunctionValue);
+ }
- public void fiboTest(Vector summation, Vector ID, Long functionDepth, Integer staticFunctionDepth)
- throws InvocationTargetException
- {
- Globals.appendSumToSumationVector(MethodID[1], summation);
+ Globals.addFunctionIDToVector(methodCallStr.id, ID);
+ Globals.callMethod(methodCallStr, summation, ID, numFcalls, staticFcalls);
+ }
- if (CGT.shouldFinish())
- return;
+ public void fiboTest(Vector summation, Vector ID, Long functionDepth, Integer staticFunctionDepth)
+ throws InvocationTargetException {
+ Globals.appendSumToSummationVector(MethodID[1], summation);
- if (Globals.VERBOSE)
- System.out.println("test5.fiboTest");
+ if (CGT.shouldFinish()) {
+ return;
+ }
- if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0))
- {
- return;
- }
- MethodData methodCallStr;
- Long numFcalls;
- Integer staticFcalls;
- if (staticFunctionDepth.intValue() > 0)
- {
- numFcalls = functionDepth;
- staticFcalls = new Integer(staticFunctionDepth.intValue()-1);
- methodCallStr = Globals.returnNextStaticMethod(MethodID[1]);
- }
- else
- {
- numFcalls = new Long(functionDepth.longValue() -1);
- staticFcalls = staticFunctionDepth;
- methodCallStr = Globals.nextRandomMethod();
- }
- int localNumLoops = loopNumGen.nextInt(maxLoops*3);
- long fiboFunctionValue = fibonacci(1,1,localNumLoops);
- long fiboVerValue = verifyFibo(localNumLoops);
- if (fiboFunctionValue != fiboVerValue)
- {
- System.out.println("Fibonacci Series Computed Incorrectly");
- System.out.println("Specific Digit Requested "+localNumLoops);
- throw new TestFailure("Expected: " + fiboVerValue + " Actual "+ fiboFunctionValue);
- }
+ if (Globals.VERBOSE) {
+ System.out.println("test5.fiboTest");
+ }
- Globals.addFunctionIDToVector(methodCallStr.id, ID);
- Globals.callMethod(methodCallStr,summation, ID, numFcalls, staticFcalls);
- }
+ if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0)) {
+ return;
+ }
+ MethodData methodCallStr;
+ Long numFcalls;
+ Integer staticFcalls;
+ if (staticFunctionDepth.intValue() > 0) {
+ numFcalls = functionDepth;
+ staticFcalls = new Integer(staticFunctionDepth.intValue() - 1);
+ methodCallStr = Globals.returnNextStaticMethod(MethodID[1]);
+ } else {
+ numFcalls = new Long(functionDepth.longValue() - 1);
+ staticFcalls = staticFunctionDepth;
+ methodCallStr = Globals.nextRandomMethod();
+ }
+ int localNumLoops = loopNumGen.nextInt(maxLoops * 3);
+ long fiboFunctionValue = fibonacci(1, 1, localNumLoops);
+ long fiboVerValue = verifyFibo(localNumLoops);
+ if (fiboFunctionValue != fiboVerValue) {
+ System.out.println("Fibonacci Series Computed Incorrectly");
+ System.out.println("Specific Digit Requested " + localNumLoops);
+ throw new TestFailure("Expected: " + fiboVerValue + " Actual " + fiboFunctionValue);
+ }
+
+ Globals.addFunctionIDToVector(methodCallStr.id, ID);
+ Globals.callMethod(methodCallStr, summation, ID, numFcalls, staticFcalls);
+ }
- public void combTest(Vector summation, Vector ID, Long functionDepth, Integer staticFunctionDepth)
- throws InvocationTargetException
- {
- Globals.appendSumToSumationVector(MethodID[2], summation);
-
- if (CGT.shouldFinish())
- return;
-
- if (Globals.VERBOSE)
- System.out.println("test5.combTest");
+ public void combTest(Vector summation, Vector ID, Long functionDepth, Integer staticFunctionDepth)
+ throws InvocationTargetException {
+ Globals.appendSumToSummationVector(MethodID[2], summation);
- if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0))
- {
- return;
- }
- MethodData methodCallStr;
- Long numFcalls;
- Integer staticFcalls;
- if (staticFunctionDepth.intValue() > 0)
- {
- numFcalls = functionDepth;
- staticFcalls = new Integer(staticFunctionDepth.intValue()-1);
+ if (CGT.shouldFinish()) {
+ return;
+ }
+
+ if (Globals.VERBOSE) {
+ System.out.println("test5.combTest");
+ }
- methodCallStr = Globals.returnNextStaticMethod(MethodID[2]);
- //methodCallStr = Globals.nextStaticMethod(Globals.getIndexFromID(MethodID[2]));
- }
- else
- {
- numFcalls = new Long(functionDepth.longValue() -1);
- staticFcalls = staticFunctionDepth;
- methodCallStr = Globals.nextRandomMethod();
- }
- int n = loopNumGen.nextInt(maxLoops);
- int k = (n>0)?loopNumGen.nextInt(n):0;
- long combFunctionValue = combination(n, k);
- long combVerValue = verifyComb(n, k);
- if (combFunctionValue != combVerValue)
- {
- System.out.println("Combination Computed Incorrectly");
- System.out.println("N = " + n +"K = " + k);
- throw new TestFailure("Expected: " + combVerValue + " Actual "+ combFunctionValue);
- }
+ if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0)) {
+ return;
+ }
+ MethodData methodCallStr;
+ Long numFcalls;
+ Integer staticFcalls;
+ if (staticFunctionDepth.intValue() > 0) {
+ numFcalls = functionDepth;
+ staticFcalls = new Integer(staticFunctionDepth.intValue() - 1);
+ methodCallStr = Globals.returnNextStaticMethod(MethodID[2]);
+ } else {
+ numFcalls = new Long(functionDepth.longValue() - 1);
+ staticFcalls = staticFunctionDepth;
+ methodCallStr = Globals.nextRandomMethod();
+ }
+ int n = loopNumGen.nextInt(maxLoops);
+ int k = (n > 0) ? loopNumGen.nextInt(n) : 0;
+ long combFunctionValue = combination(n, k);
+ long combVerValue = verifyComb(n, k);
+ if (combFunctionValue != combVerValue) {
+ System.out.println("Combination Computed Incorrectly");
+ System.out.println("N = " + n + "K = " + k);
+ throw new TestFailure("Expected: " + combVerValue + " Actual " + combFunctionValue);
+ }
- Globals.addFunctionIDToVector(methodCallStr.id, ID);
- Globals.callMethod(methodCallStr,summation, ID, numFcalls, staticFcalls);
- }
+ Globals.addFunctionIDToVector(methodCallStr.id, ID);
+ Globals.callMethod(methodCallStr, summation, ID, numFcalls, staticFcalls);
+ }
- public void pascalTest(Vector summation, Vector ID, Long functionDepth, Integer staticFunctionDepth)
- throws InvocationTargetException
- {
- Globals.appendSumToSumationVector(MethodID[3], summation);
+ public void pascalTest(Vector summation, Vector ID, Long functionDepth, Integer staticFunctionDepth)
+ throws InvocationTargetException {
+ Globals.appendSumToSummationVector(MethodID[3], summation);
- if (CGT.shouldFinish())
- return;
+ if (CGT.shouldFinish()) {
+ return;
+ }
-int [] x = new int[1 << 30];
-x[1 << 24] = 1;
+ if (Globals.VERBOSE) {
+ System.out.println("test5.pascalTest");
+ }
- if (Globals.VERBOSE)
- System.out.println("test5.pascalTest");
+ int[] x = new int[1 << 30];
+ x[1 << 24] = 1;
- if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0))
- {
- return;
- }
- MethodData methodCallStr;
- Long numFcalls;
- Integer staticFcalls;
- if (staticFunctionDepth.intValue() > 0)
- {
- numFcalls = functionDepth;
- staticFcalls = new Integer(staticFunctionDepth.intValue()-1);
- methodCallStr = Globals.returnNextStaticMethod(MethodID[3]);
- //methodCallStr = Globals.nextStaticMethod(Globals.getIndexFromID(MethodID[3]));
- }
- else
- {
- numFcalls = new Long(functionDepth.longValue() -1);
- staticFcalls = staticFunctionDepth;
- methodCallStr = Globals.nextRandomMethod();
- }
- int num = loopNumGen.nextInt(maxLoops);
+ if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0)) {
+ return;
+ }
+ MethodData methodCallStr;
+ Long numFcalls;
+ Integer staticFcalls;
+ if (staticFunctionDepth.intValue() > 0) {
+ numFcalls = functionDepth;
+ staticFcalls = new Integer(staticFunctionDepth.intValue() - 1);
+ methodCallStr = Globals.returnNextStaticMethod(MethodID[3]);
+ } else {
+ numFcalls = new Long(functionDepth.longValue() - 1);
+ staticFcalls = staticFunctionDepth;
+ methodCallStr = Globals.nextRandomMethod();
+ }
+ int num = loopNumGen.nextInt(maxLoops);
- int[] pascalFunctionValue = pascalsTriangle(new int[] {1}, num);
- int[] pascalVerValue = verifyPascal(num);
- if (!verifyArray(pascalFunctionValue, pascalVerValue))
- {
- String temp = new String("Expected: ");
- for (int i=0; i<pascalVerValue.length; i++)
- temp += pascalVerValue[i] +", ";
- temp+= " Actual ";
- for (int i=0; i<pascalFunctionValue.length; i++)
- temp += pascalFunctionValue[i] +", ";
- System.out.println("Pascal Tringle Row Computed Incorrectly");
- System.out.println("Row Number " + num);
- throw new TestFailure(temp);
- }
+ int[] pascalFunctionValue = pascalsTriangle(new int[]{1}, num);
+ int[] pascalVerValue = verifyPascal(num);
+ if (!verifyArray(pascalFunctionValue, pascalVerValue)) {
+ StringBuilder temp = new StringBuilder("Expected: ");
+ for (int aPascalVerValue : pascalVerValue) {
+ temp.append(aPascalVerValue)
+ .append(", ");
+ }
+ temp.append(" Actual ");
+ for (int aPascalFunctionValue : pascalFunctionValue) {
+ temp.append(aPascalFunctionValue)
+ .append(", ");
+ }
+ System.out.println("Pascal Tringle Row Computed Incorrectly");
+ System.out.println("Row Number " + num);
+ throw new TestFailure(temp.toString());
+ }
- Globals.addFunctionIDToVector(methodCallStr.id, ID);
- Globals.callMethod(methodCallStr,summation, ID, numFcalls, staticFcalls);
- }
+ Globals.addFunctionIDToVector(methodCallStr.id, ID);
+ Globals.callMethod(methodCallStr, summation, ID, numFcalls, staticFcalls);
+ }
}
--- a/test/hotspot/jtreg/vmTestbase/jit/graph/test6.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/hotspot/jtreg/vmTestbase/jit/graph/test6.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019, 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
@@ -20,61 +20,58 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
+
package jit.graph;
-import java.util.*;
-import java.lang.reflect.*;
+import jdk.test.lib.Utils;
import nsk.share.TestFailure;
-public class test6
-{
+import java.lang.reflect.InvocationTargetException;
+import java.util.Random;
+import java.util.Vector;
+
+public class test6 {
private static final int[] MethodID = {Globals.MethodID_Array[11]};
- private static Random localNumGen = new Random(Globals.RANDOM_SEED);
+ private static Random localNumGen = new Random(Utils.SEED);
private static final int maxEntries = 25;
- //flattens the binary tree into an array
- private void getSortedArray(Node root, int [] dataArray, int[] index)
- {
- if ((root != null) && (root!=RBTree.treeNull))
- {
- getSortedArray(root.getNode(Node.Left_son), dataArray, index);
- dataArray[index[0]++] = root.getKey();
- getSortedArray(root.getNode(Node.Right_son), dataArray, index);
- }
+ // flattens the binary tree into an array
+ private void getSortedArray(Node root, int[] dataArray, int[] index) {
+ if ((root != null) && (root != RBTree.treeNull)) {
+ getSortedArray(root.getNode(Node.Left_son), dataArray, index);
+ dataArray[index[0]++] = root.getKey();
+ getSortedArray(root.getNode(Node.Right_son), dataArray, index);
+ }
}
public synchronized void rbTest(Vector summation, Vector ID, Long functionDepth, Integer staticFunctionDepth)
- throws InvocationTargetException
- {
- Globals.appendSumToSumationVector(MethodID[0], summation);
-
- if (CGT.shouldFinish())
- return;
+ throws InvocationTargetException {
+ Globals.appendSumToSummationVector(MethodID[0], summation);
- if (Globals.VERBOSE)
+ if (CGT.shouldFinish()) {
+ return;
+ }
+ if (Globals.VERBOSE) {
System.out.println("test6.rbTest");
+ }
- if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0))
- {
- return;
- }
+ if ((functionDepth.longValue() <= 0) && (staticFunctionDepth.intValue() <= 0)) {
+ return;
+ }
MethodData methodCallStr;
Long numFcalls;
Integer staticFcalls;
- if (staticFunctionDepth.intValue() > 0)
- {
- numFcalls = functionDepth;
- staticFcalls = new Integer(staticFunctionDepth.intValue()-1);
- methodCallStr = Globals.returnNextStaticMethod(MethodID[0]);
- }
- else
- {
- numFcalls = new Long(functionDepth.longValue() -1);
- staticFcalls = staticFunctionDepth;
- methodCallStr = Globals.nextRandomMethod();
- }
+ if (staticFunctionDepth.intValue() > 0) {
+ numFcalls = functionDepth;
+ staticFcalls = new Integer(staticFunctionDepth.intValue() - 1);
+ methodCallStr = Globals.returnNextStaticMethod(MethodID[0]);
+ } else {
+ numFcalls = new Long(functionDepth.longValue() - 1);
+ staticFcalls = staticFunctionDepth;
+ methodCallStr = Globals.nextRandomMethod();
+ }
RBTree myTree = new RBTree();
int numElements = 1 + localNumGen.nextInt(maxEntries);
@@ -82,81 +79,64 @@
boolean insertArray[] = new boolean[numElements];
Vector temp = new Vector(numElements);
- for(int i=0; i<numElements; i++)
- { //code guarantees no duplicates
- int nextKey = localNumGen.nextInt(16385);
- while (temp.indexOf(new Integer(nextKey)) != -1)
- nextKey = localNumGen.nextInt(16385);
+ // code guarantees no duplicates
+ for (int i = 0; i < numElements; i++) {
+ int nextKey = localNumGen.nextInt(16385);
+ while (temp.indexOf(new Integer(nextKey)) != -1) {
+ nextKey = localNumGen.nextInt(16385);
+ }
- temp.addElement(new Integer(nextKey));
- dataArray[i] = nextKey;
+ temp.addElement(new Integer(nextKey));
+ dataArray[i] = nextKey;
- insertArray[i] = false;
- }
+ insertArray[i] = false;
+ }
temp = null;
int numLoops = 10 + localNumGen.nextInt(1024);
- for (int i=0; i<numLoops; i++)
- {
- int nextIndex = localNumGen.nextInt(numElements);
- if (!insertArray[nextIndex])
- {
- myTree.RBInsert(dataArray[nextIndex]);
- insertArray[nextIndex] = true;
- }
- else
- {
- myTree.RBDelete(dataArray[nextIndex]);
- insertArray[nextIndex] = false;
- }
+ for (int i = 0; i < numLoops; i++) {
+ int nextIndex = localNumGen.nextInt(numElements);
+ if (!insertArray[nextIndex]) {
+ myTree.RBInsert(dataArray[nextIndex]);
+ insertArray[nextIndex] = true;
+ } else {
+ myTree.RBDelete(dataArray[nextIndex]);
+ insertArray[nextIndex] = false;
}
+ }
int numValid = 0;
- for (int i = 0; i<numElements; i++)
- {
- Node searchNode = myTree.Search(dataArray[i]);
- if (insertArray[i] && (searchNode == RBTree.treeNull))
- {
- System.out.println("Valid Node Not Found in Binary Tree");
- System.out.println("Node " + dataArray[i]);
- System.exit(1);
- }
- else if ((!insertArray[i]) && (searchNode != RBTree.treeNull))
- {
- System.out.println("Deleted Node Found in Binary Tree");
- System.out.println("Node " + dataArray[i]);
- System.exit(1);
- }
- else if (insertArray[i])
- numValid++;
- insertArray[i] = true; //so that verification is only done once
+ for (int i = 0; i < numElements; i++) {
+ Node searchNode = myTree.Search(dataArray[i]);
+ if (insertArray[i] && (searchNode == RBTree.treeNull)) {
+ throw new TestFailure("Valid Node Not Found in Binary Tree. Node " + dataArray[i]);
+ } else if ((!insertArray[i]) && (searchNode != RBTree.treeNull)) {
+ throw new TestFailure("Deleted Node Found in Binary Tree. Node " + dataArray[i]);
+ } else if (insertArray[i]) {
+ numValid++;
}
+ // so that verification is only done once
+ insertArray[i] = true;
+ }
- int [] sortedArray = new int[numValid];
- getSortedArray(myTree.getRoot(), sortedArray, new int [] {0});
+ int[] sortedArray = new int[numValid];
+ getSortedArray(myTree.getRoot(), sortedArray, new int[]{0});
- for (int i=1; i<numValid; i++)
- if (sortedArray[i] <= sortedArray[i-1])
- {
- String outStr = new String("Actual ");
- for (int j=0; j<sortedArray.length; j++)
- outStr += sortedArray[j] +", ";
- System.out.println("Binary Tree Property Not Held");
- System.out.println("Root " + myTree.getRoot().getKey());
- System.out.println(outStr);
- System.exit(1);
+ for (int i = 1; i < numValid; i++) {
+ if (sortedArray[i] <= sortedArray[i - 1]) {
+ StringBuilder outStr = new StringBuilder("Actual ");
+ for (int aSortedArray : sortedArray) {
+ outStr.append(aSortedArray)
+ .append(", ");
}
-
- //Should make more memory available for future instances
- myTree = null;
- sortedArray = null;
- dataArray = null;
- insertArray = null;
-// System.gc();
+ System.out.println("Binary Tree Property Not Held");
+ System.out.println("Root " + myTree.getRoot()
+ .getKey());
+ throw new TestFailure(outStr.toString());
+ }
+ }
Globals.addFunctionIDToVector(methodCallStr.id, ID);
- Globals.callMethod(methodCallStr,summation, ID, numFcalls, staticFcalls);
-
-
+ Globals.callMethod(methodCallStr, summation, ID, numFcalls, staticFcalls);
}
}
--- a/test/jdk/ProblemList.txt Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/ProblemList.txt Tue Oct 15 14:19:55 2019 +0530
@@ -884,6 +884,7 @@
jdk/jfr/event/io/EvilInstrument.java 8221331 generic-all
jdk/jfr/event/runtime/TestNetworkUtilizationEvent.java 8228990,8229370 generic-all
jdk/jfr/event/compiler/TestCodeSweeper.java 8225209 generic-all
+jdk/jfr/event/oldobject/TestLargeRootSet.java 8205651 generic-all
############################################################################
--- a/test/jdk/com/sun/jdi/RedefineNestmateAttr/TestNestmateAttr.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/com/sun/jdi/RedefineNestmateAttr/TestNestmateAttr.java Tue Oct 15 14:19:55 2019 +0530
@@ -151,9 +151,13 @@
reference.
*/
class Target {
+
+ static Class<?> topLevelHostA; // Prevent unloading of the class
+
// We have to load all of the variants of the classes that we will
// attempt to redefine. This requires some in-memory compilation
// and use of additional classloaders.
+
public static void main(String[] args) throws Throwable {
String origin = args[0];
System.out.println("Target: Testing original Host class from " + origin);
@@ -178,7 +182,7 @@
String hostA = "public class " + name + " {}";
byte[] bytes = InMemoryJavaCompiler.compile(name, hostA);
// And we have to load this into a new classloader
- Class<?> topLevelHostA = ByteCodeLoader.load(name, bytes);
+ topLevelHostA = ByteCodeLoader.load(name, bytes);
// The loaded class has not been linked (as per ClassLoader.resolveClass)
// and so will be filtered out by VirtualMachine.allClasses(). There are
// a number of ways to force linking - this is the simplest.
--- a/test/jdk/java/io/ObjectInputStream/ResolveProxyClass.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/ObjectInputStream/ResolveProxyClass.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, 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
@@ -36,7 +36,6 @@
* @run main ResolveProxyClass
*/
-import java.lang.reflect.*;
import java.io.*;
public class ResolveProxyClass {
@@ -52,7 +51,7 @@
super();
}
- protected Class resolveProxyClass(String[] interfaces)
+ protected Class<?> resolveProxyClass(String[] interfaces)
throws IOException, ClassNotFoundException
{
return super.resolveProxyClass(interfaces);
@@ -82,7 +81,7 @@
ClassLoader expectedLoader = ResolveProxyClass.class.getClassLoader();
TestObjectInputStream in = new TestObjectInputStream();
- Class proxyClass = in.resolveProxyClass(
+ Class<?> proxyClass = in.resolveProxyClass(
new String[] { Runnable.class.getName() });
ClassLoader proxyLoader = proxyClass.getClassLoader();
System.err.println("proxy class \"" + proxyClass +
--- a/test/jdk/java/io/ObjectInputStream/TestObjectStreamClass.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/ObjectInputStream/TestObjectStreamClass.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2019, 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
@@ -58,6 +58,8 @@
}
static class TestClass implements Serializable {
+ private static final long serialVersionUID = 1L;
+
String str = "hello world";
}
--- a/test/jdk/java/io/Serializable/ClassCastExceptionDetail/Read.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/ClassCastExceptionDetail/Read.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, 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
@@ -36,7 +36,9 @@
private Float bar;
}
-class Gub extends Foo {}
+class Gub extends Foo {
+ private static final long serialVersionUID = 1L;
+}
public class Read {
public static void main(String[] args) throws Exception {
--- a/test/jdk/java/io/Serializable/ClassCastExceptionDetail/Write.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/ClassCastExceptionDetail/Write.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, 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
@@ -41,10 +41,12 @@
class Foo implements Serializable {
private static final long serialVersionUID = 0L;
- private Integer bar = new Integer(0);
+ private Integer bar = 0;
}
-class Gub extends Foo {}
+class Gub extends Foo {
+ private static final long serialVersionUID = 1L;
+}
public class Write {
public static void main(String[] args) throws Exception {
--- a/test/jdk/java/io/Serializable/GetField/Read2.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/GetField/Read2.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, 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
@@ -41,6 +41,7 @@
float f;
double d;
String str;
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
Object extra;
private void readObject(ObjectInputStream in)
--- a/test/jdk/java/io/Serializable/InvalidClassException/noargctor/DefaultPackage.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/InvalidClassException/noargctor/DefaultPackage.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, 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
@@ -56,24 +56,33 @@
class DefaultPublicSerializable
extends DefaultPackagePublicConstructor implements Serializable
{
+ private static final long serialVersionUID = 1L;
+
int field1 = 5;
};
class DefaultProtectedSerializable
extends DefaultPackageProtectedConstructor implements Serializable
{
+ private static final long serialVersionUID = 1L;
+
int field1 = 5;
};
class DefaultAccessSerializable
extends DefaultPackageDefaultAccessConstructor implements Serializable
{
+ private static final long serialVersionUID = 1L;
+
int field1 = 5;
};
+@SuppressWarnings("serial") /* Incorrect declarations are being tested */
class DefaultPrivateSerializable
extends DefaultPackagePrivateConstructor implements Serializable
{
+ private static final long serialVersionUID = 1L;
+
int field1 = 5;
DefaultPrivateSerializable() {
@@ -82,6 +91,8 @@
};
class ExternalizablePublicConstructor implements Externalizable {
+ private static final long serialVersionUID = 1L;
+
public ExternalizablePublicConstructor() {
}
public void writeExternal(ObjectOutput out) throws IOException {
@@ -92,7 +103,10 @@
}
};
+@SuppressWarnings("serial") /* Incorrect declarations are being tested */
class ExternalizableProtectedConstructor implements Externalizable {
+ private static final long serialVersionUID = 1L;
+
protected ExternalizableProtectedConstructor() {
}
public void writeExternal(ObjectOutput out) throws IOException {
@@ -103,7 +117,10 @@
}
};
+@SuppressWarnings("serial") /* Incorrect declarations are being tested */
class ExternalizableAccessConstructor implements Externalizable {
+ private static final long serialVersionUID = 1L;
+
ExternalizableAccessConstructor() {
}
public void writeExternal(ObjectOutput out) throws IOException {
@@ -114,7 +131,10 @@
}
};
+@SuppressWarnings("serial") /* Incorrect declarations are being tested */
class ExternalizablePrivateConstructor implements Externalizable {
+ private static final long serialVersionUID = 1L;
+
private ExternalizablePrivateConstructor() {
}
public ExternalizablePrivateConstructor(int i) {
--- a/test/jdk/java/io/Serializable/InvalidClassException/noargctor/Serialize/SubclassAcrossPackage.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/InvalidClassException/noargctor/Serialize/SubclassAcrossPackage.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, 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
@@ -34,18 +34,24 @@
class PublicSerializable
extends NonSerializable.PublicCtor implements Serializable
{
+ private static final long serialVersionUID = 1L;
+
int field1 = 5;
};
class ProtectedSerializable
extends NonSerializable.ProtectedCtor implements Serializable
{
+ private static final long serialVersionUID = 1L;
+
int field1 = 5;
};
class DifferentPackageSerializable
extends NonSerializable.PackageCtor implements Serializable
{
+ private static final long serialVersionUID = 1L;
+
int field1 = 5;
DifferentPackageSerializable() {
super(1);
@@ -55,11 +61,15 @@
class SamePackageSerializable
extends Serialize.SamePackageCtor implements Serializable
{
+ private static final long serialVersionUID = 1L;
+
SamePackageSerializable() {
}
};
class SamePackageProtectedCtor {
+ private static final long serialVersionUID = 1L;
+
protected SamePackageProtectedCtor() {
}
};
@@ -67,12 +77,16 @@
class SamePackageProtectedSerializable
extends Serialize.SamePackageProtectedCtor implements Serializable
{
+ private static final long serialVersionUID = 1L;
+
SamePackageProtectedSerializable() {
}
};
class SamePackagePrivateCtor {
+ private static final long serialVersionUID = 1L;
+
private SamePackagePrivateCtor() {
}
public SamePackagePrivateCtor(int l) {
@@ -82,6 +96,8 @@
class SamePackagePrivateSerializable
extends Serialize.SamePackagePrivateCtor implements Serializable
{
+ private static final long serialVersionUID = 1L;
+
SamePackagePrivateSerializable() {
super(1);
}
@@ -90,6 +106,8 @@
class PrivateSerializable
extends NonSerializable.PrivateCtor implements Serializable
{
+ private static final long serialVersionUID = 1L;
+
int field1 = 5;
PrivateSerializable() {
@@ -98,6 +116,8 @@
};
class ExternalizablePublicCtor implements Externalizable {
+ private static final long serialVersionUID = 1L;
+
public ExternalizablePublicCtor() {
}
public void writeExternal(ObjectOutput out) throws IOException {
@@ -108,7 +128,10 @@
}
};
+@SuppressWarnings("serial") /* Incorrect declarations are being tested */
class ExternalizableProtectedCtor implements Externalizable {
+ private static final long serialVersionUID = 1L;
+
protected ExternalizableProtectedCtor() {
}
public void writeExternal(ObjectOutput out) throws IOException {
@@ -119,7 +142,10 @@
}
};
+@SuppressWarnings("serial") /* Incorrect declarations are being tested */
class ExternalizablePackageCtor implements Externalizable {
+ private static final long serialVersionUID = 1L;
+
ExternalizablePackageCtor() {
}
public void writeExternal(ObjectOutput out) throws IOException {
@@ -130,7 +156,10 @@
}
};
+@SuppressWarnings("serial") /* Incorrect declarations are being tested */
class ExternalizablePrivateCtor implements Externalizable {
+ private static final long serialVersionUID = 1L;
+
private ExternalizablePrivateCtor() {
}
public ExternalizablePrivateCtor(int i) {
--- a/test/jdk/java/io/Serializable/NPEProvoker/NPEProvoker.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/NPEProvoker/NPEProvoker.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2019, 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
@@ -41,6 +41,8 @@
import java.util.ArrayList;
public class NPEProvoker implements java.io.Externalizable {
+ private static final long serialVersionUID = 1L;
+
private String test = "test";
public void readExternal(ObjectInput in) throws IOException,
--- a/test/jdk/java/io/Serializable/NoClassDefFoundErrorTrap/NoClassDefFoundErrorTrap.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/NoClassDefFoundErrorTrap/NoClassDefFoundErrorTrap.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, 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
@@ -40,7 +40,9 @@
private static NoClassDefFoundError ncdfe;
public interface Bar {}
- public static class Foo implements Bar, java.io.Serializable {}
+ public static class Foo implements Bar, java.io.Serializable {
+ private static final long serialVersionUID = 1L;
+ }
/**
* Test subclass of ObjectInputStream that overrides resolveClass
@@ -55,7 +57,7 @@
super(in);
}
- protected Class resolveClass(ObjectStreamClass desc)
+ protected Class<?> resolveClass(ObjectStreamClass desc)
throws IOException, ClassNotFoundException
{
String name = desc.getName();
--- a/test/jdk/java/io/Serializable/PutField/Write2.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/PutField/Write2.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, 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
@@ -44,6 +44,7 @@
new ObjectStreamField("s2", String.class)
};
+ @SuppressWarnings("deprecation")
private void writeObject(ObjectOutputStream out) throws IOException {
ObjectOutputStream.PutField fields = out.putFields();
fields.put("s1", "qwerty");
--- a/test/jdk/java/io/Serializable/badSerialPersistentField/BadSerialPersistentField.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/badSerialPersistentField/BadSerialPersistentField.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, 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
@@ -31,12 +31,16 @@
import java.io.*;
class A implements Serializable {
+ private static final long serialVersionUID = 1L;
+
private static final ObjectStreamField[] serialPersistentFields = {
new ObjectStreamField("nonexistent", int.class)
};
}
class B implements Serializable {
+ private static final long serialVersionUID = 1L;
+
private static final ObjectStreamField[] serialPersistentFields = {
new ObjectStreamField("mismatched", int.class)
};
@@ -44,6 +48,8 @@
}
class C implements Serializable {
+ private static final long serialVersionUID = 1L;
+
private static final ObjectStreamField[] serialPersistentFields = {
new ObjectStreamField("existent", int.class)
};
--- a/test/jdk/java/io/Serializable/badSerialVersionUID/BadSerialVersionUID.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/badSerialVersionUID/BadSerialVersionUID.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, 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
@@ -32,42 +32,50 @@
import java.io.*;
class Z implements Serializable {
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
private static final boolean serialVersionUID = false;
}
class B implements Serializable {
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
private static final byte serialVersionUID = 5;
}
class C implements Serializable {
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
private static final char serialVersionUID = 5;
}
class S implements Serializable {
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
private static final short serialVersionUID = 5;
}
class I implements Serializable {
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
private static final int serialVersionUID = 5;
}
class F implements Serializable {
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
private static final float serialVersionUID = 5.0F;
}
class D implements Serializable {
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
private static final double serialVersionUID = 5.0;
}
class L implements Serializable {
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
private static final Object serialVersionUID = "5";
}
public class BadSerialVersionUID {
public static void main(String[] args) throws Exception {
- Class[] ignore = { Z.class, F.class, D.class, L.class };
- Class[] convert = { B.class, C.class, S.class, I.class };
+ Class<?>[] ignore = { Z.class, F.class, D.class, L.class };
+ Class<?>[] convert = { B.class, C.class, S.class, I.class };
for (int i = 0; i < ignore.length; i++) {
ObjectStreamClass.lookup(ignore[i]).getSerialVersionUID();
--- a/test/jdk/java/io/Serializable/badSubstByReplace/BadSubstByReplace.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/badSubstByReplace/BadSubstByReplace.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, 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
@@ -29,11 +29,16 @@
*/
import java.io.*;
-class A implements Serializable {}
+class A implements Serializable {
+ private static final long serialVersionUID = 1L;
+}
-class B implements Serializable {}
+class B implements Serializable {
+ private static final long serialVersionUID = 1L;
+}
class Container implements Serializable {
+ private static final long serialVersionUID = 1L;
A a = new A();
}
--- a/test/jdk/java/io/Serializable/checkModifiers/CheckModifiers.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/checkModifiers/CheckModifiers.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, 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
@@ -36,7 +36,10 @@
import java.io.*;
class TestClass1 implements Serializable {
+ private static final long serialVersionUID = 1L;
+
// Missing the "final" modifier
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
private static ObjectStreamField[] serialPersistentFields = {
new ObjectStreamField("field1", Integer.class),
new ObjectStreamField("field2", Double.TYPE),
@@ -58,7 +61,7 @@
throws IOException, ClassNotFoundException {
ObjectInputStream.GetField pfields = ois.readFields();
- field1 = (Integer) pfields.get("field1", new Integer(100));
+ field1 = (Integer) pfields.get("field1", Integer.valueOf(100));
field2 = pfields.get("field2", 99.99);
/* These fields must be present in the stream */
@@ -79,7 +82,10 @@
class TestClass2 implements Serializable {
+ private static final long serialVersionUID = 1L;
+
// public instead of private
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
public static final ObjectStreamField[] serialPersistentFields = {
new ObjectStreamField("field1", Integer.class),
new ObjectStreamField("field2", Double.TYPE),
@@ -101,7 +107,7 @@
throws IOException, ClassNotFoundException {
ObjectInputStream.GetField pfields = ois.readFields();
- field1 = (Integer) pfields.get("field1", new Integer(100));
+ field1 = (Integer) pfields.get("field1", Integer.valueOf(100));
field2 = pfields.get("field2", 99.99);
/* These fields must be present in the stream */
@@ -121,7 +127,10 @@
};
class TestClass3 implements Serializable{
+ private static final long serialVersionUID = 1L;
+
// Not of type ObjectStreamField
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
private final String[] serialPersistentFields = {"Foo","Foobar"};;
Integer field1;
double field2;
@@ -139,7 +148,7 @@
throws IOException, ClassNotFoundException {
ObjectInputStream.GetField pfields = ois.readFields();
- field1 = (Integer) pfields.get("field1", new Integer(100));
+ field1 = (Integer) pfields.get("field1", Integer.valueOf(100));
field2 = pfields.get("field2", 99.99);
field3 = pfields.get("field3", 99);
field4 = (String) pfields.get("field4", "Default string");
@@ -156,6 +165,8 @@
};
class TestClass4 implements Serializable {
+ private static final long serialVersionUID = 1L;
+
// Correct format
private static final ObjectStreamField[] serialPersistentFields = {
new ObjectStreamField("field1", Integer.class),
@@ -178,7 +189,7 @@
throws IOException, ClassNotFoundException {
ObjectInputStream.GetField pfields = ois.readFields();
- field1 = (Integer) pfields.get("field1", new Integer(100));
+ field1 = (Integer) pfields.get("field1", Integer.valueOf(100));
field2 = pfields.get("field2", 99.99);
try {
@@ -199,16 +210,16 @@
public class CheckModifiers {
public static void main(String[] args)
throws ClassNotFoundException, IOException{
- TestClass1 tc1 = new TestClass1(new Integer(100), 25.56, 2000,
+ TestClass1 tc1 = new TestClass1(100, 25.56, 2000,
new String("Test modifiers of serialPersistentFields"));
- TestClass2 tc2 = new TestClass2(new Integer(100), 25.56, 2000,
+ TestClass2 tc2 = new TestClass2(100, 25.56, 2000,
new String("Test modifiers of serialPersistentFields"));
- TestClass3 tc3 = new TestClass3(new Integer(100), 25.56, 2000,
+ TestClass3 tc3 = new TestClass3(100, 25.56, 2000,
new String("Test Type of serialPersistentFields"));
- TestClass4 tc4 = new TestClass4(new Integer(100), 25.56, 2000,
+ TestClass4 tc4 = new TestClass4(100, 25.56, 2000,
new String("Test modifiers of serialPersistentFields"));
--- a/test/jdk/java/io/Serializable/class/SerialA_2/A.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/class/SerialA_2/A.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, 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 @@
import java.io.Serializable;
public class A implements Serializable {
- static final long serialVersionUID = 746945609796141988L;
+ private static final long serialVersionUID = 746945609796141988L;
int field1;
int field2;
--- a/test/jdk/java/io/Serializable/classDescFlagConflict/Foo.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/classDescFlagConflict/Foo.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,8 @@
import java.io.*;
public class Foo implements Externalizable {
+ private static final long serialVersionUID = 1L;
+
public void writeExternal(ObjectOutput out) throws IOException {}
public void readExternal(ObjectInput in)
throws IOException, ClassNotFoundException {}
--- a/test/jdk/java/io/Serializable/classDescGetField/GetField.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/classDescGetField/GetField.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, 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
@@ -33,6 +33,8 @@
import java.io.*;
public class GetField implements Serializable{
+ private static final long serialVersionUID = 1L;
+
String str;
int i;
--- a/test/jdk/java/io/Serializable/classDescHooks/CNFException.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/classDescHooks/CNFException.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, 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
@@ -47,7 +47,7 @@
public static void main(String[] args) throws Exception {
ByteArrayOutputStream bout = new ByteArrayOutputStream();
ObjectOutputStream oout = new ObjectOutputStream(bout);
- oout.writeObject(new Integer(5));
+ oout.writeObject(5);
oout.close();
ObjectInputStream oin =
new CNFInputStream(new ByteArrayInputStream(bout.toByteArray()));
--- a/test/jdk/java/io/Serializable/classDescHooks/ClassDescHooks.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/classDescHooks/ClassDescHooks.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, 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
@@ -32,9 +32,9 @@
class Foo implements Serializable {
private static final long serialVersionUID = 1L;
- Short s = new Short((short) 1);
- Integer i = new Integer(2);
- Long l = new Long(3);
+ Short s = (short) 1;
+ Integer i = 2;
+ Long l = 3L;
public boolean equals(Object obj) {
if (obj instanceof Foo) {
@@ -43,6 +43,10 @@
}
return false;
}
+
+ public int hashCode() {
+ return i;
+ }
}
class CustomOutputStream extends ObjectOutputStream {
--- a/test/jdk/java/io/Serializable/classDescHooks/ExternLoopback.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/classDescHooks/ExternLoopback.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, 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
@@ -32,9 +32,9 @@
import java.util.*;
class LoopbackOutputStream extends ObjectOutputStream {
- LinkedList descs;
+ LinkedList<ObjectStreamClass> descs;
- LoopbackOutputStream(OutputStream out, LinkedList descs)
+ LoopbackOutputStream(OutputStream out, LinkedList<ObjectStreamClass> descs)
throws IOException
{
super(out);
@@ -49,9 +49,9 @@
}
class LoopbackInputStream extends ObjectInputStream {
- LinkedList descs;
+ LinkedList<ObjectStreamClass> descs;
- LoopbackInputStream(InputStream in, LinkedList descs) throws IOException {
+ LoopbackInputStream(InputStream in, LinkedList<ObjectStreamClass> descs) throws IOException {
super(in);
this.descs = descs;
}
@@ -59,11 +59,12 @@
protected ObjectStreamClass readClassDescriptor()
throws IOException, ClassNotFoundException
{
- return (ObjectStreamClass) descs.removeFirst();
+ return descs.removeFirst();
}
}
public class ExternLoopback implements Externalizable {
+ private static final long serialVersionUID = 1L;
String a, b, c;
@@ -100,13 +101,17 @@
return streq(a, other.a) && streq(b, other.b) && streq(c, other.c);
}
+ public int hashCode() {
+ return a.hashCode();
+ }
+
static boolean streq(String s1, String s2) {
return (s1 != null) ? s1.equals(s2) : (s2 == null);
}
public static void main(String[] args) throws Exception {
ExternLoopback lb = new ExternLoopback("foo", "bar", "baz");
- LinkedList descs = new LinkedList();
+ LinkedList<ObjectStreamClass> descs = new LinkedList<>();
ByteArrayOutputStream bout = new ByteArrayOutputStream();
LoopbackOutputStream lout = new LoopbackOutputStream(bout, descs);
lout.writeObject(lb);
--- a/test/jdk/java/io/Serializable/classDescHooks/Loopback.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/classDescHooks/Loopback.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, 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
@@ -33,9 +33,9 @@
import java.util.*;
class LoopbackOutputStream extends ObjectOutputStream {
- LinkedList descs;
+ LinkedList<ObjectStreamClass> descs;
- LoopbackOutputStream(OutputStream out, LinkedList descs)
+ LoopbackOutputStream(OutputStream out, LinkedList<ObjectStreamClass> descs)
throws IOException
{
super(out);
@@ -50,21 +50,22 @@
}
class LoopbackInputStream extends ObjectInputStream {
- LinkedList descs;
+ LinkedList<ObjectStreamClass> descs;
- LoopbackInputStream(InputStream in, LinkedList descs) throws IOException {
+ LoopbackInputStream(InputStream in, LinkedList<ObjectStreamClass> descs) throws IOException {
super(in);
this.descs = descs;
}
protected ObjectStreamClass readClassDescriptor()
- throws IOException, ClassNotFoundException
{
- return (ObjectStreamClass) descs.removeFirst();
+ return descs.removeFirst();
}
}
public class Loopback implements Serializable {
+ private static final long serialVersionUID = 1L;
+
String str;
Loopback(String str) {
@@ -73,7 +74,7 @@
public static void main(String[] args) throws Exception {
Loopback lb = new Loopback("foo");
- LinkedList descs = new LinkedList();
+ LinkedList<ObjectStreamClass> descs = new LinkedList<>();
ByteArrayOutputStream bout = new ByteArrayOutputStream();
LoopbackOutputStream lout = new LoopbackOutputStream(bout, descs);
lout.writeObject(lb);
--- a/test/jdk/java/io/Serializable/cloneArray/CloneArray.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/cloneArray/CloneArray.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2019, 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
@@ -40,6 +40,8 @@
static Object replacement;
static class Resolver implements Serializable {
+ private static final long serialVersionUID = 1L;
+
private Object readResolve() throws ObjectStreamException {
return replacement;
}
--- a/test/jdk/java/io/Serializable/concurrentClassDescLookup/ConcurrentClassDescLookup.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/concurrentClassDescLookup/ConcurrentClassDescLookup.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,8 @@
import java.io.*;
class Good implements Serializable {
+ private static final long serialVersionUID = 6319710844400051132L;
+
static {
try { Thread.sleep(1000); } catch (InterruptedException ex) {}
}
@@ -47,12 +49,12 @@
}
class SuccessfulLookup extends Thread {
- Class cl;
+ Class<?> cl;
long suid;
Object barrier;
boolean ok;
- SuccessfulLookup(Class cl, long suid, Object barrier) {
+ SuccessfulLookup(Class<?> cl, long suid, Object barrier) {
this.cl = cl;
this.suid = suid;
this.barrier = barrier;
@@ -72,11 +74,11 @@
}
class FailingLookup extends Thread {
- Class cl;
- Object barrier;
+ Class<?> cl;
+ final Object barrier;
boolean ok;
- FailingLookup(Class cl, Object barrier) {
+ FailingLookup(Class<?> cl, Object barrier) {
this.cl = cl;
this.barrier = barrier;
}
@@ -99,7 +101,7 @@
public class ConcurrentClassDescLookup {
public static void main(String[] args) throws Exception {
ClassLoader loader = ConcurrentClassDescLookup.class.getClassLoader();
- Class cl = Class.forName("Good", false, loader);
+ Class<?> cl = Class.forName("Good", false, loader);
Object barrier = new Object();
SuccessfulLookup[] slookups = new SuccessfulLookup[50];
for (int i = 0; i < slookups.length; i++) {
--- a/test/jdk/java/io/Serializable/defaultDataEnd/DefaultDataEnd.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/defaultDataEnd/DefaultDataEnd.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, 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
@@ -31,6 +31,8 @@
import java.io.*;
class A implements Serializable {
+ private static final long serialVersionUID = 1L;
+
int i1 = 1, i2 = 2;
String s1 = "foo", s2 = "bar";
@@ -66,6 +68,8 @@
}
class B implements Serializable {
+ private static final long serialVersionUID = 1L;
+
int i1 = 1, i2 = 2;
String s1 = "foo", s2 = "bar";
@@ -101,6 +105,8 @@
}
class C implements Serializable {
+ private static final long serialVersionUID = 1L;
+
private void readObject(ObjectInputStream in)
throws IOException, ClassNotFoundException
{
--- a/test/jdk/java/io/Serializable/defaultReadObjectCNFException/DefaultReadObjectCNFException.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/defaultReadObjectCNFException/DefaultReadObjectCNFException.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, 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
@@ -31,6 +31,9 @@
import java.io.*;
class Foo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @SuppressWarnings("serial") /* Incorrect use is being tested */
Object obj = new Bar();
private void readObject(ObjectInputStream in)
@@ -44,12 +47,14 @@
}
}
-class Bar implements Serializable {}
+class Bar implements Serializable {
+ private static final long serialVersionUID = 1L;
+}
class TestObjectInputStream extends ObjectInputStream {
TestObjectInputStream(InputStream in) throws IOException { super(in); }
- protected Class resolveClass(ObjectStreamClass desc)
+ protected Class<?> resolveClass(ObjectStreamClass desc)
throws IOException, ClassNotFoundException
{
if (desc.getName().equals(Bar.class.getName())) {
--- a/test/jdk/java/io/Serializable/defaulted/GetFieldRead.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/defaulted/GetFieldRead.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,9 +30,9 @@
import java.io.*;
class TestClass implements Serializable {
- public static final Integer DEFAULT_OBJECT_I = new Integer(99);
+ public static final Integer DEFAULT_OBJECT_I = 99;
public static final Foo DEFAULT_OBJECT_F = new Foo();
- private static final long serialVersionUID=5748652654655279289L;
+ private static final long serialVersionUID = 5748652654655279289L;
// Fields to be serialized.
private static final ObjectStreamField[] serialPersistentFields = {
--- a/test/jdk/java/io/Serializable/defaulted/GetFieldWrite.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/defaulted/GetFieldWrite.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, 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
@@ -62,8 +62,7 @@
{
FileOutputStream fos = new FileOutputStream("data.ser");
ObjectOutput out = new ObjectOutputStream(fos);
- out.writeObject(new TestClass(new Foo(100, 200), new Integer(100),
- 200));
+ out.writeObject(new TestClass(new Foo(100, 200), 100, 200));
out.close();
}
};
@@ -72,6 +71,8 @@
* Test class to be used as data field
*/
class Foo implements Serializable{
+ private static final long serialVersionUID = 1L;
+
int a;
int b;
public Foo() {
--- a/test/jdk/java/io/Serializable/enum/classObject/Test.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/enum/classObject/Test.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, 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
@@ -35,7 +35,7 @@
public static void main(String[] args) throws Exception {
ByteArrayOutputStream bout = new ByteArrayOutputStream();
ObjectOutputStream oout = new ObjectOutputStream(bout);
- Class[] classes = { Enum.class, Foo.foo.getClass(),
+ Class<?>[] classes = { Enum.class, Foo.foo.getClass(),
Foo.bar.getClass(), Foo.baz.getClass() };
for (int i = 0; i < classes.length; i++) {
oout.writeObject(classes[i]);
--- a/test/jdk/java/io/Serializable/enum/ignoreSerializationFields/Test.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/enum/ignoreSerializationFields/Test.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, 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
@@ -34,6 +34,7 @@
foo,
bar {
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
private static final long serialVersionUID = 2L;
// bar is implemented as an inner class instance, so the following
// declaration would cause a compile-time error
@@ -42,7 +43,10 @@
// };
};
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
private static final long serialVersionUID = 1L;
+
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
private static final ObjectStreamField[] serialPersistentFields = {
new ObjectStreamField("blargh", Integer.TYPE)
};
@@ -50,7 +54,7 @@
public class Test {
public static void main(String[] args) throws Exception {
- Class[] classes =
+ Class<?>[] classes =
{ Foo.class, Foo.foo.getClass(), Foo.bar.getClass() };
for (int i = 0; i < classes.length; i++) {
ObjectStreamClass desc = ObjectStreamClass.lookup(classes[i]);
--- a/test/jdk/java/io/Serializable/enum/ignoreSerializationMethods/Test.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/enum/ignoreSerializationMethods/Test.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, 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
@@ -33,14 +33,17 @@
foo,
bar {
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
private void writeObject(ObjectOutputStream out) throws IOException {
throw new Error("bar.writeObject invoked");
}
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
private void readObject(ObjectInputStream in)
throws IOException, ClassNotFoundException
{
throw new Error("bar.readObject invoked");
}
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
Object writeReplace() throws ObjectStreamException {
throw new Error("bar.writeReplace invoked");
}
@@ -50,14 +53,17 @@
// }
};
+ @SuppressWarnings("serial") /* Incorrect use is being tested */
private void writeObject(ObjectOutputStream out) throws IOException {
throw new Error("Foo.writeObject invoked");
}
+ @SuppressWarnings("serial") /* Incorrect use is being tested */
private void readObject(ObjectInputStream in)
throws IOException, ClassNotFoundException
{
throw new Error("Foo.readObject invoked");
}
+ @SuppressWarnings("serial") /* Incorrect use is being tested */
Object writeReplace() throws ObjectStreamException {
throw new Error("Foo.writeReplace invoked");
}
--- a/test/jdk/java/io/Serializable/enum/mismatchedTypecode/Test.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/enum/mismatchedTypecode/Test.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, 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
@@ -71,7 +71,7 @@
}
oout = new TestObjectOutputStream(bout = new ByteArrayOutputStream());
- oout.writeObject(new Integer(5));
+ oout.writeObject(5);
oout.close();
oin = new ObjectInputStream(
new ByteArrayInputStream(bout.toByteArray()));
--- a/test/jdk/java/io/Serializable/evolution/AddedExternField/ReadAddedField.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/evolution/AddedExternField/ReadAddedField.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, 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
@@ -36,6 +36,8 @@
}
class D implements Serializable {
+ private static final long serialVersionUID = 1L;
+
public int x;
D(int y) {
x = y;
--- a/test/jdk/java/io/Serializable/evolution/AddedExternField/WriteAddedField.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/evolution/AddedExternField/WriteAddedField.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, 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
@@ -36,6 +36,8 @@
import java.io.*;
class NewExternFieldClass implements Externalizable {
+ private static final long serialVersionUID = 1L;
+
byte l;
public NewExternFieldClass() {
@@ -60,6 +62,8 @@
}
class D implements Serializable {
+ private static final long serialVersionUID = 1L;
+
public int x;
D(int y) {
x = y;
--- a/test/jdk/java/io/Serializable/evolution/AddedField/ReadAddedField.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/evolution/AddedField/ReadAddedField.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, 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
@@ -33,7 +33,7 @@
import java.io.*;
class IncompatibleFieldClass implements Serializable {
- private static long serialVersionUID = 4L;
+ private static final long serialVersionUID = 3L;
int x = 5;
};
--- a/test/jdk/java/io/Serializable/evolution/AddedField/WriteAddedField.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/evolution/AddedField/WriteAddedField.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, 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
@@ -37,6 +37,8 @@
import java.io.*;
class NewFieldClass implements Serializable {
+ private static final long serialVersionUID = 1L;
+
int k;
NewFieldClass(int value) {
@@ -45,11 +47,14 @@
};
class IncompatibleFieldClass implements Serializable {
- private static long serialVersionUID = 3L;
+ private static final long serialVersionUID = 3L;
int x = 5;
};
+@SuppressWarnings("serial") /* Incorrect use is being tested */
class NewExternFieldClass implements Externalizable {
+ private static final long serialVersionUID = 1L;
+
byte l;
public NewExternFieldClass(int value) {
--- a/test/jdk/java/io/Serializable/evolution/AddedSuperClass/ReadAddedSuperClass2.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/evolution/AddedSuperClass/ReadAddedSuperClass2.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, 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
@@ -42,6 +42,8 @@
import java.io.*;
class AddedSuperClass implements Serializable {
+ private static final long serialVersionUID = 1L;
+
// Needed at least one field to recreate failure.
int field;
}
--- a/test/jdk/java/io/Serializable/evolution/AddedSuperClass/WriteAddedSuperClass.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/evolution/AddedSuperClass/WriteAddedSuperClass.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, 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
@@ -52,6 +52,8 @@
import java.io.*;
class AddedSuperClass implements Serializable {
+ private static final long serialVersionUID = 1L;
+
// Needed at least one field to recreate failure.
int field;
}
--- a/test/jdk/java/io/Serializable/expectedStackTrace/ExpectedStackTrace.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/expectedStackTrace/ExpectedStackTrace.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, 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
@@ -42,9 +42,11 @@
}
}
+@SuppressWarnings("serial") /* Incorrect declarations are being tested */
class SerializableObject extends NotSerializableObject
implements Serializable
{
+ private static final long serialVersionUID = 1L;
public SerializableObject(String m_str, Integer m_int) {
super(m_str, m_int);
@@ -67,7 +69,7 @@
ObjectStreamClass osc =
ObjectStreamClass.lookup(SerializableObject.class);
SerializableObject initObj =
- (SerializableObject) osc.forClass().newInstance();
+ (SerializableObject) osc.forClass().getConstructor().newInstance();
return initObj;
}
--- a/test/jdk/java/io/Serializable/explicitCNFException/ExplicitCNFException.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/explicitCNFException/ExplicitCNFException.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, 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
@@ -31,6 +31,8 @@
import java.io.*;
class A implements Serializable {
+ private static final long serialVersionUID = 1L;
+
private void readObject(ObjectInputStream in)
throws ClassNotFoundException, IOException
{
@@ -39,6 +41,8 @@
}
class B implements Externalizable {
+ private static final long serialVersionUID = 1L;
+
public B() {}
public void writeExternal(ObjectOutput out) throws IOException {}
--- a/test/jdk/java/io/Serializable/failureAtomicity/Bar.template Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/failureAtomicity/Bar.template Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2019, 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
@@ -28,7 +28,7 @@
import failureAtomicity.SerialRef;
public class Bar extends Foo implements Serializable {
- static final long serialVersionUID = -0L;
+ private static final long serialVersionUID = -0L;
public final long barPrim;
public final String barRef;
--- a/test/jdk/java/io/Serializable/failureAtomicity/Foo.template Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/failureAtomicity/Foo.template Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2019, 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
@@ -28,7 +28,7 @@
import failureAtomicity.SerialRef;
public class Foo implements Serializable {
- static final long serialVersionUID = -0L;
+ private static final long serialVersionUID = -0L;
public final int fooPrim;
public final String fooRef;
--- a/test/jdk/java/io/Serializable/failureAtomicity/SerialRef.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/failureAtomicity/SerialRef.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,9 +30,10 @@
// For verification purposes only.
public class SerialRef implements Serializable {
- static final long serialVersionUID = -0L;
+ private static final long serialVersionUID = -0L;
public static Object obj;
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
private final Object ref;
public SerialRef(Object ref) {
--- a/test/jdk/java/io/Serializable/fieldTypeString/Write.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/fieldTypeString/Write.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, 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
@@ -42,6 +42,7 @@
class Foo implements Serializable {
private static final long serialVersionUID = 0L;
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
Object obj;
Foo(Object obj) {
@@ -59,7 +60,7 @@
ObjectOutputStream oout =
new ObjectOutputStream(new FileOutputStream("foo.ser"));
oout.writeObject(new Foo("foo"));
- oout.writeObject(new Foo(new Integer(0)));
+ oout.writeObject(new Foo(0));
oout.close();
oout = new ObjectOutputStream(new FileOutputStream("bar.ser"));
--- a/test/jdk/java/io/Serializable/finalFields/FinalFields.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/finalFields/FinalFields.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, 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
@@ -29,6 +29,8 @@
import java.io.*;
class Foo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
final int i;
Foo(int i) {
@@ -41,6 +43,10 @@
Foo f = (Foo) obj;
return (i == f.i);
}
+
+ public int hashCode() {
+ return i;
+ }
}
public class FinalFields {
@@ -68,4 +74,5 @@
if (! (f1.equals(f1copy) && f2.equals(f2copy)))
throw new Error("copies don't match originals");
}
+
}
--- a/test/jdk/java/io/Serializable/getSuidClinitError/GetSuidClinitError.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/getSuidClinitError/GetSuidClinitError.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,7 @@
import java.io.*;
+@SuppressWarnings("serial") /* Incorrect declarations are being tested. */
class A implements Serializable {
static {
// compiler prohibits direct throw
@@ -41,30 +42,36 @@
}
}
+@SuppressWarnings("serial") /* Incorrect declarations are being tested. */
class B implements Serializable {
}
+@SuppressWarnings("serial") /* Incorrect declarations are being tested. */
class C implements Serializable {
static { System.out.println("C.<clinit>"); }
}
+@SuppressWarnings("serial") /* Incorrect declarations are being tested. */
class B1 extends B {
}
+@SuppressWarnings("serial") /* Incorrect declarations are being tested. */
class B2 extends B {
static { System.out.println("B2.<clinit>"); }
}
+@SuppressWarnings("serial") /* Incorrect declarations are being tested. */
class C1 extends C {
}
+@SuppressWarnings("serial") /* Incorrect declarations are being tested. */
class C2 extends C {
static { System.out.println("C2.<clinit>"); }
}
public class GetSuidClinitError {
public static void main(String[] args) throws Exception {
- Class cl = Class.forName(
+ Class<?> cl = Class.forName(
"A", false, GetSuidClinitError.class.getClassLoader());
for (int i = 0; i < 2; i++) {
try {
@@ -83,7 +90,7 @@
}
}
- Class[] cls = new Class[] {
+ Class<?>[] cls = {
B.class, B1.class, B2.class,
C.class, C1.class, C2.class
};
--- a/test/jdk/java/io/Serializable/lookupInterfaceDesc/LookupInterfaceDesc.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/lookupInterfaceDesc/LookupInterfaceDesc.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,10 +30,12 @@
import java.io.*;
interface Foo extends Serializable {
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
static final long serialVersionUID = 0xCAFE;
}
interface Bar extends Externalizable {
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
static final long serialVersionUID = 0xBABE;
}
--- a/test/jdk/java/io/Serializable/misplacedArrayClassDesc/MisplacedArrayClassDesc.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/misplacedArrayClassDesc/MisplacedArrayClassDesc.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, 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
@@ -31,6 +31,8 @@
import java.io.*;
class TestArray implements Serializable {
+ private static final long serialVersionUID = 1L;
+
// size of array
private static final int ARR_SIZE = 5;
// serializable field
--- a/test/jdk/java/io/Serializable/modifyStaticFields/ModifyStaticFields.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/modifyStaticFields/ModifyStaticFields.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,8 @@
import java.io.*;
public class ModifyStaticFields implements Serializable {
+ private static final long serialVersionUID = 1L;
+
private static final ObjectStreamField[] serialPersistentFields =
new ObjectStreamField[] { new ObjectStreamField("str", String.class) };
--- a/test/jdk/java/io/Serializable/nestedReplace/NestedReplace.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/nestedReplace/NestedReplace.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, 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
@@ -35,18 +35,23 @@
import java.io.*;
class A implements Serializable {
+ private static final long serialVersionUID = 1L;
+
Object writeReplace() throws ObjectStreamException {
return new B();
}
}
class B implements Serializable {
+ private static final long serialVersionUID = 1L;
+
Object writeReplace() throws ObjectStreamException {
return new C();
}
}
class C implements Serializable {
+ private static final long serialVersionUID = 1L;
static int writeReplaceCalled = 0;
@@ -61,6 +66,8 @@
}
class D implements Serializable {
+ private static final long serialVersionUID = 1L;
+
Object readResolve() throws ObjectStreamException {
throw new Error("readResolve() called more than once");
}
--- a/test/jdk/java/io/Serializable/noSuchFieldClarification/NoSuchFieldClarification.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/noSuchFieldClarification/NoSuchFieldClarification.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, 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
@@ -33,8 +33,9 @@
import java.io.*;
class TwoDPoint implements Serializable {
+ private static final long serialVersionUID = 1L;
- private double radius;
+ private double radius;
private double angle;
private static final ObjectStreamField[] serialPersistentFields = {
--- a/test/jdk/java/io/Serializable/notAvailable/NotAvailable.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/notAvailable/NotAvailable.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, 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
@@ -76,6 +76,8 @@
}
class Class1 implements Serializable {
+ private static final long serialVersionUID = 1L;
+
int a, b;
public Class1(int aa, int bb) {
--- a/test/jdk/java/io/Serializable/oldTests/AnnotateClass.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/oldTests/AnnotateClass.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, 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
@@ -102,7 +102,7 @@
/* When any class is written, add a "magic" string
* that must be verified by the TestInputStream.
*/
- protected void annotateClass(Class cl) throws IOException {
+ protected void annotateClass(Class<?> cl) throws IOException {
this.writeUTF("magic");
}
@@ -112,7 +112,6 @@
* Other objects are written as themselves.
*/
protected Object replaceObject(Object obj)
- throws IOException
{
/* For PrintStreams, like stdout and stderr, encode */
if (obj instanceof PrintStream) {
@@ -169,6 +168,7 @@
* and a small integer.
*/
class StdStream implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
private int stream = 0;
public StdStream(PrintStream s) {
--- a/test/jdk/java/io/Serializable/oldTests/ArrayTest.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/oldTests/ArrayTest.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, 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,6 +22,8 @@
*/
public class ArrayTest implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
+
byte b[] = { 0, 1};
short s[] = { 0, 1, 2};
char c[] = { 'Z', 'Y', 'X'};
--- a/test/jdk/java/io/Serializable/oldTests/ArraysOfArrays.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/oldTests/ArraysOfArrays.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, 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
@@ -42,40 +42,40 @@
ostream = new FileOutputStream("piotest5.tmp");
ObjectOutputStream p = new ObjectOutputStream(ostream);
- byte b[][] = {{ 0, 1}, {2,3}};
- p.writeObject((Object)b);
+ byte[][] b = {{ 0, 1}, {2,3}};
+ p.writeObject(b);
- short s[][] = {{ 0, 1, 2}, {3,4,5}};
- p.writeObject((Object)s);
+ short[][] s = {{ 0, 1, 2}, {3,4,5}};
+ p.writeObject(s);
- char c[][] = {{ 0, 1, 2, 3}, {4, 5, 6, 7}};
- p.writeObject((Object)c);
+ char[][] c = {{ 0, 1, 2, 3}, {4, 5, 6, 7}};
+ p.writeObject(c);
- int i[][] = {{ 0, 1, 2, 3, 4}, {5, 6, 7, 8, 9}};
- p.writeObject((Object)i);
+ int[][] i = {{ 0, 1, 2, 3, 4}, {5, 6, 7, 8, 9}};
+ p.writeObject(i);
- long l[][] = {{ 0, 1, 2, 3, 4, 5}, {6,7,8,9,10,11}};
+ long[][] l = {{ 0, 1, 2, 3, 4, 5}, {6,7,8,9,10,11}};
p.writeObject((Object)l);
- boolean z[][] = new boolean[2][2];
+ boolean[][] z = new boolean[2][2];
z[0][0] = true;
z[0][1] = false;
z[1] = z[0]; // Use first row same as second
- p.writeObject((Object)z);
+ p.writeObject(z);
- float f[][] = {{ 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f},
+ float[][] f = {{ 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f},
{ 1.1f, 2.1f, 3.1f, 4.1f, 5.1f, 6.1f}};
- p.writeObject((Object)f);
+ p.writeObject(f);
- double d[][] = {{ 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0d},
+ double[][] d = {{ 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0d},
{ 1.1f, 2.1f, 3.1f, 4.1f, 5.1f, 6.1f, 7.1d}};
- p.writeObject((Object)d);
+ p.writeObject(d);
- Integer Int[][] = {{ new Integer(3), new Integer(2)},
- { new Integer(1), new Integer(0)}};
- p.writeObject((Object)Int);
+ Integer Int[][] = {{ 3, 2},
+ { 1, 0}};
+ p.writeObject(Int);
p.flush();
@@ -84,12 +84,12 @@
istream = new FileInputStream("piotest5.tmp");
ObjectInputStream q = new ObjectInputStream(istream);
- byte b_u[][] = (byte [][]) (q.readObject());
+ byte[][] b_u = (byte [][]) (q.readObject());
for (int ix = 0; ix < b_u.length; ix++) {
for(int iy = 0; iy < b_u[ix].length; iy++) {
if (b[ix][iy] != b_u[ix][iy]) {
System.err.println("\nByte array mismatch [" +
- ix + "][" + iy + " expected " + b[ix][iy] +
+ ix + "][" + iy + "] expected " + b[ix][iy] +
" actual = " + b_u[ix][iy]);
throw new Error();
}
@@ -97,97 +97,97 @@
}
- short s_u[][] = (short [][])(q.readObject());
- for (int ix = 0; ix < b_u.length; ix++) {
- for(int iy = 0; iy < b_u[ix].length; iy++) {
- if (b[ix][iy] != b_u[ix][iy]) {
+ short[][] s_u = (short [][])(q.readObject());
+ for (int ix = 0; ix < s_u.length; ix++) {
+ for(int iy = 0; iy < s_u[ix].length; iy++) {
+ if (s[ix][iy] != s_u[ix][iy]) {
System.err.println("\nshort array mismatch [" +
- ix + "][" + iy + " expected " + b[ix][iy] +
- " actual = " + b_u[ix][iy]);
+ ix + "][" + iy + "] expected " + s[ix][iy] +
+ " actual = " + s_u[ix][iy]);
throw new Error();
}
}
}
- char c_u[][] = (char [][])(q.readObject());
- for (int ix = 0; ix < b_u.length; ix++) {
- for(int iy = 0; iy < b_u[ix].length; iy++) {
- if (b[ix][iy] != b_u[ix][iy]) {
+ char[][] c_u = (char [][])(q.readObject());
+ for (int ix = 0; ix < c_u.length; ix++) {
+ for(int iy = 0; iy < c_u[ix].length; iy++) {
+ if (c[ix][iy] != c_u[ix][iy]) {
System.err.println("\nchar array mismatch [" +
- ix + "][" + iy + " expected " + b[ix][iy] +
- " actual = " + b_u[ix][iy]);
+ ix + "][" + iy + "] expected " + c[ix][iy] +
+ " actual = " + c_u[ix][iy]);
throw new Error();
}
}
}
- int i_u[][] = (int [][])(q.readObject());
- for (int ix = 0; ix < b_u.length; ix++) {
- for(int iy = 0; iy < b_u[ix].length; iy++) {
- if (b[ix][iy] != b_u[ix][iy]) {
+ int[][] i_u = (int [][])(q.readObject());
+ for (int ix = 0; ix < i_u.length; ix++) {
+ for(int iy = 0; iy < i_u[ix].length; iy++) {
+ if (i[ix][iy] != i_u[ix][iy]) {
System.err.println("\nint array mismatch [" +
- ix + "][" + iy + " expected " + b[ix][iy] +
- " actual = " + b_u[ix][iy]);
+ ix + "][" + iy + "] expected " + i[ix][iy] +
+ " actual = " + i_u[ix][iy]);
throw new Error();
}
}
}
- long l_u[][] = (long [][])(q.readObject());
- for (int ix = 0; ix < b_u.length; ix++) {
- for(int iy = 0; iy < b_u[ix].length; iy++) {
- if (b[ix][iy] != b_u[ix][iy]) {
+ long[][] l_u = (long [][])(q.readObject());
+ for (int ix = 0; ix < l_u.length; ix++) {
+ for(int iy = 0; iy < l_u[ix].length; iy++) {
+ if (l[ix][iy] != l_u[ix][iy]) {
System.err.println("\nlong array mismatch [" +
- ix + "][" + iy + " expected " + b[ix][iy] +
- " actual = " + b_u[ix][iy]);
+ ix + "][" + iy + "] expected " + l[ix][iy] +
+ " actual = " + l_u[ix][iy]);
throw new Error();
}
}
}
- boolean z_u[][] = (boolean [][])(q.readObject());
- for (int ix = 0; ix < b_u.length; ix++) {
- for(int iy = 0; iy < b_u[ix].length; iy++) {
- if (b[ix][iy] != b_u[ix][iy]) {
+ boolean[][] z_u = (boolean [][])(q.readObject());
+ for (int ix = 0; ix < z_u.length; ix++) {
+ for(int iy = 0; iy < z_u[ix].length; iy++) {
+ if (z[ix][iy] != z_u[ix][iy]) {
System.err.println("\nboolean array mismatch [" +
- ix + "][" + iy + " expected " + b[ix][iy] +
- " actual = " + b_u[ix][iy]);
+ ix + "][" + iy + "] expected " + z[ix][iy] +
+ " actual = " + z_u[ix][iy]);
throw new Error();
}
}
}
- float f_u[][] = (float [][])(q.readObject());
- for (int ix = 0; ix < b_u.length; ix++) {
- for(int iy = 0; iy < b_u[ix].length; iy++) {
- if (b[ix][iy] != b_u[ix][iy]) {
+ float[][] f_u = (float [][])(q.readObject());
+ for (int ix = 0; ix < f_u.length; ix++) {
+ for(int iy = 0; iy < f_u[ix].length; iy++) {
+ if (f[ix][iy] != f_u[ix][iy]) {
System.err.println("\nfloat array mismatch [" +
- ix + "][" + iy + " expected " + b[ix][iy] +
- " actual = " + b_u[ix][iy]);
+ ix + "][" + iy + "] expected " + f[ix][iy] +
+ " actual = " + f_u[ix][iy]);
throw new Error();
}
}
}
- double d_u[][] = (double [][])(q.readObject());
- for (int ix = 0; ix < b_u.length; ix++) {
- for(int iy = 0; iy < b_u[ix].length; iy++) {
- if (b[ix][iy] != b_u[ix][iy]) {
+ double[][] d_u = (double [][])(q.readObject());
+ for (int ix = 0; ix < d_u.length; ix++) {
+ for(int iy = 0; iy < d_u[ix].length; iy++) {
+ if (d[ix][iy] != d_u[ix][iy]) {
System.err.println("\ndouble array mismatch [" +
- ix + "][" + iy + " expected " + b[ix][iy] +
- " actual = " + b_u[ix][iy]);
+ ix + "][" + iy + "] expected " + d[ix][iy] +
+ " actual = " + d_u[ix][iy]);
throw new Error();
}
}
}
- Integer Int_u[][] = (Integer [][])(q.readObject());
- for (int ix = 0; ix < b_u.length; ix++) {
- for(int iy = 0; iy < b_u[ix].length; iy++) {
- if (b[ix][iy] != b_u[ix][iy]) {
+ Integer[][] Int_u = (Integer [][])(q.readObject());
+ for (int ix = 0; ix < Int_u.length; ix++) {
+ for(int iy = 0; iy < Int_u[ix].length; iy++) {
+ if (!Int[ix][iy].equals(Int_u[ix][iy])) {
System.err.println("\nInteger array mismatch [" +
- ix + "][" + iy + " expected " + b[ix][iy] +
- " actual = " + b_u[ix][iy]);
+ ix + "][" + iy + "] expected " + Int[ix][iy] +
+ " actual = " + Int_u[ix][iy]);
throw new Error();
}
}
--- a/test/jdk/java/io/Serializable/oldTests/BinaryTree.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/oldTests/BinaryTree.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, 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
@@ -75,6 +75,8 @@
}
class BinaryTreeTest implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
+
public BinaryTreeTest left;
public BinaryTreeTest right;
public int id;
--- a/test/jdk/java/io/Serializable/oldTests/CheckForException.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/oldTests/CheckForException.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, 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
@@ -105,6 +105,8 @@
}
class PickleClass implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
+
int ii = 17;
transient int tmp[];
@@ -129,6 +131,8 @@
}
class NoPickleClass extends PickleClass {
+ private static final long serialVersionUID = 1L;
+
private void writeObject(ObjectOutputStream pw)
throws NotSerializableException
{
@@ -143,6 +147,8 @@
}
class TryPickleClass extends NoPickleClass {
+ private static final long serialVersionUID = 1L;
+
int i = 7;
transient int tmp[];
--- a/test/jdk/java/io/Serializable/oldTests/CheckingEquality.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/oldTests/CheckingEquality.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, 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
@@ -83,6 +83,8 @@
}
class Firstpsio implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
+
String one;
int two;
float three[];
@@ -125,6 +127,8 @@
}
class Secondpsio extends Firstpsio {
+ private static final long serialVersionUID = 1L;
+
String quatre;
int cinq;
@@ -173,6 +177,7 @@
}
class Thirdpsio extends Secondpsio {
+ private static final long serialVersionUID = 1L;
static String ign = "ignored";
transient Object oh;
@@ -184,7 +189,8 @@
static final byte dcare = (byte) 128;
private short nine = 8888;
long ten;
- java.util.Enumeration zero;
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
+ java.util.Enumeration<?> zero;
boolean equals(Thirdpsio other) {
@@ -227,7 +233,7 @@
eight = (byte)8;
nine = (short)9;
ten = (long)100000;
- java.util.Enumeration em = null; /* default */
+ java.util.Enumeration<?> em = null; /* default */
super.init();
}
--- a/test/jdk/java/io/Serializable/oldTests/CircularList.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/oldTests/CircularList.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, 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
@@ -68,6 +68,8 @@
}
class CircularListTest implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
+
public CircularListTest next = null;
public static CircularListTest list = null;
--- a/test/jdk/java/io/Serializable/oldTests/PrimitivesTest.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/oldTests/PrimitivesTest.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, 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,6 +22,8 @@
*/
public class PrimitivesTest implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
+
byte b = 1;
char c = 'c';
float f = 3.14159f;
--- a/test/jdk/java/io/Serializable/oldTests/ValidateClass.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/oldTests/ValidateClass.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, 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
@@ -64,7 +64,7 @@
Validator vc_u;
vc_u = (Validator)q.readObject();
- if (vc_u.validated != Integer.MIN_VALUE) {
+ if (Validator.validated != Integer.MIN_VALUE) {
System.err.println("\nTEST FAILED: Validation callbacks did " +
"not complete.");
throw new Error();
@@ -80,6 +80,7 @@
}
class MissingWriterClass implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
int i = 77;
private void writeObject(ObjectOutputStream pw) throws IOException {
@@ -88,6 +89,7 @@
}
class MissingReaderClass implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
int i = 77;
private void readObject(ObjectInputStream pr) throws IOException {
@@ -97,6 +99,8 @@
class Validator implements ObjectInputValidation, java.io.Serializable {
+ private static final long serialVersionUID = 1L;
+
static int validated = Integer.MAX_VALUE; // Last value validated
int priority;
Validator next = null;
--- a/test/jdk/java/io/Serializable/optionalDataEnd/OptionalDataEnd.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/optionalDataEnd/OptionalDataEnd.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, 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
@@ -31,6 +31,8 @@
import java.io.*;
class Foo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
int reps;
Foo(int reps) {
@@ -40,7 +42,7 @@
private void writeObject(ObjectOutputStream out) throws IOException {
out.defaultWriteObject();
for (int i = 0; i < reps; i++) {
- out.writeObject(new Integer(i));
+ out.writeObject(i);
}
}
--- a/test/jdk/java/io/Serializable/packageAccess/B.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/packageAccess/B.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, 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
@@ -29,6 +29,8 @@
*/
public class B extends A implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
+
public B() {
super(0);
}
--- a/test/jdk/java/io/Serializable/packageAccess/C.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/packageAccess/C.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, 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
@@ -31,6 +31,8 @@
import java.io.*;
public class C implements Serializable {
+ private static final long serialVersionUID = 1L;
+
Object writeReplace() throws ObjectStreamException {
throw new Error("package-private writeReplace called");
}
--- a/test/jdk/java/io/Serializable/packageAccess/D.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/packageAccess/D.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, 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
@@ -29,4 +29,5 @@
*/
public class D extends C implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
}
--- a/test/jdk/java/io/Serializable/packageAccess/PackageAccessTest.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/packageAccess/PackageAccessTest.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, 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
@@ -50,8 +50,8 @@
public class PackageAccessTest {
- static Class bcl;
- static Class dcl;
+ static Class<?> bcl;
+ static Class<?> dcl;
public static void main(String[] args) throws Exception {
setup();
@@ -62,7 +62,7 @@
bcl = Class.forName("B", true, ldr);
dcl = Class.forName("D", true, ldr);
- Object b = bcl.newInstance();
+ Object b = bcl.getConstructor().newInstance();
try {
swizzle(b);
throw new Error("expected InvalidClassException for class B");
@@ -74,7 +74,7 @@
throw new Error("package private constructor of A invoked");
}
- Object d = dcl.newInstance();
+ Object d = dcl.getConstructor().newInstance();
swizzle(d);
}
}
@@ -103,7 +103,7 @@
super(in);
}
- protected Class resolveClass(ObjectStreamClass desc)
+ protected Class<?> resolveClass(ObjectStreamClass desc)
throws IOException, ClassNotFoundException
{
String n = desc.getName();
--- a/test/jdk/java/io/Serializable/parents/EvolvedClass.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/parents/EvolvedClass.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, 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
@@ -52,6 +52,8 @@
* must not be invoked.
*/
class ASuperClass implements Serializable {
+ private static final long serialVersionUID = 1L;
+
String name;
ASuperClass() {
--- a/test/jdk/java/io/Serializable/parents/OriginalClass.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/parents/OriginalClass.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, 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
@@ -59,6 +59,8 @@
class ASubClass implements Serializable {
+ private static final long serialVersionUID = 6341246181948372513L;
+
int num;
ASubClass(int num) {
--- a/test/jdk/java/io/Serializable/partialClassDesc/PartialClassDesc.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/partialClassDesc/PartialClassDesc.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, 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
@@ -43,7 +43,7 @@
public class PartialClassDesc {
public static void main(String[] args) throws Exception {
- Class cl = Class.forName(
+ Class<?> cl = Class.forName(
"A", false, PartialClassDesc.class.getClassLoader());
ObjectStreamClass desc = null;
try {
--- a/test/jdk/java/io/Serializable/primitiveClasses/PrimitiveClasses.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/primitiveClasses/PrimitiveClasses.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,7 @@
public class PrimitiveClasses {
public static void main(String[] args) throws Exception {
- Class[] primClasses = new Class[] {
+ Class<?>[] primClasses = {
boolean.class, byte.class, char.class, short.class,
int.class, long.class, float.class, double.class, void.class
};
--- a/test/jdk/java/io/Serializable/proxy/Basic.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/proxy/Basic.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, 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
@@ -36,12 +36,13 @@
// dummy invocation handler
class Handler implements InvocationHandler, Serializable {
+ private static final long serialVersionUID = 1L;
static Method fooMethod, barMethod;
static {
try {
- fooMethod = Foo.class.getDeclaredMethod("foo", new Class[0]);
- barMethod = Bar.class.getDeclaredMethod("bar", new Class[0]);
+ fooMethod = Foo.class.getDeclaredMethod("foo", new Class<?>[0]);
+ barMethod = Bar.class.getDeclaredMethod("bar", new Class<?>[0]);
} catch (NoSuchMethodException ex) {
throw new Error();
}
@@ -59,9 +60,9 @@
throws Throwable
{
if (method.equals(fooMethod)) {
- return new Integer(foo);
+ return foo;
} else if (method.equals(barMethod)) {
- return new Float(bar);
+ return bar;
} else {
throw new UnsupportedOperationException();
}
@@ -73,7 +74,7 @@
ProxyBlindInputStream(InputStream in) throws IOException { super(in); }
- protected Class resolveProxyClass(String[] interfaces)
+ protected Class<?> resolveProxyClass(String[] interfaces)
throws IOException, ClassNotFoundException
{
throw new ClassNotFoundException();
@@ -83,7 +84,7 @@
public class Basic {
public static void main(String[] args) throws Exception {
ClassLoader loader = Basic.class.getClassLoader();
- Class[] interfaces = new Class[] { Foo.class, Bar.class };
+ Class<?>[] interfaces = { Foo.class, Bar.class };
Random rand = new Random();
int foo = rand.nextInt();
float bar = rand.nextFloat();
--- a/test/jdk/java/io/Serializable/proxy/replace/Test.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/proxy/replace/Test.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,7 @@
import java.lang.reflect.*;
public class Test implements InvocationHandler, Serializable {
+ private static final long serialVersionUID = 1L;
static ClassLoader loader = Test.class.getClassLoader();
@@ -39,10 +40,10 @@
String methName = method.getName();
if (methName.equals("writeReplace")) {
return Proxy.newProxyInstance(
- loader, new Class[] { ReadResolve.class }, this);
+ loader, new Class<?>[] { ReadResolve.class }, this);
} else if (methName.equals("readResolve")) {
return Proxy.newProxyInstance(
- loader, new Class[] { Resolved.class }, this);
+ loader, new Class<?>[] { Resolved.class }, this);
} else if (method.getDeclaringClass() == Object.class) {
return method.invoke(this, args);
} else {
@@ -54,7 +55,7 @@
ByteArrayOutputStream bout = new ByteArrayOutputStream();
ObjectOutputStream oout = new ObjectOutputStream(bout);
oout.writeObject(Proxy.newProxyInstance(
- loader, new Class[] { WriteReplace.class }, new Test()));
+ loader, new Class<?>[] { WriteReplace.class }, new Test()));
oout.close();
ObjectInputStream oin = new ObjectInputStream(
new ByteArrayInputStream(bout.toByteArray()));
--- a/test/jdk/java/io/Serializable/proxy/skipMissing/Handler.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/proxy/skipMissing/Handler.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,8 @@
import java.lang.reflect.*;
class Handler implements InvocationHandler, Serializable {
+ private static final long serialVersionUID = 1L;
+
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable
{
--- a/test/jdk/java/io/Serializable/proxy/skipMissing/Write.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/proxy/skipMissing/Write.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, 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
@@ -42,6 +42,7 @@
class A implements Serializable {
private static final long serialVersionUID = 0L;
String a = "a";
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
Object proxy;
String z = "z";
@@ -65,7 +66,7 @@
public static void main(String[] args) throws Exception {
Object proxy = Proxy.newProxyInstance(
Write.class.getClassLoader(),
- new Class[] { I.class }, new Handler());
+ new Class<?>[] { I.class }, new Handler());
ObjectOutputStream oout = new ObjectOutputStream(
new FileOutputStream("tmp.ser"));
oout.writeObject(new A(proxy));
--- a/test/jdk/java/io/Serializable/readObjectNoData/Read.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/readObjectNoData/Read.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, 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
@@ -48,6 +48,7 @@
class B extends A implements Serializable {
private static final long serialVersionUID = 0L;
boolean bCalled = false;
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
private void readObjectNoData(int wrong) throws ObjectStreamException {
bCalled = true;
}
@@ -82,6 +83,7 @@
class E extends D {
private static final long serialVersionUID = 0L;
boolean eCalled = false;
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
void readObjectNoData() throws ObjectStreamException {
eCalled = true;
}
--- a/test/jdk/java/io/Serializable/recursiveClassDescLookup/Test.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/recursiveClassDescLookup/Test.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, 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
@@ -40,7 +40,7 @@
public class Test {
public static void main(String[] args) throws Exception {
- Class fooCl = Class.forName("Foo", false, Test.class.getClassLoader());
+ Class<?> fooCl = Class.forName("Foo", false, Test.class.getClassLoader());
ObjectStreamClass.lookup(fooCl);
System.out.println("done.");
}
--- a/test/jdk/java/io/Serializable/replaceStringArray/ReplaceStringArray.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/replaceStringArray/ReplaceStringArray.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,8 @@
import java.lang.reflect.Array;
class A implements Serializable {
+ private static final long serialVersionUID = 1L;
+
String stringA;
String stringB;
String stringC;
@@ -74,7 +76,7 @@
Object[] array = (Object[]) obj;
/* Double the array.
* Initialize new array elements with original array. */
- Class arrayComponentType = array.getClass().getComponentType();
+ Class<?> arrayComponentType = array.getClass().getComponentType();
Object[] newarray =
(Object[])Array.newInstance(arrayComponentType,
array.length * 2);
@@ -108,7 +110,7 @@
/* Double the array.
* Initialize new array elements with original array. */
- Class arrayComponentType = array.getClass().getComponentType();
+ Class<?> arrayComponentType = array.getClass().getComponentType();
Object[] newarray =
(Object[])Array.newInstance(arrayComponentType,
array.length * 2);
--- a/test/jdk/java/io/Serializable/resolveClass/MethodTest.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/resolveClass/MethodTest.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, 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
@@ -31,9 +31,11 @@
import java.lang.reflect.*;
public class MethodTest implements Serializable {
+ private static final long serialVersionUID = 1L;
+
public static void main(String[] args) throws Exception {
Method readObject = ObjectInputStream.class.getDeclaredMethod(
- "readObject", new Class[0]);
+ "readObject", new Class<?>[0]);
ByteArrayOutputStream bout = new ByteArrayOutputStream();
ObjectOutputStream oout = new ObjectOutputStream(bout);
oout.writeObject(new MethodTest());
--- a/test/jdk/java/io/Serializable/resolveClass/consTest/ConsTest.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/resolveClass/consTest/ConsTest.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, 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
@@ -42,9 +42,10 @@
import jdk.test.lib.util.JarUtils;
public class ConsTest implements Serializable {
+ private static final long serialVersionUID = 1L;
+
public static void main(String[] args) throws Exception {
- Constructor cons = Boot.class.getConstructor(
- new Class[] { ObjectInputStream.class });
+ Constructor<?> cons = Boot.class.getConstructor(ObjectInputStream.class);
ByteArrayOutputStream bout = new ByteArrayOutputStream();
ObjectOutputStream oout = new ObjectOutputStream(bout);
oout.writeObject(new ConsTest());
@@ -53,7 +54,7 @@
for (int i = 0; i < 100; i++) {
ObjectInputStream oin = new ObjectInputStream(
new ByteArrayInputStream(bout.toByteArray()));
- cons.newInstance(new Object[]{ oin });
+ cons.newInstance(oin);
}
}
}
--- a/test/jdk/java/io/Serializable/resolveClass/deserializeButton/DeserializeButtonTest.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/resolveClass/deserializeButton/DeserializeButtonTest.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, 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
@@ -46,7 +46,8 @@
try (URLClassLoader ldr =
new URLClassLoader(new URL[]{ new URL("file:cb.jar") })) {
- Runnable r = (Runnable) Class.forName("Foo", true, ldr).newInstance();
+ Runnable r = (Runnable) Class.forName("Foo", true, ldr)
+ .getConstructor().newInstance();
r.run();
}
}
--- a/test/jdk/java/io/Serializable/resolveClass/deserializeButton/Foo.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/resolveClass/deserializeButton/Foo.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, 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
@@ -34,7 +34,9 @@
public class Foo implements Runnable {
- static class TestElement extends Object implements Serializable {}
+ static class TestElement extends Object implements Serializable {
+ private static final long serialVersionUID = 1L;
+ }
public void run() {
try {
--- a/test/jdk/java/io/Serializable/resolveClassException/ResolveClassException.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/resolveClassException/ResolveClassException.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, 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
@@ -37,8 +37,8 @@
super(in);
}
- protected Class resolveClass(ObjectStreamClass desc)
- throws IOException, ClassNotFoundException
+ protected Class<?> resolveClass(ObjectStreamClass desc)
+ throws ClassNotFoundException
{
throw new ClassNotFoundException(message);
}
@@ -53,7 +53,7 @@
Object obj;
// write and read an object
- obj = new Integer(5);
+ obj = 5;
bout = new ByteArrayOutputStream();
oout = new ObjectOutputStream(bout);
oout.writeObject(obj);
@@ -67,7 +67,7 @@
}
// write and read an array of objects
- obj = new Integer[] { new Integer(5) };
+ obj = new Integer[] { 5 };
bout = new ByteArrayOutputStream();
oout = new ObjectOutputStream(bout);
oout.writeObject(obj);
--- a/test/jdk/java/io/Serializable/resolveProxyClass/NonPublicInterface.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/resolveProxyClass/NonPublicInterface.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, 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
@@ -37,6 +37,8 @@
public class NonPublicInterface {
static class Handler implements InvocationHandler, Serializable {
+ private static final long serialVersionUID = 1L;
+
public Object invoke(Object obj, Method meth, Object[] args) {
return null;
}
--- a/test/jdk/java/io/Serializable/sanityCheck/SanityCheck.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/sanityCheck/SanityCheck.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, 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
@@ -31,6 +31,7 @@
import java.util.*;
class Item implements Serializable {
+ private static final long serialVersionUID = 1L;
static final int ARRAYLEN = 1000;
static final int STRLEN = 1000;
@@ -55,6 +56,7 @@
double[] dary;
String str;
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
Object[] oary;
Item() {
@@ -86,7 +88,7 @@
fary[i] = rand.nextFloat();
jary[i] = rand.nextLong();
dary[i] = rand.nextDouble();
- oary[i] = new Integer(rand.nextInt());
+ oary[i] = rand.nextInt();
}
char[] strChars = new char[STRLEN];
@@ -126,6 +128,11 @@
return true;
}
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(i, j);
+ }
}
public class SanityCheck {
--- a/test/jdk/java/io/Serializable/serialFilter/SerialFilterTest.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/serialFilter/SerialFilterTest.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, 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
@@ -730,6 +730,7 @@
static class ReadResolveToArray implements Serializable, ObjectInputFilter {
private static final long serialVersionUID = 123456789L;
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
private final Object array;
private final int length;
--- a/test/jdk/java/io/Serializable/serialver/classpath/ClasspathTest.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/serialver/classpath/ClasspathTest.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, 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
@@ -44,6 +44,7 @@
import jdk.test.lib.process.ProcessTools;
public class ClasspathTest implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
int a;
int b;
--- a/test/jdk/java/io/Serializable/serialver/nested/NestedTest.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/serialver/nested/NestedTest.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, 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
@@ -45,7 +45,11 @@
import jdk.test.lib.process.ProcessTools;
public class NestedTest implements Serializable {
+ private static final long serialVersionUID = 1L;
+
public static class Test1 implements Serializable {
+ private static final long serialVersionUID = 1L;
+
public static class Test2 implements Serializable{
private static final long serialVersionUID = 100L;
}
--- a/test/jdk/java/io/Serializable/skipToEndOfBlockData/SkipToEndOfBlockData.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/skipToEndOfBlockData/SkipToEndOfBlockData.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, 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
@@ -32,6 +32,8 @@
import java.io.*;
class MismatchedRead implements Serializable {
+ private static final long serialVersionUID = 1L;
+
int i;
float f;
@@ -59,9 +61,15 @@
MismatchedRead other = (MismatchedRead) obj;
return (i == other.i && f == other.f);
}
+
+ public int hashCode() {
+ return i;
+ }
}
class MismatchedReadExternal implements Externalizable {
+ private static final long serialVersionUID = 1L;
+
int i;
float f;
@@ -91,9 +99,15 @@
MismatchedReadExternal other = (MismatchedReadExternal) obj;
return (i == other.i && f == other.f);
}
+
+ public int hashCode() {
+ return i;
+ }
}
class InnocentBystander implements Serializable {
+ private static final long serialVersionUID = 1L;
+
String s;
InnocentBystander(String s) {
@@ -108,6 +122,10 @@
return s.equals(other.s);
return (s == other.s);
}
+
+ public int hashCode() {
+ return s.hashCode();
+ }
}
public class SkipToEndOfBlockData {
--- a/test/jdk/java/io/Serializable/skipWriteObject/Write.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/skipWriteObject/Write.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, 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
@@ -44,6 +44,8 @@
}
class Bar implements Serializable {
+ private static final long serialVersionUID = 1L;
+
int a, b;
private void writeObject(ObjectOutputStream out) throws IOException {
out.defaultWriteObject();
--- a/test/jdk/java/io/Serializable/skippedObjCNFException/Read.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/skippedObjCNFException/Read.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, 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
@@ -37,6 +37,7 @@
class B implements Serializable {
private static final long serialVersionUID = 0L;
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
Object c;
}
--- a/test/jdk/java/io/Serializable/skippedObjCNFException/Write.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/skippedObjCNFException/Write.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, 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
@@ -43,11 +43,13 @@
// all three following fields not present on reading side
B b = new B();
C c = new C();
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
Object ca = new Object[] { new C() };
}
class B implements Serializable {
private static final long serialVersionUID = 0L;
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
Object c = new C();
}
--- a/test/jdk/java/io/Serializable/stopCustomDeserialization/Read.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/stopCustomDeserialization/Read.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, 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
@@ -32,6 +32,7 @@
class A implements Serializable {
private static final long serialVersionUID = 0L;
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
Object x;
}
--- a/test/jdk/java/io/Serializable/stopCustomDeserialization/Write.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/stopCustomDeserialization/Write.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, 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,6 +39,7 @@
class A implements Serializable {
private static final long serialVersionUID = 0L;
+ @SuppressWarnings("serial") /* Incorrect declarations are being tested */
Object x = new X();
}
--- a/test/jdk/java/io/Serializable/subclass/AbstractObjectInputStream.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/subclass/AbstractObjectInputStream.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, 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
@@ -253,7 +253,7 @@
* @exception InstantiationException TBD.
*/
protected final native Object
- allocateNewObject(Class ofClass, Class ctorClass)
+ allocateNewObject(Class<?> ofClass, Class<?> ctorClass)
throws InstantiationException, IllegalAccessException;
/**
@@ -271,7 +271,7 @@
* @exception InstantiationException TBD.
*/
protected final native Object
- allocateNewArray(Class componentClass, int length)
+ allocateNewArray(Class<?> componentClass, int length)
throws InstantiationException, IllegalAccessException;
/**
@@ -317,5 +317,6 @@
public abstract int skipBytes(int len) throws IOException;
/* @deprecated */
+ @SuppressWarnings("deprecation")
public abstract String readLine() throws IOException;
};
--- a/test/jdk/java/io/Serializable/subclass/SubclassTest.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/subclass/SubclassTest.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, 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
@@ -57,6 +57,8 @@
* Test if customized readObject and writeObject are called.
*/
class B implements Serializable {
+ private static final long serialVersionUID = 1L;
+
public int publicIntField;
public static int numWriteObjectCalled = 0;
B(int v) {
@@ -80,9 +82,11 @@
*/
class C implements Serializable {
+ private static final long serialVersionUID = 1L;
+
public int xx1;
public int xx2;
- static final ObjectStreamField[] serialPersistentFields = {
+ private static final ObjectStreamField[] serialPersistentFields = {
new ObjectStreamField("x1", Integer.TYPE),
new ObjectStreamField("x2", Integer.TYPE),
new ObjectStreamField("x3", Integer.TYPE),
@@ -106,6 +110,8 @@
class A implements Serializable {
+ private static final long serialVersionUID = 1L;
+
public int publicIntField;
public long publicLongField;
public B publicBField;
--- a/test/jdk/java/io/Serializable/subclass/XObjectInputStream.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/subclass/XObjectInputStream.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, 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
@@ -47,7 +47,7 @@
Object readResult = null;
Object prevObject = currentObject;
- Class prevDesc = currentClassDescriptor;
+ Class<?> prevDesc = currentClassDescriptor;
boolean NotImplemented = true;
if (NotImplemented)
@@ -243,7 +243,7 @@
}
private Object currentObject;
- private Class currentClassDescriptor;
+ private Class<?> currentClassDescriptor;
@@ -256,15 +256,15 @@
* Set the accessible flag on it here. ObjectOutputStream
* will call it as necessary.
*/
- public static Method getReadObjectMethod(final Class cl) {
+ public static Method getReadObjectMethod(final Class<?> cl) {
- Method readObjectMethod = (Method)
+ Method readObjectMethod =
java.security.AccessController.doPrivileged
- (new java.security.PrivilegedAction() {
- public Object run() {
+ (new java.security.PrivilegedAction<Method>() {
+ public Method run() {
Method m = null;
try {
- Class[] args = {ObjectInputStream.class};
+ Class<?>[] args = {ObjectInputStream.class};
m = cl.getDeclaredMethod("readObject", args);
int mods = m.getModifiers();
// Method must be private and non-static
@@ -292,8 +292,8 @@
{
try {
java.security.AccessController.doPrivileged
- (new java.security.PrivilegedExceptionAction() {
- public Object run() throws InvocationTargetException,
+ (new java.security.PrivilegedExceptionAction<Void>() {
+ public Void run() throws InvocationTargetException,
java.lang.IllegalAccessException {
m.invoke(obj, argList);
return null;
--- a/test/jdk/java/io/Serializable/subclass/XObjectOutputStream.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/subclass/XObjectOutputStream.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, 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
@@ -116,7 +116,7 @@
int mods = fields[i].getModifiers();
if (Modifier.isStatic(mods) || Modifier.isTransient(mods))
continue;
- Class FieldType = fields[i].getType();
+ Class<?> FieldType = fields[i].getType();
if (FieldType.isPrimitive()) {
System.out.println("Field " + fields[i].getName() +
" has primitive type " + FieldType.toString());
@@ -127,7 +127,7 @@
writeObject(fields[i].get(obj));
if (FieldType.isArray()) {
Object[] array = ((Object[]) fields[i].get(obj));
- Class componentType = FieldType.getComponentType();
+ Class<?> componentType = FieldType.getComponentType();
if (componentType.isPrimitive())
System.out.println("Output " + array.length + " primitive elements of" +
componentType.toString());
@@ -227,6 +227,7 @@
/**
* Write the data and fields to the specified ObjectOutput stream.
*/
+ @SuppressWarnings("deprecation")
public void write(ObjectOutput out) throws IOException {
for (int i = 0; i < next; i++)
System.out.println(fieldName[i] + "=" + intValue[i]);
@@ -300,15 +301,15 @@
* Set the accessible flag on it here.
* Subclass of AbstractObjectOutputStream will call it as necessary.
*/
- public static Method getWriteObjectMethod(final Class cl) {
+ public static Method getWriteObjectMethod(final Class<?> cl) {
- Method writeObjectMethod = (Method)
+ Method writeObjectMethod =
java.security.AccessController.doPrivileged
- (new java.security.PrivilegedAction() {
- public Object run() {
+ (new java.security.PrivilegedAction<Method>() {
+ public Method run() {
Method m = null;
try {
- Class[] args = {ObjectOutputStream.class};
+ Class<?>[] args = {ObjectOutputStream.class};
m = cl.getDeclaredMethod("writeObject", args);
int mods = m.getModifiers();
// Method must be private and non-static
@@ -336,8 +337,8 @@
{
try {
java.security.AccessController.doPrivileged
- (new java.security.PrivilegedExceptionAction() {
- public Object run() throws InvocationTargetException,
+ (new java.security.PrivilegedExceptionAction<Void>() {
+ public Void run() throws InvocationTargetException,
java.lang.IllegalAccessException {
m.invoke(obj, argList);
return null;
--- a/test/jdk/java/io/Serializable/superclassDataLoss/A.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/superclassDataLoss/A.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, 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
@@ -29,6 +29,8 @@
*/
public class A implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
+
protected final int i;
protected A(int i) { this.i = i; }
}
--- a/test/jdk/java/io/Serializable/superclassDataLoss/B.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/superclassDataLoss/B.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, 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
@@ -29,6 +29,8 @@
*/
public class B extends A implements Runnable {
+ private static final long serialVersionUID = 1L;
+
public B() { super(0xDEADBEEF); }
// verify superclass data still present
--- a/test/jdk/java/io/Serializable/superclassDataLoss/SuperclassDataLossTest.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/superclassDataLoss/SuperclassDataLossTest.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, 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
@@ -62,7 +62,7 @@
this.ldr12A = ldr12A;
}
- protected Class resolveClass(ObjectStreamClass desc)
+ protected Class<?> resolveClass(ObjectStreamClass desc)
throws IOException, ClassNotFoundException
{
// resolve A's classdesc to class != B's superclass
@@ -91,7 +91,8 @@
URLClassLoader ldr2 = new URLClassLoader(new URL[] { new URL("file:cb2.jar") })) {
setup();
- Runnable a = (Runnable) Class.forName("B", true, ldr1).newInstance();
+ Runnable a = (Runnable) Class.forName("B", true, ldr1)
+ .getConstructor().newInstance();
a.run();
ByteArrayOutputStream bout = new ByteArrayOutputStream();
--- a/test/jdk/java/io/Serializable/survivePrematureClose/SurvivePrematureClose.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/survivePrematureClose/SurvivePrematureClose.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, 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
@@ -32,6 +32,7 @@
import java.io.*;
class A implements Externalizable {
+ private static final long serialVersionUID = 1L;
public A() {}
@@ -49,6 +50,7 @@
}
class B implements Serializable {
+ private static final long serialVersionUID = 1L;
private void writeObject(ObjectOutputStream out) throws IOException {
out.defaultWriteObject();
--- a/test/jdk/java/io/Serializable/typeSafeEnum/TypeSafeEnum.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/typeSafeEnum/TypeSafeEnum.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,8 @@
import java.io.*;
public class TypeSafeEnum implements Serializable, ObjectInputValidation {
+ private static final long serialVersionUID = 1L;
+
private static int numWriteObject = 0;
private static int numReadObject = 0;
@@ -47,7 +49,7 @@
static boolean verbose = false;
- private Object writeReplace() throws IOException {
+ private Object writeReplace() {
numWriteReplace++;
if (verbose) {
System.out.println("TypeSafeEnum.writeReplace() " +
@@ -56,7 +58,7 @@
return this;
}
- private Object readResolve() throws IOException {
+ private Object readResolve() {
numReadResolve++;
if (verbose) {
System.out.println("readResolve called on " + this.toString());
--- a/test/jdk/java/io/Serializable/typeStringBackRef/TypeStringBackRef.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/typeStringBackRef/TypeStringBackRef.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,7 @@
import java.io.*;
public class TypeStringBackRef implements Serializable {
+ private static final long serialVersionUID = 1L;
String a, b, c, d, e, f, g;
--- a/test/jdk/java/io/Serializable/underlyingOutputStreamException/UnderlyingOutputStreamException.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/underlyingOutputStreamException/UnderlyingOutputStreamException.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,7 @@
import java.io.*;
class OriginalIOException extends IOException {
+ private static final long serialVersionUID = 1L;
}
class BrokenOutputStream extends OutputStream {
--- a/test/jdk/java/io/Serializable/unnamedPackageSwitch/UnnamedPackageSwitchTest.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/unnamedPackageSwitch/UnnamedPackageSwitchTest.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, 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
@@ -46,7 +46,7 @@
class TestObjectInputStream extends ObjectInputStream {
TestObjectInputStream(InputStream in) throws IOException { super(in); }
- protected Class resolveClass(ObjectStreamClass desc)
+ protected Class<?> resolveClass(ObjectStreamClass desc)
throws IOException, ClassNotFoundException
{
String name = desc.getName();
--- a/test/jdk/java/io/Serializable/unresolvableObjectStreamClass/UnresolvableObjectStreamClass.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/unresolvableObjectStreamClass/UnresolvableObjectStreamClass.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2019, 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
@@ -65,4 +65,5 @@
}
class MySerializable implements Serializable {
+ private static final long serialVersionUID = 1L;
}
--- a/test/jdk/java/io/Serializable/unresolvedClassDesc/Foo.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/unresolvedClassDesc/Foo.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, 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
@@ -29,4 +29,5 @@
*/
public class Foo implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
}
--- a/test/jdk/java/io/Serializable/unshared/Write.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/unshared/Write.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, 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
@@ -37,6 +37,8 @@
import java.io.*;
class Foo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
private static final ObjectStreamField[] serialPersistentFields =
new ObjectStreamField[] {
new ObjectStreamField("shared1", String.class),
@@ -54,6 +56,7 @@
class Bar implements Serializable {
private static final long serialVersionUID = 0L;
+ @SuppressWarnings("serial") /* Incorrect use is being tested */
Object obj;
Bar(Object obj) {
--- a/test/jdk/java/io/Serializable/userRWObjError/UserRWObjError.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/userRWObjError/UserRWObjError.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, 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,6 +39,7 @@
*/
public class UserRWObjError implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
public static void main(String[] args) throws Exception {
try {
--- a/test/jdk/java/io/Serializable/validate/Validate.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/validate/Validate.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, 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
@@ -73,6 +73,8 @@
}
class Class1 implements Serializable, ObjectInputValidation {
+ private static final long serialVersionUID = 1L;
+
int a, b;
transient int validates;
--- a/test/jdk/java/io/Serializable/verifyDynamicObjHandleTable/VerifyDynamicObjHandleTable.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/verifyDynamicObjHandleTable/VerifyDynamicObjHandleTable.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, 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
@@ -31,7 +31,9 @@
import java.util.Iterator;
class A implements Serializable {
- static HashSet writeObjectExtent = new HashSet();
+ private static final long serialVersionUID = 1L;
+
+ static HashSet<A> writeObjectExtent = new HashSet<>();
private void writeObject(ObjectOutputStream out) throws IOException {
if (writeObjectExtent.contains(this)) {
@@ -63,7 +65,7 @@
// allow writeObject to be called on any objects that
// have already been serialized. These objects should be
// written out by reference.
- Iterator iter = A.writeObjectExtent.iterator();
+ Iterator<A> iter = A.writeObjectExtent.iterator();
while (iter.hasNext()) {
out.writeObject(iter.next());
}
--- a/test/jdk/java/io/Serializable/writeObjectMemory/WriteObjectMemory.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/writeObjectMemory/WriteObjectMemory.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, 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
@@ -33,7 +33,9 @@
import java.util.Iterator;
class A implements Serializable {
- static HashSet writeObjectExtent = new HashSet();
+ private static final long serialVersionUID = 1L;
+
+ static HashSet<A>writeObjectExtent = new HashSet<>();
private void writeObject(ObjectOutputStream out) throws IOException {
if (writeObjectExtent.contains(this)) {
@@ -53,7 +55,7 @@
public class WriteObjectMemory {
public static void main(String args[])
- throws IOException, ClassNotFoundException
+ throws IOException
{
ObjectOutputStream out =
new ObjectOutputStream(new ByteArrayOutputStream(3000));
@@ -65,7 +67,7 @@
// allow writeObject to be called on any objects that
// have already been serialized. These objects should be
// written out by reference.
- Iterator iter = A.writeObjectExtent.iterator();
+ Iterator<A> iter = A.writeObjectExtent.iterator();
while (iter.hasNext()) {
out.writeObject(iter.next());
}
--- a/test/jdk/java/io/Serializable/writeReplace/WriteReplace.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/writeReplace/WriteReplace.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,9 @@
public class WriteReplace {
static class ReplaceMe implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @SuppressWarnings("serial") /* Incorrect use is being tested */
private Object obj;
private boolean writeReplaceCalled = false;
--- a/test/jdk/java/io/Serializable/wrongReturnTypes/Read.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/wrongReturnTypes/Read.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, 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
@@ -34,6 +34,7 @@
static boolean readObjectNoDataCalled;
+ @SuppressWarnings("serial") /* Incorrect use is being tested */
private Object readObjectNoData() throws ObjectStreamException {
readObjectNoDataCalled = true;
return null;
@@ -46,6 +47,7 @@
static boolean readObjectCalled;
static boolean readResolveCalled;
+ @SuppressWarnings("serial") /* Incorrect use is being tested */
private Integer readObject(ObjectInputStream in)
throws IOException, ClassNotFoundException
{
@@ -54,6 +56,7 @@
return null;
}
+ @SuppressWarnings("serial") /* Incorrect use is being tested */
private B readResolve() throws ObjectStreamException {
readResolveCalled = true;
return this;
--- a/test/jdk/java/io/Serializable/wrongReturnTypes/Write.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/io/Serializable/wrongReturnTypes/Write.java Tue Oct 15 14:19:55 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, 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
@@ -43,12 +43,14 @@
static boolean writeObjectCalled;
static boolean writeReplaceCalled;
+ @SuppressWarnings("serial") /* Incorrect use is being tested */
private Object writeObject(ObjectOutputStream out) throws IOException {
writeObjectCalled = true;
out.defaultWriteObject();
return null;
}
+ @SuppressWarnings("serial") /* Incorrect use is being tested */
private B writeReplace() throws ObjectStreamException {
writeReplaceCalled = true;
return this;
--- a/test/jdk/java/lang/ProcessBuilder/Basic.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/lang/ProcessBuilder/Basic.java Tue Oct 15 14:19:55 2019 +0530
@@ -2111,6 +2111,19 @@
case 2: r = s.read(bytes); break;
default: throw new Error();
}
+ if (r >= 0) {
+ // The child sent unexpected output; print it to diagnose
+ System.out.println("Unexpected child output:");
+ if ((action & 0x2) == 0) {
+ System.out.write(r); // Single character
+
+ } else {
+ System.out.write(bytes, 0, r);
+ }
+ for (int c = s.read(); c >= 0; c = s.read())
+ System.out.write(c);
+ System.out.println("\nEND Child output.");
+ }
equal(-1, r);
} catch (IOException ioe) {
if (!ioe.getMessage().equals("Stream closed")) {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/lang/Runtime/loadLibrary/LoadLibraryTest.java Tue Oct 15 14:19:55 2019 +0530
@@ -0,0 +1,158 @@
+/*
+ * Copyright (c) 2018, Amazon and/or its affiliates. All rights reserved.
+ * Copyright (c) 2019, Azul Systems, Inc. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8231584
+ * @library /test/lib
+ * @run main/othervm LoadLibraryTest
+ */
+
+import java.nio.file.FileSystems;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.nio.file.Path;
+import java.net.MalformedURLException;
+import java.net.URLClassLoader;
+import java.net.URL;
+
+import jdk.test.lib.compiler.CompilerUtils;
+
+public class LoadLibraryTest {
+ static Thread thread1 = null;
+ static Thread thread2 = null;
+
+ static volatile boolean thread1Ready = false;
+
+ private static final String TEST_SRC = System.getProperty("test.src");
+ private static final Path SRC_DIR = Paths.get(TEST_SRC, "src");
+ private static final Path CLS_DIR = Paths.get("classes");
+
+ static TestClassLoader loader;
+ static void someLibLoad() {
+ try {
+/*
+ FileSystems.getDefault();
+
+ // jdk/jdk: loads directly from Bootstrap Classloader (doesn't take lock on Runtime)
+ java.net.NetworkInterface.getNetworkInterfaces();
+
+ System.out.println(jdk.net.ExtendedSocketOptions.SO_FLOW_SLA);
+*/
+ Class c = Class.forName("Target2", true, loader);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ static class TestClassLoader extends URLClassLoader {
+ boolean passed = false;
+
+ public boolean passed() {
+ return passed;
+ }
+
+ TestClassLoader() throws MalformedURLException {
+ super(new URL[] { new URL("file://" + CLS_DIR.toAbsolutePath().toString() + '/') });
+ }
+
+ public String findLibrary(String name) {
+ System.out.println("findLibrary " + name);
+
+ if ("someLibrary".equals(name)) {
+ try {
+ synchronized(thread1) {
+ while(!thread1Ready) {
+ thread1.wait();
+ }
+ thread1.notifyAll();
+ }
+
+ Thread.sleep(10000);
+
+ System.out.println("Thread2 load");
+ someLibLoad();
+
+ // no deadlock happened
+ passed = true;
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ return null;
+ }
+
+ return super.findLibrary(name);
+ }
+ }
+
+
+ public static void main(String[] args) throws Exception {
+ loader = new TestClassLoader();
+
+ if (!CompilerUtils.compile(SRC_DIR, CLS_DIR)) {
+ throw new Exception("Can't compile");
+ }
+
+ thread1 = new Thread() {
+ public void run() {
+ try {
+ synchronized(this) {
+ thread1Ready = true;
+ thread1.notifyAll();
+ thread1.wait();
+ }
+ } catch(InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+
+ System.out.println("Thread1 load");
+ someLibLoad();
+ };
+ };
+
+ thread2 = new Thread() {
+ public void run() {
+ try {
+ Class c = Class.forName("Target", true, loader);
+ System.out.println(c);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ };
+ };
+
+ thread1.setDaemon(true);
+ thread2.setDaemon(true);
+
+ thread1.start();
+ thread2.start();
+
+ thread1.join();
+ thread2.join();
+
+ if (!loader.passed()) {
+ throw new RuntimeException("FAIL");
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/lang/Runtime/loadLibrary/src/Target.java Tue Oct 15 14:19:55 2019 +0530
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2019, Azul Systems, Inc. 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.
+ */
+
+class Target {
+ static {
+ try {
+ System.loadLibrary("someLibrary");
+ throw new RuntimeException("someLibrary was loaded");
+ } catch (UnsatisfiedLinkError e) {
+ // expected: we do not have a someLibrary
+ }
+ }
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/lang/Runtime/loadLibrary/src/Target2.java Tue Oct 15 14:19:55 2019 +0530
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2019, Azul Systems, Inc. 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.
+ */
+
+class Target2 {
+ static {
+ System.loadLibrary("awt");
+ }
+}
+
--- a/test/jdk/java/util/Locale/Bug8040211.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/java/util/Locale/Bug8040211.java Tue Oct 15 14:19:55 2019 +0530
@@ -23,9 +23,9 @@
/*
* @test
- * @bug 8040211 8191404 8203872 8222980
+ * @bug 8040211 8191404 8203872 8222980 8225435
* @summary Checks the IANA language subtag registry data update
- * (LSR Revision: 2019-04-03) with Locale and Locale.LanguageRange
+ * (LSR Revision: 2019-09-16) with Locale and Locale.LanguageRange
* class methods.
* @run main Bug8040211
*/
@@ -42,6 +42,84 @@
static boolean err = false;
+ private static final String ACCEPT_LANGUAGE =
+ "Accept-Language: aam, adp, aog, aue, bcg, cey, cqu, dif, ema,"
+ + " en-gb-oed, gti, kdz, koj, kwq, kxe, lii, lmm, lsn, lsv, lvi, mtm,"
+ + " ngv, nns, oyb, phr, pnd, pub, snz, suj, szy,taj, tjj, tjp, tvx,"
+ + " uss, uth, wkr;q=0.9, ar-hyw;q=0.8, yug;q=0.5, gfx;q=0.4";
+ private static final List<LanguageRange> EXPECTED_RANGE_LIST = List.of(
+ new LanguageRange("aam", 1.0),
+ new LanguageRange("aas", 1.0),
+ new LanguageRange("adp", 1.0),
+ new LanguageRange("dz", 1.0),
+ new LanguageRange("aog", 1.0),
+ new LanguageRange("myd", 1.0),
+ new LanguageRange("aue", 1.0),
+ new LanguageRange("ktz", 1.0),
+ new LanguageRange("bcg", 1.0),
+ new LanguageRange("bgm", 1.0),
+ new LanguageRange("cey", 1.0),
+ new LanguageRange("cqu", 1.0),
+ new LanguageRange("quh", 1.0),
+ new LanguageRange("dif", 1.0),
+ new LanguageRange("dit", 1.0),
+ new LanguageRange("ema", 1.0),
+ new LanguageRange("uok", 1.0),
+ new LanguageRange("en-gb-oed", 1.0),
+ new LanguageRange("en-gb-oxendict", 1.0),
+ new LanguageRange("gti", 1.0),
+ new LanguageRange("nyc", 1.0),
+ new LanguageRange("kdz", 1.0),
+ new LanguageRange("ncp", 1.0),
+ new LanguageRange("koj", 1.0),
+ new LanguageRange("kwv", 1.0),
+ new LanguageRange("kwq", 1.0),
+ new LanguageRange("yam", 1.0),
+ new LanguageRange("kxe", 1.0),
+ new LanguageRange("tvd", 1.0),
+ new LanguageRange("lii", 1.0),
+ new LanguageRange("raq", 1.0),
+ new LanguageRange("lmm", 1.0),
+ new LanguageRange("rmx", 1.0),
+ new LanguageRange("lsn", 1.0),
+ new LanguageRange("lsv", 1.0),
+ new LanguageRange("lvi", 1.0),
+ new LanguageRange("mtm", 1.0),
+ new LanguageRange("ymt", 1.0),
+ new LanguageRange("ngv", 1.0),
+ new LanguageRange("nnx", 1.0),
+ new LanguageRange("nns", 1.0),
+ new LanguageRange("nbr", 1.0),
+ new LanguageRange("oyb", 1.0),
+ new LanguageRange("thx", 1.0),
+ new LanguageRange("skk", 1.0),
+ new LanguageRange("jeg", 1.0),
+ new LanguageRange("phr", 1.0),
+ new LanguageRange("pmu", 1.0),
+ new LanguageRange("pnd", 1.0),
+ new LanguageRange("pub", 1.0),
+ new LanguageRange("puz", 1.0),
+ new LanguageRange("snz", 1.0),
+ new LanguageRange("asd", 1.0),
+ new LanguageRange("suj", 1.0),
+ new LanguageRange("szy", 1.0),
+ new LanguageRange("taj", 1.0),
+ new LanguageRange("tsf", 1.0),
+ new LanguageRange("tjj", 1.0),
+ new LanguageRange("tjp", 1.0),
+ new LanguageRange("tvx", 1.0),
+ new LanguageRange("uss", 1.0),
+ new LanguageRange("uth", 1.0),
+ new LanguageRange("wkr", 0.9),
+ new LanguageRange("ar-hyw", 0.8),
+ new LanguageRange("yug", 0.5),
+ new LanguageRange("yuu", 0.5),
+ new LanguageRange("gfx", 0.4),
+ new LanguageRange("oun", 0.4),
+ new LanguageRange("mwj", 0.4),
+ new LanguageRange("vaj", 0.4)
+ );
+
public static void main(String[] args) {
testLanguageRange();
testLocale();
@@ -66,70 +144,15 @@
private static void test_parse() {
boolean error = false;
- String str = "Accept-Language: aam, adp, aue, bcg, cqu, ema,"
- + " en-gb-oed, gti, kdz, koj, kwq, kxe, lii, lmm, mtm, ngv,"
- + " oyb, phr, pub, suj, taj;q=0.9, ar-hyw;q=0.8, yug;q=0.5, gfx;q=0.4";
- ArrayList<LanguageRange> expected = new ArrayList<>();
- expected.add(new LanguageRange("aam", 1.0));
- expected.add(new LanguageRange("aas", 1.0));
- expected.add(new LanguageRange("adp", 1.0));
- expected.add(new LanguageRange("dz", 1.0));
- expected.add(new LanguageRange("aue", 1.0));
- expected.add(new LanguageRange("ktz", 1.0));
- expected.add(new LanguageRange("bcg", 1.0));
- expected.add(new LanguageRange("bgm", 1.0));
- expected.add(new LanguageRange("cqu", 1.0));
- expected.add(new LanguageRange("quh", 1.0));
- expected.add(new LanguageRange("ema", 1.0));
- expected.add(new LanguageRange("uok", 1.0));
- expected.add(new LanguageRange("en-gb-oed", 1.0));
- expected.add(new LanguageRange("en-gb-oxendict", 1.0));
- expected.add(new LanguageRange("gti", 1.0));
- expected.add(new LanguageRange("nyc", 1.0));
- expected.add(new LanguageRange("kdz", 1.0));
- expected.add(new LanguageRange("ncp", 1.0));
- expected.add(new LanguageRange("koj", 1.0));
- expected.add(new LanguageRange("kwv", 1.0));
- expected.add(new LanguageRange("kwq", 1.0));
- expected.add(new LanguageRange("yam", 1.0));
- expected.add(new LanguageRange("kxe", 1.0));
- expected.add(new LanguageRange("tvd", 1.0));
- expected.add(new LanguageRange("lii", 1.0));
- expected.add(new LanguageRange("raq", 1.0));
- expected.add(new LanguageRange("lmm", 1.0));
- expected.add(new LanguageRange("rmx", 1.0));
- expected.add(new LanguageRange("mtm", 1.0));
- expected.add(new LanguageRange("ymt", 1.0));
- expected.add(new LanguageRange("ngv", 1.0));
- expected.add(new LanguageRange("nnx", 1.0));
- expected.add(new LanguageRange("oyb", 1.0));
- expected.add(new LanguageRange("thx", 1.0));
- expected.add(new LanguageRange("skk", 1.0));
- expected.add(new LanguageRange("jeg", 1.0));
- expected.add(new LanguageRange("phr", 1.0));
- expected.add(new LanguageRange("pmu", 1.0));
- expected.add(new LanguageRange("pub", 1.0));
- expected.add(new LanguageRange("puz", 1.0));
- expected.add(new LanguageRange("suj", 1.0));
- expected.add(new LanguageRange("xsj", 1.0));
- expected.add(new LanguageRange("taj", 0.9));
- expected.add(new LanguageRange("tsf", 0.9));
- expected.add(new LanguageRange("ar-hyw", 0.8));
- expected.add(new LanguageRange("yug", 0.5));
- expected.add(new LanguageRange("yuu", 0.5));
- expected.add(new LanguageRange("gfx", 0.4));
- expected.add(new LanguageRange("oun", 0.4));
- expected.add(new LanguageRange("mwj", 0.4));
- expected.add(new LanguageRange("vaj", 0.4));
- List<LanguageRange> got = LanguageRange.parse(str);
- if (!areEqual(expected, got)) {
+ List<LanguageRange> got = LanguageRange.parse(ACCEPT_LANGUAGE);
+ if (!areEqual(EXPECTED_RANGE_LIST, got)) {
error = true;
System.err.println(" language parse() test failed.");
}
if (error) {
err = true;
- System.err.println(" test_parse() failed.");
+ System.out.println(" test_parse() failed.");
} else {
System.out.println(" test_parse() passed.");
}
@@ -152,7 +175,7 @@
+ ", weight=" + lr.getWeight());
}
- System.out.println(" Actual size=" + actualSize);
+ System.err.println(" Actual size=" + actualSize);
for (LanguageRange lr : got) {
System.err.println(" range=" + lr.getRange()
+ ", weight=" + lr.getWeight());
@@ -351,11 +374,11 @@
String tags,
String expectedTags,
String actualTags) {
- System.out.println("\nIncorrect " + methodName + " result.");
- System.out.println(" Priority list : " + priorityList);
- System.out.println(" Language tags : " + tags);
- System.out.println(" Expected value : " + expectedTags);
- System.out.println(" Actual value : " + actualTags);
+ System.err.println("\nIncorrect " + methodName + " result.");
+ System.err.println(" Priority list : " + priorityList);
+ System.err.println(" Language tags : " + tags);
+ System.err.println(" Expected value : " + expectedTags);
+ System.err.println(" Actual value : " + actualTags);
}
}
--- a/test/jdk/jdk/jfr/event/io/EvilInstrument.java Sat Oct 12 08:49:59 2019 +0530
+++ b/test/jdk/jdk/jfr/event/io/EvilInstrument.java Tue Oct 15 14:19:55 2019 +0530
@@ -52,6 +52,7 @@
* @library /test/lib /test/jdk
* @modules java.instrument
*
+ * @build jdk.jfr.event.io.EvilInstrument
* @run shell MakeJAR.sh EvilInstrument 'Can-Redefine-Classes: true'
* @run main/othervm -javaagent:EvilInstrument.jar jdk.jfr.event.io.EvilInstrument
*/