Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
d05f0a6
Initial ajdk commit
phohensee Mar 25, 2026
ff15b08
Add trailing } to jgroup.c
phohensee Mar 25, 2026
4d8aa68
Fix whitespace issues
phohensee Mar 25, 2026
ce20ede
Fix whitespace issue
phohensee Mar 25, 2026
4f2d60a
Remove dependency on JVMTIExport::cv_oop_to_JavaThread
phohensee Mar 31, 2026
af3a3c4
Merge branch 'master' into ajdk
phohensee Apr 2, 2026
65ac59f
Merge branch 'master' into ajdk
phohensee Apr 8, 2026
0f0d965
8353552: Opensource Several Font related tests - Batch 3
Apr 9, 2026
8864f8d
8330704: Clean up non-standard use of /** comments in some langtools …
GoeLin Apr 13, 2026
a98e2b1
8129418: JShell: better highlighting of errors in imports on demand
GoeLin Apr 13, 2026
1f10cef
8355371: NegativeArraySizeException in print methods in IO or System.…
GoeLin Apr 13, 2026
2eb7026
8370378: Some compiler tests inadvertently exclude particular platforms
GoeLin Apr 13, 2026
d639498
8367096: jdk/open/test/jdk/sun/security/pkcs11/ rsa, ec, config, secm…
GoeLin Apr 13, 2026
1b21f61
8323792: ThreadSnapshot::initialize can cause assert in Thread::check…
GoeLin Apr 13, 2026
689a94f
8380474: Crash SEGV in ThreadIdTable::lazy_initialize after JDK-8323792
GoeLin Apr 13, 2026
cc73f89
8068378: [TEST_BUG]The java/awt/Modal/PrintDialogsTest/PrintDialogsTe…
Apr 13, 2026
fae6d97
8319326: GC: Make TestParallelRefProc use createTestJavaProcessBuilder
Apr 13, 2026
23ac287
8368498: Use JUnit instead of TestNG for jdk_text tests
Apr 13, 2026
01235a2
8221451: PIT: sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/Share…
Apr 13, 2026
de31266
8352733: Improve RotFontBoundsTest test
Apr 13, 2026
18be4a5
8360702: runtime/Thread/AsyncExceptionTest.java timed out
Apr 13, 2026
212f865
8378878: Refactor java/nio/channels/AsynchronousSocketChannel test to…
Apr 13, 2026
d2e2cd4
8373623: Refactor Serialization tests for Records to JUnit
Apr 13, 2026
b6b71cb
8354163: Open source Swing tests Batch 1
Apr 13, 2026
1cb22c3
8330806: test/hotspot/jtreg/compiler/c1/TestLargeMonitorOffset.java f…
Apr 14, 2026
52e3a2f
8380947: Add pull request template
gnu-andrew Apr 15, 2026
cf4e36f
8315588: JShell does not accept underscore from JEP 443 even with --e…
GoeLin Apr 15, 2026
89ce44b
8322532: JShell : Unnamed variable issue
GoeLin Apr 15, 2026
19460b2
8329273: C2 SuperWord: Some basic MemorySegment IR tests
GoeLin Apr 15, 2026
072157a
8352877: Opensource Several Font related tests - Batch 1
Apr 15, 2026
2751008
8340851: Open some TextArea awt tests
Apr 15, 2026
1ff170b
8339879: Open some dialog awt tests
Apr 15, 2026
2bd76b4
8339975: Open some dialog awt tests 2
Apr 15, 2026
2ab1a9c
8340140: Open some dialog awt tests 3
Apr 15, 2026
5ea692c
8340336: Open some checkbox awt tests
Apr 15, 2026
4dd2ca0
8340494: Open some dialog awt tests 4
Apr 15, 2026
c86af44
8323672: Suppress unwanted autoconf added flags in CC and CXX
gnu-andrew Apr 15, 2026
8ed00df
8333729: C2 SuperWord: remove some @requires usages in test/hotspot/j…
GoeLin Apr 15, 2026
714610b
8350808: Small typos in JShell method SnippetEvent.toString()
GoeLin Apr 15, 2026
a8042f8
8341833: incomplete snippet from loaded files from command line is ig…
GoeLin Apr 15, 2026
8d9c548
8359364: java/net/URL/EarlyOrDelayedParsing test fails intermittently
GoeLin Apr 15, 2026
c034e99
8373239: Test java/awt/print/PrinterJob/PageRanges.java fails with in…
GoeLin Apr 15, 2026
8cc2696
8378417: Printing All pages results in NPE for 1.1 PrintJob
GoeLin Apr 15, 2026
318b3ce
8382047: Update Libpng to 1.6.57
GoeLin Apr 16, 2026
265b129
Merge master
phohensee Jun 29, 2026
18561e3
Merge master png.h
phohensee Jun 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions make/data/hotspot-symbols/symbols-unix
Original file line number Diff line number Diff line change
Expand Up @@ -229,4 +229,12 @@ JVM_EnsureMaterializedForStackWalk_func
JVM_FindScopedValueBindings
JVM_ScopedValueCache
JVM_SetScopedValueCache
# Multi Tenant API's
JVM_TenantPrepareForDestroy
JVM_IsKilledByTenant
JVM_WakeUpTenantThread
JVM_MaskTenantShutdown
JVM_UnmaskTenantShutdown
JVM_DumpTenantThreadStacks
JVM_SetTenantDeathToVThread
#
27 changes: 27 additions & 0 deletions make/modules/jdk.jgroup/Java.gmk
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#
# Copyright (c) 2025, Alibaba Group Holding Limited. 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.
#

DOCLINT += -Xdoclint:all/protected \
'-Xdoclint/package:java.*,javax.*'
COPY += .sh
DISABLED_WARNINGS_java += missing-explicit-ctor
29 changes: 29 additions & 0 deletions make/modules/jdk.jgroup/Launcher.gmk
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#
# Copyright (c) 2025, Alibaba Group Holding Limited. 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.
#

include LauncherCommon.gmk

$(eval $(call SetupBuildLauncher, jgroup, \
MAIN_CLASS := com.alibaba.ajdk.tools.jgroup.JGroupMain, \
JAVA_ARGS := --add-modules ALL-DEFAULT, \
))
37 changes: 37 additions & 0 deletions src/hotspot/os/posix/signals_posix.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1253,6 +1253,39 @@ int os::get_signal_number(const char* signal_name) {
return -1;
}

// Signal to unblock thread
#ifdef SIGRTMIN
static int SIG_WAKE_UP = (SIGRTMAX - 2);
#elif defined(__APPLE__)
static int SIG_WAKE_UP = (NSIG - 2);
#endif


static void on_sig_wake_up(int sig) { /* no action */ }

