Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Grigorenko2019-09-18 12:45:18 -0400
committerKevin Grigorenko2019-09-19 11:15:51 -0400
commit11e0ad07df2c811e8681e4f81c55fd77ca327f8c (patch)
tree6eeae61fc95281878b623cc7f874e2ceaf137e7c
parentd09d21ade4a10b797dcb5a045c7876560fa51c6a (diff)
downloadorg.eclipse.mat-11e0ad07df2c811e8681e4f81c55fd77ca327f8c.tar.gz
org.eclipse.mat-11e0ad07df2c811e8681e4f81c55fd77ca327f8c.tar.xz
org.eclipse.mat-11e0ad07df2c811e8681e4f81c55fd77ca327f8c.zip
[551214] Add documentation about post-processed J9 JVM finalizer roots
-rw-r--r--plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/finalizer/annotations.properties14
-rw-r--r--plugins/org.eclipse.mat.ui.help/tasks/analyzingfinalizer.dita9
-rw-r--r--plugins/org.eclipse.mat.ui.help/tasks/analyzingfinalizer.html10
3 files changed, 29 insertions, 4 deletions
diff --git a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/finalizer/annotations.properties b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/finalizer/annotations.properties
index 161faa36..b11ca800 100644
--- a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/finalizer/annotations.properties
+++ b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/finalizer/annotations.properties
@@ -29,7 +29,12 @@ Due to the lack of control over the finalizer execution, it is recommended to \
avoid finalizers. Long running tasks in the finalizer can block garbage \
collection, because the memory can only be freed after the finalize method finished.\
This query shows the the finalizer currently processed, the finalizer queue, \
-the demon finalizer thread or threads and the thread local variables.
+the demon finalizer thread or threads and the thread local variables.\n\n\
+Note: On J9 JVM-based dumps (e.g. IBM Java, OpenJ9), the Finalizer Queue list shows objects waiting \
+to be finalized and those which have already been finalized and are waiting to be \
+garbage collected. This query does not provide a way to differentiate the two \
+(because DTFJ doesn't), although you may be able to differentiate based on object \
+fields (e.g. a "closed" boolean field, etc.).
FinalizerQueueQuery.name = Finalizer Queue
FinalizerQueueQuery.help = Extract objects in the Finalizer Queue.\n\n\
@@ -41,7 +46,12 @@ This query shows the objects ready for finalization in their processing order. \
Be aware that there could be many reasons for a full finalizer queue: \
the currently processed object could be blocking or long running \
(please use our finalizer in processing query to check) or the application \
-made use of too many objects with finalize() which are queueing up in memory.
+made use of too many objects with finalize() which are queueing up in memory.\n\n\
+Note: On J9 JVM-based dumps (e.g. IBM Java, OpenJ9), this list shows objects waiting \
+to be finalized and those which have already been finalized and are waiting to be \
+garbage collected. This query does not provide a way to differentiate the two \
+(because DTFJ doesn't), although you may be able to differentiate based on object \
+fields (e.g. a "closed" boolean field, etc.).
FinalizerQueueQuery.mode.help = Whether to display the objects as a list, histogram or both.
FinalizerThreadLocalsQuery.name = Finalizer Thread Locals
diff --git a/plugins/org.eclipse.mat.ui.help/tasks/analyzingfinalizer.dita b/plugins/org.eclipse.mat.ui.help/tasks/analyzingfinalizer.dita
index 0c84902d..e67ced13 100644
--- a/plugins/org.eclipse.mat.ui.help/tasks/analyzingfinalizer.dita
+++ b/plugins/org.eclipse.mat.ui.help/tasks/analyzingfinalizer.dita
@@ -53,7 +53,7 @@
<ul>
<li>it is blocking</li>
<li>it is long running</li>
- <li> it the finalizer queue was or is still full.</li>
+ <li>the finalizer queue was or is still full.</li>
</ul>
<p> Use the finalizer queue query to check the queue.</p>
</entry>
@@ -72,6 +72,13 @@
<li> The application made use of too many objects with
finalize() which are queued up in memory.</li>
</ul>
+ <p>Note: On J9 JVM-based dumps (e.g. IBM Java, OpenJ9), this
+ list shows objects waiting to be finalized and those
+ which have already been finalized and are waiting to be
+ garbage collected. This query does not provide a way to
+ differentiate the two (because DTFJ doesn't), although you may
+ be able to differentiate based on object fields
+ (e.g. a "closed" boolean field, etc.).</p>
<p> Additionally a class-level summary of the objects is provided</p>
</entry>
</row>
diff --git a/plugins/org.eclipse.mat.ui.help/tasks/analyzingfinalizer.html b/plugins/org.eclipse.mat.ui.help/tasks/analyzingfinalizer.html
index 88381f19..7d091e5a 100644
--- a/plugins/org.eclipse.mat.ui.help/tasks/analyzingfinalizer.html
+++ b/plugins/org.eclipse.mat.ui.help/tasks/analyzingfinalizer.html
@@ -53,7 +53,7 @@
<li class="li">it is long running</li>
- <li class="li"> it the finalizer queue was or is still full.</li>
+ <li class="li">the finalizer queue was or is still full.</li>
</ul>
@@ -82,6 +82,14 @@
</ul>
+ <p class="p">Note: On J9 JVM-based dumps (e.g. IBM Java, OpenJ9), this
+ list shows objects waiting to be finalized and those
+ which have already been finalized and are waiting to be
+ garbage collected. This query does not provide a way to
+ differentiate the two (because DTFJ doesn't), although you may
+ be able to differentiate based on object fields
+ (e.g. a "closed" boolean field, etc.).</p>
+
<p class="p"> Additionally a class-level summary of the objects is provided</p>
</td>

Back to the top