Skip to content

Add Option to ignore file name casing in IFileStore.fetchInfo() - #2952

Open
HannesWell wants to merge 1 commit into
eclipse-platform:masterfrom
HannesWell:windows-file-attribute-read-speedup
Open

HannesWell wants to merge 1 commit into
eclipse-platform:masterfrom
HannesWell:windows-file-attribute-read-speedup

Conversation

@HannesWell

@HannesWell HannesWell commented Sep 19, 2026

Copy link
Copy Markdown
Member

Introduce a new file-system option EFS.IGNORE_NAME_CASE and add a fast-path to Win32Handler in case that option is set to not determine the file's real name on the file-system.
Additionally overwrite Win32Handler.listDirectoryAndGetFileInfos(String) to leverage that new fast-path too, similar to

This currently is based on

which introduces the methods IFileStore.exists() and IFileStore.isDirectory(), which make it simpler to use the new option here.

In a very simple benchmark I ran locally on Windows, basically just fetching the same file's info in a loop a million times, the new fast-path was almost twice as fast as the existing code.
Real numbers are probably different. For random, not previously fetched files, the difference might even be greater and the numbers probably also depend on the size of the parent directory (i.e. I assume the currently used method to be slower).

@eclipse-platform-bot

eclipse-platform-bot commented Sep 19, 2026

Copy link
Copy Markdown
Contributor

This pull request changes some projects for the first time in this development cycle.
Therefore the following files need a version increment:

resources/examples/org.eclipse.ui.examples.filesystem/META-INF/MANIFEST.MF

An additional commit containing all the necessary changes was pushed to the top of this PR's branch. To obtain these changes (for example if you want to push more changes) either fetch from your fork or apply the git patch.

Git patch
From 7c3997b9ae628393d4c6fe9c9b4d73f7fcd538c0 Mon Sep 17 00:00:00 2001
From: Eclipse Platform Bot <platform-bot@eclipse.org>
Date: Sun, 20 Sep 2026 11:45:30 +0000
Subject: [PATCH] Version bump(s) for 4.42 stream


diff --git a/resources/examples/org.eclipse.ui.examples.filesystem/META-INF/MANIFEST.MF b/resources/examples/org.eclipse.ui.examples.filesystem/META-INF/MANIFEST.MF
index 325dc32f3e..b2a8ed32f2 100644
--- a/resources/examples/org.eclipse.ui.examples.filesystem/META-INF/MANIFEST.MF
+++ b/resources/examples/org.eclipse.ui.examples.filesystem/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
 Automatic-Module-Name: org.eclipse.ui.examples.filesystem
 Bundle-Name: Efs Examples Plug-in
 Bundle-SymbolicName: org.eclipse.ui.examples.filesystem;singleton:=true
-Bundle-Version: 1.2.100.qualifier
+Bundle-Version: 1.2.200.qualifier
 Bundle-Vendor: Eclipse.org
 Require-Bundle: org.eclipse.core.filesystem,
  org.eclipse.core.resources,
-- 
2.55.0

Further information are available in Common Build Issues - Missing version increments.

@github-actions

github-actions Bot commented Sep 19, 2026

Copy link
Copy Markdown
Contributor

Test Results

    54 files  +  3      54 suites  +3   55m 33s ⏱️ +35s
 4 811 tests ±  0   4 789 ✅ +  1   22 💤 ±0  0 ❌  - 1 
12 324 runs  +261  12 171 ✅ +262  153 💤 ±0  0 ❌  - 1 

Results for commit d0d378b. ± Comparison against base commit 6e4cd9b.

♻️ This comment has been updated with latest results.

@HannesWell
HannesWell force-pushed the windows-file-attribute-read-speedup branch 3 times, most recently from 5148317 to b4fc736 Compare September 21, 2026 19:12
Introduce a new file-system option `EFS.IGNORE_NAME_CASE` and add a
fast-path to Win32Handler in case that option is set to not determine
the file's real name on the file-system.

Additionally overwrite Win32Handler.listDirectoryAndGetFileInfos(String)
to leverage that new fast-path, too.
@HannesWell
HannesWell force-pushed the windows-file-attribute-read-speedup branch from b4fc736 to d0d378b Compare September 22, 2026 05:07
@HannesWell HannesWell changed the title Add Option to ignore file name capitalization in IFileStore.fetchInfo() Add Option to ignore file name casing in IFileStore.fetchInfo() Sep 22, 2026
@vogella

vogella commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

I think you have a bug, missing files are reported as I/O errors. readDosFileAttributesIntoFileInfo catches FileNotFoundException, but NIO throws NoSuchFileException for a missing file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants