Any idea why doneListener associated with identifyGraphicsOverlayAsync sometimes does not get called?

502
1
08-28-2017 02:58 PM
BillStone
New Contributor

I am using the Java SDK and have a few objects making overlay search calls using identifyGraphicsOverlayAsync.  The code attempts to do several searches at about the same time.  Sometimes the application locks up when that happens, and several of the doneListeners don't fire.  When this happens, my logging shows me that:

1. The identifyGraphicsOverlayAsync method was called and returned, 

2. The addDoneListener method was called and returned, and 

3. The done listener was never invoked.

When my software searches, it searches about 8 layers simultaneously.  When it succeeds, all 8 done listeners are called.  When it fails, usually about 3 done listeners are called.

0 Kudos
1 Reply
BillStone
New Contributor

I know I didn't give terribly much to go on in the last post.  I've had a bit more time to tinker with this issue and I found something that may be useful.  One correction to my previous note: the done listener is actually called, but the thread freezes immediately after that.  The lockup always occurs inside the ESRI runtime at the same line.  Below is a partial stackdump, post-freeze, via VisualVM:

"JavaFX Application Thread" #15 prio=5 os_prio=0 tid=0x0000000020bfd000 nid=0x3b8 runnable [0x0000000063c5d000]
java.lang.Thread.State: RUNNABLE
at com.esri.arcgisruntime.internal.jni.CoreTask.nativeGet(Native Method)
at com.esri.arcgisruntime.internal.jni.CoreTask.c(SourceFile:111)
at com.esri.arcgisruntime.internal.a.b.get(SourceFile:133)
at com.ngc.cmms.avia.viewer.MyPresenter.selectGraphicsHandler(MyPresenter.java:654)

Any insight would be greatly appreciated!  Thank you in advance.