This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 209557 - External changes checks ignored folders
Summary: External changes checks ignored folders
Status: RESOLVED INVALID
Alias: None
Product: platform
Classification: Unclassified
Component: Filesystems (show other bugs)
Version: 7.1
Hardware: PC Windows 7
: P3 normal (vote)
Assignee: Jaroslav Tulach
URL:
Keywords:
Depends on: 207189
Blocks:
  Show dependency tree
 
Reported: 2012-03-14 08:15 UTC by wvankuipers
Modified: 2012-04-05 13:02 UTC (History)
2 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
Profile dump (565.20 KB, application/octet-stream)
2012-04-05 06:23 UTC, wvankuipers
Details

Note You need to log in before you can comment on or make changes to this bug.
Description wvankuipers 2012-03-14 08:15:30 UTC
When the IDE checks a project for external changes it also checks the ignored folders that are defined in the project's ignored folders list.

If you have a project, with a folder containing loads of files that's in the ignored folders list, the project takes ages to check for external changes!

There shoul be an option that whould disable checking for external chanegs in ignored folders to enhance the check for external changes process.
Comment 1 Tomas Zezula 2012-03-21 18:03:59 UTC
As far as I know the IDE does not do the check for external changes in source roots on platforms which support native listening (Windows, Mac, Linux, Solaris).
Comment 2 wvankuipers 2012-04-03 07:22:59 UTC
My projects are on a external network share, and in that case the check for external changes on all files happens when a project is opened. The current project I work on takes 25 minutes to load due to the fact that there are 250.000 files inside a directory that is ignored in the project settings. if this directry whas ignored on the external changes check the project only takes 1.2 minutes!
Comment 3 Jaroslav Tulach 2012-04-03 14:49:19 UTC
No indication something wrong is happening in filesystems, moving to parsing.api. The suggestion to not add recursive listener to hidden folders is tracked as bug 207189 and I made this one dependent on it.
Comment 4 Tomas Zezula 2012-04-03 15:00:02 UTC
1st) Parsing.api has nothing in common with checking for external changes. It's completely done in filesystems.

2nd) There is no API now to exclude recursive listening, the issue #207189 tries to introduce the API.

3rd) The issue is reported on Win where we have native listeners, so checking for external changes should not be done at all in source base, at least the issue #197985 is marked as fixed. Does it mean that I should reopen it?
Comment 5 Jaroslav Tulach 2012-04-03 18:01:05 UTC
OK, report tell us how "check for external changes" manifests itself? Try to record a profiling snapshot when it happens: http://wiki.netbeans.org/FitnessViaPartnership
Comment 6 wvankuipers 2012-04-05 06:23:04 UTC
Created attachment 117855 [details]
Profile dump

Profile dump of the opening of a project with loads of files in ignored directories
Comment 7 wvankuipers 2012-04-05 06:25:31 UTC
Ok I just noticed that the task that takes up all the time is in fact not the "Scanning for changes" process, but the "Scanning projects" process.
Comment 8 Tomas Zezula 2012-04-05 08:19:19 UTC
Thanks for the ups file.
The parsing.api itself filters the events coming from non visible (VisibilityQuery) and excluded (ClassPath.Entry.includes()) files. The problem is that FU.addRecursiveListeners traverse these folders as seen in the nps file. Implementing the #207189 resolves the problem, in fact it's a duplicate of #207189.
Comment 9 Jaroslav Tulach 2012-04-05 11:18:16 UTC
(In reply to comment #8)
> The problem
> is that FU.addRecursiveListeners traverse these folders as seen in the nps
> file. 

Right, that is the problem.

> Implementing the #207189 resolves the problem, 

No. It does not. Because you need to use the API created in bug 207189 somewhere.

> in fact it's a duplicate
> of #207189.

Just implementing bug 207189 won't help anyone. Thus this bug is in parsing.api and depends on bug 207189.



Now, I believe the right thing is to move this bug where it belongs - e.g. parsing.api. Obviously Tomáš Zezula will disagree, so I rather close it as invalid (from openide.filesysems point of view) then to continue useless issue ping pong with Tomáš.
Comment 10 Tomas Zezula 2012-04-05 13:02:41 UTC
In parsing.api?
The parsing.api tries hard not to touch the ignored and non visible folders.
The FU.addRecursiveListener does not care and traverse these folders. On Windows it does it completely uselessly as the Win recursive listener listens on drives (C:\,D:\,...), so it's enough to check that the event is under the root, no recursive traversal is needed.
I am even opened to help the FileSystems by passing the information from project system but the FS needs to provide the API.