Community
Participate
Working Groups
Similar to bug 575242, but with an increased file count (100 000). To reproduce, create a Java project and generate some text files in it. E.g. with (adjust path to folder accordingly): public static void main(String[] args) throws IOException { Path folder = Paths.get("..."); if (!Files.deleteIfExists(folder)) { Files.createDirectory(folder); } int n = 100_000; String baseContent = "text here"; for (int i = 0; i < n; ++i) { System.out.println("Writing file " + i); StringBuilder content = new StringBuilder(); int k = 1; if (i == 1001) { k = 1000; } for (int j = 0; j < k; ++j) { content.append(baseContent); content.append(" n"); content.append(i); content.append(System.lineSeparator()); } String fileName = "file" + i + ".txt"; Path file = folder.resolve(fileName); try { Files.write(file, content.toString().getBytes()); } catch (IOException e) { System.err.println("Failed to write file: " + fileName); e.printStackTrace(); } } } Search in workspace for string "text here" in all files. Observe that UI is frozen (e.g. for 10+ min on a HP Z640 workstation): "main" #1 prio=6 os_prio=0 cpu=43454.15ms elapsed=108.45s tid=0x00007ffff0017800 nid=0xa312 runnable [0x00007ffff7fca000] java.lang.Thread.State: RUNNABLE at org.eclipse.swt.internal.gtk.GTK.gtk_tree_store_append(Native Method) at org.eclipse.swt.widgets.Tree.createItem(Tree.java:992) at org.eclipse.swt.widgets.TreeItem.<init>(TreeItem.java:168) at org.eclipse.swt.widgets.TreeItem.<init>(TreeItem.java:128) at org.eclipse.jface.viewers.TreeViewer.createNewRowPart(TreeViewer.java:769) at org.eclipse.jface.viewers.TreeViewer.newItem(TreeViewer.java:276) at org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(AbstractTreeViewer.java:2920) at org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.java:794) at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:854) at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:831) at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:604) at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:779) at org.eclipse.jface.viewers.AbstractTreeViewer.setExpandedState(AbstractTreeViewer.java:2526) at org.eclipse.search2.internal.ui.basic.views.TreeViewerNavigator.getChildren(TreeViewerNavigator.java:140) at org.eclipse.search2.internal.ui.basic.views.TreeViewerNavigator.getFirstChildWithMatches(TreeViewerNavigator.java:129) at org.eclipse.search2.internal.ui.basic.views.TreeViewerNavigator.getFirstChildWithMatches(TreeViewerNavigator.java:136) at org.eclipse.search2.internal.ui.basic.views.TreeViewerNavigator.getNextItemForward(TreeViewerNavigator.java:106) at org.eclipse.search2.internal.ui.basic.views.TreeViewerNavigator.navigateNext(TreeViewerNavigator.java:41) at org.eclipse.search.ui.text.AbstractTextSearchViewPage.navigateNext(AbstractTextSearchViewPage.java:989) at org.eclipse.search.ui.text.AbstractTextSearchViewPage$UpdateUIJob.runInUIThread(AbstractTextSearchViewPage.java:162) at org.eclipse.ui.progress.UIJob.lambda$0(UIJob.java:95) at org.eclipse.ui.progress.UIJob$$Lambda$715/0x00000008409b2040.run(Unknown Source) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185) - locked <0x00000000dc4851b8> (a org.eclipse.swt.widgets.RunnableLock) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:5115) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4601) at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:166) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:368) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:468) at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:228) at org.eclipse.ui.internal.progress.ProgressManager.lambda$26(ProgressManager.java:821) at org.eclipse.ui.internal.progress.ProgressManager$$Lambda$832/0x0000000840b65840.run(Unknown Source) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74) at org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:854) at org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:830) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.checkInitialConditions(RefactoringWizardOpenOperation.java:222) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.lambda$0(RefactoringWizardOpenOperation.java:173) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation$$Lambda$831/0x0000000840b67040.run(Unknown Source) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:209) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:126) at org.eclipse.search.internal.ui.text.ReplaceAction.run(ReplaceAction.java:65) at org.eclipse.search.internal.ui.text.TextSearchPage.lambda$0(TextSearchPage.java:302) at org.eclipse.search.internal.ui.text.TextSearchPage$$Lambda$1156/0x0000000840defc40.run(Unknown Source)