-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Recordings show when control is transferred into a thread by an ExecutorService #268
Comments
@apotterri Is this for the JetBrains plugin or for https://github.com/getappmap/appmap-java? |
Oops, sorry. |
FWIW, I think it is the best we can do with the current AppMap spec while maintaining coherent UX, even if the data thus generated isn't technically 100% accurate (esp. re. event ordering and thread IDs). |
Do you have Limit Root events to HTTP checked? |
In appmap-node, a similar case (outstanding promises when recording ends) would show up in an AppMap as a Promise with |
Currently, if an HTTP endpoint (e.g. a Spring Controller) uses an
ExecutorService
to run a task, none of that processing shows up in the AppMap. For example:the calls to
DolphinChat
methods won't show up in the AppMap.Instead, the (pseudo) events should look like this:
This says they all have the same thread id (that matches the thread that creates the
ExecutorService
). The ordering of thecall
andreturn
events show that the calls toDolphinChat.say
happened in aRunnable
/Callable
submitted to anExecutorService
. Note that the order of the completeRunnable.run
call chains may not match the order in the code, of course, because they were run on separate threads.Test cases:
dolphins
, generates an AppMapExecutorService.submit
has been calledCallable
andRunnable
passed toExecutorService.submit
are handled correctlydolphins
generates an AppMapdolphins
endpoint generates an AppMapFuture.cancel
is called. [What should happen to the task's recording?]ExecutorService.submit
returns. [What should happen if there are outstandingFuture
s?]The text was updated successfully, but these errors were encountered: