Created attachment 140249 [details]
See attached threads dump.
AWT: holds ExplorerManager$Listener and tries to acquire Children mutex (shared).
Module-Actions: hods Children mutex (exclusive) calls ExplorerManager$Listener.nodeDestroyed tying to obtain lock.
Both ExplorerManager$Listener and org.openide.nodes.Node are wrong. They are calling untrusted code under lock.
1) org.openide.explorer.ExplorerManager$Listener.nodeDestroyed() - lock free or reorder locks (take CH.mutex (exclusive) before obtaining the monitor).
2) Changing the org.openide.nodes.Node.fireNodeDestroyed() not to fire under lock may be dangerous, so the ExplorerManager$Listener.nodeDestroyed can do reschedule.
1st seems safer to me.
already fixed in #237545 (sol. #1 chosen)
*** This bug has been marked as a duplicate of bug 237545 ***