FileIndexingState (int fileId, @NotNull ID<?, ?> indexName) { try { long stamp = getIndexStamp(fileId, indexName); if (stamp == HAS_NO_INDEXED_DATA_STAMP) return FileIndexingState.NOT_INDEXED; return stamp == IndexVersion.getIndexCreationStamp(indexName) ? FileIndexingState.UP_TO_DATE : FileIndexingState.OUT_DATED; } catch (RuntimeException e) { final Throwable cause = e.getCause(); if (!(cause instanceof IOException)) { throw e; // in case of IO exceptions consider file unindexed } } return FileIndexingState.OUT_DATED; }