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

Reply via email to