Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files
Automatic merge of jdk:master into master
  • Loading branch information
duke committed Jan 7, 2021
2 parents 459b91e + 67c2211 commit d1919ac1a80477630c13244d6f983f2040c638bc
Showing with 775 additions and 1,323 deletions.
  1. +1 −1 make/common/JavaCompilation.gmk
  2. +4 −1 make/data/symbols/java.desktop-G.sym.txt
  3. +5 −4 make/modules/jdk.hotspot.agent/Lib.gmk
  4. +4 −4 src/hotspot/share/compiler/abstractCompiler.hpp
  5. +35 −22 src/hotspot/share/gc/epsilon/epsilonHeap.cpp
  6. +1 −5 src/hotspot/share/gc/serial/defNewGeneration.cpp
  7. +1 −5 src/hotspot/share/gc/shared/genCollectedHeap.cpp
  8. +1 −6 src/hotspot/share/memory/arena.cpp
  9. +1 −3 src/hotspot/share/memory/arena.hpp
  10. +0 −3 src/hotspot/share/runtime/globals.hpp
  11. +1 −3 src/hotspot/share/runtime/thread.cpp
  12. +76 −59 src/hotspot/share/runtime/threadSMR.cpp
  13. +1 −2 src/java.base/share/classes/java/net/URLDecoder.java
  14. +2 −4 src/java.base/share/classes/sun/security/ssl/Finished.java
  15. +3 −4 src/java.base/share/classes/sun/security/ssl/OutputRecord.java
  16. +2 −3 src/java.base/share/classes/sun/security/ssl/SSLExtension.java
  17. +3 −5 src/java.base/share/classes/sun/security/ssl/SSLSocketOutputRecord.java
  18. +1 −2 src/java.base/share/classes/sun/security/ssl/ServerNameExtension.java
  19. +1 −2 src/java.base/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java
  20. +17 −11 src/java.base/windows/native/libnet/net_util_md.h
  21. +1 −1 src/java.desktop/macosx/native/libawt_lwawt/awt/CPrinterJob.m
  22. +5 −5 src/java.desktop/share/classes/sun/java2d/loops/Blit.java
  23. +9 −10 src/java.desktop/share/classes/sun/java2d/loops/BlitBg.java
  24. +6 −7 src/java.desktop/share/classes/sun/java2d/loops/DrawGlyphList.java
  25. +6 −7 src/java.desktop/share/classes/sun/java2d/loops/DrawGlyphListAA.java
  26. +2 −20 src/java.desktop/share/classes/sun/java2d/loops/DrawGlyphListLCD.java
  27. +1 −11 src/java.desktop/share/classes/sun/java2d/loops/DrawLine.java
  28. +1 −11 src/java.desktop/share/classes/sun/java2d/loops/DrawParallelogram.java
  29. +3 −11 src/java.desktop/share/classes/sun/java2d/loops/DrawPath.java
  30. +1 −11 src/java.desktop/share/classes/sun/java2d/loops/DrawPolygons.java
  31. +1 −11 src/java.desktop/share/classes/sun/java2d/loops/DrawRect.java
  32. +1 −11 src/java.desktop/share/classes/sun/java2d/loops/FillParallelogram.java
  33. +3 −11 src/java.desktop/share/classes/sun/java2d/loops/FillPath.java
  34. +4 −5 src/java.desktop/share/classes/sun/java2d/loops/FillRect.java
  35. +2 −12 src/java.desktop/share/classes/sun/java2d/loops/FillSpans.java
  36. +25 −17 src/java.desktop/share/classes/sun/java2d/loops/GraphicsPrimitive.java
  37. +6 −0 src/java.desktop/share/classes/sun/java2d/loops/GraphicsPrimitiveMgr.java
  38. +1 −8 src/java.desktop/share/classes/sun/java2d/loops/GraphicsPrimitiveProxy.java
  39. +5 −5 src/java.desktop/share/classes/sun/java2d/loops/MaskBlit.java
  40. +5 −5 src/java.desktop/share/classes/sun/java2d/loops/MaskFill.java
  41. +2 −19 src/java.desktop/share/classes/sun/java2d/loops/ScaledBlit.java
  42. +2 −21 src/java.desktop/share/classes/sun/java2d/loops/TransformBlit.java
  43. +2 −9 src/java.desktop/share/classes/sun/java2d/loops/TransformHelper.java
  44. +0 −1 src/jdk.compiler/share/classes/com/sun/tools/doclint/DocLint.java
  45. +0 −5 src/jdk.compiler/share/classes/com/sun/tools/javac/main/Arguments.java
  46. +0 −2 src/jdk.compiler/share/classes/com/sun/tools/javac/main/Option.java
  47. +0 −3 src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties
  48. +7 −41 src/jdk.hotspot.agent/share/native/libsaproc/sadis.c
  49. +0 −2 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseConfiguration.java
  50. +32 −65 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclint/Checker.java
  51. +0 −17 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclint/DocLint.java
  52. +1 −7 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclint/Env.java
  53. +98 −101 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclint/HtmlTag.java
  54. +0 −49 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclint/HtmlVersion.java
  55. +6 −5 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclint/resources/doclint.properties
  56. +4 −4 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclint/resources/doclint_ja.properties
  57. +4 −4 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclint/resources/doclint_zh_CN.properties
  58. +1 −2 src/jdk.security.jgss/share/classes/com/sun/security/jgss/GSSUtil.java
  59. +5 −3 test/hotspot/jtreg/runtime/ErrorHandling/NestedThreadsListHandleInErrorHandlingTest.java
  60. +5 −1 test/hotspot/jtreg/runtime/ErrorHandling/ThreadsListHandleInErrorHandlingTest.java
  61. +0 −1 test/jdk/ProblemList.txt
  62. +1 −1 test/jdk/java/awt/print/bug8023392/bug8023392.java
  63. +2 −3 test/jdk/java/net/URLDecoder/B6463990.java
  64. +4 −3 test/jdk/javax/swing/JFrame/8175301/ScaledFrameBackgroundTest.java
  65. +3 −1 test/jdk/sun/security/lib/cacerts/VerifyCACerts.java
  66. +1 −1 test/langtools/jdk/javadoc/doclet/testHtmlTableStyles/TestHtmlTableStyles.java
  67. +8 −7 test/langtools/tools/doclint/AccessibilityTest.java
  68. +1 −1 test/langtools/tools/doclint/AccessibilityTest.out
  69. +0 −30 test/langtools/tools/doclint/AccessibilityTest5.java
  70. +0 −4 test/langtools/tools/doclint/AccessibilityTest5.out
  71. +4 −31 test/langtools/tools/doclint/AnchorTest.java
  72. +13 −31 test/langtools/tools/doclint/AnchorTest.out
  73. +4 −4 test/langtools/tools/doclint/AnchorTest2.java
  74. +1 −1 test/langtools/tools/doclint/AnchorTest2.out
  75. +1 −1 test/langtools/tools/doclint/AnchorTest2a.java
  76. +3 −3 test/langtools/tools/doclint/EndTagsTest.java
  77. +1 −1 test/langtools/tools/doclint/HtmlAttrsTest.java
  78. +4 −5 test/langtools/tools/doclint/HtmlAttrsTest.out
  79. +1 −1 test/langtools/tools/doclint/HtmlTagsTest.java
  80. +1 −4 test/langtools/tools/doclint/HtmlTagsTest.out
  81. +0 −41 test/langtools/tools/doclint/HtmlVersionTest.java
  82. +19 −19 test/langtools/tools/doclint/anchorTests/p/Test.java
  83. +6 −6 test/langtools/tools/doclint/anchorTests/p/Test.out
  84. +5 −3 test/langtools/tools/doclint/anchorTests/p/package-info.java
  85. +3 −1 test/langtools/tools/doclint/anchorTests/p/package-info.javac.out
  86. +8 −2 test/langtools/tools/doclint/anchorTests/p/package-info.out
  87. +5 −8 test/langtools/tools/doclint/html/HtmlVersionTagsAttrsTest.java
  88. +117 −102 test/langtools/tools/doclint/html/{HtmlVersionTagsAttrsTestHtml5.out → HtmlVersionTagsAttrsTest.out}
  89. +0 −212 test/langtools/tools/doclint/html/HtmlVersionTagsAttrsTestHtml4.out
  90. +10 −0 test/langtools/tools/doclint/html/InlineTagTest.out
  91. +2 −2 test/langtools/tools/doclint/html/InlineTagsTest.java
  92. +1 −1 test/langtools/tools/doclint/html/OtherTagsTest.java
  93. +7 −4 test/langtools/tools/doclint/html/OtherTagsTest.out
  94. +22 −0 test/langtools/tools/doclint/html/TableTagTest.out
  95. +2 −2 test/langtools/tools/doclint/html/TableTagsTest.java
  96. +1 −1 test/langtools/tools/doclint/html/TagNotAllowed.java
  97. +17 −2 test/langtools/tools/doclint/html/TagNotAllowed.out
  98. +11 −11 test/langtools/tools/doclint/html/TextNotAllowed.java
  99. +20 −20 test/langtools/tools/doclint/html/TextNotAllowed.out
  100. +3 −3 test/langtools/tools/doclint/tidy/AnchorAlreadyDefined.java
  101. +1 −1 test/langtools/tools/doclint/tidy/AnchorAlreadyDefined.out
  102. +2 −2 test/langtools/tools/doclint/tidy/BadEnd.java
  103. +3 −3 test/langtools/tools/doclint/tidy/BadEnd.out
  104. +6 −5 test/langtools/tools/doclint/tidy/InvalidName.java
  105. +2 −2 test/langtools/tools/doclint/tidy/InvalidName.out
  106. +4 −4 test/langtools/tools/doclint/tidy/TextNotAllowed.java
  107. +6 −6 test/langtools/tools/doclint/tidy/TextNotAllowed.out
  108. +1 −4 test/langtools/tools/doclint/tidy/TrimmingEmptyTag.java
  109. +14 −23 test/langtools/tools/doclint/tidy/TrimmingEmptyTag.out
  110. +7 −10 test/langtools/tools/javac/doclint/DocLintFormatTest.java
