@Override
      protected void performLongOperation(CheckBeforeActionResult actionResult) {
        try {
          LOGGER.info("Open path {}", uriUtils.getFriendlyURI(pathField.getText()));
          SwingUtilities.invokeLater(() -> loadingProgressBar.setString("Resolving path"));
          final long start = System.currentTimeMillis();
          FileObject resolveFile = VFSUtils.resolveFileObject(pathField.getText().trim());
          LOGGER.info("Path resolved in " + (System.currentTimeMillis() - start) + "ms");
          LOGGER.info("Path {} resolved", uriUtils.getFriendlyURI(pathField.getText()));
          if (resolveFile != null && resolveFile.getType() == FileType.FILE) {
            LOGGER.info("Resolved path is a file");
            loadAndSelSingleFile(resolveFile);
            pathField.setText(resolveFile.getURL().toString());
            actionApproveDelegate.actionPerformed(
              // TODO:  Does actionResult provide an ID for 2nd param here,
              // or should use a Random number?
              new ActionEvent(actionResult, (int) new java.util.Date().getTime(), "SELECTED_FILE"));
          } else {
            goToFileObject(resolveFile);
          }
        } catch (FileSystemException fse) {
          LOGGER.error("Can't open path ", fse);
          SwingUtilities.invokeLater(() -> {
            loadingProgressBar.setString("Path can't be resolved");
            JOptionPane.showMessageDialog(VfsBrowser.this, "Can't open path: " + fse.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
          });
        }
      }
Caller responsible for ensuring called from EDT.
We purposefully do not update UI other than indirectly reflecting
the selection.
Current use case is that we are finished with the browser window.
olv-vfs/src/main/java/pl/otros/vfs/browser/VfsBrowser.java