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