11package quickfix
22
33import (
4- "errors"
54 "net"
65 "strconv"
76 "time"
87
8+ "github.com/pkg/errors"
9+
910 "github.com/quickfixgo/quickfix/config"
1011 "github.com/quickfixgo/quickfix/datadictionary"
1112 "github.com/quickfixgo/quickfix/internal"
@@ -103,10 +104,18 @@ func (f sessionFactory) newSession(
103104 }
104105
105106 if s .transportDataDictionary , err = datadictionary .Parse (transportDataDictionaryPath ); err != nil {
107+ err = errors .Wrapf (
108+ err , "problem parsing XML datadictionary path '%v' for setting '%v" ,
109+ settings .settings [config .TransportDataDictionary ], config .TransportDataDictionary ,
110+ )
106111 return
107112 }
108113
109114 if s .appDataDictionary , err = datadictionary .Parse (appDataDictionaryPath ); err != nil {
115+ err = errors .Wrapf (
116+ err , "problem parsing XML datadictionary path '%v' for setting '%v" ,
117+ settings .settings [config .AppDataDictionary ], config .AppDataDictionary ,
118+ )
110119 return
111120 }
112121
@@ -119,6 +128,10 @@ func (f sessionFactory) newSession(
119128 }
120129
121130 if s .appDataDictionary , err = datadictionary .Parse (dataDictionaryPath ); err != nil {
131+ err = errors .Wrapf (
132+ err , "problem parsing XML datadictionary path '%v' for setting '%v" ,
133+ settings .settings [config .DataDictionary ], config .DataDictionary ,
134+ )
122135 return
123136 }
124137
@@ -198,10 +211,18 @@ func (f sessionFactory) newSession(
198211
199212 var start , end internal.TimeOfDay
200213 if start , err = internal .ParseTimeOfDay (startTimeStr ); err != nil {
214+ err = errors .Wrapf (
215+ err , "problem parsing time of day '%v' for setting '%v" ,
216+ settings .settings [config .StartTime ], config .StartTime ,
217+ )
201218 return
202219 }
203220
204221 if end , err = internal .ParseTimeOfDay (endTimeStr ); err != nil {
222+ err = errors .Wrapf (
223+ err , "problem parsing time of day '%v' for setting '%v" ,
224+ settings .settings [config .EndTime ], config .EndTime ,
225+ )
205226 return
206227 }
207228
@@ -214,6 +235,10 @@ func (f sessionFactory) newSession(
214235
215236 loc , err = time .LoadLocation (locStr )
216237 if err != nil {
238+ err = errors .Wrapf (
239+ err , "problem parsing time zone '%v' for setting '%v" ,
240+ settings .settings [config .TimeZone ], config .TimeZone ,
241+ )
217242 return
218243 }
219244 }
@@ -404,7 +429,7 @@ func (f sessionFactory) buildHeartBtIntSettings(session *session, settings *Sess
404429 return
405430 }
406431 }
407-
432+
408433 if session .HeartBtIntOverride || mustProvide {
409434 var heartBtInt int
410435 if heartBtInt , err = settings .IntSetting (config .HeartBtInt ); err != nil {
0 commit comments