@@ -269,7 +269,7 @@ define SetupJavaCompilationBody
# Tell javac to do exactly as told and no more
PARANOIA_FLAGS := -implicit:none -Xprefer:source -XDignore.symbol.file=true -encoding ascii

$1_FLAGS += -g -Xlint:all --doclint-format html5 $$($1_TARGET_RELEASE) $$(PARANOIA_FLAGS) $$(JAVA_WARNINGS_ARE_ERRORS)
$1_FLAGS += -g -Xlint:all $$($1_TARGET_RELEASE) $$(PARANOIA_FLAGS) $$(JAVA_WARNINGS_ARE_ERRORS)
$1_FLAGS += $$($1_JAVAC_FLAGS)

ifneq ($$($1_DISABLED_WARNINGS), )
@@ -1,5 +1,5 @@
#
# Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2020, 2021, 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
@@ -769,6 +769,9 @@ class name javax/swing/JList$AccessibleJList$AccessibleJListChild
-method name getAccessibleAction descriptor ()Ljavax/accessibility/AccessibleAction;
method name getAccessibleAction descriptor ()Ljavax/accessibility/AccessibleAction; flags 1

class name javax/swing/JPasswordField
method name setText descriptor (Ljava/lang/String;)V flags 1 runtimeAnnotations @Ljava/beans/BeanProperty;(bound=Zfalse,description="the\u005C;u0020;text\u005C;u0020;of\u005C;u0020;this\u005C;u0020;component")

