Skip to content

Commit 3b9fdf5

Browse files
authored
Merge pull request #1913 from SAP/pr-jdk-11.0.27+1
Merge to tag jdk-11.0.27+1
2 parents 7b64bd2 + 237e58d commit 3b9fdf5

File tree

23 files changed

+577
-93
lines changed

23 files changed

+577
-93
lines changed

.github/workflows/build-macos.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ on:
5555
jobs:
5656
build-macos:
5757
name: build
58-
runs-on: macos-12
58+
runs-on: macos-13
5959

6060
strategy:
6161
fail-fast: false
@@ -98,6 +98,7 @@ jobs:
9898
--with-jtreg=${{ steps.jtreg.outputs.path }}
9999
--enable-jtreg-failure-handler
100100
--with-zlib=system
101+
--disable-warnings-as-errors
101102
${{ inputs.extra-conf-options }} ${{ inputs.configure-arguments }} || (
102103
echo "Dumping config.log:" &&
103104
cat config.log &&

.github/workflows/main.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ jobs:
231231
uses: ./.github/workflows/build-macos.yml
232232
with:
233233
platform: macos-x64
234-
xcode-toolset-version: '13.4.1'
234+
xcode-toolset-version: '14.3.1'
235235
configure-arguments: ${{ github.event.inputs.configure-arguments }}
236236
make-arguments: ${{ github.event.inputs.make-arguments }}
237237
if: needs.select.outputs.macos-x64 == 'true'
@@ -242,7 +242,7 @@ jobs:
242242
uses: ./.github/workflows/build-macos.yml
243243
with:
244244
platform: macos-aarch64
245-
xcode-toolset-version: '13.4.1'
245+
xcode-toolset-version: '14.3.1'
246246
extra-conf-options: '--openjdk-target=aarch64-apple-darwin'
247247
configure-arguments: ${{ github.event.inputs.configure-arguments }}
248248
make-arguments: ${{ github.event.inputs.make-arguments }}
@@ -306,7 +306,7 @@ jobs:
306306
with:
307307
platform: macos-x64
308308
bootjdk-platform: macos-x64
309-
runs-on: macos-12
309+
runs-on: macos-13
310310

311311
test-windows-x64:
312312
name: windows-x64

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ jobs:
127127
run: |
128128
# On macOS we need to install some dependencies for testing
129129
brew install make
130-
sudo xcode-select --switch /Applications/Xcode_13.4.1.app/Contents/Developer
130+
sudo xcode-select --switch /Applications/Xcode_14.3.1.app/Contents/Developer
131131
# This will make GNU make available as 'make' and not only as 'gmake'
132132
echo '/usr/local/opt/make/libexec/gnubin' >> $GITHUB_PATH
133133
if: runner.os == 'macOS'

.jcheck/conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[general]
22
project=jdk-updates
33
jbs=JDK
4-
version=11.0.26
4+
version=11.0.27
55

66
[checks]
77
error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace,problemlists

make/autoconf/version-numbers

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,16 @@
2828

2929
DEFAULT_VERSION_FEATURE=11
3030
DEFAULT_VERSION_INTERIM=0
31-
DEFAULT_VERSION_UPDATE=26
31+
DEFAULT_VERSION_UPDATE=27
3232
DEFAULT_VERSION_PATCH=0
3333
DEFAULT_VERSION_EXTRA1=0
3434
DEFAULT_VERSION_EXTRA2=0
3535
DEFAULT_VERSION_EXTRA3=0
36-
DEFAULT_VERSION_DATE=2025-01-21
36+
DEFAULT_VERSION_DATE=2025-04-15
3737
DEFAULT_VERSION_CLASSFILE_MAJOR=55 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
3838
DEFAULT_VERSION_CLASSFILE_MINOR=0
3939
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="10 11"
40-
DEFAULT_PROMOTED_VERSION_PRE=
40+
DEFAULT_PROMOTED_VERSION_PRE=ea
4141

4242
LAUNCHER_NAME=openjdk
4343
PRODUCT_NAME=OpenJDK

make/data/lsrdata/language-subtag-registry.txt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
File-Date: 2024-06-14
1+
File-Date: 2024-11-19
22
%%
33
Type: language
44
Subtag: aa
@@ -47991,6 +47991,16 @@ Added: 2008-10-14
4799147991
Prefix: kw
4799247992
%%
4799347993
Type: variant
47994+
Subtag: kleinsch
47995+
Description: Kleinschmidt orthography
47996+
Description: Allattaasitaamut
47997+
Added: 2024-07-20
47998+
Prefix: kl
47999+
Prefix: kl-tunumiit
48000+
Comments: Orthography for Greenlandic designed by Samuel Kleinschmidt,
48001+
used from 1851 to 1973.
48002+
%%
48003+
Type: variant
4799448004
Subtag: kociewie
4799548005
Description: The Kociewie dialect of Polish
4799648006
Added: 2014-11-27

src/hotspot/os/linux/cgroupV1Subsystem_linux.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,9 +225,9 @@ void CgroupV1Subsystem::print_version_specific_info(outputStream* st) {
225225
jlong kmem_limit = kernel_memory_limit_in_bytes();
226226
jlong kmem_max_usage = kernel_memory_max_usage_in_bytes();
227227

228+
OSContainer::print_container_helper(st, kmem_limit, "kernel_memory_limit_in_bytes");
228229
OSContainer::print_container_helper(st, kmem_usage, "kernel_memory_usage_in_bytes");
229-
OSContainer::print_container_helper(st, kmem_limit, "kernel_memory_max_usage_in_bytes");
230-
OSContainer::print_container_helper(st, kmem_max_usage, "kernel_memory_limit_in_bytes");
230+
OSContainer::print_container_helper(st, kmem_max_usage, "kernel_memory_max_usage_in_bytes");
231231
}
232232

233233
char * CgroupV1Subsystem::cpu_cpuset_cpus() {

src/hotspot/os/windows/os_windows.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1741,7 +1741,10 @@ void os::win32::print_windows_version(outputStream* st) {
17411741
// - 2016 GA 10/2016 build: 14393
17421742
// - 2019 GA 11/2018 build: 17763
17431743
// - 2022 GA 08/2021 build: 20348
1744-
if (build_number > 20347) {
1744+
// - 2025 Preview build : 26040
1745+
if (build_number > 26039) {
1746+
st->print("Server 2025");
1747+
} else if (build_number > 20347) {
17451748
st->print("Server 2022");
17461749
} else if (build_number > 17762) {
17471750
st->print("Server 2019");

src/hotspot/share/classfile/classLoaderData.cpp

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -619,6 +619,21 @@ void ClassLoaderData::unload() {
619619
// after erroneous classes are released.
620620
classes_do(InstanceKlass::notify_unload_class);
621621

622+
// Method::clear_jmethod_ids only sets the jmethod_ids to NULL without
623+
// releasing the memory for related JNIMethodBlocks and JNIMethodBlockNodes.
624+
// This is done intentionally because native code (e.g. JVMTI agent) holding
625+
// jmethod_ids may access them after the associated classes and class loader
626+
// are unloaded. The Java Native Interface Specification says "method ID
627+
// does not prevent the VM from unloading the class from which the ID has
628+
// been derived. After the class is unloaded, the method or field ID becomes
629+
// invalid". In real world usages, the native code may rely on jmethod_ids
630+
// being NULL after class unloading. Hence, it is unsafe to free the memory
631+
// from the VM side without knowing when native code is going to stop using
632+
// them.
633+
if (_jmethod_ids != NULL) {
634+
Method::clear_jmethod_ids(this);
635+
}
636+
622637
// Clean up global class iterator for compiler
623638
static_klass_iterator.adjust_saved_class(this);
624639
}
@@ -754,15 +769,6 @@ ClassLoaderData::~ClassLoaderData() {
754769
_metaspace = NULL;
755770
delete m;
756771
}
757-
// Clear all the JNI handles for methods
758-
// These aren't deallocated and are going to look like a leak, but that's
759-
// needed because we can't really get rid of jmethodIDs because we don't
760-
// know when native code is going to stop using them. The spec says that
761-
// they're "invalid" but existing programs likely rely on their being
762-
// NULL after class unloading.
763-
if (_jmethod_ids != NULL) {
764-
Method::clear_jmethod_ids(this);
765-
}
766772
// Delete lock
767773
delete _metaspace_lock;
768774

src/hotspot/share/oops/method.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2191,10 +2191,15 @@ bool Method::is_method_id(jmethodID mid) {
21912191
Method* Method::checked_resolve_jmethod_id(jmethodID mid) {
21922192
if (mid == NULL) return NULL;
21932193
Method* o = resolve_jmethod_id(mid);
2194-
if (o == NULL || o == JNIMethodBlock::_free_method || !((Metadata*)o)->is_method()) {
2194+
if (o == NULL || o == JNIMethodBlock::_free_method) {
21952195
return NULL;
21962196
}
2197-
return o;
2197+
// Method should otherwise be valid. Assert for testing.
2198+
assert(is_valid_method(o), "should be valid jmethodid");
2199+
// If the method's class holder object is unreferenced, but not yet marked as
2200+
// unloaded, we need to return NULL here too because after a safepoint, its memory
2201+
// will be reclaimed.
2202+
return o->method_holder()->is_loader_alive() ? o : NULL;
21982203
};
21992204

22002205
void Method::set_on_stack(const bool value) {

0 commit comments

Comments
 (0)