[QFJ-632] isTimeToGenerateLogon() in Session always returns true -> Initiators reconnect immediately when a Server closes the connection Created: 02/Sep/11 Updated: 08/Nov/12 Resolved: 08/Nov/12 |
|
| Status: | Resolved |
| Project: | QuickFIX/J |
| Component/s: | Engine |
| Affects Version/s: | 1.5.0, 1.5.1, 1.5.2 |
| Fix Version/s: | 1.5.3 |
| Type: | Bug | Priority: | Default |
| Reporter: | Bernhard Wege | Assignee: | Christoph John |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | Reconnect, ReconnectInterval | ||
| Issue Links: |
|
||||||||
| Description |
|
The long attribute lastSessionLogon in Session never gets written and always stays 0. This makes isTimeToGenerateLogon() to always return true, because current Time - 0 will always be greater than computeNextLogonDelayMillis(). This results in Initiators reconnecting immediately and ignoring the ReconnectInterval after a Server closes the Connection. This should affect all versions. But I only checked 1.5.1, 1.5.0 and TRUNK. I am not sure where lastSessionLogon hast to be set, but I guess it should be in generateLogon(). Additionally I don't understand why lastSessionLogon gets set to 0 in nextLogon(). As far as I understand, it should never be necessary to reset it to 0. isTimeToGenerateLogon() is the only function that uses it. |
| Comments |
| Comment by Christoph John [ 15/Oct/12 ] |
|
Moreover, the counter "logonAttempts" is never incremented which leads to the usage of only one reconnectInterval in computeNextLogonDelayMillis(). ( |
| Comment by Christoph John [ 08/Nov/12 ] |
|
Committed as rev #1098. |