Details
Description
Whenever we instantiate an Initiator with the following sample session schedule settings, the engine considers that we are out of schedule because internally (in SessionSchedule.theMostRecentIntervalBefore(Calendar)), the interval start date is always after the end date for some reason:
SETTINGS
========
Locale.setDefault(Locale.FRENCH);
String[] WEEKDAYS = new DateFormatSymbols(Locale.getDefault()).getWeekdays();
settings.setString(mySessionID, Session.SETTING_TIMEZONE, "Europe/London");
settings.setString(mySessionID, Session.SETTING_START_DAY, WEEKDAYS[Calendar.SUNDAY]);
settings.setString(mySessionID, Session.SETTING_START_TIME, "22:15:00");
settings.setString(mySessionID, Session.SETTING_END_DAY, WEEKDAYS[Calendar.FRIDAY]);
settings.setString(mySessionID, Session.SETTING_END_TIME, "21:55:00");
LOG OUTPUT
===========
schedule is weekly, DIM 22:15:00 UTC - VEN 21:55:00 UTC (weekly, DIM 22:15:00 GMT - VEN 21:55:00 GMT)
Session state is not current; resetting FIX.4.2:...->...
Created session: FIX.4.2:...->...
As a workaround, temporarily forcing the default locale to Locale.ENGLISH and setting it back after solves the problem, but otherwise, the SessionSchedule.theMostRecentIntervalBefore(Calendar) method seems to have issues.
Furthermore, having to use internationalized week day String values is also a bit awkward (see above example).
Thanking you in advance,
Guillaume
Attachments
Issue Links
- relates to
-
QFJ-162 Weekly session fails on Sundays
- Closed