Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Code
-
Normal
-
Normal
-
Code Inspection
-
All
-
None
-
Description
StreamManager does currently a suboptimal job in differentiating between stream sessions (in form of StreamResultFuture) which have been either initiated or "received", for the following reasons:
1) Naming is IMO confusing: a "receiver" session could actually both send and receive files, so technically an initiator is also a receiver.
2) StreamManager#findSession() assumes we should first looking into "initiator" sessions, then into "receiver" ones: this is a dangerous assumptions, in particular for test environments where the same process could work as both an initiator and a receiver.
I would recommend the following changes:
1) Rename "receiver" with "follower" everywhere the former is used.
2) Introduce a new flag into StreamMessageHeader to signal if the message comes from an initiator or follower session, in order to correctly differentiate and look for sessions in StreamManager.
While my arguments above might seem trivial, I believe they will improve clarity and save from potential bugs/headaches at testing time, and doing such changes now that we're revamping streaming for 4.0 seems the right time.