class name javax/swing/JSlider$AccessibleJSlider
header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleValue,javax/swing/event/ChangeListener nestHost javax/swing/JSlider flags 21
innerclass innerClass javax/swing/JSlider$AccessibleJSlider outerClass javax/swing/JSlider innerClassName AccessibleJSlider flags 4
@@ -1,5 +1,5 @@
#
# Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2015, 2021, 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 @@ else ifeq ($(call isTargetOs, macosx), true)
-mstack-alignment=16 -fPIC
LIBSA_EXTRA_SRC := $(SUPPORT_OUTPUTDIR)/gensrc/jdk.hotspot.agent
else ifeq ($(call isTargetOs, windows), true)
SA_CFLAGS := -D_WINDOWS -D_DEBUG -D_CONSOLE -D_MBCS -EHsc
SA_CFLAGS := -D_WINDOWS -D_DEBUG -D_CONSOLE -EHsc
ifeq ($(call isTargetCpu, x86_64), true)
SA_CXXFLAGS := -DWIN64
else
@@ -65,12 +65,13 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBSA, \
CFLAGS := $(CFLAGS_JDKLIB) $(SA_CFLAGS), \
CXXFLAGS := $(CXXFLAGS_JDKLIB) $(SA_CFLAGS) $(SA_CXXFLAGS), \
EXTRA_SRC := $(LIBSA_EXTRA_SRC), \
LDFLAGS := $(LDFLAGS_JDKLIB), \
LDFLAGS := $(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN), \
LIBS := $(LIBCXX), \
LIBS_unix := -ljava, \
LIBS_linux := $(LIBDL), \
LIBS_macosx := -framework Foundation -framework JavaNativeFoundation \
-framework JavaRuntimeSupport -framework Security -framework CoreFoundation, \
LIBS_windows := dbgeng.lib, \
LIBS_windows := dbgeng.lib $(WIN_JAVA_LIB), \
))

