} catch (IOException e) { throw new RuntimeError(e);
    protected void initiateSessions(EventHandlingStrategy eventHandlingStrategy) throws ConfigError {        try {            SessionSettings settings = getSettings();            boolean continueInitOnError = false;            if (settings.isSetting(SessionFactory.SETTING_CONTINUE_INIT_ON_ERROR)) {                continueInitOnError = settings                        .getBool(SessionFactory.SETTING_CONTINUE_INIT_ON_ERROR);            }            Map initiatorSessions = new HashMap();            List protocolSessionInitiators = new ArrayList();            for (Iterator i = settings.sectionIterator(); i.hasNext();) {                SessionID sessionID = (SessionID) i.next();                if (isInitiatorSession(sessionID)) {                    try {                        int reconnectingInterval = getReconnectIntervalInSeconds(sessionID);                        SocketAddress[] socketAddresses = getSocketAddresses(sessionID);                        Session quickfixSession = createSession(sessionID);                        initiatorSessions.put(sessionID, quickfixSession);                        NetworkingOptions networkingOptions = new NetworkingOptions(settings                                .getSessionProperties(sessionID));                        ProtocolProvider protocolProvider = new InitiatorProtocolProvider(                                quickfixSession, networkingOptions, eventHandlingStrategy);                        protocolSessionInitiators.add(new ProtocolSessionInitiator(quickfixSession,                                protocolProvider, socketAddresses, reconnectingInterval,                                getScheduledExecutorService()));                    } catch (Throwable e) {                        if (continueInitOnError) {                            log.error("error during session initialization, continuing...", e);                        } else {                            throw new RuntimeError("error during session initialization", e);                        }                    }                }            }            setSessions(initiatorSessions);            if (protocolSessionInitiators.size() > 0) {                for (int i = 0; i < protocolSessionInitiators.size(); i++) {                    ((ProtocolSessionInitiator) protocolSessionInitiators.get(i)).connect();                }                startSessionTimer();            } else {                throw new ConfigError("no initiators in settings");            }        } catch (FieldConvertError e) {            throw new ConfigError(e);        } catch (IOException e) {            throw new RuntimeError(e);        }    }