Update to shenandoah-jdk8u342-b06 (EA)

Update release notes for shenandoah-8u342-b06.
Switch to EA mode for 8u342 pre-release builds.
Print release file during build, which should now include a correct SOURCE value from .src-rev
Update tarball script with IcedTea GitHub URL and .src-rev generation
Use "git apply" with patches in the tarball script to allow binary diffs
Remove redundant "REPOS" variable from tarball script
Include script to generate bug list for release notes
Update tzdata requirement to 2022a to match JDK-8283350
This commit is contained in:
Andrew Hughes 2022-07-17 17:18:02 +01:00
parent ccc5eab535
commit 1a5e8e1c00
6 changed files with 245 additions and 43 deletions

1
.gitignore vendored
View File

@ -255,3 +255,4 @@
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b01-4curve.tar.xz /openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b01-4curve.tar.xz
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b06-4curve.tar.xz /openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b06-4curve.tar.xz
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b09-4curve.tar.xz /openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b09-4curve.tar.xz
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u342-b06-4curve.tar.xz

106
NEWS
View File

@ -3,6 +3,112 @@ Key:
JDK-X - https://bugs.openjdk.java.net/browse/JDK-X JDK-X - https://bugs.openjdk.java.net/browse/JDK-X
CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
New in release OpenJDK 8u342 (2022-07-19):
===========================================
Live versions of these release notes can be found at:
* https://bitly.com/openjdk8u342
* https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u342.txt
* Other changes
- JDK-8031567: Better model for storing source revision information
- JDK-8076190: Customizing the generation of a PKCS12 keystore
- JDK-8129572: Cleanup usage of getResourceAsStream in jaxp
- JDK-8132256: jaxp: Investigate removal of com/sun/org/apache/bcel/internal/util/ClassPath.java
- JDK-8168926: C2: Bytecode escape analyzer crashes due to stack overflow
- JDK-8170385: JDK-8031567 broke source bundles
- JDK-8170392: JDK-8031567 broke builds from source bundles
- JDK-8170530: bash configure output contains a typo in a suggested library name
- JDK-8190753: (zipfs): Accessing a large entry (> 2^31 bytes) leads to a negative initial size for ByteArrayOutputStream
- JDK-8194154: System property user.dir should not be changed
- JDK-8202142: jfr/event/io/TestInstrumentation is unstable
- JDK-8221988: add possibility to build with Visual Studio 2019
- JDK-8223396: [TESTBUG] several jfr tests do not clean up files created in /tmp
- JDK-8230865: [TESTBUG] jdk/jfr/event/io/EvilInstrument.java fails at-run shell MakeJAR.sh target
- JDK-8235211: serviceability/attach/RemovingUnixDomainSocketTest.java fails with AttachNotSupportedException: Unable to open socket file
- JDK-8244973: serviceability/attach/RemovingUnixDomainSocketTest.java fails "stderr was not empty"
- JDK-8248876: LoadObject with bad base address created for exec file on linux
- JDK-8253424: Add support for running pre-submit testing using GitHub Actions
- JDK-8253865: Pre-submit testing using GitHub Actions does not detect failures reliably
- JDK-8254054: Pre-submit testing using GitHub Actions should not use the deprecated set-env command
- JDK-8254173: Add Zero, Minimal hotspot targets to submit workflow
- JDK-8254175: Build no-pch configuration in debug mode for submit checks
- JDK-8254282: Add Linux x86_32 builds to submit workflow
- JDK-8255239: The timezone of the hs_err_pid log file is corrupted in Japanese locale
- JDK-8255305: Add Linux x86_32 tier1 to submit workflow
- JDK-8255352: Archive important test outputs in submit workflow
- JDK-8255373: Submit workflow artifact name is always "test-results_.zip"
- JDK-8255895: Submit workflow artifacts miss hs_errs/replays due to ZIP include mismatch
- JDK-8256127: Add cross-compiled foreign architectures builds to submit workflow
- JDK-8256277: Github Action build on macOS should define OS and Xcode versions
- JDK-8256354: Github Action build on Windows should define OS and MSVC versions
- JDK-8256393: Github Actions build on Linux should define OS and GCC versions
- JDK-8256414: add optimized build to submit workflow
- JDK-8256747: GitHub Actions: decouple the hotspot build-only jobs from Linux x64 testing
- JDK-8257056: Submit workflow should apt-get update to avoid package installation errors
- JDK-8259924: GitHub actions fail on Linux x86_32 with "Could not configure libc6:i386"
- JDK-8260460: GitHub actions still fail on Linux x86_32 with "Could not configure libc6:i386"
- JDK-8261107: ArrayIndexOutOfBoundsException in the ICC_Profile.getInstance(InputStream)
- JDK-8263667: Avoid running GitHub actions on branches named pr/*
- JDK-8266187: Memory leak in appendBootClassPath()
- JDK-8274658: ISO 4217 Amendment 170 Update
- JDK-8274751: Drag And Drop hangs on Windows
- JDK-8278138: OpenJDK8 fails to start on Windows 8.1 after upgrading compiler to VS2017
- JDK-8279669: test/jdk/com/sun/jdi/TestScaffold.java uses wrong condition
- JDK-8281814: Debuginfo.diz contains redundant build path after backport JDK-8025936
- JDK-8282225: GHA: Allow one concurrent run per PR only
- JDK-8282458: Update .jcheck/conf file for 8u move to git
- JDK-8282552: Bump update version of OpenJDK: 8u342
- JDK-8283350: (tz) Update Timezone Data to 2022a
- JDK-8284620: CodeBuffer may leak _overflow_arena
- JDK-8284772: 8u GHA: Use GCC Major Version Dependencies Only
- JDK-8285445: cannot open file "NUL:"
- JDK-8285523: Improve test java/io/FileOutputStream/OpenNUL.java
- JDK-8285591: [11] add signum checks in DSA.java engineVerify
- JDK-8285727: [11u, 17u] Unify fix for JDK-8284920 with version from head
- JDK-8286989: Build failure on macOS after 8281814
- JDK-8287537: 8u JDK-8284620 backport broke AArch64 build
Notes on individual issues:
===========================
security-libs/java.security:
JDK-8215293: Customizing PKCS12 keystore Generation
===================================================
New system and security properties have been added to enable users to
customize the generation of PKCS #12 keystores. This includes
algorithms and parameters for key protection, certificate protection,
and MacData. The detailed explanation and possible values for these
properties can be found in the "PKCS12 KeyStore properties" section of
the `java.security` file.
Also, support for the following SHA-2 based HmacPBE algorithms has
been added to the SunJCE provider:
* HmacPBESHA224
* HmacPBESHA256
* HmacPBESHA384
* HmacPBESHA512
* HmacPBESHA512/224
* HmacPBESHA512/256
core-libs/java.io:
JDK-8285660: Enable Windows Alternate Data Streams by default
=============================================================
The Windows implementation of `java.io.File` has been changed so that
strict validity checks are **not** performed by default on file
paths. This includes allowing colons (':') in the path other than only
immediately after a single drive letter. It also allows paths that
represent NTFS Alternate Data Streams (ADS), such as
"filename:streamname". This restores the default behavior of
`java.io.File` to what it was prior to the April 2022 CPU in which
strict validity checks were not performed by default on file paths on
Windows. To re-enable strict path checking in `java.io.File`, the
system property `jdk.io.File.enableADS` should be set to `false` (case
ignored). This might be preferable, for example, if Windows special
device paths such as `NUL:` are *not* used.
New in release OpenJDK 8u332 (2022-04-19): New in release OpenJDK 8u332 (2022-04-19):
=========================================== ===========================================
Live versions of these release notes can be found at: Live versions of these release notes can be found at:

View File

@ -42,8 +42,8 @@ set -e
OPENJDK_URL_DEFAULT=https://github.com OPENJDK_URL_DEFAULT=https://github.com
COMPRESSION_DEFAULT=xz COMPRESSION_DEFAULT=xz
# jdk is last for its size # Corresponding IcedTea version
REPOS_DEFAULT="hotspot corba jaxws jaxp langtools nashorn jdk" ICEDTEA_VERSION=3.0
if [ "x$1" = "xhelp" ] ; then if [ "x$1" = "xhelp" ] ; then
echo -e "Behaviour may be specified by setting the following variables:\n" echo -e "Behaviour may be specified by setting the following variables:\n"
@ -56,7 +56,6 @@ if [ "x$1" = "xhelp" ] ; then
echo "REPO_ROOT - the location of the Mercurial repository to archive (optional; defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME)" echo "REPO_ROOT - the location of the Mercurial repository to archive (optional; defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME)"
echo "PR3822 - the path to the PR3822 patch to apply (optional; downloaded if unavailable)" echo "PR3822 - the path to the PR3822 patch to apply (optional; downloaded if unavailable)"
echo "JCONSOLE_JS_PATCH - the path to a patch to fix non-availiability of jconsole.js (optional; defaults to ${JCONSOLE_JS_PATCH_DEFAULT})" echo "JCONSOLE_JS_PATCH - the path to a patch to fix non-availiability of jconsole.js (optional; defaults to ${JCONSOLE_JS_PATCH_DEFAULT})"
echo "REPOS - specify the repositories to use (optional; defaults to ${REPOS_DEFAULT})"
exit 1; exit 1;
fi fi
@ -102,10 +101,6 @@ if [ "x$REPO_ROOT" = "x" ] ; then
REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}.git" REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}.git"
echo "No repository root specified; default to ${REPO_ROOT}" echo "No repository root specified; default to ${REPO_ROOT}"
fi; fi;
if [ "x$REPOS" = "x" ] ; then
REPOS=${REPOS_DEFAULT}
echo "No repositories specified; defaulting to ${REPOS}"
fi;
echo -e "Settings:" echo -e "Settings:"
echo -e "\tVERSION: ${VERSION}" echo -e "\tVERSION: ${VERSION}"
@ -117,13 +112,13 @@ echo -e "\tFILE_NAME_ROOT: ${FILE_NAME_ROOT}"
echo -e "\tREPO_ROOT: ${REPO_ROOT}" echo -e "\tREPO_ROOT: ${REPO_ROOT}"
echo -e "\tPR3822: ${PR3822}" echo -e "\tPR3822: ${PR3822}"
echo -e "\tJCONSOLE_JS_PATCH: ${JCONSOLE_JS_PATCH}" echo -e "\tJCONSOLE_JS_PATCH: ${JCONSOLE_JS_PATCH}"
echo -e "\tREPOS: ${REPOS}"
mkdir "${FILE_NAME_ROOT}" mkdir "${FILE_NAME_ROOT}"
pushd "${FILE_NAME_ROOT}" pushd "${FILE_NAME_ROOT}"
echo "Cloning ${VERSION} root repository from ${REPO_ROOT}" echo "Cloning ${VERSION} root repository from ${REPO_ROOT}"
git clone -b ${VERSION} ${REPO_ROOT} openjdk git clone -b ${VERSION} ${REPO_ROOT} openjdk
pushd openjdk pushd openjdk
# UnderlineTaglet.java has a BSD license with a field-of-use restriction, making it non-Free # UnderlineTaglet.java has a BSD license with a field-of-use restriction, making it non-Free
@ -132,6 +127,7 @@ if [ -d langtools ] ; then
rm -vf langtools/test/tools/javadoc/api/basic/TagletPathTest.java rm -vf langtools/test/tools/javadoc/api/basic/TagletPathTest.java
rm -vf langtools/test/tools/javadoc/api/basic/taglets/UnderlineTaglet.java rm -vf langtools/test/tools/javadoc/api/basic/taglets/UnderlineTaglet.java
fi fi
if [ -d jdk ]; then if [ -d jdk ]; then
# jconsole.js has a BSD license with a field-of-use restriction, making it non-Free # jconsole.js has a BSD license with a field-of-use restriction, making it non-Free
echo "Removing jconsole-plugin file with non-Free license" echo "Removing jconsole-plugin file with non-Free license"
@ -148,23 +144,33 @@ rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_224.c
echo "Syncing EC list with NSS" echo "Syncing EC list with NSS"
if [ "x$PR3822" = "x" ] ; then if [ "x$PR3822" = "x" ] ; then
# get pr3822.patch (from http://icedtea.classpath.org/hg/icedtea8) from most correct tag # get pr3822.patch (from https://github.com/icedtea-git/icedtea) in the ${ICEDTEA_VERSION} branch
# Do not push it or publish it (see http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3822) # Do not push it or publish it
wget -O pr3822.patch http://icedtea.classpath.org/hg/icedtea8/raw-file/tip/patches/pr3822-4curve.patch wget -O pr3822.patch https://github.com/icedtea-git/icedtea/raw/${ICEDTEA_VERSION}/patches/pr3822-4curve.patch
patch -Np1 < pr3822.patch echo "Applying ${PWD}/pr3822.patch"
git apply --stat --apply -v -p1 pr3822.patch
rm pr3822.patch rm pr3822.patch
else else
echo "Applying ${PR3822}" echo "Applying ${PR3822}"
patch -Np1 < $PR3822 git apply --stat --apply -v -p1 $PR3822
fi; fi;
fi fi
echo "Patching out use of jconsole.js" echo "Patching out use of jconsole.js"
patch -Np1 < ${JCONSOLE_JS_PATCH} git apply --stat --apply -v -p1 ${JCONSOLE_JS_PATCH}
find . -name '*.orig' -exec rm -vf '{}' ';' find . -name '*.orig' -exec rm -vf '{}' ';'
popd popd
# Generate .src-rev so build has knowledge of the revision the tarball was created from
mkdir build
pushd build
sh ${PWD}/../openjdk/configure
make store-source-revision
popd
rm -rf build
echo "Compressing remaining forest" echo "Compressing remaining forest"
if [ "X$COMPRESSION" = "Xxz" ] ; then if [ "X$COMPRESSION" = "Xxz" ] ; then
SWITCH=cJf SWITCH=cJf
@ -177,5 +183,3 @@ mv ${TARBALL_NAME} ..
popd popd
echo "Done. You may want to remove the uncompressed version." echo "Done. You may want to remove the uncompressed version."

View File

@ -335,7 +335,7 @@
# note, following three variables are sedded from update_sources if used correctly. Hardcode them rather there. # note, following three variables are sedded from update_sources if used correctly. Hardcode them rather there.
%global shenandoah_project openjdk %global shenandoah_project openjdk
%global shenandoah_repo shenandoah-jdk8u %global shenandoah_repo shenandoah-jdk8u
%global openjdk_revision jdk8u332-b09 %global openjdk_revision jdk8u342-b06
%global shenandoah_revision shenandoah-%{openjdk_revision} %global shenandoah_revision shenandoah-%{openjdk_revision}
# Define old aarch64/jdk8u tree variables for compatibility # Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project} %global project %{shenandoah_project}
@ -351,12 +351,12 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u}) %global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27 # eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-}) %global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
%global rpmrelease 7 %global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases) # Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1): # Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases, # - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases # - N%%{?extraver}{?dist} for GA releases
%global is_ga 1 %global is_ga 0
%if %{is_ga} %if %{is_ga}
%global milestone fcs %global milestone fcs
%global milestone_version %{nil} %global milestone_version %{nil}
@ -1270,8 +1270,8 @@ Requires: ca-certificates
# Require javapackages-filesystem for ownership of /usr/lib/jvm/ and macros # Require javapackages-filesystem for ownership of /usr/lib/jvm/ and macros
Requires: javapackages-filesystem Requires: javapackages-filesystem
# Require zoneinfo data provided by tzdata-java subpackage. # Require zoneinfo data provided by tzdata-java subpackage.
# 2021e required as of JDK-8275766 in January 2022 CPU # 2022a required as of JDK-8283350 in 8u342
Requires: tzdata-java >= 2021e Requires: tzdata-java >= 2022a
# for support of kernel stream control # for support of kernel stream control
# libsctp.so.1 is being `dlopen`ed on demand # libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools%{?_isa} Requires: lksctp-tools%{?_isa}
@ -1653,8 +1653,8 @@ BuildRequires: java-%{buildjdkver}-openjdk-devel >= 1.7.0.151-2.6.11.3
%ifarch %{zero_arches} %ifarch %{zero_arches}
BuildRequires: libffi-devel BuildRequires: libffi-devel
%endif %endif
# 2021e required as of JDK-8275766 in January 2022 CPU # 2022a required as of JDK-8283350 in 8u342
BuildRequires: tzdata-java >= 2021e BuildRequires: tzdata-java >= 2022a
# Earlier versions have a bug in tree vectorization on PPC # Earlier versions have a bug in tree vectorization on PPC
BuildRequires: gcc >= 4.8.3-8 BuildRequires: gcc >= 4.8.3-8
@ -2230,6 +2230,10 @@ function installjdk() {
echo "Hardened java binary recommended for launching untrusted code from the Web e.g. javaws" > man/man1/%{alt_java_name}.1 echo "Hardened java binary recommended for launching untrusted code from the Web e.g. javaws" > man/man1/%{alt_java_name}.1
cat man/man1/java.1 >> man/man1/%{alt_java_name}.1 cat man/man1/java.1 >> man/man1/%{alt_java_name}.1
popd popd
# Print release information
cat ${imagepath}/release
fi fi
} }
@ -2838,6 +2842,17 @@ cjc.mainProgram(args)
%endif %endif
%changelog %changelog
* Sun Jul 17 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.342.b06-0.1.ea
- Update to shenandoah-jdk8u342-b06 (EA)
- Update release notes for shenandoah-8u342-b06.
- Switch to EA mode for 8u342 pre-release builds.
- Print release file during build, which should now include a correct SOURCE value from .src-rev
- Update tarball script with IcedTea GitHub URL and .src-rev generation
- Use "git apply" with patches in the tarball script to allow binary diffs
- Remove redundant "REPOS" variable from tarball script
- Include script to generate bug list for release notes
- Update tzdata requirement to 2022a to match JDK-8283350
* Sun Jul 17 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.332.b09-7 * Sun Jul 17 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.332.b09-7
- Rebase FIPS patches from fips branch and simplify by using a single patch from that repository - Rebase FIPS patches from fips branch and simplify by using a single patch from that repository
- * RH2051605: Detect NSS at Runtime for FIPS detection - * RH2051605: Detect NSS at Runtime for FIPS detection

76
openjdk_news.sh Executable file
View File

@ -0,0 +1,76 @@
#!/bin/bash
# Copyright (C) 2022 Red Hat, Inc.
# Written by Andrew John Hughes <gnu.andrew@redhat.com>, 2012-2022
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program 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 Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
OLD_RELEASE=$1
NEW_RELEASE=$2
SUBDIR=$3
REPO=$4
SCRIPT_DIR=$(dirname ${0})
if test "x${SUBDIR}" = "x"; then
echo "No subdirectory specified; using .";
SUBDIR=".";
fi
if test "x$REPO" = "x"; then
echo "No repository specified; using ${PWD}"
REPO=${PWD}
fi
if test x${TMPDIR} = x; then
TMPDIR=/tmp;
fi
echo "Repository: ${REPO}"
if [ -e ${REPO}/.git ] ; then
TYPE=git;
elif [ -e ${REPO}/.hg ] ; then
TYPE=hg;
else
echo "No Mercurial or Git repository detected.";
exit 1;
fi
if test "x$OLD_RELEASE" = "x" || test "x$NEW_RELEASE" = "x"; then
echo "ERROR: Need to specify old and new release";
exit 2;
fi
echo "Listing fixes between $OLD_RELEASE and $NEW_RELEASE in $REPO"
rm -f ${TMPDIR}/fixes2 ${TMPDIR}/fixes3 ${TMPDIR}/fixes
for repos in . $(${SCRIPT_DIR}/discover_trees.sh ${REPO});
do
if test "x$TYPE" = "xhg"; then
hg log -r "tag('$NEW_RELEASE'):tag('$OLD_RELEASE') - tag('$OLD_RELEASE')" -R $REPO/$repos -G -M ${REPO}/${SUBDIR} | \
egrep '^[o:| ]*summary'|grep -v 'Added tag'|sed -r 's#^[o:| ]*summary:\W*([0-9])# - JDK-\1#'| \
sed 's#^[o:| ]*summary:\W*# - #' >> ${TMPDIR}/fixes2;
hg log -v -r "tag('$NEW_RELEASE'):tag('$OLD_RELEASE') - tag('$OLD_RELEASE')" -R $REPO/$repos -G -M ${REPO}/${SUBDIR} | \
egrep '^[o:| ]*[0-9]{7}'|sed -r 's#^[o:| ]*([0-9]{7})# - JDK-\1#' >> ${TMPDIR}/fixes3;
else
git -C ${REPO} log --no-merges --pretty=format:%B ${NEW_RELEASE}...${OLD_RELEASE} -- ${SUBDIR} |egrep '^[0-9]{7}' | \
sed -r 's#^([0-9])# - JDK-\1#' >> ${TMPDIR}/fixes2;
touch ${TMPDIR}/fixes3 ; # unused
fi
done
sort ${TMPDIR}/fixes2 ${TMPDIR}/fixes3 | uniq > ${TMPDIR}/fixes
rm -f ${TMPDIR}/fixes2 ${TMPDIR}/fixes3
echo "In ${TMPDIR}/fixes:"
cat ${TMPDIR}/fixes

View File

@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) = c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671 SHA512 (tapsets-icedtea-3.15.0.tar.xz) = c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b09-4curve.tar.xz) = 23d906ecce6864e0bd3ae4c95ac597eb697c1e28356371aafd7aabab5c3a9a9d861c326125e7a45f15340a5a106c1915808fa93b3ff7cdc8b003647a44caf7fd SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u342-b06-4curve.tar.xz) = bc7fb9c21f33b2edab948b2b31e3198441c7901369476cd4d4ba0056dbba394a0a19099a2d57987641575f17383a4fd2b85a791ee56fbe2deaa246ec89fe9d81