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 217776 - unnecessary big reparses during clean&build
Summary: unnecessary big reparses during clean&build
Status: RESOLVED FIXED
Alias: None
Product: cnd
Classification: Unclassified
Component: Code Model (show other bugs)
Version: 7.2
Hardware: All All
: P2 normal (vote)
Assignee: Vladimir Voskresensky
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-09-04 07:38 UTC by Vladimir Voskresensky
Modified: 2014-04-08 10:47 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vladimir Voskresensky 2012-09-04 07:38:09 UTC
file events produced between start and finish of clean&build should be postponed, because big build systems do remove & generate files which later are compiled. Incremental reparse on "change" event is expected instead of remove/add handling. 
Remove does remove per file in DeepReparsingUtils and then "add" is handled one by one as well trying to find all broken includes in all files.
Comment 1 Vladimir Voskresensky 2012-09-24 15:57:40 UTC
File events are handled by makeproject and modelimpl

Modelimpl listens global events. Global events are delivered for all live FObs or guaranteed by addRecursiveListener for root of tree.

Makeproject adds recursive listener for disk source folder (only root).
Non physical folders doesn't listen file system.
Item listens DataObject propertyChange events, so remove/add is tracked here as well
Comment 2 Vladimir Voskresensky 2012-09-24 16:02:12 UTC
FileUtil.refreshFor(array) is called from ProjectActionSupport two times in case of Clean followed by Build

MakeLogicalViewProvider.refreshBrokenItems(project) is used to update removed/appeared files badge

The same is called from Item on DObj property change events
Comment 3 Quality Engineering 2012-10-01 12:06:26 UTC
Integrated into 'main-golden', will be available in build *201210010929* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/6195e15ac916
User: Vladimir Voskresensky <vv159170@netbeans.org>
Log: fixing #217776 - unnecessary big reparses during clean&build
Comment 4 Vladimir Voskresensky 2012-10-09 11:01:45 UTC
merged branch with fixes into trunk:
http://hg.netbeans.org/cnd-main/rev/1aa4d28ac785
Comment 5 Quality Engineering 2012-10-10 03:04:08 UTC
Integrated into 'main-golden', will be available in build *201210100002* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/c43dcff43455
User: Vladimir Voskresensky <vv159170@netbeans.org>
Log: fixing #217776 - unnecessary big reparses during clean&build
-- checkForRemove handles implicitely removed includes
-- checkForRemove is used in NFI remove/rename
Comment 6 Quality Engineering 2012-10-11 02:00:32 UTC
Integrated into 'main-golden', will be available in build *201210110002* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/04c204585a30
User: Vladimir Voskresensky <vv159170@netbeans.org>
Log: fixing #217776 - unnecessary big reparses during clean&build
-- handle added NFI without overwriting what already in model
Comment 7 Quality Engineering 2012-10-12 02:05:35 UTC
Integrated into 'main-golden', will be available in build *201210120002* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/afba9908b5a8
User: Vladimir Voskresensky <vv159170@netbeans.org>
Log: fixing #217776 - unnecessary big reparses during clean&build
-- hold on with delete/create pair from rename event
Comment 8 Vladimir Kvashin 2014-04-07 12:16:33 UTC
This seems to be broken when introducing indexing api in
065aa98f7643
Comment 9 Vladimir Kvashin 2014-04-08 10:47:00 UTC
I've just filed another bug #243650, restoring this to "FIXED" state