One question that comes to my mind after looking at our code: there is a Boolean attribute get/set
on the IoSession in various places (SessionConnector.QFJ_RESET_IO_CONNECTOR). We get/set this from
different locations and threads. But we neither synchronize on the IoSession nor the get/set of the
attribute. So IMHO it could happen that the attribute is set to a different value than actually
expected, triggering unexpected behaviour.
I only searched briefly but could not find anything in the MINA code that makes getting/setting the
attribute thread-safe.
I don't know if this causes the error, will have to test a little more.
Thanks,
Chris.
On 26/07/17 17:22, Emmanuel Lécharny wrote:
Le 26/07/2017 à 16:40, Christoph John a écrit :
Hi,
thanks for your reply. I will check the points you mentioned and come
back.
Most of the code in that class is quite some years old and started off
as a C++ project (quickfix) and was also using MINA 1.x before. So it
might be that nowadays there are some suboptimal things done there. :)
In any case, if you have question related to the code, feel free to ask !
--
Christoph John
Development & Support
Direct: +49 241 557080-28
Mailto:christoph.j...@macd.com
http://www.macd.com <http://www.macd.com/>
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
MACD GmbH
Oppenhoffallee 103
D-52066 Aachen
Tel: +49 241 557080-0 | Fax: +49 241 557080-10
Amtsgericht Aachen: HRB 8151
Ust.-Id: DE 813021663
Geschäftsführer: George Macdonald
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
take care of the environment - print only if necessary