When the handler goes to incomplete data state (Late join or a packet gap occurs) it joins the Security Definition feed. OnixS::CBOE::MarketData::CSM::SecurityDefinitionListener callback must be used to obtain updates from this feed. When the Security Definition cycle is finished (it is indicated by OnixS::CBOE::MarketData::CSM::SecurityDefinitionListener::onSecurityDefinitionCycleEnd) OnixS::CBOE::MarketData::CSM::SecurityDefinitionListener::onSecurityDefinition will not be invoked anymore (while the data is considered as complete).
In this case all the newly updated Security Definitions will be coming through OnixS::CBOE::MarketData::CSM::CurrentMarketListener::onAddedSecurityDefinition callback.
SecurityDefinition cycle may take a long while to be processed this is why Quotes and Trades start coming before the SecurityDefinition cycle is finished.