private OLuceneTxChanges getTransactionChanges(OBasicTransaction transaction) { OLuceneTxChanges changes = (OLuceneTxChanges) transaction.getCustomData(getName()); if (changes == null) { while (true) try { changes = storage.callIndexEngine(false, false, indexId, engine -> { OLuceneIndexEngine indexEngine = (OLuceneIndexEngine) engine; try { return indexEngine.buildTxChanges(); } catch (IOException e) { throw OException.wrapException(new OIndexException("Cannot get searcher from index " + getName()), e); } }); break; } catch (OInvalidIndexEngineIdException e) { doReloadIndexEngine(); } transaction.setCustomData(getName(), changes); } return changes; }