@Override
  protected @NotNull ResourceHandle<ZipFile> acquireZipHandle() throws IOException {
    try {
      FileAccessorCache.Handle<ZipFile> handle = ourZipFileFileAccessorCache.get(this);

      // IDEA-148458, JDK-4425695 (JVM crashes on accessing an open ZipFile after it was modified)
      File file = getFile();
      BasicFileAttributes attrs = Files.readAttributes(file.toPath(), BasicFileAttributes.class);
      if (attrs.lastModifiedTime().toMillis() != myFileStamp || attrs.size() != myFileLength) {
        // Note that zip_util.c#ZIP_Get_From_Cache will allow us to have duplicated ZipFile instances without a problem
        clearCaches();
        handle.release();
        handle = ourZipFileFileAccessorCache.get(this);
      }

      return handle;
    }
    catch (RuntimeException e) {
      Throwable cause = e.getCause();
      if (cause instanceof IOException) throw (IOException)cause;
      throw e;
    }
  }
@Override
  protected @NotNull ResourceHandle<ZipFile> acquireZipHandle()