Hi guys,

just to keep you informed about what has been found during my investigation on this issue.

The JIRA is talking about a regression from M6 to RC1, but in fact M6 code has been fixed and theses fixes impact the way the dispose() method behaves when it's called inside a Listener : we now have a hang instead of a quick exit due to a deadlock detection.

Of course, we can add some deadlock detection in the dispose() method, and the hang will disapear, but it's just a bad workaround.

I would like to raise a question here :
when closing a session, which is associated with a listener, should we allow the dispose() method to be called in the listener ?

If so, we have to find a way to get the dispose() being run in a separated thread than the IoProcessor, otherwise it will wait forever.

Otherwise, should we simply throw an exception, telling the user that it's a nonsense to call dispose in a listener ? The rational would be that if you dispose() in a session close listener, then *all* the other sessions will also be closed at the same time, something the user might not be aware of.

wdyt ?

--
Regards,
Cordialement,
Emmanuel Lécharny
www.nextury.com


Reply via email to