public void delete(Engine.Delete delete) { ensureWriteAllowed(delete); markLastWrite(); delete = indexingService.preDelete(delete); try { if (logger.isTraceEnabled()) { logger.trace("delete [{}]", delete.uid().text()); } engine().delete(delete); delete.endTime(System.nanoTime()); } catch (Throwable ex) { indexingService.postDelete(delete, ex); throw ex; } indexingService.postDelete(delete); }
public void postDelete(Engine.Delete delete) { long took = delete.endTime() - delete.startTime(); totalStats.deleteMetric.inc(took); totalStats.deleteCurrent.dec(); StatsHolder typeStats = typeStats(delete.type()); typeStats.deleteMetric.inc(took); typeStats.deleteCurrent.dec(); for (IndexingOperationListener listener : listeners) { try { listener.postDelete(delete); } catch (Exception e) { logger.warn("postDelete listener [{}] failed", e, listener); } } }