diff --git a/openide.loaders/src/org/openide/loaders/FolderChildren.java b/openide.loaders/src/org/openide/loaders/FolderChildren.java --- a/openide.loaders/src/org/openide/loaders/FolderChildren.java +++ b/openide.loaders/src/org/openide/loaders/FolderChildren.java @@ -130,7 +130,7 @@ /** Deep refresh or not. * @param operation 0 == shallow, 1 == deep, -1 == clear, 10 = shallow immediatelly */ - final void refreshChildren(int operation) { + final void refreshChildren(final int operation) { class R implements Runnable { int op; public void run() { @@ -147,7 +147,14 @@ return; } - final FileObject[] arr = folder.getPrimaryFile().getChildren(); + FileObject[] arr = null; + if (operation == 10) { + // hack for slow FS + arr = (FileObject[]) folder.getPrimaryFile().getAttribute("getChildrenFast"); // NOI18N + } + if (arr == null) { + arr = folder.getPrimaryFile().getChildren(); + } FolderOrder order = FolderOrder.findFor(folder.getPrimaryFile()); Arrays.sort(arr, order); List positioned = new ArrayList(arr.length);