@Override
 @NotNull
 public synchronized VirtualFilePointer duplicate(
     @NotNull VirtualFilePointer pointer,
     @NotNull Disposable parent,
     @Nullable VirtualFilePointerListener listener) {
   VirtualFile file = pointer.getFile();
   return file == null
       ? create(pointer.getUrl(), parent, listener)
       : create(file, parent, listener);
 }