Can you show the code surrounding the call to listen() on a Listener instance?
Is there anything being moved to different threads there?

Respectively look for all the places in the code threads are involved.