in orderbook-core/src/main/java/com/epam/deltix/orderbook/core/impl/L3ConsolidatedQuoteProcessor.java [246:271]
public boolean handleCancel(final L3Processor<Quote> exchange,
final PackageHeaderInfo pck,
final L3EntryUpdateInfo msg) {
final CharSequence quoteId = msg.getQuoteId();
final QuoteSide side = msg.getSide() == ASK ? ASK : BID;
Quote removed = exchange.getMarketSide(side).remove(quoteId);
if (removed == null) {
// setting it as ASK would suffice when side is set correctly or not set at all (null)
removed = exchange.getMarketSide(side == ASK ? BID : ASK).remove(quoteId);
if (removed != null) {
getMarketSide(side == ASK ? BID : ASK).remove(removed);
}
} else {
getMarketSide(side).remove(removed);
}
if (removed == null) {
if (validationOptions.isQuoteUpdate()) {
subtractExchange(exchange);
}
return exchange.processL3EntryUpdate(pck, msg);
}
pool.release(removed);
return true;
}