private ClasspathCache.LoaderData tryReadFromIndex() {
    if (!myConfiguration.myCanHavePersistentIndex) return null;
    long started = System.nanoTime();

    File index = getIndexFileFile();

    boolean isOk = false;
    try (DataInputStream reader = new DataInputStream(new BufferedInputStream(new FileInputStream(index)))) {
      if (DataInputOutputUtilRt.readINT(reader) == ourVersion) {
        ClasspathCache.LoaderData loaderData = new ClasspathCache.LoaderData(reader);
        isOk = true;
        return loaderData;
      }
    }
    catch (FileNotFoundException ex) {
      isOk = true;
    }
    catch (IOException ignore) {
    }
    finally {
      if (!isOk) {
        index.delete();
      }
      totalReading.addAndGet(System.nanoTime() - started);
    }

    return null;
  }
private ClasspathCache.LoaderData tryReadFromIndex()