Details
Description
I am writing a stress-test that tests multi-thread safetyness of our stateless encoder / decoder under heavy load and I am observing that messages are silently lost during session.write(Object), (the lost messages do not seem to reach the underlying socket buffer at all).
I am using one encoder / decoder that is stateless. No executor filter, only the filter codec and a basic io handler.
Synchronizing on the session.write makes the problem go away;
synchronized (session)
{
future = session.write(message);
}
Do I really have to synchronize on the session to solve this issue?