// Set up signal handler for awakened thread
static int sig_wake_up_init() {
sigset_t sigset;
struct sigaction sa;

sa.sa_handler = on_sig_wake_up;
sa.sa_flags = 0;
sigemptyset(&sa.sa_mask);
if (-1 == sigaction(SIG_WAKE_UP, &sa, NULL)) {
return -1;
}

sigemptyset(&sigset);
sigaddset(&sigset, SIG_WAKE_UP);
sigprocmask(SIG_UNBLOCK, &sigset, NULL);

return 0;
}

void os::wake_up(Thread *thread) {
pthread_t tid = thread->osthread()->pthread_id();
pthread_kill(tid, SIG_WAKE_UP);
}
void set_signal_handler(int sig) {
// Check for overwrite.
struct sigaction oldAct;
Expand Down Expand Up @@ -1327,6 +1360,10 @@ void install_signal_handlers() {
set_signal_handler(SIGFPE);
PPC64_ONLY(set_signal_handler(SIGTRAP);)
set_signal_handler(SIGXFSZ);
// wake up signal init for multi tenant
if(MultiTenant && TenantThreadStop) {
sig_wake_up_init();
}
if (!ReduceSignalUsage) {
// Install BREAK_SIGNAL's handler in early initialization phase, in
// order to reduce the risk that an attach client accidentally forces
Expand Down
1 change: 1 addition & 0 deletions src/hotspot/share/ci/ciInstanceKlass.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,7 @@ class ciInstanceKlass : public ciKlass {
// Return stable class name suitable for replay file.
const char *replay_name() const;

bool disable_tenant_death() const { return get_instanceKlass()->disable_tenant_death(); }
#ifdef ASSERT
bool debug_final_field_at(int offset);
bool debug_stable_field_at(int offset);
Expand Down
21 changes: 21 additions & 0 deletions src/hotspot/share/classfile/classFileParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -947,6 +947,7 @@ class AnnotationCollector : public ResourceObj{
_field_Stable,
_jdk_internal_vm_annotation_ReservedStackAccess,
_jdk_internal_ValueBased,
_com_alibaba_tenant_DisableTenantDeath,
_annotation_LIMIT
};
const Location _location;
Expand Down Expand Up @@ -1955,6 +1956,15 @@ AnnotationCollector::annotation_index(const ClassLoaderData* loader_data,
if (!privileged) break; // only allow in privileged code
return _jdk_internal_ValueBased;
}
case VM_SYMBOL_ENUM_NAME(com_alibaba_tenant_DisableTenantDeath_signature): {
if (_location != _in_method && _location != _in_class) {
break; // only allow for method and classes
}
if (!privileged) {
break; // only allow in privileged code
}
return _com_alibaba_tenant_DisableTenantDeath;
}
default: {
break;
}
Expand Down Expand Up @@ -2012,6 +2022,17 @@ void ClassFileParser::ClassAnnotationCollector::apply_to(InstanceKlass* ik) {
ik->set_is_value_based();
}
}
// if class define DisableTenantDeath annotation, all method is DisableTenantDeath.
// here do not use MultiTenant && TenantThreadStop switch.
// because cds in make image stage does not contain MultiTenant vm args.
if (has_annotation(_com_alibaba_tenant_DisableTenantDeath)) {
ik->set_disable_tenant_death();
if(TraceTenantThreadStop) {
Thread* current_thread = Thread::current();
ResourceMark rm(current_thread);
tty->print_cr("DisableTenantDeath:%s", ik->name()->as_C_string());
}
}
}

#define MAX_ARGS_SIZE 255
Expand Down
43 changes: 42 additions & 1 deletion src/hotspot/share/classfile/javaClasses.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1565,6 +1565,8 @@ int java_lang_Thread::_tid_offset;
int java_lang_Thread::_continuation_offset;
int java_lang_Thread::_park_blocker_offset;
int java_lang_Thread::_scopedValueBindings_offset;
int java_lang_Thread::_inheritedTenantContainer_offset = 0 ;
int java_lang_Thread::_tenantShutdownMarkLevel_offset = 0 ;
JFR_ONLY(int java_lang_Thread::_jfr_epoch_offset;)

#define THREAD_FIELDS_DO(macro) \
Expand All @@ -1577,7 +1579,9 @@ JFR_ONLY(int java_lang_Thread::_jfr_epoch_offset;)
macro(_tid_offset, k, "tid", long_signature, false); \
macro(_park_blocker_offset, k, "parkBlocker", object_signature, false); \
macro(_continuation_offset, k, "cont", continuation_signature, false); \
macro(_scopedValueBindings_offset, k, "scopedValueBindings", object_signature, false);
macro(_scopedValueBindings_offset, k, "scopedValueBindings", object_signature, false); \
macro(_inheritedTenantContainer_offset, k, vmSymbols::inheritedTenantContainer_name(), tenantcontainer_signature, false); \
macro(_tenantShutdownMarkLevel_offset, k, vmSymbols::tenantShutdownMarkLevel_name(), int_signature, false);

void java_lang_Thread::compute_offsets() {
assert(_holder_offset == 0, "offsets should be initialized only once");
Expand Down Expand Up @@ -1748,6 +1752,18 @@ oop java_lang_Thread::inherited_access_control_context(oop java_thread) {
return java_thread->obj_field(_inheritedAccessControlContext_offset);
}

oop java_lang_Thread::inherited_tenant_container(oop java_thread) {
return java_thread->obj_field(_inheritedTenantContainer_offset);
}
int java_lang_Thread::tenant_shutdown_mark_level(oop java_thread) {
return java_thread->int_field(_tenantShutdownMarkLevel_offset);
}
void java_lang_Thread::set_tenant_shutdown_mark_level(oop java_thread, int new_value) {
java_thread->int_field_put(_tenantShutdownMarkLevel_offset, new_value);
}
int java_lang_Thread::cmpxchg_tenant_shutdown_mark_level(oop java_thread, int old_value, int new_value) {
return Atomic::cmpxchg(java_thread->field_addr<jint>(_tenantShutdownMarkLevel_offset), old_value, new_value);
}

jlong java_lang_Thread::stackSize(oop java_thread) {
GET_FIELDHOLDER_FIELD(java_thread, stackSize, 0);
Expand Down Expand Up @@ -5195,6 +5211,30 @@ void java_lang_InternalError::serialize_offsets(SerializeClosure* f) {
}
#endif

// com_alibaba_tenant_TenantDeathException
int com_alibaba_tenant_TenantDeathException::_vthread_only_offset;

#define TENANT_DEATH_EXCEPTION_FIELDS_DO(macro) \
macro(_vthread_only_offset, k, "virtualThreadOnly", bool_signature, false)

void com_alibaba_tenant_TenantDeathException::compute_offsets() {
InstanceKlass* k = vmClasses::TenantDeathException_klass();
TENANT_DEATH_EXCEPTION_FIELDS_DO(FIELD_COMPUTE_OFFSET);
}

#if INCLUDE_CDS
void com_alibaba_tenant_TenantDeathException::serialize_offsets(SerializeClosure* f) {
TENANT_DEATH_EXCEPTION_FIELDS_DO(FIELD_SERIALIZE_OFFSET);
}
#endif

void com_alibaba_tenant_TenantDeathException::set_vthread_only(oop o, bool val) {
o->bool_field_put(_vthread_only_offset, val);
}

bool com_alibaba_tenant_TenantDeathException::is_vthread_only(oop o) {
return o->bool_field(_vthread_only_offset) != 0;
}
#define BASIC_JAVA_CLASSES_DO_PART1(f) \
f(java_lang_Class) \
f(java_lang_String) \
Expand Down Expand Up @@ -5245,6 +5285,7 @@ void java_lang_InternalError::serialize_offsets(SerializeClosure* f) {
f(jdk_internal_misc_UnsafeConstants) \
f(java_lang_boxing_object) \
f(vector_VectorPayload) \
f(com_alibaba_tenant_TenantDeathException) \
//end

#define BASIC_JAVA_CLASSES_DO(f) \
Expand Down
16 changes: 16 additions & 0 deletions src/hotspot/share/classfile/javaClasses.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,8 @@ class java_lang_Thread : AllStatic {
static int _continuation_offset;
static int _park_blocker_offset;
static int _scopedValueBindings_offset;
static int _inheritedTenantContainer_offset;
static int _tenantShutdownMarkLevel_offset;
JFR_ONLY(static int _jfr_epoch_offset;)

static void compute_offsets();
Expand Down Expand Up @@ -400,6 +402,11 @@ class java_lang_Thread : AllStatic {
static oop context_class_loader(oop java_thread);
// Control context
static oop inherited_access_control_context(oop java_thread);
static oop inherited_tenant_container(oop java_thread);
static int tenant_shutdown_mark_level(oop java_thread);
static void set_tenant_shutdown_mark_level(oop java_thread, int new_value);
static void dec_tenant_shutdown_mark_level(oop java_thread);
static int cmpxchg_tenant_shutdown_mark_level(oop java_thread, int old_value, int new_value);
// Stack size hint
static jlong stackSize(oop java_thread);
// Thread ID
Expand Down Expand Up @@ -1820,6 +1827,15 @@ class java_lang_Byte_ByteCache : AllStatic {
static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
};

class com_alibaba_tenant_TenantDeathException : AllStatic {
private:
static int _vthread_only_offset;
public:
static void compute_offsets();
static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
static void set_vthread_only(oop obj, bool val);
static bool is_vthread_only(oop obj);
};

// Interface to java.lang.InternalError objects

Expand Down
14 changes: 14 additions & 0 deletions src/hotspot/share/classfile/vmClassMacros.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,20 @@
do_klass(PhantomReference_klass, java_lang_ref_PhantomReference ) \
do_klass(Finalizer_klass, java_lang_ref_Finalizer ) \
\
/* support for multi-tenant feature */ \
do_klass(TenantGlobals_klass, com_alibaba_tenant_TenantGlobals ) \
do_klass(TenantConfiguration_klass, com_alibaba_tenant_TenantConfiguration ) \
do_klass(TenantState_klass, com_alibaba_tenant_TenantState ) \
do_klass(TenantException_klass, com_alibaba_tenant_TenantException ) \
do_klass(TenantDeathException_klass, com_alibaba_tenant_TenantDeathException ) \
do_klass(DisableTenantDeath_klass, com_alibaba_tenant_DisableTenantDeath ) \
do_klass(TenantResourceAccounting_klass, com_alibaba_tenant_TenantResourceAccounting ) \
do_klass(TenantVirtualThreadContainer_klass, com_alibaba_tenant_TenantVirtualThreadContainer ) \
do_klass(TenantVirtualThreadExecutorService_klass, com_alibaba_tenant_TenantVirtualThreadExecutorService ) \
do_klass(TenantContinuationEntry_klass, com_alibaba_tenant_TenantContinuationEntry ) \
do_klass(TenantContainer_klass, com_alibaba_tenant_TenantContainer ) \
/* Note: TenantGlobals must be first, and TenantContainer last in group */ \
\
do_klass(Thread_klass, java_lang_Thread ) \
do_klass(Thread_FieldHolder_klass, java_lang_Thread_FieldHolder ) \
do_klass(Thread_Constants_klass, java_lang_Thread_Constants ) \
Expand Down
26 changes: 25 additions & 1 deletion src/hotspot/share/classfile/vmSymbols.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,18 @@
template(java_lang_Integer_IntegerCache, "java/lang/Integer$IntegerCache") \
template(java_lang_Long, "java/lang/Long") \
template(java_lang_Long_LongCache, "java/lang/Long$LongCache") \
template(com_alibaba_tenant_TenantGlobals, "com/alibaba/tenant/TenantGlobals") \
template(com_alibaba_tenant_TenantConfiguration, "com/alibaba/tenant/TenantConfiguration") \
template(com_alibaba_tenant_TenantState, "com/alibaba/tenant/TenantState") \
template(com_alibaba_tenant_TenantException, "com/alibaba/tenant/TenantException") \
template(com_alibaba_tenant_TenantDeathException, "com/alibaba/tenant/TenantDeathException") \
template(com_alibaba_tenant_DisableTenantDeath, "com/alibaba/tenant/DisableTenantDeath") \
template(com_alibaba_tenant_TenantVirtualThreadContainer, "com/alibaba/tenant/TenantVirtualThreadContainer") \
template(com_alibaba_tenant_TenantVirtualThreadExecutorService, "com/alibaba/tenant/TenantVirtualThreadExecutorService") \
template(com_alibaba_tenant_TenantContinuationEntry, "com/alibaba/tenant/TenantContinuationEntry") \
template(com_alibaba_tenant_TenantContainer, "com/alibaba/tenant/TenantContainer") \
template(com_alibaba_tenant_JGroup, "com/alibaba/tenant/JGroup") \
template(com_alibaba_tenant_TenantResourceAccounting, "com/alibaba/tenant/TenantResourceAccounting") \
\
template(jdk_internal_vm_vector_VectorSupport, "jdk/internal/vm/vector/VectorSupport") \
template(jdk_internal_vm_vector_VectorPayload, "jdk/internal/vm/vector/VectorSupport$VectorPayload") \
Expand Down Expand Up @@ -396,6 +408,7 @@
template(group_name, "group") \
template(daemon_name, "daemon") \
template(run_method_name, "run") \
template(runThread_method_name, "runThread") \
template(runWith_method_name, "runWith") \
template(interrupt_method_name, "interrupt") \
template(exit_method_name, "exit") \
Expand Down Expand Up @@ -528,6 +541,13 @@
template(module_entry_name, "module_entry") \
template(resolved_references_name, "<resolved_references>") \
template(init_lock_name, "<init_lock>") \
template(inheritedTenantContainer_name, "inheritedTenantContainer") \
template(initializeJGroupClass_name, "initializeJGroupClass") \
template(destroyJGroupClass_name, "destroyJGroupClass") \
template(tenantShutdownMarkLevel_name, "tenantShutdownMarkLevel") \
template(initializeTenantContainerClass_name, "initializeTenantContainerClass") \
template(initializeTenantCpuAccounting_name, "initializeTenantCpuAccounting") \
template(initializeTenantCpuAccounting_signature, "(Lcom/alibaba/tenant/TenantResourceAccounting;)V") \
template(address_size_name, "ADDRESS_SIZE0") \
template(page_size_name, "PAGE_SIZE") \
template(big_endian_name, "BIG_ENDIAN") \
Expand Down Expand Up @@ -667,7 +687,9 @@
template(big_integer_shift_worker_signature, "([I[IIII)V") \
template(reflect_method_signature, "Ljava/lang/reflect/Method;") \
template(getStackTrace_signature, "()[Ljava/lang/StackTraceElement;") \
\
template(tenantcontainer_signature, "Lcom/alibaba/tenant/TenantContainer;") \
template(com_alibaba_tenant_TenantState_signature, "Lcom/alibaba/tenant/TenantState;") \
template(com_alibaba_tenant_DisableTenantDeath_signature, "Lcom/alibaba/tenant/DisableTenantDeath;") \
/* signature symbols needed by intrinsics */ \
VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, template, VM_ALIAS_IGNORE) \
\
Expand Down Expand Up @@ -730,6 +752,8 @@
template(addThreadDumpForSynchronizers_name, "addThreadDumpForSynchronizers") \
template(addThreadDumpForMonitors_signature, "(Ljava/lang/management/ThreadInfo;[Ljava/lang/Object;[I)V") \
template(addThreadDumpForSynchronizers_signature, "(Ljava/lang/management/ThreadInfo;[Ljava/lang/Object;)V") \
/* multi-tenant management support */ \
template(com_alibaba_management_internal_TenantResourceMXBeanAccouting, "com/alibaba/management/internal/TenantResourceMXBeanAccouting") \
\
/* JVMTI/java.lang.instrument support and VM Attach mechanism */ \
template(jdk_internal_module_Modules, "jdk/internal/module/Modules") \
Expand Down
Loading