From d0fb8a39a5601b9c5d96538dd834e3e270d9017b Mon Sep 17 00:00:00 2001 From: Lars Vogel Date: Wed, 26 Aug 2026 20:06:25 +0200 Subject: [PATCH] Skip filter evaluation for projects without resource filters Resource.filterChildren runs for every directory scanned by a refresh or an isSynchronized walk. Even for a project without any resource filter it allocated two lists and walked the project-relative path up to the root, allocating an IPath and taking a synchronized getFilter call per segment. Return early when the project description holds no filters, which cuts this garbage from the auto-refresh polling path. --- .../src/org/eclipse/core/internal/resources/Resource.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/Resource.java b/resources/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/Resource.java index 1794caf1def..94bfe274d0c 100644 --- a/resources/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/Resource.java +++ b/resources/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/Resource.java @@ -2086,7 +2086,7 @@ public IFileInfo[] filterChildren(IFileInfo[] list, boolean throwException) thro return list; } final ProjectDescription description = project.internalGetDescription(); - if (description == null) { + if (description == null || description.getFilters() == null) { return list; } return filterChildren(project, description, list, throwException);