TARGETS += $(BUILD_LIBSA)
@@ -149,10 +149,10 @@ class AbstractCompiler : public CHeapObj<mtCompiler> {
}

// Compiler type queries.
const bool is_c1() { return _type == compiler_c1; }
const bool is_c2() { return _type == compiler_c2; }
const bool is_jvmci() { return _type == compiler_jvmci; }
const CompilerType type() { return _type; }
bool is_c1() const { return _type == compiler_c1; }
bool is_c2() const { return _type == compiler_c2; }
bool is_jvmci() const { return _type == compiler_jvmci; }
CompilerType type() const { return _type; }

// Customization
virtual void initialize () = 0;
@@ -106,31 +106,44 @@ EpsilonHeap* EpsilonHeap::heap() {
HeapWord* EpsilonHeap::allocate_work(size_t size) {
assert(is_object_aligned(size), "Allocation size should be aligned: " SIZE_FORMAT, size);

HeapWord* res = _space->par_allocate(size);
HeapWord* res = NULL;
while (true) {
// Try to allocate, assume space is available
res = _space->par_allocate(size);
if (res != NULL) {
break;
}

while (res == NULL) {
// Allocation failed, attempt expansion, and retry:
MutexLocker ml(Heap_lock);

size_t space_left = max_capacity() - capacity();
size_t want_space = MAX2(size, EpsilonMinHeapExpand);

if (want_space < space_left) {
// Enough space to expand in bulk:
bool expand = _virtual_space.expand_by(want_space);
assert(expand, "Should be able to expand");
} else if (size < space_left) {
// No space to expand in bulk, and this allocation is still possible,
// take all the remaining space:
bool expand = _virtual_space.expand_by(space_left);
assert(expand, "Should be able to expand");
} else {
// No space left:
return NULL;
}
{
MutexLocker ml(Heap_lock);

_space->set_end((HeapWord *) _virtual_space.high());
res = _space->par_allocate(size);
// Try to allocate under the lock, assume another thread was able to expand
res = _space->par_allocate(size);
if (res != NULL) {
break;
}

// Expand and loop back if space is available
size_t space_left = max_capacity() - capacity();
size_t want_space = MAX2(size, EpsilonMinHeapExpand);

if (want_space < space_left) {
// Enough space to expand in bulk:
bool expand = _virtual_space.expand_by(want_space);
assert(expand, "Should be able to expand");
} else if (size < space_left) {
// No space to expand in bulk, and this allocation is still possible,
// take all the remaining space:
bool expand = _virtual_space.expand_by(space_left);
assert(expand, "Should be able to expand");
} else {
// No space left:
return NULL;
}

_space->set_end((HeapWord *) _virtual_space.high());
}
}

size_t used = _space->used();
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2001, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 2021, 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
@@ -864,10 +864,6 @@ void DefNewGeneration::gc_epilogue(bool full) {
to()->check_mangled_unused_area_complete();
}

if (!CleanChunkPoolAsync) {
Chunk::clean_chunk_pool();
}

// update the generation and space performance counters
update_counters();
gch->counters()->update_counters();
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 2021, 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
@@ -1267,10 +1267,6 @@ void GenCollectedHeap::gc_epilogue(bool full) {
GenGCEpilogueClosure blk(full);
generation_iterate(&blk, false); // not old-to-young.

if (!CleanChunkPoolAsync) {
Chunk::clean_chunk_pool();
}

MetaspaceCounters::update_performance_counters();
CompressedClassSpaceCounters::update_performance_counters();
};
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2021, 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
@@ -154,11 +154,6 @@ void chunkpool_init() {
ChunkPool::initialize();
}

void
Chunk::clean_chunk_pool() {
ChunkPool::clean();
}


//--------------------------------------------------------------------------------------
// ChunkPoolCleaner implementation
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -85,8 +85,6 @@ class Chunk: CHeapObj<mtChunk> {

// Start the chunk_pool cleaner task
static void start_chunk_pool_cleaner_task();

static void clean_chunk_pool();
};

//------------------------------Arena------------------------------------------
@@ -167,9 +167,6 @@ const intx ObjectAlignmentInBytes = 8;
"region.") \
range(1, max_uintx) \
\
develop(bool, CleanChunkPoolAsync, true, \
"Clean the chunk pool asynchronously") \
\
product(uint, HandshakeTimeout, 0, DIAGNOSTIC, \
"If nonzero set a timeout in milliseconds for handshakes") \
\
@@ -3676,9 +3676,7 @@ jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) {
create_vm_init_libraries();
}

if (CleanChunkPoolAsync) {
Chunk::start_chunk_pool_cleaner_task();
}
Chunk::start_chunk_pool_cleaner_task();

// Start the service thread
// The service thread enqueues JVMTI deferred events and does various hashtable
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2021, 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
@@ -1106,70 +1106,87 @@ void ThreadsSMRSupport::print_info_on(const Thread* thread, outputStream* st) {

// Print Threads class SMR info.
void ThreadsSMRSupport::print_info_on(outputStream* st) {
// Only grab the Threads_lock if we don't already own it and if we
// are not reporting an error.
// Note: Not grabbing the Threads_lock during error reporting is
// dangerous because the data structures we want to print can be
// freed concurrently. However, grabbing the Threads_lock during
// error reporting can be equally dangerous since this thread might
// block during error reporting or a nested error could leave the
// Threads_lock held. The classic no win scenario.
//
MutexLocker ml((Threads_lock->owned_by_self() || VMError::is_error_reported()) ? NULL : Threads_lock);

st->print_cr("Threads class SMR info:");
st->print_cr("_java_thread_list=" INTPTR_FORMAT ", length=%u, "
"elements={", p2i(_java_thread_list),
_java_thread_list->length());
print_info_elements_on(st, _java_thread_list);
st->print_cr("}");
if (_to_delete_list != NULL) {
st->print_cr("_to_delete_list=" INTPTR_FORMAT ", length=%u, "
"elements={", p2i(_to_delete_list),
_to_delete_list->length());
print_info_elements_on(st, _to_delete_list);
bool needs_unlock = false;
if (Threads_lock->try_lock()) {
// We were able to grab the Threads_lock which makes things safe for
// this call, but if we are error reporting, then a nested error
// could happen with the Threads_lock held.
needs_unlock = true;
}

ThreadsList* saved_threads_list = NULL;
{
ThreadsListHandle tlh; // make the current ThreadsList safe for reporting
saved_threads_list = tlh.list(); // save for later comparison

st->print_cr("Threads class SMR info:");
st->print_cr("_java_thread_list=" INTPTR_FORMAT ", length=%u, elements={",
p2i(saved_threads_list), saved_threads_list->length());
print_info_elements_on(st, saved_threads_list);
st->print_cr("}");
for (ThreadsList *t_list = _to_delete_list->next_list();
t_list != NULL; t_list = t_list->next_list()) {
st->print("next-> " INTPTR_FORMAT ", length=%u, "
"elements={", p2i(t_list), t_list->length());
print_info_elements_on(st, t_list);
}

if (_to_delete_list != NULL) {
if (Threads_lock->owned_by_self()) {
// Only safe if we have the Threads_lock.
st->print_cr("_to_delete_list=" INTPTR_FORMAT ", length=%u, elements={",
p2i(_to_delete_list), _to_delete_list->length());
print_info_elements_on(st, _to_delete_list);
st->print_cr("}");
for (ThreadsList *t_list = _to_delete_list->next_list();
t_list != NULL; t_list = t_list->next_list()) {
st->print("next-> " INTPTR_FORMAT ", length=%u, elements={",
p2i(t_list), t_list->length());
print_info_elements_on(st, t_list);
st->print_cr("}");
}
} else {
st->print_cr("_to_delete_list=" INTPTR_FORMAT, p2i(_to_delete_list));
st->print_cr("Skipping _to_delete_list fields and contents for safety.");
}
}
if (!EnableThreadSMRStatistics) {
return;
}
st->print_cr("_java_thread_list_alloc_cnt=" UINT64_FORMAT ", "
"_java_thread_list_free_cnt=" UINT64_FORMAT ", "
"_java_thread_list_max=%u, "
"_nested_thread_list_max=%u",
_java_thread_list_alloc_cnt,
_java_thread_list_free_cnt,
_java_thread_list_max,
_nested_thread_list_max);
if (_tlh_cnt > 0) {
st->print_cr("_tlh_cnt=%u"
", _tlh_times=%u"
", avg_tlh_time=%0.2f"
", _tlh_time_max=%u",
_tlh_cnt, _tlh_times,
((double) _tlh_times / _tlh_cnt),
_tlh_time_max);
if (EnableThreadSMRStatistics) {
st->print_cr("_java_thread_list_alloc_cnt=" UINT64_FORMAT ", "
"_java_thread_list_free_cnt=" UINT64_FORMAT ", "
"_java_thread_list_max=%u, "
"_nested_thread_list_max=%u",
_java_thread_list_alloc_cnt,
_java_thread_list_free_cnt,
_java_thread_list_max,
_nested_thread_list_max);
if (_tlh_cnt > 0) {
st->print_cr("_tlh_cnt=%u"
", _tlh_times=%u"
", avg_tlh_time=%0.2f"
", _tlh_time_max=%u",
_tlh_cnt, _tlh_times,
((double) _tlh_times / _tlh_cnt),
_tlh_time_max);
}
if (_deleted_thread_cnt > 0) {
st->print_cr("_deleted_thread_cnt=%u"
", _deleted_thread_times=%u"
", avg_deleted_thread_time=%0.2f"
", _deleted_thread_time_max=%u",
_deleted_thread_cnt, _deleted_thread_times,
((double) _deleted_thread_times / _deleted_thread_cnt),
_deleted_thread_time_max);
}
st->print_cr("_delete_lock_wait_cnt=%u, _delete_lock_wait_max=%u",
_delete_lock_wait_cnt, _delete_lock_wait_max);
st->print_cr("_to_delete_list_cnt=%u, _to_delete_list_max=%u",
_to_delete_list_cnt, _to_delete_list_max);
}
if (_deleted_thread_cnt > 0) {
st->print_cr("_deleted_thread_cnt=%u"
", _deleted_thread_times=%u"
", avg_deleted_thread_time=%0.2f"
", _deleted_thread_time_max=%u",
_deleted_thread_cnt, _deleted_thread_times,
((double) _deleted_thread_times / _deleted_thread_cnt),
_deleted_thread_time_max);
if (needs_unlock) {
Threads_lock->unlock();
} else {
if (_java_thread_list != saved_threads_list) {
st->print_cr("The _java_thread_list has changed from " INTPTR_FORMAT
" to " INTPTR_FORMAT
" so some of the above information may be stale.",
p2i(saved_threads_list), p2i(_java_thread_list));
}
}
st->print_cr("_delete_lock_wait_cnt=%u, _delete_lock_wait_max=%u",
_delete_lock_wait_cnt, _delete_lock_wait_max);
st->print_cr("_to_delete_list_cnt=%u, _to_delete_list_max=%u",
_to_delete_list_cnt, _to_delete_list_max);
}

// Print ThreadsList elements (4 per line).
@@ -84,8 +84,7 @@ public class URLDecoder {
/**
* Do not call.
*/
@Deprecated(since="16", forRemoval=true)
public URLDecoder() {}
private URLDecoder() {}

// The platform default encoding
static String dfltEncName = URLEncoder.dfltEncName;

0 comments on commit d1919ac

Please sign in to comment.