Details
Description
- An initiator creates the sessions in start() -> initialize() -> createSessionInitiators()
- if an initiator is stopped, then the sessions will be unregistered
- if an initialized initiator is started, then it only re-registers the sessions, and does not recreate them (see initialize())
- a Session closes it's Log if it's closeable (see Session -> unregisterSessions() -> close() -> closeIfCloseable(getLog())
a FileLog only opens it's streams in clear() and in it's constructor - therefore, if SocketInitiator using a FileLog is stopped, then next time it gets started it will throw exceptions as the underlying file descriptor is closed.
This bug is NOT present in the case of Acceptors as they recreate sessions when they start up.