You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Paul King (JIRA)" <ji...@apache.org> on 2019/07/22 04:22:02 UTC

[jira] [Closed] (GROOVY-9145) Add DGSM `dumpAll` to `Thread`

     [ https://issues.apache.org/jira/browse/GROOVY-9145?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Paul King closed GROOVY-9145.
-----------------------------

> Add DGSM `dumpAll` to `Thread`
> ------------------------------
>
>                 Key: GROOVY-9145
>                 URL: https://issues.apache.org/jira/browse/GROOVY-9145
>             Project: Groovy
>          Issue Type: New Feature
>            Reporter: Daniel Sun
>            Assignee: Daniel Sun
>            Priority: Major
>             Fix For: 3.0.0-beta-2
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> {{Thread.dumpAll}} is similar to {{Object.dump}}, it will dump all thread information, e.g.
> {code:java}
> println Thread.dumpAll() // yields the following thread dump:
> /*
> "Reference Handler" daemon prio=10 Id=2 RUNNABLE
> 	at java.base@11.0.3/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
> 	at java.base@11.0.3/java.lang.ref.Reference.processPendingReferences(Reference.java:241)
> 	at java.base@11.0.3/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:213)
> "Finalizer" daemon prio=8 Id=3 WAITING on java.lang.ref.ReferenceQueue$Lock@1ac6b320
> 	at java.base@11.0.3/java.lang.Object.wait(Native Method)
> 	-  waiting on java.lang.ref.ReferenceQueue$Lock@1ac6b320
> 	at java.base@11.0.3/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
> 	at java.base@11.0.3/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
> 	at java.base@11.0.3/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:170)
> "Signal Dispatcher" daemon prio=9 Id=4 RUNNABLE
> "Attach Listener" daemon prio=5 Id=5 RUNNABLE
> "Common-Cleaner" daemon prio=8 Id=11 TIMED_WAITING on java.lang.ref.ReferenceQueue$Lock@51cb63ff
> 	at java.base@11.0.3/java.lang.Object.wait(Native Method)
> 	-  waiting on java.lang.ref.ReferenceQueue$Lock@51cb63ff
> 	at java.base@11.0.3/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
> 	at java.base@11.0.3/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:148)
> 	at java.base@11.0.3/java.lang.Thread.run(Thread.java:834)
> 	at java.base@11.0.3/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134)
> "Java2D Disposer" daemon prio=10 Id=13 WAITING on java.lang.ref.ReferenceQueue$Lock@3b0eb89c
> 	at java.base@11.0.3/java.lang.Object.wait(Native Method)
> 	-  waiting on java.lang.ref.ReferenceQueue$Lock@3b0eb89c
> 	at java.base@11.0.3/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
> 	at java.base@11.0.3/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
> 	at java.desktop@11.0.3/sun.java2d.Disposer.run(Disposer.java:144)
> 	at java.base@11.0.3/java.lang.Thread.run(Thread.java:834)
> "AWT-Windows" daemon prio=6 Id=15 RUNNABLE
> 	at java.desktop@11.0.3/sun.awt.windows.WToolkit.eventLoop(Native Method)
> 	at java.desktop@11.0.3/sun.awt.windows.WToolkit.run(WToolkit.java:305)
> 	at java.base@11.0.3/java.lang.Thread.run(Thread.java:834)
> "AWT-Shutdown" prio=6 Id=19 WAITING on java.lang.Object@7da6698f
> 	at java.base@11.0.3/java.lang.Object.wait(Native Method)
> 	-  waiting on java.lang.Object@7da6698f
> 	at java.base@11.0.3/java.lang.Object.wait(Object.java:328)
> 	at java.desktop@11.0.3/sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:291)
> 	at java.base@11.0.3/java.lang.Thread.run(Thread.java:834)
> "AWT-EventQueue-0" prio=6 Id=20 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@52d69aa8
> 	at java.base@11.0.3/jdk.internal.misc.Unsafe.park(Native Method)
> 	-  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@52d69aa8
> 	at java.base@11.0.3/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
> 	at java.base@11.0.3/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
> 	at java.desktop@11.0.3/java.awt.EventQueue.getNextEvent(EventQueue.java:566)
> 	at java.desktop@11.0.3/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:190)
> 	at java.desktop@11.0.3/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
> 	at java.desktop@11.0.3/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
> 	at java.desktop@11.0.3/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
> 	...
> "DestroyJavaVM" prio=5 Id=22 RUNNABLE
> "TimerQueue" daemon prio=5 Id=23 TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@168c5643
> 	at java.base@11.0.3/jdk.internal.misc.Unsafe.park(Native Method)
> 	-  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@168c5643
> 	at java.base@11.0.3/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)
> 	at java.base@11.0.3/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123)
> 	at java.base@11.0.3/java.util.concurrent.DelayQueue.take(DelayQueue.java:229)
> 	at java.desktop@11.0.3/javax.swing.TimerQueue.run(TimerQueue.java:171)
> 	at java.base@11.0.3/java.lang.Thread.run(Thread.java:834)
> 	Number of locked synchronizers = 1
> 	- java.util.concurrent.locks.ReentrantLock$NonfairSync@5888cf96
> "Thread-1" prio=6 Id=25 RUNNABLE
> 	at java.management@11.0.3/sun.management.ThreadImpl.dumpThreads0(Native Method)
> 	at java.management@11.0.3/sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:502)
> 	at java.management@11.0.3/sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:490)
> 	at app//org.codehaus.groovy.runtime.DefaultGroovyStaticMethods.dumpAll(DefaultGroovyStaticMethods.java:115)
> 	at java.base@11.0.3/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at java.base@11.0.3/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at java.base@11.0.3/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.base@11.0.3/java.lang.reflect.Method.invoke(Method.java:566)
> 	...
> */
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)