Some deadlocks have been observed and addressed but a static deadlock analysis should be considered to mitigate potential latent and future issues. Monitor candidates include Scenario as well as concrete anytime and online Planners:
Found one Java-level deadlock:
"pool-11-thread-1":
waiting to lock monitor 0x00007f90c02dca00 (object 0x0000000085316b08, a com.cfar.swim.worldwind.planners.rrt.oadrrt.OADRRTreePlanner),
which is held by "pool-2-thread-8"
"pool-2-thread-8":
waiting to lock monitor 0x0000560b0cea7e00 (object 0x00000000821895c0, a com.cfar.swim.worldwind.session.Scenario),
which is held by "pool-6-thread-1"
"pool-6-thread-1":
waiting to lock monitor 0x00007f90c02dca00 (object 0x0000000085316b08, a com.cfar.swim.worldwind.planners.rrt.oadrrt.OADRRTreePlanner),
which is held by "pool-2-thread-8"
Java stack information for the threads listed above:
"pool-11-thread-1":
at com.cfar.swim.worldwind.planners.rrt.oadrrt.OADRRTreePlanner.notifyProgress(OADRRTreePlanner.java:1160)
waiting to lock <0x0000000085316b08> (a com.cfar.swim.worldwind.planners.rrt.oadrrt.OADRRTreePlanner)
at com.cfar.swim.worldwind.planners.rrt.oadrrt.OADRRTreePlanner$TrackChangeListener.propertyChange(OADRRTreePlanner.java:740)
at java.beans.PropertyChangeSupport.fire(java.desktop@11.0.10/PropertyChangeSupport.java:341)
at java.beans.PropertyChangeSupport.firePropertyChange(java.desktop@11.0.10/PropertyChangeSupport.java:334)
at java.beans.PropertyChangeSupport.firePropertyChange(java.desktop@11.0.10/PropertyChangeSupport.java:266)
at com.cfar.swim.worldwind.connections.Datalink$DatalinkMonitor.run(Datalink.java:555)
at java.util.concurrent.Executors$RunnableAdapter.call(java.base@11.0.10/Executors.java:515)
at java.util.concurrent.FutureTask.runAndReset(java.base@11.0.10/FutureTask.java:305)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(java.base@11.0.10/ScheduledThreadPoolExecutor.java:305)
at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.10/ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.10/ThreadPoolExecutor.java:628)
at java.lang.Thread.run(java.base@11.0.10/Thread.java:834)
"pool-2-thread-8":
at com.cfar.swim.worldwind.session.Scenario.notifyStructuralChange(Scenario.java:912)
waiting to lock <0x00000000821895c0> (a com.cfar.swim.worldwind.session.Scenario)
at com.cfar.swim.worldwind.environments.PlanningContinuum.notifyStructuralChangeListeners(PlanningContinuum.java:1036)
at com.cfar.swim.worldwind.environments.PlanningContinuum.clearEdges(PlanningContinuum.java:1695)
at com.cfar.swim.worldwind.environments.PlanningContinuum.clearVertices(PlanningContinuum.java:1591)
at com.cfar.swim.worldwind.planners.rrt.brrt.RRTreePlanner.clearExpendables(RRTreePlanner.java:396)
at com.cfar.swim.worldwind.planners.rrt.arrt.ARRTreePlanner.restore(ARRTreePlanner.java:970)
at com.cfar.swim.worldwind.planners.rrt.adrrt.ADRRTreePlanner.restore(ADRRTreePlanner.java:758)
at com.cfar.swim.worldwind.planners.rrt.oadrrt.OADRRTreePlanner.progress(OADRRTreePlanner.java:887)
locked <0x0000000085316b08> (a com.cfar.swim.worldwind.planners.rrt.oadrrt.OADRRTreePlanner)
at com.cfar.swim.worldwind.planners.rrt.oadrrt.OADRRTreePlanner.suspend(OADRRTreePlanner.java:1147)
locked <0x0000000085316b08> (a com.cfar.swim.worldwind.planners.rrt.oadrrt.OADRRTreePlanner)
at com.cfar.swim.worldwind.planners.rrt.adrrt.ADRRTreePlanner.plan(ADRRTreePlanner.java:491)
at com.cfar.swim.worldwind.ui.world.WorldPresenter$17.run(WorldPresenter.java:846)
at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.10/ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.10/ThreadPoolExecutor.java:628)
at java.lang.Thread.run(java.base@11.0.10/Thread.java:834)
"pool-6-thread-1":
at com.cfar.swim.worldwind.planners.rrt.adrrt.ADRRTreePlanner.isListening(ADRRTreePlanner.java:529)
waiting to lock <0x0000000085316b08> (a com.cfar.swim.worldwind.planners.rrt.oadrrt.OADRRTreePlanner)
at com.cfar.swim.worldwind.session.Scenario.submitDisableObstacles(Scenario.java:1662)
locked <0x00000000821895c0> (a com.cfar.swim.worldwind.session.Scenario)
at com.cfar.swim.worldwind.ui.swim.SwimPresenter$6.run(SwimPresenter.java:235)
at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.10/ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.10/ThreadPoolExecutor.java:628)
at java.lang.Thread.run(java.base@11.0.10/Thread.java:834)
Some deadlocks have been observed and addressed but a static deadlock analysis should be considered to mitigate potential latent and future issues. Monitor candidates include Scenario as well as concrete anytime and online Planners:
Found one Java-level deadlock:
"pool-11-thread-1": waiting to lock monitor 0x00007f90c02dca00 (object 0x0000000085316b08, a com.cfar.swim.worldwind.planners.rrt.oadrrt.OADRRTreePlanner), which is held by "pool-2-thread-8" "pool-2-thread-8": waiting to lock monitor 0x0000560b0cea7e00 (object 0x00000000821895c0, a com.cfar.swim.worldwind.session.Scenario), which is held by "pool-6-thread-1" "pool-6-thread-1": waiting to lock monitor 0x00007f90c02dca00 (object 0x0000000085316b08, a com.cfar.swim.worldwind.planners.rrt.oadrrt.OADRRTreePlanner), which is held by "pool-2-thread-8"
Java stack information for the threads listed above:
"pool-11-thread-1": at com.cfar.swim.worldwind.planners.rrt.oadrrt.OADRRTreePlanner.notifyProgress(OADRRTreePlanner.java:1160)
Found 1 deadlock.